diff options
Diffstat (limited to 'src/thread/nt32')
-rw-r--r-- | src/thread/nt32/syscall_cp.s | 23 |
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 |