Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /* ANSI C namespace clean utility typedefs */
  2.  
  3. /* This file defines various typedefs needed by the system calls that support
  4.    the C library.  Basically, they're just the POSIX versions with an '_'
  5.    prepended.  This file lives in the `sys' directory so targets can provide
  6.    their own if desired (or they can put target dependant conditionals here).
  7. */
  8.  
  9. #ifndef _SYS__TYPES_H
  10. #define _SYS__TYPES_H
  11.  
  12. #include <machine/_types.h>
  13. #include <sys/lock.h>
  14.  
  15. #ifndef __off_t_defined
  16. typedef long _off_t;
  17. #endif
  18.  
  19. #if defined(__rtems__)
  20. /* device numbers are 32-bit major and and 32-bit minor */
  21. typedef unsigned long long __dev_t;
  22. #else
  23. #ifndef __dev_t_defined
  24. typedef short __dev_t;
  25. #endif
  26. #endif
  27.  
  28. #ifndef __uid_t_defined
  29. typedef unsigned short __uid_t;
  30. #endif
  31. #ifndef __gid_t_defined
  32. typedef unsigned short __gid_t;
  33. #endif
  34.  
  35. #ifndef __off64_t_defined
  36. __extension__ typedef long long _off64_t;
  37. #endif
  38.  
  39. /*
  40.  * We need fpos_t for the following, but it doesn't have a leading "_",
  41.  * so we use _fpos_t instead.
  42.  */
  43. #ifndef __fpos_t_defined
  44. typedef long _fpos_t;           /* XXX must match off_t in <sys/types.h> */
  45.                                 /* (and must be `long' for now) */
  46. #endif
  47.  
  48. #ifdef __LARGE64_FILES
  49. #ifndef __fpos64_t_defined
  50. typedef _off64_t _fpos64_t;
  51. #endif
  52. #endif
  53.  
  54. #ifndef __ssize_t_defined
  55. #if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
  56. typedef int _ssize_t;
  57. #else
  58. typedef long _ssize_t;
  59. #endif
  60. #endif
  61.  
  62. #define __need_wint_t
  63. #include <stddef.h>
  64.  
  65. #ifndef __mbstate_t_defined
  66. /* Conversion state information.  */
  67. typedef struct
  68. {
  69.   int __count;
  70.   union
  71.   {
  72.     wint_t __wch;
  73.     unsigned char __wchb[4];
  74.   } __value;            /* Value so far.  */
  75. } _mbstate_t;
  76. #endif
  77.  
  78. #ifndef __flock_t_defined
  79. typedef _LOCK_RECURSIVE_T _flock_t;
  80. #endif
  81.  
  82. #ifndef __iconv_t_defined
  83. /* Iconv descriptor type */
  84. typedef void *_iconv_t;
  85. #endif
  86.  
  87. #endif  /* _SYS__TYPES_H */
  88.