2
0

ostypes.inc 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. {
  2. $Id$
  3. This file is part of the Free Pascal run time library.
  4. Copyright (c) 1999-2000 by Michael Van Canneyt,
  5. member of the Free Pascal development team.
  6. OS dependant types internal to the Linux RTL.
  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. Type
  14. {
  15. Linux system calls take arguments as follows :
  16. i386 m68k ppc
  17. %eax %d0 r0 System call number
  18. %ebx %d1 r3 first argument
  19. %ecx %d2 r4 second argument
  20. %edx %d3 r5 third argumens
  21. %esi %d3 r6 fourth argument
  22. %edi %d4 r7 fifth argument
  23. That is why we define a special type, with only these arguments
  24. To make it processor independent, we don't give any system dependent
  25. names, but the rather abstract reg1,reg2 etc;
  26. }
  27. SysCallRegs = record
  28. reg1,
  29. reg2,
  30. reg3,
  31. reg4,
  32. reg5,
  33. reg6 : longint;
  34. end;
  35. PSysCallRegs= ^SysCallRegs;
  36. TSysCallRegs= SysCallRegs;
  37. timezone = packed record
  38. minuteswest,dsttime:longint;
  39. end;
  40. ptimezone =^timezone;
  41. TTimeZone = timezone;
  42. Const // generated by statmacr.c
  43. S_IFMT = 61440; { type of file mask}
  44. S_IFIFO = 4096; { named pipe (fifo)}
  45. S_IFCHR = 8192; { character special}
  46. S_IFDIR = 16384; { directory }
  47. S_IFBLK = 24576; { block special}
  48. S_IFREG = 32768; { regular }
  49. S_IFLNK = 40960; { symbolic link }
  50. S_IFSOCK= 49152; { socket }
  51. {
  52. $Log$
  53. Revision 1.7 2004-02-06 21:17:41 daniel
  54. * Revert back to longint (it broke make cycle)
  55. Revision 1.6 2004/02/06 15:58:21 florian
  56. * fixed x86-64 assembler problems
  57. Revision 1.5 2003/09/27 13:45:58 peter
  58. * fpnanosleep exported in baseunix
  59. * fpnanosleep has pointer arguments to be C compliant
  60. Revision 1.4 2003/09/17 11:24:46 marco
  61. * fixes for new macro's
  62. Revision 1.3 2003/09/14 20:15:01 marco
  63. * Unix reform stage two. Remove all calls from Unix that exist in Baseunix.
  64. Revision 1.2 2002/12/18 16:43:26 marco
  65. * new unix rtl, linux part.....
  66. Revision 1.1 2002/11/12 14:37:59 marco
  67. * Parts of new unix rtl
  68. }