Subversion Repositories Kolibri OS

Rev

Rev 4874 | Blame | Compare with Previous | Last modification | View Log | 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. #ifndef __dev_t_defined
  20. typedef short __dev_t;
  21. #endif
  22.  
  23. #ifndef __uid_t_defined
  24. typedef unsigned short __uid_t;
  25. #endif
  26. #ifndef __gid_t_defined
  27. typedef unsigned short __gid_t;
  28. #endif
  29.  
  30. #ifndef __off64_t_defined
  31. __extension__ typedef long long _off64_t;
  32. #endif
  33.  
  34. /*
  35.  * We need fpos_t for the following, but it doesn't have a leading "_",
  36.  * so we use _fpos_t instead.
  37.  */
  38. #ifndef __fpos_t_defined
  39. typedef long _fpos_t;           /* XXX must match off_t in <sys/types.h> */
  40.                                 /* (and must be `long' for now) */
  41. #endif
  42.  
  43. #ifdef __LARGE64_FILES
  44. #ifndef __fpos64_t_defined
  45. typedef _off64_t _fpos64_t;
  46. #endif
  47. #endif
  48.  
  49. #ifndef __ssize_t_defined
  50. #ifdef __SIZE_TYPE__
  51. /* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t.
  52.    We simply change "unsigned" to "signed" for this single definition
  53.    to make sure ssize_t and size_t only differ by their signedness. */
  54. #define unsigned signed
  55. typedef __SIZE_TYPE__ _ssize_t;
  56. #undef unsigned
  57. #else
  58. #if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
  59. typedef int _ssize_t;
  60. #else
  61. typedef long _ssize_t;
  62. #endif
  63. #endif
  64. #endif
  65.  
  66. #define __need_wint_t
  67. #include <stddef.h>
  68.  
  69. #ifndef __mbstate_t_defined
  70. /* Conversion state information.  */
  71. typedef struct
  72. {
  73.   int __count;
  74.   union
  75.   {
  76.     wint_t __wch;
  77.     unsigned char __wchb[4];
  78.   } __value;            /* Value so far.  */
  79. } _mbstate_t;
  80. #endif
  81.  
  82. #ifndef __flock_t_defined
  83. typedef _LOCK_RECURSIVE_T _flock_t;
  84. #endif
  85.  
  86. #ifndef __iconv_t_defined
  87. /* Iconv descriptor type */
  88. typedef void *_iconv_t;
  89. #endif
  90.  
  91. #endif  /* _SYS__TYPES_H */
  92.