github.com/afumu/libc@v0.0.6/pthread/pthread_windows_386.go (about)

     1  // Code generated by 'ccgo pthread/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o pthread/pthread_windows_386.go -pkgname pthread', DO NOT EDIT.
     2  
     3  package pthread
     4  
     5  import (
     6  	"math"
     7  	"reflect"
     8  	"sync/atomic"
     9  	"unsafe"
    10  )
    11  
    12  var _ = math.Pi
    13  var _ reflect.Kind
    14  var _ atomic.Value
    15  var _ unsafe.Pointer
    16  
    17  const (
    18  	CHAR_BIT                                        = 8                    // limits.h:64:1:
    19  	CHAR_MAX                                        = 127                  // limits.h:99:1:
    20  	CHAR_MIN                                        = -128                 // limits.h:97:1:
    21  	DUMMYSTRUCTNAME                                 = 0                    // _mingw.h:519:1:
    22  	DUMMYSTRUCTNAME1                                = 0                    // _mingw.h:520:1:
    23  	DUMMYSTRUCTNAME2                                = 0                    // _mingw.h:521:1:
    24  	DUMMYSTRUCTNAME3                                = 0                    // _mingw.h:522:1:
    25  	DUMMYSTRUCTNAME4                                = 0                    // _mingw.h:523:1:
    26  	DUMMYSTRUCTNAME5                                = 0                    // _mingw.h:524:1:
    27  	DUMMYUNIONNAME                                  = 0                    // _mingw.h:497:1:
    28  	DUMMYUNIONNAME1                                 = 0                    // _mingw.h:498:1:
    29  	DUMMYUNIONNAME2                                 = 0                    // _mingw.h:499:1:
    30  	DUMMYUNIONNAME3                                 = 0                    // _mingw.h:500:1:
    31  	DUMMYUNIONNAME4                                 = 0                    // _mingw.h:501:1:
    32  	DUMMYUNIONNAME5                                 = 0                    // _mingw.h:502:1:
    33  	DUMMYUNIONNAME6                                 = 0                    // _mingw.h:503:1:
    34  	DUMMYUNIONNAME7                                 = 0                    // _mingw.h:504:1:
    35  	DUMMYUNIONNAME8                                 = 0                    // _mingw.h:505:1:
    36  	DUMMYUNIONNAME9                                 = 0                    // _mingw.h:506:1:
    37  	E2BIG                                           = 7                    // errno.h:31:1:
    38  	EACCES                                          = 13                   // errno.h:37:1:
    39  	EADDRINUSE                                      = 100                  // errno.h:86:1:
    40  	EADDRNOTAVAIL                                   = 101                  // errno.h:90:1:
    41  	EAFNOSUPPORT                                    = 102                  // errno.h:82:1:
    42  	EAGAIN                                          = 11                   // errno.h:35:1:
    43  	EALREADY                                        = 103                  // errno.h:106:1:
    44  	EBADF                                           = 9                    // errno.h:33:1:
    45  	EBADMSG                                         = 104                  // errno.h:182:1:
    46  	EBUSY                                           = 16                   // errno.h:39:1:
    47  	ECANCELED                                       = 105                  // errno.h:154:1:
    48  	ECHILD                                          = 10                   // errno.h:34:1:
    49  	ECONNABORTED                                    = 106                  // errno.h:102:1:
    50  	ECONNREFUSED                                    = 107                  // errno.h:110:1:
    51  	ECONNRESET                                      = 108                  // errno.h:114:1:
    52  	EDEADLK                                         = 36                   // errno.h:55:1:
    53  	EDEADLOCK                                       = 36                   // errno.h:71:1:
    54  	EDESTADDRREQ                                    = 109                  // errno.h:118:1:
    55  	EDOM                                            = 33                   // errno.h:54:1:
    56  	EEXIST                                          = 17                   // errno.h:40:1:
    57  	EFAULT                                          = 14                   // errno.h:38:1:
    58  	EFBIG                                           = 27                   // errno.h:48:1:
    59  	EHOSTUNREACH                                    = 110                  // errno.h:122:1:
    60  	EIDRM                                           = 111                  // errno.h:186:1:
    61  	EILSEQ                                          = 42                   // errno.h:66:1:
    62  	EINPROGRESS                                     = 112                  // errno.h:158:1:
    63  	EINTR                                           = 4                    // errno.h:28:1:
    64  	EINVAL                                          = 22                   // errno.h:64:1:
    65  	EIO                                             = 5                    // errno.h:29:1:
    66  	EISCONN                                         = 113                  // errno.h:94:1:
    67  	EISDIR                                          = 21                   // errno.h:44:1:
    68  	ELOOP                                           = 114                  // errno.h:227:1:
    69  	EMFILE                                          = 24                   // errno.h:46:1:
    70  	EMLINK                                          = 31                   // errno.h:52:1:
    71  	EMSGSIZE                                        = 115                  // errno.h:126:1:
    72  	ENAMETOOLONG                                    = 38                   // errno.h:56:1:
    73  	ENETDOWN                                        = 116                  // errno.h:130:1:
    74  	ENETRESET                                       = 117                  // errno.h:134:1:
    75  	ENETUNREACH                                     = 118                  // errno.h:138:1:
    76  	ENFILE                                          = 23                   // errno.h:45:1:
    77  	ENOBUFS                                         = 119                  // errno.h:98:1:
    78  	ENODATA                                         = 120                  // errno.h:190:1:
    79  	ENODEV                                          = 19                   // errno.h:42:1:
    80  	ENOENT                                          = 2                    // errno.h:25:1:
    81  	ENOEXEC                                         = 8                    // errno.h:32:1:
    82  	ENOFILE                                         = 2                    // errno.h:26:1:
    83  	ENOLCK                                          = 39                   // errno.h:57:1:
    84  	ENOLINK                                         = 121                  // errno.h:194:1:
    85  	ENOMEM                                          = 12                   // errno.h:36:1:
    86  	ENOMSG                                          = 122                  // errno.h:198:1:
    87  	ENOPROTOOPT                                     = 123                  // errno.h:142:1:
    88  	ENOSPC                                          = 28                   // errno.h:49:1:
    89  	ENOSR                                           = 124                  // errno.h:202:1:
    90  	ENOSTR                                          = 125                  // errno.h:206:1:
    91  	ENOSYS                                          = 40                   // errno.h:58:1:
    92  	ENOTCONN                                        = 126                  // errno.h:150:1:
    93  	ENOTDIR                                         = 20                   // errno.h:43:1:
    94  	ENOTEMPTY                                       = 41                   // errno.h:59:1:
    95  	ENOTRECOVERABLE                                 = 127                  // errno.h:210:1:
    96  	ENOTSOCK                                        = 128                  // errno.h:146:1:
    97  	ENOTSUP                                         = 129                  // errno.h:76:1:
    98  	ENOTTY                                          = 25                   // errno.h:47:1:
    99  	ENXIO                                           = 6                    // errno.h:30:1:
   100  	EOPNOTSUPP                                      = 130                  // errno.h:162:1:
   101  	EOVERFLOW                                       = 132                  // errno.h:235:1:
   102  	EOWNERDEAD                                      = 133                  // errno.h:170:1:
   103  	EPERM                                           = 1                    // errno.h:24:1:
   104  	EPIPE                                           = 32                   // errno.h:53:1:
   105  	EPROTO                                          = 134                  // errno.h:174:1:
   106  	EPROTONOSUPPORT                                 = 135                  // errno.h:178:1:
   107  	EPROTOTYPE                                      = 136                  // errno.h:231:1:
   108  	ERANGE                                          = 34                   // errno.h:65:1:
   109  	EROFS                                           = 30                   // errno.h:51:1:
   110  	ESPIPE                                          = 29                   // errno.h:50:1:
   111  	ESRCH                                           = 3                    // errno.h:27:1:
   112  	ETIME                                           = 137                  // errno.h:214:1:
   113  	ETIMEDOUT                                       = 138                  // errno.h:223:1:
   114  	ETXTBSY                                         = 139                  // errno.h:218:1:
   115  	EWOULDBLOCK                                     = 140                  // errno.h:166:1:
   116  	EXDEV                                           = 18                   // errno.h:41:1:
   117  	GENERIC_ERRORCHECK_INITIALIZER                  = -2                   // pthread.h:279:1:
   118  	GENERIC_INITIALIZER                             = -1                   // pthread.h:278:1:
   119  	GENERIC_NORMAL_INITIALIZER                      = -1                   // pthread.h:281:1:
   120  	GENERIC_RECURSIVE_INITIALIZER                   = -3                   // pthread.h:280:1:
   121  	INT_MAX                                         = 2147483647           // limits.h:120:1:
   122  	INT_MIN                                         = -2147483648          // limits.h:118:1:
   123  	LLONG_MAX                                       = 9223372036854775807  // limits.h:142:1:
   124  	LLONG_MIN                                       = -9223372036854775808 // limits.h:140:1:
   125  	LONG_LONG_MAX                                   = 9223372036854775807  // limits.h:154:1:
   126  	LONG_LONG_MIN                                   = -9223372036854775808 // limits.h:152:1:
   127  	LONG_MAX                                        = 2147483647           // limits.h:131:1:
   128  	LONG_MIN                                        = -2147483648          // limits.h:129:1:
   129  	MAX_READ_LOCKS                                  = 2147483646           // pthread.h:168:1:
   130  	MB_LEN_MAX                                      = 5                    // limits.h:35:1:
   131  	MINGW_DDK_H                                     = 0                    // _mingw_ddk.h:2:1:
   132  	MINGW_HAS_DDK_H                                 = 1                    // _mingw_ddk.h:4:1:
   133  	MINGW_HAS_SECURE_API                            = 1                    // _mingw.h:602:1:
   134  	MINGW_SDK_INIT                                  = 0                    // _mingw.h:598:1:
   135  	NSIG                                            = 23                   // signal.h:21:1:
   136  	OLD_P_OVERLAY                                   = 2                    // process.h:149:1:
   137  	PATH_MAX                                        = 260                  // limits.h:20:1:
   138  	PTHREAD_BARRIER_SERIAL_THREAD                   = 1                    // pthread.h:165:1:
   139  	PTHREAD_CANCEL_ASYNCHRONOUS                     = 0x02                 // pthread.h:117:1:
   140  	PTHREAD_CANCEL_DEFERRED                         = 0                    // pthread.h:116:1:
   141  	PTHREAD_CANCEL_DISABLE                          = 0                    // pthread.h:113:1:
   142  	PTHREAD_CANCEL_ENABLE                           = 0x01                 // pthread.h:114:1:
   143  	PTHREAD_CREATE_DETACHED                         = 0x04                 // pthread.h:120:1:
   144  	PTHREAD_CREATE_JOINABLE                         = 0                    // pthread.h:119:1:
   145  	PTHREAD_DEFAULT_ATTR                            = 1                    // pthread.h:128:1:
   146  	PTHREAD_DESTRUCTOR_ITERATIONS                   = 256                  // pthread.h:136:1:
   147  	PTHREAD_EXPLICIT_SCHED                          = 0                    // pthread.h:122:1:
   148  	PTHREAD_INHERIT_SCHED                           = 0x08                 // pthread.h:123:1:
   149  	PTHREAD_KEYS_MAX                                = 1048576              // pthread.h:137:1:
   150  	PTHREAD_MUTEX_ADAPTIVE_NP                       = 0                    // pthread.h:156:1:
   151  	PTHREAD_MUTEX_DEFAULT                           = 0                    // pthread.h:142:1:
   152  	PTHREAD_MUTEX_ERRORCHECK                        = 1                    // pthread.h:275:1:
   153  	PTHREAD_MUTEX_ERRORCHECK_NP                     = 1                    // pthread.h:157:1:
   154  	PTHREAD_MUTEX_FAST_NP                           = 0                    // pthread.h:154:1:
   155  	PTHREAD_MUTEX_NORMAL                            = 0                    // pthread.h:274:1:
   156  	PTHREAD_MUTEX_PRIVATE                           = 0                    // pthread.h:145:1:
   157  	PTHREAD_MUTEX_RECURSIVE                         = 2                    // pthread.h:276:1:
   158  	PTHREAD_MUTEX_RECURSIVE_NP                      = 2                    // pthread.h:158:1:
   159  	PTHREAD_MUTEX_SHARED                            = 1                    // pthread.h:144:1:
   160  	PTHREAD_MUTEX_TIMED_NP                          = 0                    // pthread.h:155:1:
   161  	PTHREAD_ONCE_INIT                               = 0                    // pthread.h:134:1:
   162  	PTHREAD_PRIO_INHERIT                            = 8                    // pthread.h:148:1:
   163  	PTHREAD_PRIO_MULT                               = 32                   // pthread.h:150:1:
   164  	PTHREAD_PRIO_NONE                               = 0                    // pthread.h:147:1:
   165  	PTHREAD_PRIO_PROTECT                            = 16                   // pthread.h:149:1:
   166  	PTHREAD_PROCESS_PRIVATE                         = 0                    // pthread.h:152:1:
   167  	PTHREAD_PROCESS_SHARED                          = 1                    // pthread.h:151:1:
   168  	PTHREAD_SCOPE_PROCESS                           = 0                    // pthread.h:125:1:
   169  	PTHREAD_SCOPE_SYSTEM                            = 0x10                 // pthread.h:126:1:
   170  	PTHREAD_THREADS_MAX                             = 2019                 // pthread.h:437:1:
   171  	P_DETACH                                        = 4                    // process.h:151:1:
   172  	P_NOWAIT                                        = 1                    // process.h:147:1:
   173  	P_NOWAITO                                       = 3                    // process.h:150:1:
   174  	P_OVERLAY                                       = 2                    // process.h:148:1:
   175  	P_WAIT                                          = 0                    // process.h:146:1:
   176  	RWLS_PER_THREAD                                 = 8                    // pthread.h:98:1:
   177  	SCHAR_MAX                                       = 127                  // limits.h:75:1:
   178  	SCHAR_MIN                                       = -128                 // limits.h:73:1:
   179  	SCHED_FIFO                                      = 1                    // pthread.h:234:1:
   180  	SCHED_MAX                                       = 2                    // pthread.h:237:1:
   181  	SCHED_MIN                                       = 0                    // pthread.h:236:1:
   182  	SCHED_OTHER                                     = 0                    // pthread.h:233:1:
   183  	SCHED_RR                                        = 2                    // pthread.h:235:1:
   184  	SEM_NSEMS_MAX                                   = 1024                 // pthread.h:443:1:
   185  	SHRT_MAX                                        = 32767                // limits.h:106:1:
   186  	SHRT_MIN                                        = -32768               // limits.h:104:1:
   187  	SIGABRT                                         = 22                   // signal.h:30:1:
   188  	SIGABRT2                                        = 22                   // signal.h:31:1:
   189  	SIGABRT_COMPAT                                  = 6                    // signal.h:25:1:
   190  	SIGBREAK                                        = 21                   // signal.h:29:1:
   191  	SIGFPE                                          = 8                    // signal.h:26:1:
   192  	SIGILL                                          = 4                    // signal.h:24:1:
   193  	SIGINT                                          = 2                    // signal.h:23:1:
   194  	SIGSEGV                                         = 11                   // signal.h:27:1:
   195  	SIGTERM                                         = 15                   // signal.h:28:1:
   196  	SIG_BLOCK                                       = 0                    // pthread.h:419:1:
   197  	SIG_SETMASK                                     = 2                    // pthread.h:425:1:
   198  	SIG_UNBLOCK                                     = 1                    // pthread.h:422:1:
   199  	SIZE_MAX                                        = 4294967295           // limits.h:78:1:
   200  	SSIZE_MAX                                       = 2147483647           // limits.h:86:1:
   201  	STRUNCATE                                       = 80                   // errno.h:67:1:
   202  	UCHAR_MAX                                       = 255                  // limits.h:82:1:
   203  	UINT_MAX                                        = 4294967295           // limits.h:124:1:
   204  	ULLONG_MAX                                      = 18446744073709551615 // limits.h:146:1:
   205  	ULONG_LONG_MAX                                  = 18446744073709551615 // limits.h:158:1:
   206  	ULONG_MAX                                       = 4294967295           // limits.h:135:1:
   207  	UNALIGNED                                       = 0                    // _mingw.h:384:1:
   208  	USE___UUIDOF                                    = 0                    // _mingw.h:77:1:
   209  	USHRT_MAX                                       = 65535                // limits.h:113:1:
   210  	WAIT_CHILD                                      = 0                    // process.h:152:1:
   211  	WAIT_GRANDCHILD                                 = 1                    // process.h:153:1:
   212  	WIN32                                           = 1                    // <predefined>:258:1:
   213  	WINNT                                           = 1                    // <predefined>:306:1:
   214  	WINPTHREAD_API                                  = 0                    // pthread.h:92:1:
   215  	WIN_PTHREADS_H                                  = 0                    // pthread.h:60:1:
   216  	WIN_PTHREADS_PTHREAD_COMPAT_H                   = 0                    // pthread_compat.h:61:1:
   217  	WIN_PTHREADS_SIGNAL_H                           = 0                    // pthread_signal.h:24:1:
   218  	WIN_PTHREADS_UNISTD_H                           = 0                    // pthread_unistd.h:24:1:
   219  	X_AGLOBAL                                       = 0                    // _mingw.h:346:1:
   220  	X_ANONYMOUS_STRUCT                              = 0                    // _mingw.h:474:1:
   221  	X_ANONYMOUS_UNION                               = 0                    // _mingw.h:473:1:
   222  	X_ANSI_STDDEF_H                                 = 0                    // stddef.h:52:1:
   223  	X_ARGMAX                                        = 100                  // _mingw.h:402:1:
   224  	X_CONST_RETURN                                  = 0                    // _mingw.h:377:1:
   225  	X_CRTNOALIAS                                    = 0                    // corecrt.h:29:1:
   226  	X_CRTRESTRICT                                   = 0                    // corecrt.h:33:1:
   227  	X_CRT_ALTERNATIVE_IMPORTED                      = 0                    // _mingw.h:313:1:
   228  	X_CRT_ERRNO_DEFINED                             = 0                    // stddef.h:17:1:
   229  	X_CRT_GETPID_DEFINED                            = 0                    // process.h:157:1:
   230  	X_CRT_MANAGED_HEAP_DEPRECATE                    = 0                    // _mingw.h:361:1:
   231  	X_CRT_PACKING                                   = 8                    // corecrt.h:14:1:
   232  	X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES          = 0                    // _mingw_secapi.h:34:1:
   233  	X_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY   = 0                    // _mingw_secapi.h:35:1:
   234  	X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES        = 0                    // _mingw_secapi.h:36:1:
   235  	X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT  = 0                    // _mingw_secapi.h:37:1:
   236  	X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0                    // _mingw_secapi.h:38:1:
   237  	X_CRT_SYSTEM_DEFINED                            = 0                    // process.h:91:1:
   238  	X_CRT_TERMINATE_DEFINED                         = 0                    // process.h:41:1:
   239  	X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP             = 0                    // corecrt.h:501:1:
   240  	X_CRT_WSYSTEM_DEFINED                           = 0                    // process.h:120:1:
   241  	X_DEV_T_DEFINED                                 = 0                    // types.h:50:1:
   242  	X_DLL                                           = 0                    // _mingw.h:326:1:
   243  	X_ERRCODE_DEFINED                               = 0                    // corecrt.h:117:1:
   244  	X_FILE_OFFSET_BITS                              = 64                   // <builtin>:25:1:
   245  	X_FILE_OFFSET_BITS_SET_OFFT                     = 0                    // _mingw_off_t.h:21:1:
   246  	X_GCC_LIMITS_H_                                 = 0                    // limits.h:30:1:
   247  	X_GCC_MAX_ALIGN_T                               = 0                    // stddef.h:419:1:
   248  	X_GTHREAD_USE_MUTEX_INIT_FUNC                   = 1                    // pthread.h:686:1:
   249  	X_I16_MAX                                       = 32767                // limits.h:54:1:
   250  	X_I16_MIN                                       = -32768               // limits.h:53:1:
   251  	X_I32_MAX                                       = 2147483647           // limits.h:58:1:
   252  	X_I32_MIN                                       = -2147483648          // limits.h:57:1:
   253  	X_I64_MAX                                       = 9223372036854775807  // limits.h:71:1:
   254  	X_I64_MIN                                       = -9223372036854775808 // limits.h:70:1:
   255  	X_I8_MAX                                        = 127                  // limits.h:50:1:
   256  	X_I8_MIN                                        = -128                 // limits.h:49:1:
   257  	X_ILP32                                         = 1                    // <predefined>:211:1:
   258  	X_INC_CORECRT                                   = 0                    // corecrt.h:8:1:
   259  	X_INC_CORECRT_STARTUP                           = 0                    // corecrt_startup.h:8:1:
   260  	X_INC_CRTDEFS                                   = 0                    // crtdefs.h:8:1:
   261  	X_INC_CRTDEFS_MACRO                             = 0                    // _mingw_mac.h:8:1:
   262  	X_INC_ERRNO                                     = 0                    // errno.h:7:1:
   263  	X_INC_LIMITS                                    = 0                    // limits.h:9:1:
   264  	X_INC_MINGW_SECAPI                              = 0                    // _mingw_secapi.h:8:1:
   265  	X_INC_PROCESS                                   = 0                    // process.h:7:1:
   266  	X_INC_SIGNAL                                    = 0                    // signal.h:7:1:
   267  	X_INC_STDDEF                                    = 0                    // stddef.h:10:1:
   268  	X_INC_TYPES                                     = 0                    // types.h:7:1:
   269  	X_INC_VADEFS                                    = 0                    // vadefs.h:7:1:
   270  	X_INC__MINGW_H                                  = 0                    // _mingw.h:8:1:
   271  	X_INO_T_DEFINED                                 = 0                    // types.h:42:1:
   272  	X_INT128_DEFINED                                = 0                    // _mingw.h:237:1:
   273  	X_INTEGRAL_MAX_BITS                             = 64                   // <predefined>:320:1:
   274  	X_INTPTR_T_DEFINED                              = 0                    // corecrt.h:62:1:
   275  	X_LIMITS_H___                                   = 0                    // limits.h:60:1:
   276  	X_MODE_T_                                       = 0                    // types.h:73:1:
   277  	X_MT                                            = 0                    // _mingw.h:330:1:
   278  	X_M_IX86                                        = 600                  // _mingw_mac.h:54:1:
   279  	X_OFF64_T_DEFINED                               = 0                    // _mingw_off_t.h:12:1:
   280  	X_OFF_T_                                        = 0                    // _mingw_off_t.h:4:1:
   281  	X_OFF_T_DEFINED                                 = 0                    // _mingw_off_t.h:2:1:
   282  	X_OLD_P_OVERLAY                                 = 2                    // process.h:23:1:
   283  	X_PGLOBAL                                       = 0                    // _mingw.h:342:1:
   284  	X_PID_T_                                        = 0                    // types.h:58:1:
   285  	X_POSIX_BARRIERS                                = 200112               // pthread_unistd.h:130:1:
   286  	X_POSIX_CLOCK_SELECTION                         = 200112               // pthread_unistd.h:173:1:
   287  	X_POSIX_READER_WRITER_LOCKS                     = 200112               // pthread_unistd.h:101:1:
   288  	X_POSIX_SEMAPHORES                              = 200112               // pthread_unistd.h:190:1:
   289  	X_POSIX_SEM_NSEMS_MAX                           = 256                  // pthread.h:440:1:
   290  	X_POSIX_SPIN_LOCKS                              = 200112               // pthread_unistd.h:115:1:
   291  	X_POSIX_THREADS                                 = 200112               // pthread_unistd.h:81:1:
   292  	X_POSIX_THREAD_DESTRUCTOR_ITERATIONS            = 256                  // pthread.h:431:1:
   293  	X_POSIX_THREAD_KEYS_MAX                         = 1048576              // pthread.h:434:1:
   294  	X_POSIX_TIMEOUTS                                = 200112               // pthread_unistd.h:145:1:
   295  	X_PTRDIFF_T_                                    = 0                    // corecrt.h:90:1:
   296  	X_PTRDIFF_T_DEFINED                             = 0                    // corecrt.h:88:1:
   297  	X_P_DETACH                                      = 4                    // process.h:25:1:
   298  	X_P_NOWAIT                                      = 1                    // process.h:22:1:
   299  	X_P_NOWAITO                                     = 3                    // process.h:24:1:
   300  	X_P_OVERLAY                                     = 2                    // process.h:26:1:
   301  	X_P_WAIT                                        = 0                    // process.h:21:1:
   302  	X_RSIZE_T_DEFINED                               = 0                    // corecrt.h:58:1:
   303  	X_SECURECRT_ERRCODE_VALUES_DEFINED              = 0                    // errno.h:63:1:
   304  	X_SECURECRT_FILL_BUFFER_PATTERN                 = 0xFD                 // _mingw.h:349:1:
   305  	X_SIGSET_T_                                     = 0                    // types.h:101:1:
   306  	X_SIG_ATOMIC_T_DEFINED                          = 0                    // signal.h:17:1:
   307  	X_SIZE_T_DEFINED                                = 0                    // corecrt.h:37:1:
   308  	X_SPAWNV_DEFINED                                = 0                    // process.h:83:1:
   309  	X_SSIZE_T_DEFINED                               = 0                    // corecrt.h:47:1:
   310  	X_STDDEF_H                                      = 0                    // stddef.h:49:1:
   311  	X_STDDEF_H_                                     = 0                    // stddef.h:50:1:
   312  	X_TAGLC_ID_DEFINED                              = 0                    // corecrt.h:447:1:
   313  	X_THREADLOCALEINFO                              = 0                    // corecrt.h:456:1:
   314  	X_TIME32_T_DEFINED                              = 0                    // corecrt.h:122:1:
   315  	X_TIME64_T_DEFINED                              = 0                    // corecrt.h:127:1:
   316  	X_TIMEB_DEFINED                                 = 0                    // timeb.h:51:1:
   317  	X_TIMEB_H_                                      = 0                    // timeb.h:7:1:
   318  	X_TIMEB_H_S                                     = 0                    // timeb_s.h:8:1:
   319  	X_TIMESPEC_DEFINED                              = 0                    // types.h:88:1:
   320  	X_TIME_T_DEFINED                                = 0                    // corecrt.h:139:1:
   321  	X_UI16_MAX                                      = 0xffff               // limits.h:55:1:
   322  	X_UI32_MAX                                      = 0xffffffff           // limits.h:59:1:
   323  	X_UI64_MAX                                      = 0xffffffffffffffff   // limits.h:72:1:
   324  	X_UI8_MAX                                       = 0xff                 // limits.h:51:1:
   325  	X_UINTPTR_T_DEFINED                             = 0                    // corecrt.h:75:1:
   326  	X_USE_32BIT_TIME_T                              = 0                    // _mingw.h:372:1:
   327  	X_VA_LIST_DEFINED                               = 0                    // <builtin>:55:1:
   328  	X_W64                                           = 0                    // _mingw.h:296:1:
   329  	X_WAIT_CHILD                                    = 0                    // process.h:28:1:
   330  	X_WAIT_GRANDCHILD                               = 1                    // process.h:29:1:
   331  	X_WCHAR_T_DEFINED                               = 0                    // corecrt.h:101:1:
   332  	X_WCTYPE_T_DEFINED                              = 0                    // corecrt.h:108:1:
   333  	X_WEXEC_DEFINED                                 = 0                    // process.h:96:1:
   334  	X_WIN32                                         = 1                    // <predefined>:164:1:
   335  	X_WIN32_WINNT                                   = 0x502                // _mingw.h:233:1:
   336  	X_WINT_T                                        = 0                    // corecrt.h:110:1:
   337  	X_WSPAWN_DEFINED                                = 0                    // process.h:108:1:
   338  	X_X86_                                          = 1                    // <predefined>:169:1:
   339  	I386                                            = 1                    // <predefined>:171:1:
   340  )
   341  
   342  type Ptrdiff_t = int32 /* <builtin>:3:26 */
   343  
   344  type Size_t = uint32 /* <builtin>:9:23 */
   345  
   346  type Wchar_t = uint16 /* <builtin>:15:24 */
   347  
   348  type X__builtin_va_list = uintptr /* <builtin>:46:14 */
   349  type X__float128 = float64        /* <builtin>:47:21 */
   350  
   351  type Va_list = X__builtin_va_list /* <builtin>:50:27 */
   352  
   353  //
   354  //    Copyright (c) 2011-2016 mingw-w64 project
   355  //
   356  //    Permission is hereby granted, free of charge, to any person obtaining a
   357  //    copy of this software and associated documentation files (the "Software"),
   358  //    to deal in the Software without restriction, including without limitation
   359  //    the rights to use, copy, modify, merge, publish, distribute, sublicense,
   360  //    and/or sell copies of the Software, and to permit persons to whom the
   361  //    Software is furnished to do so, subject to the following conditions:
   362  //
   363  //    The above copyright notice and this permission notice shall be included in
   364  //    all copies or substantial portions of the Software.
   365  //
   366  //    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   367  //    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   368  //    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   369  //    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   370  //    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   371  //    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
   372  //    DEALINGS IN THE SOFTWARE.
   373  
   374  // Parts of this library are derived by:
   375  //
   376  // Posix Threads library for Microsoft Windows
   377  //
   378  // Use at own risk, there is no implied warranty to this code.
   379  // It uses undocumented features of Microsoft Windows that can change
   380  // at any time in the future.
   381  //
   382  // (C) 2010 Lockless Inc.
   383  // All rights reserved.
   384  //
   385  // Redistribution and use in source and binary forms, with or without modification,
   386  // are permitted provided that the following conditions are met:
   387  //
   388  //
   389  //  * Redistributions of source code must retain the above copyright notice,
   390  //    this list of conditions and the following disclaimer.
   391  //  * Redistributions in binary form must reproduce the above copyright notice,
   392  //    this list of conditions and the following disclaimer in the documentation
   393  //    and/or other materials provided with the distribution.
   394  //  * Neither the name of Lockless Inc. nor the names of its contributors may be
   395  //    used to endorse or promote products derived from this software without
   396  //    specific prior written permission.
   397  //
   398  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN
   399  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   400  // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   401  // IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   402  // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
   403  // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   404  // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   405  // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
   406  // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   407  // OF THE POSSIBILITY OF SUCH DAMAGE.
   408  
   409  // *
   410  // This file has no copyright assigned and is placed in the Public Domain.
   411  // This file is part of the mingw-w64 runtime package.
   412  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   413  
   414  // *
   415  // This file has no copyright assigned and is placed in the Public Domain.
   416  // This file is part of the mingw-w64 runtime package.
   417  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   418  
   419  // *
   420  // This file has no copyright assigned and is placed in the Public Domain.
   421  // This file is part of the mingw-w64 runtime package.
   422  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   423  
   424  // *
   425  // This file has no copyright assigned and is placed in the Public Domain.
   426  // This file is part of the mingw-w64 runtime package.
   427  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   428  
   429  // *
   430  // This file has no copyright assigned and is placed in the Public Domain.
   431  // This file is part of the mingw-w64 runtime package.
   432  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   433  
   434  // This macro holds an monotonic increasing value, which indicates
   435  //    a specific fix/patch is present on trunk.  This value isn't related to
   436  //    minor/major version-macros.  It is increased on demand, if a big
   437  //    fix was applied to trunk.  This macro gets just increased on trunk.  For
   438  //    other branches its value won't be modified.
   439  
   440  // mingw.org's version macros: these make gcc to define
   441  //    MINGW32_SUPPORTS_MT_EH and to use the _CRT_MT global
   442  //    and the __mingwthr_key_dtor() function from the MinGW
   443  //    CRT in its private gthr-win32.h header.
   444  
   445  // Set VC specific compiler target macros.
   446  
   447  // For x86 we have always to prefix by underscore.
   448  
   449  // Special case nameless struct/union.
   450  
   451  // MinGW-w64 has some additional C99 printf/scanf feature support.
   452  //    So we add some helper macros to ease recognition of them.
   453  
   454  // If _FORTIFY_SOURCE is enabled, some inline functions may use
   455  //    __builtin_va_arg_pack().  GCC may report an error if the address
   456  //    of such a function is used.  Set _FORTIFY_VA_ARG=0 in this case.
   457  
   458  // Enable workaround for ABI incompatibility on affected platforms
   459  
   460  // *
   461  // This file has no copyright assigned and is placed in the Public Domain.
   462  // This file is part of the mingw-w64 runtime package.
   463  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   464  
   465  // http://msdn.microsoft.com/en-us/library/ms175759%28v=VS.100%29.aspx
   466  // Templates won't work in C, will break if secure API is not enabled, disabled
   467  
   468  // https://blogs.msdn.com/b/sdl/archive/2010/02/16/vc-2010-and-memcpy.aspx?Redirected=true
   469  // fallback on default implementation if we can't know the size of the destination
   470  
   471  // Include _cygwin.h if we're building a Cygwin application.
   472  
   473  // Target specific macro replacement for type "long".  In the Windows API,
   474  //    the type long is always 32 bit, even if the target is 64 bit (LLP64).
   475  //    On 64 bit Cygwin, the type long is 64 bit (LP64).  So, to get the right
   476  //    sized definitions and declarations, all usage of type long in the Windows
   477  //    headers have to be replaced by the below defined macro __LONG32.
   478  
   479  // C/C++ specific language defines.
   480  
   481  // Note the extern. This is needed to work around GCC's
   482  // limitations in handling dllimport attribute.
   483  
   484  // Attribute `nonnull' was valid as of gcc 3.3.  We don't use GCC's
   485  //    variadiac macro facility, because variadic macros cause syntax
   486  //    errors with  --traditional-cpp.
   487  
   488  //  High byte is the major version, low byte is the minor.
   489  
   490  // *
   491  // This file has no copyright assigned and is placed in the Public Domain.
   492  // This file is part of the mingw-w64 runtime package.
   493  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   494  
   495  // *
   496  // This file has no copyright assigned and is placed in the Public Domain.
   497  // This file is part of the mingw-w64 runtime package.
   498  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   499  
   500  // for backward compatibility
   501  
   502  type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
   503  
   504  type Ssize_t = int32 /* corecrt.h:52:13 */
   505  
   506  type Rsize_t = Size_t /* corecrt.h:57:16 */
   507  
   508  type Intptr_t = int32 /* corecrt.h:69:13 */
   509  
   510  type Uintptr_t = uint32 /* corecrt.h:82:22 */
   511  
   512  type Wint_t = uint16   /* corecrt.h:111:24 */
   513  type Wctype_t = uint16 /* corecrt.h:112:24 */
   514  
   515  type Errno_t = int32 /* corecrt.h:118:13 */
   516  
   517  type X__time32_t = int32 /* corecrt.h:123:14 */
   518  
   519  type X__time64_t = int64 /* corecrt.h:128:35 */
   520  
   521  type Time_t = X__time32_t /* corecrt.h:141:20 */
   522  
   523  type Threadlocaleinfostruct = struct {
   524  	Frefcount      int32
   525  	Flc_codepage   uint32
   526  	Flc_collate_cp uint32
   527  	Flc_handle     [6]uint32
   528  	Flc_id         [6]LC_ID
   529  	Flc_category   [6]struct {
   530  		Flocale    uintptr
   531  		Fwlocale   uintptr
   532  		Frefcount  uintptr
   533  		Fwrefcount uintptr
   534  	}
   535  	Flc_clike            int32
   536  	Fmb_cur_max          int32
   537  	Flconv_intl_refcount uintptr
   538  	Flconv_num_refcount  uintptr
   539  	Flconv_mon_refcount  uintptr
   540  	Flconv               uintptr
   541  	Fctype1_refcount     uintptr
   542  	Fctype1              uintptr
   543  	Fpctype              uintptr
   544  	Fpclmap              uintptr
   545  	Fpcumap              uintptr
   546  	Flc_time_curr        uintptr
   547  } /* corecrt.h:435:1 */
   548  
   549  type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
   550  type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
   551  
   552  type Localeinfo_struct = struct {
   553  	Flocinfo Pthreadlocinfo
   554  	Fmbcinfo Pthreadmbcinfo
   555  } /* corecrt.h:441:9 */
   556  
   557  type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */
   558  type X_locale_t = uintptr                 /* corecrt.h:444:19 */
   559  
   560  type TagLC_ID = struct {
   561  	FwLanguage uint16
   562  	FwCountry  uint16
   563  	FwCodePage uint16
   564  } /* corecrt.h:435:1 */
   565  
   566  type LC_ID = TagLC_ID  /* corecrt.h:452:3 */
   567  type LPLC_ID = uintptr /* corecrt.h:452:9 */
   568  
   569  type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
   570  
   571  // ISO C Standard:  7.17  Common definitions  <stddef.h>
   572  
   573  // Any one of these symbols __need_* means that GNU libc
   574  //    wants us just to define one data type.  So don't define
   575  //    the symbols that indicate this file's entire job has been done.
   576  // snaroff@next.com says the NeXT needs this.
   577  // Irix 5.1 needs this.
   578  
   579  // In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
   580  //    defined if the corresponding type is *not* defined.
   581  //    FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_
   582  
   583  // Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   584  //    Just ignore it.
   585  
   586  // On VxWorks, <type/vxTypesBase.h> may have defined macros like
   587  //    _TYPE_size_t which will typedef size_t.  fixincludes patched the
   588  //    vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   589  //    not defined, and so that defining this macro defines _GCC_SIZE_T.
   590  //    If we find that the macros are still defined at this point, we must
   591  //    invoke them so that the type is defined as expected.
   592  
   593  // In case nobody has defined these types, but we aren't running under
   594  //    GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   595  //    __WCHAR_TYPE__ have reasonable values.  This can happen if the
   596  //    parts of GCC is compiled by an older compiler, that actually
   597  //    include gstddef.h, such as collect2.
   598  
   599  // Signed type of difference of two pointers.
   600  
   601  // Define this type if we are doing the whole job,
   602  //    or if we want this type in particular.
   603  
   604  // If this symbol has done its job, get rid of it.
   605  
   606  // Unsigned type of `sizeof' something.
   607  
   608  // Define this type if we are doing the whole job,
   609  //    or if we want this type in particular.
   610  
   611  // Wide character type.
   612  //    Locale-writers should change this as necessary to
   613  //    be big enough to hold unique values not between 0 and 127,
   614  //    and not (wchar_t) -1, for each defined multibyte character.
   615  
   616  // Define this type if we are doing the whole job,
   617  //    or if we want this type in particular.
   618  
   619  //  In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
   620  //     are already defined.
   621  //  BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
   622  
   623  // A null pointer constant.
   624  
   625  // Offset of member MEMBER in a struct of type TYPE.
   626  
   627  // Type whose alignment is supported in every context and is at least
   628  //
   629  //	as great as that of any standard type not using alignment
   630  //	specifiers.
   631  type Max_align_t = struct {
   632  	F__max_align_ll int64
   633  	F__max_align_ld float64
   634  } /* stddef.h:427:3 */
   635  
   636  // Copyright (C) 1989-2020 Free Software Foundation, Inc.
   637  //
   638  // This file is part of GCC.
   639  //
   640  // GCC is free software; you can redistribute it and/or modify
   641  // it under the terms of the GNU General Public License as published by
   642  // the Free Software Foundation; either version 3, or (at your option)
   643  // any later version.
   644  //
   645  // GCC is distributed in the hope that it will be useful,
   646  // but WITHOUT ANY WARRANTY; without even the implied warranty of
   647  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   648  // GNU General Public License for more details.
   649  //
   650  // Under Section 7 of GPL version 3, you are granted additional
   651  // permissions described in the GCC Runtime Library Exception, version
   652  // 3.1, as published by the Free Software Foundation.
   653  //
   654  // You should have received a copy of the GNU General Public License and
   655  // a copy of the GCC Runtime Library Exception along with this program;
   656  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
   657  // <http://www.gnu.org/licenses/>.
   658  
   659  // ISO C Standard:  7.17  Common definitions  <stddef.h>
   660  // *
   661  // This file has no copyright assigned and is placed in the Public Domain.
   662  // This file is part of the mingw-w64 runtime package.
   663  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   664  
   665  // *
   666  // This file has no copyright assigned and is placed in the Public Domain.
   667  // This file is part of the mingw-w64 runtime package.
   668  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   669  
   670  // Posix thread extensions.
   671  
   672  // Extension defined as by report VC 10+ defines error-numbers.
   673  
   674  // Defined as WSAETIMEDOUT.
   675  
   676  // *
   677  // This file has no copyright assigned and is placed in the Public Domain.
   678  // This file is part of the mingw-w64 runtime package.
   679  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   680  
   681  // *
   682  // This file has no copyright assigned and is placed in the Public Domain.
   683  // This file is part of the mingw-w64 runtime package.
   684  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   685  
   686  type X_ino_t = uint16 /* types.h:43:24 */
   687  type Ino_t = uint16   /* types.h:45:24 */
   688  
   689  type X_dev_t = uint32 /* types.h:51:22 */
   690  type Dev_t = uint32   /* types.h:53:22 */
   691  
   692  type X_pid_t = int32 /* types.h:60:13 */
   693  
   694  type Pid_t = X_pid_t /* types.h:68:16 */
   695  
   696  type X_mode_t = uint16 /* types.h:74:24 */
   697  
   698  type Mode_t = X_mode_t /* types.h:77:17 */
   699  
   700  type X_off_t = int32 /* _mingw_off_t.h:5:16 */
   701  type Off32_t = int32 /* _mingw_off_t.h:7:16 */
   702  
   703  type X_off64_t = int64 /* _mingw_off_t.h:13:39 */
   704  type Off64_t = int64   /* _mingw_off_t.h:15:39 */
   705  
   706  type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
   707  
   708  type Useconds_t = uint32 /* types.h:84:22 */
   709  
   710  type Timespec = struct {
   711  	Ftv_sec  Time_t
   712  	Ftv_nsec int32
   713  } /* types.h:89:1 */
   714  
   715  type Itimerspec = struct {
   716  	Fit_interval struct {
   717  		Ftv_sec  Time_t
   718  		Ftv_nsec int32
   719  	}
   720  	Fit_value struct {
   721  		Ftv_sec  Time_t
   722  		Ftv_nsec int32
   723  	}
   724  } /* types.h:94:1 */
   725  
   726  type X_sigset_t = uint32 /* types.h:106:23 */
   727  
   728  type X_PVFV = uintptr /* corecrt_startup.h:20:14 */
   729  type X_PIFV = uintptr /* corecrt_startup.h:21:13 */
   730  type X_PVFI = uintptr /* corecrt_startup.h:22:14 */
   731  
   732  type X_onexit_table_t1 = struct {
   733  	F_first uintptr
   734  	F_last  uintptr
   735  	F_end   uintptr
   736  } /* corecrt_startup.h:24:9 */
   737  
   738  type X_onexit_table_t = X_onexit_table_t1 /* corecrt_startup.h:28:3 */
   739  
   740  type X_onexit_t = uintptr /* corecrt_startup.h:30:13 */
   741  
   742  // Includes a definition of _pid_t and pid_t
   743  // *
   744  // This file has no copyright assigned and is placed in the Public Domain.
   745  // This file is part of the mingw-w64 runtime package.
   746  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   747  
   748  type X_beginthread_proc_type = uintptr   /* process.h:32:16 */
   749  type X_beginthreadex_proc_type = uintptr /* process.h:33:20 */
   750  
   751  type X_tls_callback_type = uintptr /* process.h:61:16 */
   752  
   753  // Copyright (C) 1992-2020 Free Software Foundation, Inc.
   754  //
   755  // This file is part of GCC.
   756  //
   757  // GCC is free software; you can redistribute it and/or modify it under
   758  // the terms of the GNU General Public License as published by the Free
   759  // Software Foundation; either version 3, or (at your option) any later
   760  // version.
   761  //
   762  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
   763  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
   764  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   765  // for more details.
   766  //
   767  // Under Section 7 of GPL version 3, you are granted additional
   768  // permissions described in the GCC Runtime Library Exception, version
   769  // 3.1, as published by the Free Software Foundation.
   770  //
   771  // You should have received a copy of the GNU General Public License and
   772  // a copy of the GCC Runtime Library Exception along with this program;
   773  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
   774  // <http://www.gnu.org/licenses/>.
   775  
   776  // This administrivia gets added to the beginning of limits.h
   777  //    if the system has its own version of limits.h.
   778  
   779  // We use _GCC_LIMITS_H_ because we want this not to match
   780  //    any macros that the system's limits.h uses for its own purposes.
   781  
   782  // Use "..." so that we find syslimits.h only in this same directory.
   783  // syslimits.h stands for the system's own limits.h file.
   784  //    If we can use it ok unmodified, then we install this text.
   785  //    If fixincludes fixes it, then the fixed version is installed
   786  //    instead of this text.
   787  
   788  // *
   789  // This file has no copyright assigned and is placed in the Public Domain.
   790  // This file is part of the mingw-w64 runtime package.
   791  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   792  // *
   793  // This file has no copyright assigned and is placed in the Public Domain.
   794  // This file is part of the mingw-w64 runtime package.
   795  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   796  
   797  // File system limits
   798  //
   799  // NOTE: Apparently the actual size of PATH_MAX is 260, but a space is
   800  //       required for the NUL. TODO: Test?
   801  // NOTE: PATH_MAX is the POSIX equivalent for Microsoft's MAX_PATH; the two
   802  //       are semantically identical, with a limit of 259 characters for the
   803  //       path name, plus one for a terminating NUL, for a total of 260.
   804  
   805  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
   806  //
   807  // This file is part of GCC.
   808  //
   809  // GCC is free software; you can redistribute it and/or modify it under
   810  // the terms of the GNU General Public License as published by the Free
   811  // Software Foundation; either version 3, or (at your option) any later
   812  // version.
   813  //
   814  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
   815  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
   816  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   817  // for more details.
   818  //
   819  // Under Section 7 of GPL version 3, you are granted additional
   820  // permissions described in the GCC Runtime Library Exception, version
   821  // 3.1, as published by the Free Software Foundation.
   822  //
   823  // You should have received a copy of the GNU General Public License and
   824  // a copy of the GCC Runtime Library Exception along with this program;
   825  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
   826  // <http://www.gnu.org/licenses/>.
   827  
   828  // Number of bits in a `char'.
   829  
   830  // Maximum length of a multibyte character.
   831  
   832  // Minimum and maximum values a `signed char' can hold.
   833  
   834  // Maximum value an `unsigned char' can hold.  (Minimum is 0).
   835  
   836  // Minimum and maximum values a `char' can hold.
   837  
   838  // Minimum and maximum values a `signed short int' can hold.
   839  
   840  // Maximum value an `unsigned short int' can hold.  (Minimum is 0).
   841  
   842  // Minimum and maximum values a `signed int' can hold.
   843  
   844  // Maximum value an `unsigned int' can hold.  (Minimum is 0).
   845  
   846  // Minimum and maximum values a `signed long int' can hold.
   847  //    (Same as `int').
   848  
   849  // Maximum value an `unsigned long int' can hold.  (Minimum is 0).
   850  
   851  // Minimum and maximum values a `signed long long int' can hold.
   852  
   853  // Maximum value an `unsigned long long int' can hold.  (Minimum is 0).
   854  
   855  // Minimum and maximum values a `signed long long int' can hold.
   856  
   857  // Maximum value an `unsigned long long int' can hold.  (Minimum is 0).
   858  
   859  // This administrivia gets added to the end of limits.h
   860  //    if the system has its own version of limits.h.
   861  
   862  // *
   863  // This file has no copyright assigned and is placed in the Public Domain.
   864  // This file is part of the mingw-w64 runtime package.
   865  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   866  
   867  // *
   868  // This file has no copyright assigned and is placed in the Public Domain.
   869  // This file is part of the mingw-w64 runtime package.
   870  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   871  
   872  //
   873  //    Copyright (c) 2013-2016  mingw-w64 project
   874  //
   875  //    Permission is hereby granted, free of charge, to any person obtaining a
   876  //    copy of this software and associated documentation files (the "Software"),
   877  //    to deal in the Software without restriction, including without limitation
   878  //    the rights to use, copy, modify, merge, publish, distribute, sublicense,
   879  //    and/or sell copies of the Software, and to permit persons to whom the
   880  //    Software is furnished to do so, subject to the following conditions:
   881  //
   882  //    The above copyright notice and this permission notice shall be included in
   883  //    all copies or substantial portions of the Software.
   884  //
   885  //    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   886  //    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   887  //    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   888  //    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   889  //    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   890  //    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
   891  //    DEALINGS IN THE SOFTWARE.
   892  
   893  // Windows has rudimentary signals support.
   894  
   895  type Sig_atomic_t = int32 /* signal.h:18:15 */
   896  
   897  type X__p_sig_fn_t = uintptr /* signal.h:48:16 */
   898  
   899  // *
   900  // This file has no copyright assigned and is placed in the Public Domain.
   901  // This file is part of the mingw-w64 runtime package.
   902  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   903  
   904  // *
   905  // This file has no copyright assigned and is placed in the Public Domain.
   906  // This file is part of the mingw-w64 runtime package.
   907  // No warranty is given; refer to the file DISCLAIMER.PD within this package.
   908  
   909  type X__timeb32 = struct {
   910  	Ftime        X__time32_t
   911  	Fmillitm     uint16
   912  	Ftimezone    int16
   913  	Fdstflag     int16
   914  	F__ccgo_pad1 [2]byte
   915  } /* timeb.h:53:3 */
   916  
   917  type Timeb = struct {
   918  	Ftime        Time_t
   919  	Fmillitm     uint16
   920  	Ftimezone    int16
   921  	Fdstflag     int16
   922  	F__ccgo_pad1 [2]byte
   923  } /* timeb.h:61:3 */
   924  
   925  type X__timeb64 = struct {
   926  	Ftime        X__time64_t
   927  	Fmillitm     uint16
   928  	Ftimezone    int16
   929  	Fdstflag     int16
   930  	F__ccgo_pad1 [2]byte
   931  } /* timeb.h:69:3 */
   932  
   933  // maximum number of times a read lock may be obtained
   934  
   935  // No fork() in windows - so ignore this
   936  
   937  // unsupported stuff:
   938  
   939  type Pthread_once_t = int32          /* pthread.h:180:14 */
   940  type Pthread_mutexattr_t = uint32    /* pthread.h:181:18 */
   941  type Pthread_key_t = uint32          /* pthread.h:182:18 */
   942  type Pthread_barrierattr_t = uintptr /* pthread.h:183:14 */
   943  type Pthread_condattr_t = int32      /* pthread.h:184:13 */
   944  type Pthread_rwlockattr_t = int32    /* pthread.h:185:13 */
   945  
   946  //
   947  // struct _pthread_v;
   948  //
   949  // typedef struct pthread_t {
   950  //   struct _pthread_v *p;
   951  //   int x;
   952  // } pthread_t;
   953  
   954  type Pthread_t = Uintptr_t /* pthread.h:196:19 */
   955  
   956  type X_pthread_cleanup1 = struct {
   957  	Ffunc uintptr
   958  	Farg  uintptr
   959  	Fnext uintptr
   960  } /* pthread.h:198:9 */
   961  
   962  type X_pthread_cleanup = X_pthread_cleanup1 /* pthread.h:198:33 */
   963  
   964  // Note that if async cancelling is used, then there is a race here
   965  
   966  // Windows doesn't have this, so declare it ourselves.
   967  
   968  // Some POSIX realtime extensions, mostly stubbed
   969  
   970  type Sched_param = struct{ Fsched_priority int32 } /* pthread.h:239:1 */
   971  
   972  type Pthread_attr_t1 = struct {
   973  	Fp_state uint32
   974  	Fstack   uintptr
   975  	Fs_size  Size_t
   976  	Fparam   struct{ Fsched_priority int32 }
   977  } /* pthread.h:251:9 */
   978  
   979  type Pthread_attr_t = Pthread_attr_t1 /* pthread.h:251:31 */
   980  
   981  // synchronization objects
   982  type Pthread_spinlock_t = Intptr_t /* pthread.h:268:18 */
   983  type Pthread_mutex_t = Intptr_t    /* pthread.h:269:18 */
   984  type Pthread_cond_t = Intptr_t     /* pthread.h:270:18 */
   985  type Pthread_rwlock_t = Intptr_t   /* pthread.h:271:18 */
   986  type Pthread_barrier_t = uintptr   /* pthread.h:272:14 */
   987  
   988  type Clockid_t = int32 /* pthread.h:389:13 */
   989  
   990  //
   991  //    Copyright (c) 2011-2016  mingw-w64 project
   992  //
   993  //    Permission is hereby granted, free of charge, to any person obtaining a
   994  //    copy of this software and associated documentation files (the "Software"),
   995  //    to deal in the Software without restriction, including without limitation
   996  //    the rights to use, copy, modify, merge, publish, distribute, sublicense,
   997  //    and/or sell copies of the Software, and to permit persons to whom the
   998  //    Software is furnished to do so, subject to the following conditions:
   999  //
  1000  //    The above copyright notice and this permission notice shall be included in
  1001  //    all copies or substantial portions of the Software.
  1002  //
  1003  //    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  1004  //    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  1005  //    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  1006  //    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  1007  //    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  1008  //    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  1009  //    DEALINGS IN THE SOFTWARE.
  1010  
  1011  // Set defines described by the POSIX Threads Extension (1003.1c-1995)
  1012  // _SC_THREADS
  1013  //   Basic support for POSIX threads is available. The functions
  1014  //
  1015  //   pthread_atfork(),
  1016  //   pthread_attr_destroy(),
  1017  //   pthread_attr_getdetachstate(),
  1018  //   pthread_attr_getschedparam(),
  1019  //   pthread_attr_init(),
  1020  //   pthread_attr_setdetachstate(),
  1021  //   pthread_attr_setschedparam(),
  1022  //   pthread_cancel(),
  1023  //   pthread_cleanup_push(),
  1024  //   pthread_cleanup_pop(),
  1025  //   pthread_cond_broadcast(),
  1026  //   pthread_cond_destroy(),
  1027  //   pthread_cond_init(),
  1028  //   pthread_cond_signal(),
  1029  //   pthread_cond_timedwait(),
  1030  //   pthread_cond_wait(),
  1031  //   pthread_condattr_destroy(),
  1032  //   pthread_condattr_init(),
  1033  //   pthread_create(),
  1034  //   pthread_detach(),
  1035  //   pthread_equal(),
  1036  //   pthread_exit(),
  1037  //   pthread_getspecific(),
  1038  //   pthread_join(,
  1039  //   pthread_key_create(),
  1040  //   pthread_key_delete(),
  1041  //   pthread_mutex_destroy(),
  1042  //   pthread_mutex_init(),
  1043  //   pthread_mutex_lock(),
  1044  //   pthread_mutex_trylock(),
  1045  //   pthread_mutex_unlock(),
  1046  //   pthread_mutexattr_destroy(),
  1047  //   pthread_mutexattr_init(),
  1048  //   pthread_once(),
  1049  //   pthread_rwlock_destroy(),
  1050  //   pthread_rwlock_init(),
  1051  //   pthread_rwlock_rdlock(),
  1052  //   pthread_rwlock_tryrdlock(),
  1053  //   pthread_rwlock_trywrlock(),
  1054  //   pthread_rwlock_unlock(),
  1055  //   pthread_rwlock_wrlock(),
  1056  //   pthread_rwlockattr_destroy(),
  1057  //   pthread_rwlockattr_init(),
  1058  //   pthread_self(),
  1059  //   pthread_setcancelstate(),
  1060  //   pthread_setcanceltype(),
  1061  //   pthread_setspecific(),
  1062  //   pthread_testcancel()
  1063  //
  1064  //   are present.
  1065  
  1066  // _SC_READER_WRITER_LOCKS
  1067  //   This option implies the _POSIX_THREADS option. Conversely, under
  1068  //   POSIX 1003.1-2001 the _POSIX_THREADS option implies this option.
  1069  //
  1070  //   The functions
  1071  //   pthread_rwlock_destroy(),
  1072  //   pthread_rwlock_init(),
  1073  //   pthread_rwlock_rdlock(),
  1074  //   pthread_rwlock_tryrdlock(),
  1075  //   pthread_rwlock_trywrlock(),
  1076  //   pthread_rwlock_unlock(),
  1077  //   pthread_rwlock_wrlock(),
  1078  //   pthread_rwlockattr_destroy(),
  1079  //   pthread_rwlockattr_init()
  1080  //
  1081  //   are present.
  1082  
  1083  // _SC_SPIN_LOCKS
  1084  //   This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
  1085  //   options. The functions
  1086  //
  1087  //   pthread_spin_destroy(),
  1088  //   pthread_spin_init(),
  1089  //   pthread_spin_lock(),
  1090  //   pthread_spin_trylock(),
  1091  //   pthread_spin_unlock()
  1092  //
  1093  //   are present.
  1094  
  1095  // _SC_BARRIERS
  1096  //   This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS
  1097  //   options. The functions
  1098  //
  1099  //   pthread_barrier_destroy(),
  1100  //   pthread_barrier_init(),
  1101  //   pthread_barrier_wait(),
  1102  //   pthread_barrierattr_destroy(),
  1103  //   pthread_barrierattr_init()
  1104  //
  1105  //   are present.
  1106  
  1107  // _SC_TIMEOUTS
  1108  //   The functions
  1109  //
  1110  //   mq_timedreceive(), - not supported
  1111  //   mq_timedsend(), - not supported
  1112  //   posix_trace_timedgetnext_event(), - not supported
  1113  //   pthread_mutex_timedlock(),
  1114  //   pthread_rwlock_timedrdlock(),
  1115  //   pthread_rwlock_timedwrlock(),
  1116  //   sem_timedwait(),
  1117  //
  1118  //   are present.
  1119  
  1120  // _SC_TIMERS - not supported
  1121  //   The functions
  1122  //
  1123  //   clock_getres(),
  1124  //   clock_gettime(),
  1125  //   clock_settime(),
  1126  //   nanosleep(),
  1127  //   timer_create(),
  1128  //   timer_delete(),
  1129  //   timer_gettime(),
  1130  //   timer_getoverrun(),
  1131  //   timer_settime()
  1132  //
  1133  //   are present.
  1134  // #undef _POSIX_TIMERS
  1135  
  1136  // _SC_CLOCK_SELECTION
  1137  //    This option implies the _POSIX_TIMERS option. The functions
  1138  //
  1139  //    pthread_condattr_getclock(),
  1140  //    pthread_condattr_setclock(),
  1141  //    clock_nanosleep()
  1142  //
  1143  //    are present.
  1144  
  1145  // _SC_SEMAPHORES
  1146  //   The include file <semaphore.h> is present. The functions
  1147  //
  1148  //   sem_close(),
  1149  //   sem_destroy(),
  1150  //   sem_getvalue(),
  1151  //   sem_init(),
  1152  //   sem_open(),
  1153  //   sem_post(),
  1154  //   sem_trywait(),
  1155  //   sem_unlink(),
  1156  //   sem_wait()
  1157  //
  1158  //   are present.
  1159  
  1160  // Wrap cancellation points.
  1161  
  1162  // We deal here with a gcc issue for posix threading on Windows.
  1163  //    We would need to change here gcc's gthr-posix.h header, but this
  1164  //    got rejected.  So we deal it within this header.
  1165  
  1166  var _ int8 /* gen.c:2:13: */