alltypes.h.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #!/bin/sh
  2. sed -e << EOF \
  3. '/^TYPEDEF/s/TYPEDEF \(.*\) \([^ ]*\);$/#if defined(__NEED_\2) \&\& !defined(__DEFINED_\2)\
  4. typedef \1 \2;\
  5. #define __DEFINED_\2\
  6. #endif\
  7. /
  8. /^STRUCT/s/STRUCT * \([^ ]*\) \(.*\);$/#if defined(__NEED_struct_\1) \&\& !defined(__DEFINED_struct_\1)\
  9. struct \1 \2;\
  10. #define __DEFINED_struct_\1\
  11. #endif\
  12. /
  13. /^UNION/s/UNION * \([^ ]*\) \(.*\);$/#if defined(__NEED_union_\1) \&\& !defined(__DEFINED_union_\1)\
  14. union \1 \2;\
  15. #define __DEFINED_union_\1\
  16. #endif\
  17. /'
  18. TYPEDEF unsigned size_t;
  19. TYPEDEF int ssize_t;
  20. TYPEDEF int ptrdiff_t;
  21. #if __GNUC__ >= 3
  22. TYPEDEF __builtin_va_list va_list;
  23. #else
  24. TYPEDEF struct __va_list * va_list;
  25. #endif
  26. #ifndef __cplusplus
  27. #ifdef __WCHAR_TYPE__
  28. TYPEDEF __WCHAR_TYPE__ wchar_t;
  29. #else
  30. TYPEDEF long wchar_t;
  31. #endif
  32. #endif
  33. TYPEDEF long wint_t;
  34. TYPEDEF const int * wctrans_t;
  35. TYPEDEF unsigned long wctype_t;
  36. TYPEDEF signed char int8_t;
  37. TYPEDEF short int16_t;
  38. TYPEDEF int int32_t;
  39. TYPEDEF long long int64_t;
  40. TYPEDEF unsigned char uint8_t;
  41. TYPEDEF unsigned short uint16_t;
  42. TYPEDEF unsigned int uint32_t;
  43. TYPEDEF unsigned long long uint64_t;
  44. TYPEDEF unsigned short __uint16_t;
  45. TYPEDEF unsigned int __uint32_t;
  46. TYPEDEF unsigned long long __uint64_t;
  47. TYPEDEF int8_t int_fast8_t;
  48. TYPEDEF int int_fast16_t;
  49. TYPEDEF int int_fast32_t;
  50. TYPEDEF int64_t int_fast64_t;
  51. TYPEDEF unsigned char uint_fast8_t;
  52. TYPEDEF unsigned int uint_fast16_t;
  53. TYPEDEF unsigned int uint_fast32_t;
  54. TYPEDEF uint64_t uint_fast64_t;
  55. TYPEDEF long intptr_t;
  56. TYPEDEF unsigned long uintptr_t;
  57. #if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 0
  58. TYPEDEF float float_t;
  59. TYPEDEF double double_t;
  60. #else
  61. TYPEDEF long double float_t;
  62. TYPEDEF long double double_t;
  63. #endif
  64. TYPEDEF long time_t;
  65. TYPEDEF int suseconds_t;
  66. STRUCT timeval { time_t tv_sec; int tv_usec; };
  67. STRUCT timespec { time_t tv_sec; long tv_nsec; };
  68. TYPEDEF int pid_t;
  69. TYPEDEF int id_t;
  70. TYPEDEF int uid_t;
  71. TYPEDEF int gid_t;
  72. TYPEDEF int key_t;
  73. TYPEDEF struct __pthread * pthread_t;
  74. TYPEDEF int pthread_once_t;
  75. TYPEDEF int pthread_key_t;
  76. TYPEDEF int pthread_spinlock_t;
  77. TYPEDEF struct { union { int __i[9]; size_t __s[9]; } __u; } pthread_attr_t;
  78. TYPEDEF unsigned pthread_mutexattr_t;
  79. TYPEDEF unsigned pthread_condattr_t;
  80. TYPEDEF unsigned pthread_barrierattr_t;
  81. TYPEDEF struct { unsigned __attr[2]; } pthread_rwlockattr_t;
  82. TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t;
  83. TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t;
  84. TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t;
  85. TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t;
  86. TYPEDEF long long off_t;
  87. TYPEDEF unsigned int mode_t;
  88. TYPEDEF unsigned int nlink_t;
  89. TYPEDEF unsigned long long ino_t;
  90. TYPEDEF long long dev_t;
  91. TYPEDEF long blksize_t;
  92. TYPEDEF long long blkcnt_t;
  93. TYPEDEF unsigned long long fsblkcnt_t;
  94. TYPEDEF unsigned long long fsfilcnt_t;
  95. TYPEDEF void * timer_t;
  96. TYPEDEF int clockid_t;
  97. TYPEDEF unsigned long clock_t;
  98. TYPEDEF struct { unsigned long __bits[128/sizeof(long)]; } sigset_t;
  99. TYPEDEF struct __siginfo siginfo_t;
  100. TYPEDEF unsigned int socklen_t;
  101. TYPEDEF unsigned short sa_family_t;
  102. TYPEDEF unsigned short in_port_t;
  103. TYPEDEF unsigned int in_addr_t;
  104. STRUCT in_addr { in_addr_t s_addr; };
  105. TYPEDEF struct __FILE_s FILE;
  106. TYPEDEF int nl_item;
  107. TYPEDEF struct __locale * locale_t;
  108. STRUCT iovec { void *iov_base; size_t iov_len; };
  109. EOF