shm.s 911 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
  2. .define _shmdt
  3. .define _shmat
  4. .define _shmctl
  5. .define _shmget
  6. shm = 52
  7. .extern _shmdt
  8. .extern _shmat
  9. .extern _shmctl
  10. .extern _shmget
  11. .extern _syscall
  12. _shmat:
  13. link a6,#0
  14. tst.b -32(sp)
  15. move.l 16(a6),-(sp)
  16. move.l 12(a6),-(sp)
  17. move.l 8(a6),-(sp)
  18. clr.l -(sp)
  19. move.l #shm,-(sp)
  20. jsr _syscall
  21. add #0x14,sp
  22. unlk a6
  23. rts
  24. _shmctl:
  25. link a6,#0
  26. tst.b -32(sp)
  27. move.l 16(a6),-(sp)
  28. move.l 12(a6),-(sp)
  29. move.l 8(a6),-(sp)
  30. move.l #1,-(sp)
  31. move.l #shm,-(sp)
  32. jsr _syscall
  33. add #0x14,sp
  34. unlk a6
  35. rts
  36. _shmdt:
  37. link a6,#0
  38. tst.b -144(sp)
  39. move.l 8(a6),-(sp)
  40. move.l #2,-(sp)
  41. move.l #shm,-(sp)
  42. jsr _syscall
  43. add #0xC,sp
  44. unlk a6
  45. rts
  46. _shmget:
  47. link a6,#0
  48. tst.b -32(sp)
  49. move.l 16(a6),-(sp)
  50. move.l 12(a6),-(sp)
  51. move.l 8(a6),-(sp)
  52. move.l #3,-(sp)
  53. move.l #shm,-(sp)
  54. jsr _syscall
  55. add #0x14,sp
  56. unlk a6
  57. rts