syscall-template-i386-sco-3.2v5.S
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #include <sys/errno.h>
  2. #include <sys/syscall.h>
  3. #ifdef _SCO_ELF
  4. #define NAME(X)  machdep_sys_##X
  5. #define END(X) 1: ; .type NAME(X),@function ; .size NAME(X),1b - NAME(X)
  6. #define GETBX(X) 
  7. push %ebx; 
  8. call 1f; 
  9. 1: 
  10. popl %ebx;
  11. #else
  12. #define NAME(X) _machdep_sys_##X
  13. #define END(X)
  14. #endif
  15. #ifdef __STDC__
  16. #define SYSCALL(x)
  17. .globl NAME(x);
  18. NAME(x):;
  19. movl $(SYS_##x##), %eax;
  20. .byte 0x9a; .long 0; .word 7;
  21. jae 1f;
  22. cmp $(ERESTART), %eax; 
  23. je NAME(x); 
  24. neg %eax; 
  25. 1: 
  26. ret;
  27. END(x)
  28. #else
  29. #define SYSCALL(x)
  30. .globl _machdep_sys_/**/x;
  31. machdep_sys_/**/x:;
  32. movl $(SYS_/**/x), %eax;
  33. .byte 0x9a; .long 0; .word 7;
  34. jae 1f;
  35. neg %eax;
  36. 1: 
  37. ret;
  38. #endif
  39. /*
  40.  * Initial asm stuff for all functions.
  41.  */
  42. .text
  43. .align 2
  44. /* ==========================================================================
  45.  * error code for all syscalls. The error value is returned as the negative
  46.  * of the errno value.
  47.  */
  48. #define XSYSCALL(NAME) SYSCALL(NAME)
  49. XSYSCALL(SYSCALL_NAME)