pthread_windows_386.go (59019B)
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: */