summaryrefslogblamecommitdiff
path: root/src/thread/i386/syscall_cp.s
blob: 7dce1eb3ae9ebc0c3d701567376adfeb4faf98f4 (plain) (tree)
1
2
3
4
5
6
7
8
9
     






                   
                        
                        
                                  
                 
                        



                  

                        
                       
                       







                          
         




                 





                    
.text
.global __cp_begin
.hidden __cp_begin
.global __cp_end
.hidden __cp_end
.global __cp_cancel
.hidden __cp_cancel
.hidden __cancel
.global __syscall_cp_asm
.hidden __syscall_cp_asm
.type   __syscall_cp_asm,@function
__syscall_cp_asm:
	mov 4(%esp),%ecx
	pushl %ebx
	pushl %esi
	pushl %edi
	pushl %ebp
__cp_begin:
	movl (%ecx),%eax
	testl %eax,%eax
	jnz __cp_cancel
	movl 24(%esp),%eax
	movl 28(%esp),%ebx
	movl 32(%esp),%ecx
	movl 36(%esp),%edx
	movl 40(%esp),%esi
	movl 44(%esp),%edi
	movl 48(%esp),%ebp
	int $128
__cp_end:
	popl %ebp
	popl %edi
	popl %esi
	popl %ebx
	ret
__cp_cancel:
	popl %ebp
	popl %edi
	popl %esi
	popl %ebx
	jmp __cancel