syscall_cp.s 527 B

12345678910111213141516171819202122232425262728293031323334
  1. .text
  2. .global __syscall_cp_asm
  3. __syscall_cp_asm:
  4. pushl %ebx
  5. pushl %esi
  6. pushl %edi
  7. pushl %ebp
  8. leal 20(%esp),%ebp
  9. call 1f
  10. 1: popl %eax
  11. movl (%ebp),%ecx
  12. addl $[1f-1b],%eax
  13. movl %eax,4(%ecx)
  14. movl %esp,(%ecx)
  15. movl 8(%ecx),%eax
  16. testl %eax,%eax
  17. jnz 2f
  18. movl 4(%ebp),%eax
  19. movl 8(%ebp),%ebx
  20. movl 12(%ebp),%ecx
  21. movl 16(%ebp),%edx
  22. movl 20(%ebp),%esi
  23. movl 24(%ebp),%edi
  24. movl 28(%ebp),%ebp
  25. 1: int $128
  26. popl %ebp
  27. popl %edi
  28. popl %esi
  29. popl %ebx
  30. xorl %edx,%edx
  31. movl 4(%esp),%ecx
  32. movl %edx,(%ecx)
  33. ret
  34. 2: call __cancel