syscall-sparc-netbsd-1.1.S
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* ==== syscall.S ============================================================
  2.  * Copyright (c) 1994 Chris Provenzano, proven@mit.edu
  3.  * All rights reserved.
  4.  *
  5.  */
  6. #ifndef lint
  7. .text
  8. .asciz "$Id$";
  9. #endif
  10.  
  11. #include <sys/syscall.h>
  12. #define SYSCALL(x)
  13. .globl _machdep_sys_##x;
  14. _machdep_sys_##x:;
  15. mov SYS_##x, %g1;   
  16. ta 0;
  17. bcs,a 2b;
  18. sub %r0,%o0,%o0;
  19. retl
  20. /*
  21.  * Initial asm stuff for all functions.
  22.  */
  23. .text
  24. .align 4
  25. /* ==========================================================================
  26.  * error code for all syscalls. The error value is returned as the negative
  27.  * of the errno value.
  28.  */
  29. 1:
  30. sub %r0, %o0, %o0
  31. 2:
  32. retl
  33. nop
  34. /* ==========================================================================
  35.  * machdep_sys_pipe()
  36.  */
  37.     .globl _machdep_sys_pipe
  38. _machdep_sys_pipe:
  39.     mov  %o0, %o2
  40.     mov  SYS_pipe, %g1
  41.     ta  0
  42.     bcs 1b
  43.     nop
  44.     st  %o0, [ %o2 ]
  45.     st  %o1, [ %o2 + 4 ]
  46.     retl 
  47.     mov  %g0, %o0
  48. /* ==========================================================================
  49.  * machdep_sys_fork()
  50.  */
  51.     .globl _machdep_sys_fork;
  52. _machdep_sys_fork:;
  53.     mov SYS_fork, %g1;
  54.     ta 0;
  55.     bcs 1b;
  56.     nop;
  57. dec %o1;
  58.     retl;
  59. and %o0, %o1, %o0; ! return 0 in child, pid in parent
  60. /* ==========================================================================
  61.  * machdep_sys_sigprocmask()
  62.  */
  63.     .globl _machdep_sys_sigprocmask;
  64. _machdep_sys_sigprocmask:;
  65. ld [%o1], %o1; 
  66.     mov SYS_sigprocmask, %g1;
  67.     ta 0;
  68.     bcs 1b;
  69.     nop;
  70.     retl
  71. nop
  72. /* ==========================================================================
  73.  * machdep_sys_sigsuspend()
  74.  */
  75.     .globl _machdep_sys_sigsuspend;
  76. _machdep_sys_sigsuspend:;
  77. ld [%o0], %o0; 
  78.     mov SYS_sigsuspend, %g1;
  79.     ta 0;
  80.     bcs 1b;
  81.     nop;
  82.     retl
  83. nop