syscall.inc 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2017 by Karoly Balogh,
  4. member of the Free Pascal development team.
  5. Syscalls for *BSD/m68k
  6. Tested with NetBSD/m68k (ELF)
  7. See the file COPYING.FPC, included in this distribution,
  8. for details about the copyright.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  12. **********************************************************************}
  13. function FpSysCall(sysnr:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL0'];
  14. asm
  15. move.l #0,-(sp)
  16. move.l sysnr,d0
  17. trap #0
  18. bcc @noerror
  19. jsr seterrno
  20. moveq.l #-1,d0
  21. @noerror:
  22. end;
  23. function FpSysCall(sysnr,param1:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL1'];
  24. asm
  25. move.l param1,-(sp)
  26. move.l #0,-(sp)
  27. move.l sysnr,d0
  28. trap #0
  29. bcc @noerror
  30. jsr seterrno
  31. moveq.l #-1,d0
  32. @noerror:
  33. end;
  34. function FpSysCall(sysnr,param1,param2:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL2'];
  35. asm
  36. move.l param2,-(sp)
  37. move.l param1,-(sp)
  38. move.l #0,-(sp)
  39. move.l sysnr,d0
  40. trap #0
  41. bcc @noerror
  42. jsr seterrno
  43. moveq.l #-1,d0
  44. @noerror:
  45. end;
  46. function FpSysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL3'];
  47. asm
  48. move.l param3,-(sp)
  49. move.l param2,-(sp)
  50. move.l param1,-(sp)
  51. move.l #0,-(sp)
  52. move.l sysnr,d0
  53. trap #0
  54. bcc @noerror
  55. jsr seterrno
  56. moveq.l #-1,d0
  57. @noerror:
  58. end;
  59. function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL4'];
  60. asm
  61. move.l param4,-(sp)
  62. move.l param3,-(sp)
  63. move.l param2,-(sp)
  64. move.l param1,-(sp)
  65. move.l #0,-(sp)
  66. move.l sysnr,d0
  67. trap #0
  68. bcc @noerror
  69. jsr seterrno
  70. moveq.l #-1,d0
  71. @noerror:
  72. end;
  73. function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL5'];
  74. asm
  75. move.l param5,-(sp)
  76. move.l param4,-(sp)
  77. move.l param3,-(sp)
  78. move.l param2,-(sp)
  79. move.l param1,-(sp)
  80. move.l #0,-(sp)
  81. move.l sysnr,d0
  82. trap #0
  83. bcc @noerror
  84. jsr seterrno
  85. moveq.l #-1,d0
  86. moveq.l #-1,d1
  87. @noerror:
  88. end;
  89. function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL6'];
  90. asm
  91. move.l param6,-(sp)
  92. move.l param5,-(sp)
  93. move.l param4,-(sp)
  94. move.l param3,-(sp)
  95. move.l param2,-(sp)
  96. move.l param1,-(sp)
  97. move.l #0,-(sp)
  98. move.l sysnr,d0
  99. trap #0
  100. bcc @noerror
  101. jsr seterrno
  102. moveq.l #-1,d0
  103. moveq.l #-1,d1
  104. @noerror:
  105. end;
  106. function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6,param7:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL7'];
  107. asm
  108. move.l param7,-(sp)
  109. move.l param6,-(sp)
  110. move.l param5,-(sp)
  111. move.l param4,-(sp)
  112. move.l param3,-(sp)
  113. move.l param2,-(sp)
  114. move.l param1,-(sp)
  115. move.l #0,-(sp)
  116. move.l sysnr,d0
  117. trap #0
  118. bcc @noerror
  119. jsr seterrno
  120. moveq.l #-1,d0
  121. moveq.l #-1,d1
  122. @noerror:
  123. end;
  124. function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6,param7,param8:TSysParam):TSysResult; assembler; stdcall; [public,alias:'FPC_SYSCALL8'];
  125. asm
  126. move.l param8,-(sp)
  127. move.l param7,-(sp)
  128. move.l param6,-(sp)
  129. move.l param5,-(sp)
  130. move.l param4,-(sp)
  131. move.l param3,-(sp)
  132. move.l param2,-(sp)
  133. move.l param1,-(sp)
  134. move.l #0,-(sp)
  135. move.l sysnr,d0
  136. trap #0
  137. bcc @noerror
  138. jsr seterrno
  139. moveq.l #-1,d0
  140. moveq.l #-1,d1
  141. @noerror:
  142. end;