vfork.S 478 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * June 3, 2003 Erik Andersen
  3. *
  4. */
  5. #define _ERRNO_H 1
  6. #include <bits/errno.h>
  7. #include <sys/syscall.h>
  8. #ifndef __NR_vfork
  9. /* No vfork so use fork instead */
  10. .weak vfork ; vfork = __libc_fork
  11. #else
  12. .text
  13. .global __vfork
  14. .type __vfork,%function
  15. .align 1<<4
  16. __vfork:
  17. popl %ecx
  18. movl $__NR_vfork,%eax
  19. int $0x80
  20. pushl %ecx
  21. cmpl $-4095,%eax
  22. jae __error
  23. ret
  24. __error:
  25. call __syscall_error
  26. .size __vfork,.-__vfork
  27. .weak vfork ; vfork = __vfork
  28. #endif