1 2#if __riscv_xlen == 32 3#define _Addr int 4#define _Int64 long long 5#else 6#define _Addr long 7#define _Int64 long 8#endif 9#define _Reg long 10 11TYPEDEF __builtin_va_list va_list; 12TYPEDEF __builtin_va_list __isoc_va_list; 13 14#ifndef __cplusplus 15TYPEDEF int wchar_t; 16#endif 17 18TYPEDEF float float_t; 19TYPEDEF double double_t; 20 21TYPEDEF struct { long long __ll; long double __ld; } max_align_t; 22 23#if __riscv_xlen == 32 24TYPEDEF long long time_t; 25TYPEDEF long long suseconds_t; 26#else 27TYPEDEF long time_t; 28TYPEDEF long suseconds_t; 29#endif 30 31// TODO Someone should verify that these types are defined properly 32TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; unsigned long __s[7]; } __u; } pthread_attr_t; 33TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } pthread_mutex_t; 34TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } mtx_t; 35TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } pthread_cond_t; 36TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } cnd_t; 37TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; void *__p[7]; } __u; } pthread_rwlock_t; 38TYPEDEF struct { union { int __i[8]; volatile int __vi[8]; void *__p[4]; } __u; } pthread_barrier_t; 39