1 #define _Addr long 2 #define _Int64 long long 3 #define _Reg long long 4 5 #define __BYTE_ORDER __BYTE_ORDER__ 6 7 #define __LONG_MAX __LONG_MAX__ 8 9 /* 10 * Rather than define everything ourselves here in the musl layer, for 11 * WASI, reference the definitions in the lower layers. 12 */ 13 14 #if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t) 15 #define __need_wchar_t 16 #include <stddef.h> 17 #define __DEFINED_wchar_t 18 #endif 19 20 #if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t) 21 #define __need_wint_t 22 #include <stddef.h> 23 #define __DEFINED_wint_t 24 #endif 25 26 #if defined(__NEED_float_t) && !defined(__DEFINED_float_t) 27 typedef float float_t; 28 #define __DEFINED_float_t 29 #endif 30 31 #if defined(__NEED_double_t) && !defined(__DEFINED_double_t) 32 typedef double double_t; 33 #define __DEFINED_double_t 34 #endif 35 36 37 #if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t) 38 #define __need_max_align_t 39 #include <stddef.h> 40 #define __DEFINED_max_align_t 41 #endif 42 43 #if defined(__NEED_time_t) && !defined(__DEFINED_time_t) 44 #include <__typedef_time_t.h> 45 #define __DEFINED_time_t 46 #endif 47 48 #if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t) 49 #include <__typedef_suseconds_t.h> 50 #define __DEFINED_suseconds_t 51 #endif 52 53 #if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t) 54 #include <__typedef_clockid_t.h> 55 #define __DEFINED_clockid_t 56 #endif 57 58 #if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t) 59 #include <__typedef_sigset_t.h> 60 #define __DEFINED_sigset_t 61 #endif 62 63 #if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t) 64 #include <__typedef_clock_t.h> 65 #define __DEFINED_clock_t 66 #endif 67 #define __LITTLE_ENDIAN 1234 68 #define __BIG_ENDIAN 4321 69 #define __USE_TIME_BITS64 1 70 71 #if defined(__NEED_size_t) && !defined(__DEFINED_size_t) 72 typedef unsigned _Addr size_t; 73 #define __DEFINED_size_t 74 #endif 75 76 #if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t) 77 typedef unsigned _Addr uintptr_t; 78 #define __DEFINED_uintptr_t 79 #endif 80 81 #if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t) 82 typedef _Addr ptrdiff_t; 83 #define __DEFINED_ptrdiff_t 84 #endif 85 86 #if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t) 87 typedef _Addr ssize_t; 88 #define __DEFINED_ssize_t 89 #endif 90 91 #if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t) 92 typedef _Addr intptr_t; 93 #define __DEFINED_intptr_t 94 #endif 95 96 #if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t) 97 typedef _Addr regoff_t; 98 #define __DEFINED_regoff_t 99 #endif 100 101 #if defined(__NEED_register_t) && !defined(__DEFINED_register_t) 102 typedef _Reg register_t; 103 #define __DEFINED_register_t 104 #endif 105 106 #ifdef __wasilibc_unmodified_upstream /* Use alternate WASI libc headers */ 107 #if defined(__NEED_time_t) && !defined(__DEFINED_time_t) 108 typedef _Int64 time_t; 109 #define __DEFINED_time_t 110 #endif 111 112 #if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t) 113 typedef _Int64 suseconds_t; 114 #define __DEFINED_suseconds_t 115 #endif 116 117 #else 118 #if defined(__NEED_time_t) && !defined(__DEFINED_time_t) 119 #include <__typedef_time_t.h> 120 #define __DEFINED_time_t 121 #endif 122 123 #if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t) 124 #include <__typedef_suseconds_t.h> 125 #define __DEFINED_suseconds_t 126 #endif 127 #endif 128 129 #if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t) 130 typedef signed char int8_t; 131 #define __DEFINED_int8_t 132 #endif 133 134 #if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t) 135 typedef signed short int16_t; 136 #define __DEFINED_int16_t 137 #endif 138 139 #if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t) 140 typedef signed int int32_t; 141 #define __DEFINED_int32_t 142 #endif 143 144 #if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t) 145 typedef signed _Int64 int64_t; 146 #define __DEFINED_int64_t 147 #endif 148 149 #if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t) 150 typedef signed _Int64 intmax_t; 151 #define __DEFINED_intmax_t 152 #endif 153 154 #if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t) 155 typedef unsigned char uint8_t; 156 #define __DEFINED_uint8_t 157 #endif 158 159 #if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t) 160 typedef unsigned short uint16_t; 161 #define __DEFINED_uint16_t 162 #endif 163 164 #if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t) 165 typedef unsigned int uint32_t; 166 #define __DEFINED_uint32_t 167 #endif 168 169 #if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t) 170 typedef unsigned _Int64 uint64_t; 171 #define __DEFINED_uint64_t 172 #endif 173 174 #if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t) 175 typedef unsigned _Int64 u_int64_t; 176 #define __DEFINED_u_int64_t 177 #endif 178 179 #if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t) 180 typedef unsigned _Int64 uintmax_t; 181 #define __DEFINED_uintmax_t 182 #endif 183 184 185 #if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t) 186 typedef unsigned mode_t; 187 #define __DEFINED_mode_t 188 #endif 189 190 #if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t) 191 typedef unsigned _Reg nlink_t; 192 #define __DEFINED_nlink_t 193 #endif 194 195 #if defined(__NEED_off_t) && !defined(__DEFINED_off_t) 196 typedef _Int64 off_t; 197 #define __DEFINED_off_t 198 #endif 199 200 #if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t) 201 typedef unsigned _Int64 ino_t; 202 #define __DEFINED_ino_t 203 #endif 204 205 #if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t) 206 typedef unsigned _Int64 dev_t; 207 #define __DEFINED_dev_t 208 #endif 209 210 #if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t) 211 typedef long blksize_t; 212 #define __DEFINED_blksize_t 213 #endif 214 215 #if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t) 216 typedef _Int64 blkcnt_t; 217 #define __DEFINED_blkcnt_t 218 #endif 219 220 #if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t) 221 typedef unsigned _Int64 fsblkcnt_t; 222 #define __DEFINED_fsblkcnt_t 223 #endif 224 225 #if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t) 226 typedef unsigned _Int64 fsfilcnt_t; 227 #define __DEFINED_fsfilcnt_t 228 #endif 229 230 231 #if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t) 232 typedef unsigned wint_t; 233 #define __DEFINED_wint_t 234 #endif 235 236 #if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t) 237 typedef unsigned long wctype_t; 238 #define __DEFINED_wctype_t 239 #endif 240 241 242 #if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t) 243 typedef void * timer_t; 244 #define __DEFINED_timer_t 245 #endif 246 247 #if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t) 248 typedef int clockid_t; 249 #define __DEFINED_clockid_t 250 #endif 251 252 #if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t) 253 typedef long clock_t; 254 #define __DEFINED_clock_t 255 #endif 256 257 #ifdef __wasilibc_unmodified_upstream /* Use alternate WASI libc headers */ 258 #if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval) 259 struct timeval { time_t tv_sec; suseconds_t tv_usec; }; 260 #define __DEFINED_struct_timeval 261 #endif 262 263 #if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec) 264 struct timespec { time_t tv_sec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER==4321); long tv_nsec; int :8*(sizeof(time_t)-sizeof(long))*(__BYTE_ORDER!=4321); }; 265 #define __DEFINED_struct_timespec 266 #endif 267 268 #else 269 #include <__struct_timeval.h> 270 #include <__struct_timespec.h> 271 #endif 272 273 #if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t) 274 typedef int pid_t; 275 #define __DEFINED_pid_t 276 #endif 277 278 #if defined(__NEED_id_t) && !defined(__DEFINED_id_t) 279 typedef unsigned id_t; 280 #define __DEFINED_id_t 281 #endif 282 283 #if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t) 284 typedef unsigned uid_t; 285 #define __DEFINED_uid_t 286 #endif 287 288 #if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t) 289 typedef unsigned gid_t; 290 #define __DEFINED_gid_t 291 #endif 292 293 #if defined(__NEED_key_t) && !defined(__DEFINED_key_t) 294 typedef int key_t; 295 #define __DEFINED_key_t 296 #endif 297 298 #if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t) 299 typedef unsigned useconds_t; 300 #define __DEFINED_useconds_t 301 #endif 302 303 304 #ifdef __cplusplus 305 #if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t) 306 typedef unsigned long pthread_t; 307 #define __DEFINED_pthread_t 308 #endif 309 310 #else 311 #if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t) 312 typedef struct __pthread * pthread_t; 313 #define __DEFINED_pthread_t 314 #endif 315 316 #endif 317 #if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t) 318 typedef int pthread_once_t; 319 #define __DEFINED_pthread_once_t 320 #endif 321 322 #if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t) 323 typedef unsigned pthread_key_t; 324 #define __DEFINED_pthread_key_t 325 #endif 326 327 #if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t) 328 typedef int pthread_spinlock_t; 329 #define __DEFINED_pthread_spinlock_t 330 #endif 331 332 #if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t) 333 typedef struct { unsigned __attr; } pthread_mutexattr_t; 334 #define __DEFINED_pthread_mutexattr_t 335 #endif 336 337 #if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t) 338 typedef struct { unsigned __attr; } pthread_condattr_t; 339 #define __DEFINED_pthread_condattr_t 340 #endif 341 342 #if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t) 343 typedef struct { unsigned __attr; } pthread_barrierattr_t; 344 #define __DEFINED_pthread_barrierattr_t 345 #endif 346 347 #if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t) 348 typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t; 349 #define __DEFINED_pthread_rwlockattr_t 350 #endif 351 352 353 #ifdef __wasilibc_unmodified_upstream /* WASI doesn't need to define FILE as a complete type */ 354 #if defined(__NEED_struct__IO_FILE) && !defined(__DEFINED_struct__IO_FILE) 355 struct _IO_FILE { char __x; }; 356 #define __DEFINED_struct__IO_FILE 357 #endif 358 359 #endif 360 #if defined(__NEED_FILE) && !defined(__DEFINED_FILE) 361 typedef struct _IO_FILE FILE; 362 #define __DEFINED_FILE 363 #endif 364 365 366 #if defined(__NEED_va_list) && !defined(__DEFINED_va_list) 367 typedef __builtin_va_list va_list; 368 #define __DEFINED_va_list 369 #endif 370 371 #if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list) 372 typedef __builtin_va_list __isoc_va_list; 373 #define __DEFINED___isoc_va_list 374 #endif 375 376 377 #if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t) 378 typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t; 379 #define __DEFINED_mbstate_t 380 #endif 381 382 383 #if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t) 384 typedef struct __locale_struct * locale_t; 385 #define __DEFINED_locale_t 386 #endif 387 388 389 #if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t) 390 typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t; 391 #define __DEFINED_sigset_t 392 #endif 393 394 395 #ifdef __wasilibc_unmodified_upstream /* Use alternate WASI libc headers */ 396 #if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec) 397 struct iovec { void *iov_base; size_t iov_len; }; 398 #define __DEFINED_struct_iovec 399 #endif 400 401 #else 402 #include <__struct_iovec.h> 403 #endif 404 405 #if defined(__NEED_struct_winsize) && !defined(__DEFINED_struct_winsize) 406 struct winsize { unsigned short ws_row, ws_col, ws_xpixel, ws_ypixel; }; 407 #define __DEFINED_struct_winsize 408 #endif 409 410 411 #if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t) 412 typedef unsigned socklen_t; 413 #define __DEFINED_socklen_t 414 #endif 415 416 #if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t) 417 typedef unsigned short sa_family_t; 418 #define __DEFINED_sa_family_t 419 #endif 420 421 422 #if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t) 423 typedef struct { union { int __i[sizeof(long)==8?14:9]; volatile int __vi[sizeof(long)==8?14:9]; unsigned long __s[sizeof(long)==8?7:9]; } __u; } pthread_attr_t; 424 #define __DEFINED_pthread_attr_t 425 #endif 426 427 #if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t) 428 typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } pthread_mutex_t; 429 #define __DEFINED_pthread_mutex_t 430 #endif 431 432 #if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t) 433 typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } mtx_t; 434 #define __DEFINED_mtx_t 435 #endif 436 437 #if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t) 438 typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } pthread_cond_t; 439 #define __DEFINED_pthread_cond_t 440 #endif 441 442 #if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t) 443 typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } cnd_t; 444 #define __DEFINED_cnd_t 445 #endif 446 447 #if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t) 448 typedef struct { union { int __i[sizeof(long)==8?14:8]; volatile int __vi[sizeof(long)==8?14:8]; void *__p[sizeof(long)==8?7:8]; } __u; } pthread_rwlock_t; 449 #define __DEFINED_pthread_rwlock_t 450 #endif 451 452 #if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t) 453 typedef struct { union { int __i[sizeof(long)==8?8:5]; volatile int __vi[sizeof(long)==8?8:5]; void *__p[sizeof(long)==8?4:5]; } __u; } pthread_barrier_t; 454 #define __DEFINED_pthread_barrier_t 455 #endif 456 457 458 #undef _Addr 459 #undef _Int64 460 #undef _Reg 461