gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

pthread_windows_amd64.go (47046B)


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