sysofft.inc 1.7 KB

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