summaryrefslogtreecommitdiffhomepage
path: root/src/thread/nt32/syscall_cp.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/thread/nt32/syscall_cp.s')
-rw-r--r--src/thread/nt32/syscall_cp.s23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/thread/nt32/syscall_cp.s b/src/thread/nt32/syscall_cp.s
index 1f5142c..2b06d3b 100644
--- a/src/thread/nt32/syscall_cp.s
+++ b/src/thread/nt32/syscall_cp.s
@@ -1,19 +1,28 @@
.text
-.globl ___syscall_cp_asm
-.globl ___cp_begin
-.globl ___cp_end
+.globl ___cp_begin
+.globl ___cp_end
+.globl ___cp_cancel
+.globl ___syscall_cp_asm
+
+.def ___cp_begin; .scl 2; .type 32; .endef
+.def ___cp_end; .scl 2; .type 32; .endef
+.def ___cp_cancel; .scl 2; .type 32; .endef
+.def ___syscall_cp_asm; .scl 2; .type 32; .endef
___syscall_cp_asm:
___cp_begin:
mov (%ecx), %ecx # check content of ptr
test %ecx, %ecx
- jnz ___cancel # thread is pending cancellation
+ jnz ___cp_cancel # thread is pending cancellation
jmp ___syscall
___cp_end:
ret
+___cp_cancel:
+ jmp ___cancel
+
.section .got$___syscall_cp_asm
.global __imp____syscall_cp_asm
__imp____syscall_cp_asm:
@@ -31,3 +40,9 @@ __imp____cp_begin:
__imp____cp_end:
.long ___cp_end
.linkonce discard
+
+ .section .got$___cp_cancel
+ .global __imp____cp_cancel
+__imp____cp_cancel:
+ .long ___cp_cancel
+ .linkonce discard