sysofft.inc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. function Fplseek(fd : cint; offset : off_t; whence : cint): off_t; assembler; [public, alias : 'FPC_SYSC_LSEEK'];
  2. asm
  3. stwu r1,-16(r1)
  4. mflr r0
  5. stw r0,20(r1)
  6. mr r11,r5
  7. mr r12,r4
  8. mr r5,r3
  9. mr r9,r6
  10. li r3,0
  11. mr r7,r11
  12. mr r8,r12
  13. li r6,0
  14. li r4,199
  15. crclr 4*cr1+eq
  16. li r0,198
  17. sc
  18. bso cerrorlseek
  19. lwz r0,20(r1)
  20. mtlr r0
  21. addi r1,r1,16
  22. blr
  23. cerrorlseek:
  24. lis r4,Errno@ha
  25. stw r3,Errno@l(r4)
  26. li r3,-1
  27. li r4,-1
  28. lwz r0,20(r1)
  29. mtlr r0
  30. addi r1,r1,16
  31. end;
  32. function Fpftruncate(fd : cint; flength : off_t): cint; assembler; [public, alias : 'FPC_SYSC_FTRUNCATE'];
  33. asm
  34. stwu r1,-16(r1)
  35. mflr r0
  36. stw r0,20(r1)
  37. mr r7,r5
  38. mr r8,r6
  39. mr r5,r3
  40. li r3,0
  41. li r4,201
  42. li r6,0
  43. crclr 4*cr1+eq
  44. li r0,198
  45. sc
  46. bso cerrortrunc
  47. mr r4,r3
  48. lwz r0,20(r1)
  49. mtlr r0
  50. addi r1,r1,16
  51. blr
  52. cerrortrunc:
  53. lis r4,Errno@ha
  54. stw r3,Errno@l(r4)
  55. li r3,-1
  56. lwz r0,20(r1)
  57. mtlr r0
  58. addi r1,r1,16
  59. end;
  60. Function Fpmmap(adr,len,prot,flags,fdes,off:longint):longint; assembler; [public, alias : 'FPC_SYSC_MMAP'];
  61. asm
  62. stwu r1,-16(r1)
  63. mflr r0
  64. stw r0,20(r1)
  65. mr r0,r5
  66. mr r8,r6
  67. stw r9,8(r1)
  68. stw r10,12(r1)
  69. mr r5,r3
  70. mr r6,r4
  71. mr r9,r7
  72. li r3,0
  73. mr r7,r0
  74. li r4,197
  75. li r10,0
  76. crclr 4*cr1+eq
  77. li r0,198
  78. sc
  79. bso cerrormmap
  80. mr r4,r3
  81. lwz r0,20(r1)
  82. mtlr r0
  83. addi r1,r1,16
  84. blr
  85. cerrormmap:
  86. lis r4,Errno@ha
  87. stw r3,Errno@l(r4)
  88. li r3,-1
  89. lwz r0,20(r1)
  90. mtlr r0
  91. addi r1,r1,16
  92. end;