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

MySQL数据库

开发平台:

Visual C++

  1. #ifndef lint
  2.     .text
  3.     .asciz "$Id$";
  4. #endif
  5. #include <machine/asm.h>
  6. #include <sys/syscall.h>
  7. #ifdef __STDC__
  8. #define IMM #
  9. #define SYSCALL(x)      .even; ENTRY(machdep_sys_ ## x); 
  10.                         movl IMM SYS_ ## x,d0; trap IMM 0; jcs err; rts
  11. #else /* !__STDC__ */
  12. #define SYSCALL(x)      .even; ENTRY(machdep_sys_/**/x); 
  13.                         movl #SYS_/**/x,d0; trap #0; jcs err; rts
  14. #endif /* !__STDC__ */
  15. /*
  16.  * Initial asm stuff for all functions.
  17.  */
  18.         .text
  19.         .even
  20. /* ==========================================================================
  21.  * error code for all syscalls. The error value is returned as the negative
  22.  * of the errno value.
  23.  */
  24. err:
  25.         negl            d0
  26.         rts
  27. /* ==========================================================================
  28.  * machdep_sys_pipe
  29.  */
  30. .even
  31. ENTRY(machdep_sys_pipe);
  32. movl #SYS_pipe,d0
  33. trap #0
  34. jcs  err
  35. movl sp@(4),a0
  36. movl d0,a0@+
  37. movl d1,a0@
  38. clrl d0
  39. rts
  40. #ifndef SYS___sigsuspend14
  41. .even
  42. ENTRY(machdep_sys_sigsuspend)
  43. movl sp@(4),a0
  44. movl a0@,sp@(4)
  45. movl #SYS_compat_13_sigsuspend13,d0
  46. trap #0
  47. jcs err
  48. clrl d0
  49. rts
  50. #endif
  51. #ifndef SYS___sigprocmask14
  52. .even
  53. ENTRY(machdep_sys_sigprocmask)
  54. tstl sp@(8)
  55. jne gotptr
  56. /* movl #0,sp@(8) /* null mask pointer; block empty set */
  57. movl #1,sp@(4)
  58. jra doit
  59. gotptr:
  60. movl sp@(8),a0
  61. movl a0@,sp@(8)
  62. doit:
  63. movl #SYS_compat_13_sigprocmask13,d0
  64. trap #0
  65. jcs err
  66. tstl sp@(12)
  67. jeq out
  68. movl sp@(12),a0
  69. movl d0,a0@
  70. out:
  71. clrl d0
  72. rts
  73. #endif