gtsocial-umbx

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

stdlib_linux_s390x.go (65159B)


      1 // Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_s390x.go -pkgname stdlib', DO NOT EDIT.
      2 
      3 package stdlib
      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 	BIG_ENDIAN                   = 4321
     19 	BYTE_ORDER                   = 4321
     20 	EXIT_FAILURE                 = 1
     21 	EXIT_SUCCESS                 = 0
     22 	FD_SETSIZE                   = 1024
     23 	LITTLE_ENDIAN                = 1234
     24 	PDP_ENDIAN                   = 3412
     25 	RAND_MAX                     = 2147483647
     26 	WCONTINUED                   = 8
     27 	WEXITED                      = 4
     28 	WNOHANG                      = 1
     29 	WNOWAIT                      = 0x01000000
     30 	WSTOPPED                     = 2
     31 	WUNTRACED                    = 2
     32 	X_ALLOCA_H                   = 1
     33 	X_ATFILE_SOURCE              = 1
     34 	X_BITS_BYTESWAP_H            = 1
     35 	X_BITS_ENDIANNESS_H          = 1
     36 	X_BITS_ENDIAN_H              = 1
     37 	X_BITS_FLOATN_COMMON_H       = 0
     38 	X_BITS_FLOATN_H              = 0
     39 	X_BITS_PTHREADTYPES_ARCH_H   = 1
     40 	X_BITS_PTHREADTYPES_COMMON_H = 1
     41 	X_BITS_STDINT_INTN_H         = 1
     42 	X_BITS_TIME64_H              = 1
     43 	X_BITS_TYPESIZES_H           = 1
     44 	X_BITS_TYPES_H               = 1
     45 	X_BITS_UINTN_IDENTITY_H      = 1
     46 	X_BSD_SIZE_T_                = 0
     47 	X_BSD_SIZE_T_DEFINED_        = 0
     48 	X_DEFAULT_SOURCE             = 1
     49 	X_ENDIAN_H                   = 1
     50 	X_FEATURES_H                 = 1
     51 	X_FILE_OFFSET_BITS           = 64
     52 	X_GCC_SIZE_T                 = 0
     53 	X_GCC_WCHAR_T                = 0
     54 	X_LP64                       = 1
     55 	X_POSIX_C_SOURCE             = 200809
     56 	X_POSIX_SOURCE               = 1
     57 	X_RWLOCK_INTERNAL_H          = 0
     58 	X_SIZET_                     = 0
     59 	X_SIZE_T                     = 0
     60 	X_SIZE_T_                    = 0
     61 	X_SIZE_T_DECLARED            = 0
     62 	X_SIZE_T_DEFINED             = 0
     63 	X_SIZE_T_DEFINED_            = 0
     64 	X_STDC_PREDEF_H              = 1
     65 	X_STDLIB_H                   = 1
     66 	X_STRUCT_TIMESPEC            = 1
     67 	X_SYS_CDEFS_H                = 1
     68 	X_SYS_SELECT_H               = 1
     69 	X_SYS_SIZE_T_H               = 0
     70 	X_SYS_TYPES_H                = 1
     71 	X_THREAD_MUTEX_INTERNAL_H    = 1
     72 	X_THREAD_SHARED_TYPES_H      = 1
     73 	X_T_SIZE                     = 0
     74 	X_T_SIZE_                    = 0
     75 	X_T_WCHAR                    = 0
     76 	X_T_WCHAR_                   = 0
     77 	X_WCHAR_T                    = 0
     78 	X_WCHAR_T_                   = 0
     79 	X_WCHAR_T_DECLARED           = 0
     80 	X_WCHAR_T_DEFINED            = 0
     81 	X_WCHAR_T_DEFINED_           = 0
     82 	X_WCHAR_T_H                  = 0
     83 	Linux                        = 1
     84 	Unix                         = 1
     85 )
     86 
     87 // A null pointer constant.
     88 
     89 // XPG requires a few symbols from <sys/wait.h> being defined.
     90 // Definitions of flag bits for `waitpid' et al.
     91 //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
     92 //    This file is part of the GNU C Library.
     93 //
     94 //    The GNU C Library is free software; you can redistribute it and/or
     95 //    modify it under the terms of the GNU Lesser General Public
     96 //    License as published by the Free Software Foundation; either
     97 //    version 2.1 of the License, or (at your option) any later version.
     98 //
     99 //    The GNU C Library is distributed in the hope that it will be useful,
    100 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    101 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    102 //    Lesser General Public License for more details.
    103 //
    104 //    You should have received a copy of the GNU Lesser General Public
    105 //    License along with the GNU C Library; if not, see
    106 //    <https://www.gnu.org/licenses/>.
    107 
    108 // Bits in the third argument to `waitpid'.
    109 
    110 // Bits in the fourth argument to `waitid'.
    111 
    112 // The following values are used by the `waitid' function.
    113 
    114 // The Linux kernel defines these bare, rather than an enum,
    115 //    which causes a conflict if the include order is reversed.
    116 
    117 const ( /* waitflags.h:52:1: */
    118 	P_ALL  = 0 // Wait for any child.
    119 	P_PID  = 1 // Wait for specified process.
    120 	P_PGID = 2
    121 )
    122 
    123 type Ptrdiff_t = int64 /* <builtin>:3:26 */
    124 
    125 type Size_t = uint64 /* <builtin>:9:23 */
    126 
    127 type Wchar_t = int32 /* <builtin>:15:24 */
    128 
    129 type X__int128_t = struct {
    130 	Flo int64
    131 	Fhi int64
    132 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
    133 type X__uint128_t = struct {
    134 	Flo uint64
    135 	Fhi uint64
    136 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
    137 
    138 type X__builtin_va_list = uintptr /* <builtin>:46:14 */
    139 type X__float128 = float64        /* <builtin>:47:21 */
    140 
    141 // A null pointer constant.
    142 
    143 // XPG requires a few symbols from <sys/wait.h> being defined.
    144 // Definitions of flag bits for `waitpid' et al.
    145 //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
    146 //    This file is part of the GNU C Library.
    147 //
    148 //    The GNU C Library is free software; you can redistribute it and/or
    149 //    modify it under the terms of the GNU Lesser General Public
    150 //    License as published by the Free Software Foundation; either
    151 //    version 2.1 of the License, or (at your option) any later version.
    152 //
    153 //    The GNU C Library is distributed in the hope that it will be useful,
    154 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    155 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    156 //    Lesser General Public License for more details.
    157 //
    158 //    You should have received a copy of the GNU Lesser General Public
    159 //    License along with the GNU C Library; if not, see
    160 //    <https://www.gnu.org/licenses/>.
    161 
    162 // Bits in the third argument to `waitpid'.
    163 
    164 // Bits in the fourth argument to `waitid'.
    165 
    166 // The following values are used by the `waitid' function.
    167 
    168 // The Linux kernel defines these bare, rather than an enum,
    169 //    which causes a conflict if the include order is reversed.
    170 
    171 type Idtype_t = uint32 /* waitflags.h:57:3 */
    172 // Definitions of status bits for `wait' et al.
    173 //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
    174 //    This file is part of the GNU C Library.
    175 //
    176 //    The GNU C Library is free software; you can redistribute it and/or
    177 //    modify it under the terms of the GNU Lesser General Public
    178 //    License as published by the Free Software Foundation; either
    179 //    version 2.1 of the License, or (at your option) any later version.
    180 //
    181 //    The GNU C Library is distributed in the hope that it will be useful,
    182 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    183 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    184 //    Lesser General Public License for more details.
    185 //
    186 //    You should have received a copy of the GNU Lesser General Public
    187 //    License along with the GNU C Library; if not, see
    188 //    <https://www.gnu.org/licenses/>.
    189 
    190 // Everything extant so far uses these same bits.
    191 
    192 // If WIFEXITED(STATUS), the low-order 8 bits of the status.
    193 
    194 // If WIFSIGNALED(STATUS), the terminating signal.
    195 
    196 // If WIFSTOPPED(STATUS), the signal that stopped the child.
    197 
    198 // Nonzero if STATUS indicates normal termination.
    199 
    200 // Nonzero if STATUS indicates termination by a signal.
    201 
    202 // Nonzero if STATUS indicates the child is stopped.
    203 
    204 // Nonzero if STATUS indicates the child continued after a stop.  We only
    205 //    define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
    206 
    207 // Nonzero if STATUS indicates the child dumped core.
    208 
    209 // Macros for constructing status values.
    210 
    211 // Define the macros <sys/wait.h> also would define this way.
    212 
    213 // _FloatN API tests for enablement.
    214 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
    215 //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
    216 //    This file is part of the GNU C Library.
    217 //
    218 //    The GNU C Library is free software; you can redistribute it and/or
    219 //    modify it under the terms of the GNU Lesser General Public
    220 //    License as published by the Free Software Foundation; either
    221 //    version 2.1 of the License, or (at your option) any later version.
    222 //
    223 //    The GNU C Library is distributed in the hope that it will be useful,
    224 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    225 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    226 //    Lesser General Public License for more details.
    227 //
    228 //    You should have received a copy of the GNU Lesser General Public
    229 //    License along with the GNU C Library; if not, see
    230 //    <https://www.gnu.org/licenses/>.
    231 
    232 // Copyright (C) 1991-2020 Free Software Foundation, Inc.
    233 //    This file is part of the GNU C Library.
    234 //
    235 //    The GNU C Library is free software; you can redistribute it and/or
    236 //    modify it under the terms of the GNU Lesser General Public
    237 //    License as published by the Free Software Foundation; either
    238 //    version 2.1 of the License, or (at your option) any later version.
    239 //
    240 //    The GNU C Library is distributed in the hope that it will be useful,
    241 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    242 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    243 //    Lesser General Public License for more details.
    244 //
    245 //    You should have received a copy of the GNU Lesser General Public
    246 //    License along with the GNU C Library; if not, see
    247 //    <https://www.gnu.org/licenses/>.
    248 
    249 // Properties of long double type.  ldbl-opt version.
    250 //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
    251 //    This file is part of the GNU C Library.
    252 //
    253 //    The GNU C Library is free software; you can redistribute it and/or
    254 //    modify it under the terms of the GNU Lesser General Public
    255 //    License  published by the Free Software Foundation; either
    256 //    version 2.1 of the License, or (at your option) any later version.
    257 //
    258 //    The GNU C Library is distributed in the hope that it will be useful,
    259 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    260 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    261 //    Lesser General Public License for more details.
    262 //
    263 //    You should have received a copy of the GNU Lesser General Public
    264 //    License along with the GNU C Library; if not, see
    265 //    <https://www.gnu.org/licenses/>.
    266 
    267 // Defined to 1 if the current compiler invocation provides a
    268 //    floating-point type with the IEEE 754 binary128 format, and this
    269 //    glibc includes corresponding *f128 interfaces for it.
    270 
    271 // Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
    272 //    from the default float, double and long double types in this glibc.
    273 
    274 // Defined to 1 if the current compiler invocation provides a
    275 //    floating-point type with the right format for _Float64x, and this
    276 //    glibc includes corresponding *f64x interfaces for it.
    277 
    278 // Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
    279 //    of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
    280 //    the format of _Float128, which must be different from that of long
    281 //    double.
    282 
    283 // Defined to concatenate the literal suffix to be used with _Float128
    284 //    types, if __HAVE_FLOAT128 is 1.
    285 
    286 // Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
    287 
    288 // The remaining of this file provides support for older compilers.
    289 
    290 // The type _Float128 exists only since GCC 7.0.
    291 
    292 // Various built-in functions do not exist before GCC 7.0.
    293 
    294 // Macros to control TS 18661-3 glibc features where the same
    295 //    definitions are appropriate for all platforms.
    296 //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
    297 //    This file is part of the GNU C Library.
    298 //
    299 //    The GNU C Library is free software; you can redistribute it and/or
    300 //    modify it under the terms of the GNU Lesser General Public
    301 //    License as published by the Free Software Foundation; either
    302 //    version 2.1 of the License, or (at your option) any later version.
    303 //
    304 //    The GNU C Library is distributed in the hope that it will be useful,
    305 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    306 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    307 //    Lesser General Public License for more details.
    308 //
    309 //    You should have received a copy of the GNU Lesser General Public
    310 //    License along with the GNU C Library; if not, see
    311 //    <https://www.gnu.org/licenses/>.
    312 
    313 // Copyright (C) 1991-2020 Free Software Foundation, Inc.
    314 //    This file is part of the GNU C Library.
    315 //
    316 //    The GNU C Library is free software; you can redistribute it and/or
    317 //    modify it under the terms of the GNU Lesser General Public
    318 //    License as published by the Free Software Foundation; either
    319 //    version 2.1 of the License, or (at your option) any later version.
    320 //
    321 //    The GNU C Library is distributed in the hope that it will be useful,
    322 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    323 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    324 //    Lesser General Public License for more details.
    325 //
    326 //    You should have received a copy of the GNU Lesser General Public
    327 //    License along with the GNU C Library; if not, see
    328 //    <https://www.gnu.org/licenses/>.
    329 
    330 // Properties of long double type.  ldbl-opt version.
    331 //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
    332 //    This file is part of the GNU C Library.
    333 //
    334 //    The GNU C Library is free software; you can redistribute it and/or
    335 //    modify it under the terms of the GNU Lesser General Public
    336 //    License  published by the Free Software Foundation; either
    337 //    version 2.1 of the License, or (at your option) any later version.
    338 //
    339 //    The GNU C Library is distributed in the hope that it will be useful,
    340 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    341 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    342 //    Lesser General Public License for more details.
    343 //
    344 //    You should have received a copy of the GNU Lesser General Public
    345 //    License along with the GNU C Library; if not, see
    346 //    <https://www.gnu.org/licenses/>.
    347 
    348 // This header should be included at the bottom of each bits/floatn.h.
    349 //    It defines the following macros for each _FloatN and _FloatNx type,
    350 //    where the same definitions, or definitions based only on the macros
    351 //    in bits/floatn.h, are appropriate for all glibc configurations.
    352 
    353 // Defined to 1 if the current compiler invocation provides a
    354 //    floating-point type with the right format for this type, and this
    355 //    glibc includes corresponding *fN or *fNx interfaces for it.
    356 
    357 // Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
    358 //    type is the first with its format in the sequence of (the default
    359 //    choices for) float, double, long double, _Float16, _Float32,
    360 //    _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
    361 //    glibc; that is, if functions present once per floating-point format
    362 //    rather than once per type are present for this type.
    363 //
    364 //    All configurations supported by glibc have _Float32 the same format
    365 //    as float, _Float64 and _Float32x the same format as double, the
    366 //    _Float64x the same format as either long double or _Float128.  No
    367 //    configurations support _Float128x or, as of GCC 7, have compiler
    368 //    support for a type meeting the requirements for _Float128x.
    369 
    370 // Defined to 1 if the corresponding _FloatN type is not binary compatible
    371 //    with the corresponding ISO C type in the current compilation unit as
    372 //    opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
    373 //    in glibc.
    374 
    375 // Defined to 1 if any _FloatN or _FloatNx types that are not
    376 //    ABI-distinct are however distinct types at the C language level (so
    377 //    for the purposes of __builtin_types_compatible_p and _Generic).
    378 
    379 // Defined to concatenate the literal suffix to be used with _FloatN
    380 //    or _FloatNx types, if __HAVE_<type> is 1.  The corresponding
    381 //    literal suffixes exist since GCC 7, for C only.
    382 
    383 // Defined to a complex type if __HAVE_<type> is 1.
    384 
    385 // The remaining of this file provides support for older compilers.
    386 
    387 // If double, long double and _Float64 all have the same set of
    388 //    values, TS 18661-3 requires the usual arithmetic conversions on
    389 //    long double and _Float64 to produce _Float64.  For this to be the
    390 //    case when building with a compiler without a distinct _Float64
    391 //    type, _Float64 must be a typedef for long double, not for
    392 //    double.
    393 
    394 // Returned by `div'.
    395 type Div_t = struct {
    396 	Fquot int32
    397 	Frem  int32
    398 } /* stdlib.h:62:5 */
    399 
    400 // Returned by `ldiv'.
    401 type Ldiv_t = struct {
    402 	Fquot int64
    403 	Frem  int64
    404 } /* stdlib.h:70:5 */
    405 
    406 // Returned by `lldiv'.
    407 type Lldiv_t = struct {
    408 	Fquot int64
    409 	Frem  int64
    410 } /* stdlib.h:80:5 */
    411 
    412 // Copyright (C) 1991-2020 Free Software Foundation, Inc.
    413 //    This file is part of the GNU C Library.
    414 //
    415 //    The GNU C Library is free software; you can redistribute it and/or
    416 //    modify it under the terms of the GNU Lesser General Public
    417 //    License as published by the Free Software Foundation; either
    418 //    version 2.1 of the License, or (at your option) any later version.
    419 //
    420 //    The GNU C Library is distributed in the hope that it will be useful,
    421 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    422 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    423 //    Lesser General Public License for more details.
    424 //
    425 //    You should have received a copy of the GNU Lesser General Public
    426 //    License along with the GNU C Library; if not, see
    427 //    <https://www.gnu.org/licenses/>.
    428 
    429 //	POSIX Standard: 2.6 Primitive System Data Types	<sys/types.h>
    430 
    431 // Copyright (C) 1991-2020 Free Software Foundation, Inc.
    432 //    This file is part of the GNU C Library.
    433 //
    434 //    The GNU C Library is free software; you can redistribute it and/or
    435 //    modify it under the terms of the GNU Lesser General Public
    436 //    License as published by the Free Software Foundation; either
    437 //    version 2.1 of the License, or (at your option) any later version.
    438 //
    439 //    The GNU C Library is distributed in the hope that it will be useful,
    440 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    441 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    442 //    Lesser General Public License for more details.
    443 //
    444 //    You should have received a copy of the GNU Lesser General Public
    445 //    License along with the GNU C Library; if not, see
    446 //    <https://www.gnu.org/licenses/>.
    447 
    448 // bits/types.h -- definitions of __*_t types underlying *_t types.
    449 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
    450 //    This file is part of the GNU C Library.
    451 //
    452 //    The GNU C Library is free software; you can redistribute it and/or
    453 //    modify it under the terms of the GNU Lesser General Public
    454 //    License as published by the Free Software Foundation; either
    455 //    version 2.1 of the License, or (at your option) any later version.
    456 //
    457 //    The GNU C Library is distributed in the hope that it will be useful,
    458 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    459 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    460 //    Lesser General Public License for more details.
    461 //
    462 //    You should have received a copy of the GNU Lesser General Public
    463 //    License along with the GNU C Library; if not, see
    464 //    <https://www.gnu.org/licenses/>.
    465 
    466 // Never include this file directly; use <sys/types.h> instead.
    467 
    468 // Copyright (C) 1991-2020 Free Software Foundation, Inc.
    469 //    This file is part of the GNU C Library.
    470 //
    471 //    The GNU C Library is free software; you can redistribute it and/or
    472 //    modify it under the terms of the GNU Lesser General Public
    473 //    License as published by the Free Software Foundation; either
    474 //    version 2.1 of the License, or (at your option) any later version.
    475 //
    476 //    The GNU C Library is distributed in the hope that it will be useful,
    477 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    478 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    479 //    Lesser General Public License for more details.
    480 //
    481 //    You should have received a copy of the GNU Lesser General Public
    482 //    License along with the GNU C Library; if not, see
    483 //    <https://www.gnu.org/licenses/>.
    484 
    485 // Determine the wordsize from the preprocessor defines.
    486 
    487 // Bit size of the time_t type at glibc build time, general case.
    488 //    Copyright (C) 2018-2020 Free Software Foundation, Inc.
    489 //    This file is part of the GNU C Library.
    490 //
    491 //    The GNU C Library is free software; you can redistribute it and/or
    492 //    modify it under the terms of the GNU Lesser General Public
    493 //    License as published by the Free Software Foundation; either
    494 //    version 2.1 of the License, or (at your option) any later version.
    495 //
    496 //    The GNU C Library is distributed in the hope that it will be useful,
    497 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    498 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    499 //    Lesser General Public License for more details.
    500 //
    501 //    You should have received a copy of the GNU Lesser General Public
    502 //    License along with the GNU C Library; if not, see
    503 //    <https://www.gnu.org/licenses/>.
    504 
    505 // Determine the wordsize from the preprocessor defines.
    506 
    507 // Size in bits of the 'time_t' type of the default ABI.
    508 
    509 // Convenience types.
    510 type X__u_char = uint8   /* types.h:31:23 */
    511 type X__u_short = uint16 /* types.h:32:28 */
    512 type X__u_int = uint32   /* types.h:33:22 */
    513 type X__u_long = uint64  /* types.h:34:27 */
    514 
    515 // Fixed-size types, underlying types depend on word size and compiler.
    516 type X__int8_t = int8     /* types.h:37:21 */
    517 type X__uint8_t = uint8   /* types.h:38:23 */
    518 type X__int16_t = int16   /* types.h:39:26 */
    519 type X__uint16_t = uint16 /* types.h:40:28 */
    520 type X__int32_t = int32   /* types.h:41:20 */
    521 type X__uint32_t = uint32 /* types.h:42:22 */
    522 type X__int64_t = int64   /* types.h:44:25 */
    523 type X__uint64_t = uint64 /* types.h:45:27 */
    524 
    525 // Smallest types with at least a given width.
    526 type X__int_least8_t = X__int8_t     /* types.h:52:18 */
    527 type X__uint_least8_t = X__uint8_t   /* types.h:53:19 */
    528 type X__int_least16_t = X__int16_t   /* types.h:54:19 */
    529 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */
    530 type X__int_least32_t = X__int32_t   /* types.h:56:19 */
    531 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */
    532 type X__int_least64_t = X__int64_t   /* types.h:58:19 */
    533 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */
    534 
    535 // quad_t is also 64 bits.
    536 type X__quad_t = int64    /* types.h:63:18 */
    537 type X__u_quad_t = uint64 /* types.h:64:27 */
    538 
    539 // Largest integral types.
    540 type X__intmax_t = int64   /* types.h:72:18 */
    541 type X__uintmax_t = uint64 /* types.h:73:27 */
    542 
    543 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
    544 //    macros for each of the OS types we define below.  The definitions
    545 //    of those macros must use the following macros for underlying types.
    546 //    We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
    547 //    variants of each of the following integer types on this machine.
    548 //
    549 // 	16		-- "natural" 16-bit type (always short)
    550 // 	32		-- "natural" 32-bit type (always int)
    551 // 	64		-- "natural" 64-bit type (long or long long)
    552 // 	LONG32		-- 32-bit type, traditionally long
    553 // 	QUAD		-- 64-bit type, traditionally long long
    554 // 	WORD		-- natural type of __WORDSIZE bits (int or long)
    555 // 	LONGWORD	-- type of __WORDSIZE bits, traditionally long
    556 //
    557 //    We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
    558 //    conventional uses of `long' or `long long' type modifiers match the
    559 //    types we define, even when a less-adorned type would be the same size.
    560 //    This matters for (somewhat) portably writing printf/scanf formats for
    561 //    these types, where using the appropriate l or ll format modifiers can
    562 //    make the typedefs and the formats match up across all GNU platforms.  If
    563 //    we used `long' when it's 64 bits where `long long' is expected, then the
    564 //    compiler would warn about the formats not matching the argument types,
    565 //    and the programmer changing them to shut up the compiler would break the
    566 //    program's portability.
    567 //
    568 //    Here we assume what is presently the case in all the GCC configurations
    569 //    we support: long long is always 64 bits, long is always word/address size,
    570 //    and int is always 32 bits.
    571 
    572 // No need to mark the typedef with __extension__.
    573 // bits/typesizes.h -- underlying types for *_t.  Linux/s390 version.
    574 //    Copyright (C) 2003-2020 Free Software Foundation, Inc.
    575 //    This file is part of the GNU C Library.
    576 //
    577 //    The GNU C Library is free software; you can redistribute it and/or
    578 //    modify it under the terms of the GNU Lesser General Public
    579 //    License as published by the Free Software Foundation; either
    580 //    version 2.1 of the License, or (at your option) any later version.
    581 //
    582 //    The GNU C Library is distributed in the hope that it will be useful,
    583 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    584 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    585 //    Lesser General Public License for more details.
    586 //
    587 //    You should have received a copy of the GNU Lesser General Public
    588 //    License along with the GNU C Library; if not, see
    589 //    <https://www.gnu.org/licenses/>.
    590 
    591 // See <bits/types.h> for the meaning of these macros.  This file exists so
    592 //    that <bits/types.h> need not vary across different GNU platforms.
    593 
    594 // size_t is unsigned long int on s390 -m31.
    595 
    596 // Tell the libc code that off_t and off64_t are actually the same type
    597 //    for all ABI purposes, even if possibly expressed as different base types
    598 //    for C type-checking purposes.
    599 
    600 // Same for ino_t and ino64_t.
    601 
    602 // And for __rlim_t and __rlim64_t.
    603 
    604 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
    605 
    606 // Number of descriptors that can fit in an `fd_set'.
    607 
    608 // bits/time64.h -- underlying types for __time64_t.  Generic version.
    609 //    Copyright (C) 2018-2020 Free Software Foundation, Inc.
    610 //    This file is part of the GNU C Library.
    611 //
    612 //    The GNU C Library is free software; you can redistribute it and/or
    613 //    modify it under the terms of the GNU Lesser General Public
    614 //    License as published by the Free Software Foundation; either
    615 //    version 2.1 of the License, or (at your option) any later version.
    616 //
    617 //    The GNU C Library is distributed in the hope that it will be useful,
    618 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    619 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    620 //    Lesser General Public License for more details.
    621 //
    622 //    You should have received a copy of the GNU Lesser General Public
    623 //    License along with the GNU C Library; if not, see
    624 //    <https://www.gnu.org/licenses/>.
    625 
    626 // Define __TIME64_T_TYPE so that it is always a 64-bit type.
    627 
    628 // If we already have 64-bit time type then use it.
    629 
    630 type X__dev_t = uint64                     /* types.h:145:25 */ // Type of device numbers.
    631 type X__uid_t = uint32                     /* types.h:146:25 */ // Type of user identifications.
    632 type X__gid_t = uint32                     /* types.h:147:25 */ // Type of group identifications.
    633 type X__ino_t = uint64                     /* types.h:148:25 */ // Type of file serial numbers.
    634 type X__ino64_t = uint64                   /* types.h:149:27 */ // Type of file serial numbers (LFS).
    635 type X__mode_t = uint32                    /* types.h:150:26 */ // Type of file attribute bitmasks.
    636 type X__nlink_t = uint64                   /* types.h:151:27 */ // Type of file link counts.
    637 type X__off_t = int64                      /* types.h:152:25 */ // Type of file sizes and offsets.
    638 type X__off64_t = int64                    /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
    639 type X__pid_t = int32                      /* types.h:154:25 */ // Type of process identifications.
    640 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
    641 type X__clock_t = int64                    /* types.h:156:27 */ // Type of CPU usage counts.
    642 type X__rlim_t = uint64                    /* types.h:157:26 */ // Type for resource measurement.
    643 type X__rlim64_t = uint64                  /* types.h:158:28 */ // Type for resource measurement (LFS).
    644 type X__id_t = uint32                      /* types.h:159:24 */ // General type for IDs.
    645 type X__time_t = int64                     /* types.h:160:26 */ // Seconds since the Epoch.
    646 type X__useconds_t = uint32                /* types.h:161:30 */ // Count of microseconds.
    647 type X__suseconds_t = int64                /* types.h:162:31 */ // Signed count of microseconds.
    648 
    649 type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address.
    650 type X__key_t = int32   /* types.h:165:25 */ // Type of an IPC key.
    651 
    652 // Clock ID used in clock and timer functions.
    653 type X__clockid_t = int32 /* types.h:168:29 */
    654 
    655 // Timer ID returned by `timer_create'.
    656 type X__timer_t = uintptr /* types.h:171:12 */
    657 
    658 // Type to represent block size.
    659 type X__blksize_t = int64 /* types.h:174:29 */
    660 
    661 // Types from the Large File Support interface.
    662 
    663 // Type to count number of disk blocks.
    664 type X__blkcnt_t = int64   /* types.h:179:28 */
    665 type X__blkcnt64_t = int64 /* types.h:180:30 */
    666 
    667 // Type to count file system blocks.
    668 type X__fsblkcnt_t = uint64   /* types.h:183:30 */
    669 type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
    670 
    671 // Type to count file system nodes.
    672 type X__fsfilcnt_t = uint64   /* types.h:187:30 */
    673 type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
    674 
    675 // Type of miscellaneous file system fields.
    676 type X__fsword_t = int64 /* types.h:191:28 */
    677 
    678 type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
    679 
    680 // Signed long type used in system calls.
    681 type X__syscall_slong_t = int64 /* types.h:196:33 */
    682 // Unsigned long type used in system calls.
    683 type X__syscall_ulong_t = uint64 /* types.h:198:33 */
    684 
    685 // These few don't really vary by system, they always correspond
    686 //
    687 //	to one of the other defined types.
    688 type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS).
    689 type X__caddr_t = uintptr   /* types.h:203:14 */
    690 
    691 // Duplicates info from stdint.h but this is used in unistd.h.
    692 type X__intptr_t = int64 /* types.h:206:25 */
    693 
    694 // Duplicate info from sys/socket.h.
    695 type X__socklen_t = uint32 /* types.h:209:23 */
    696 
    697 // C99: An integer type that can be accessed as an atomic entity,
    698 //
    699 //	even in the presence of asynchronous interrupts.
    700 //	It is not currently necessary for this to be machine-specific.
    701 type X__sig_atomic_t = int32 /* types.h:214:13 */
    702 
    703 // Seconds since the Epoch, visible to user code when time_t is too
    704 //    narrow only for consistency with the old way of widening too-narrow
    705 //    types.  User code should never use __time64_t.
    706 
    707 type U_char = X__u_char     /* types.h:33:18 */
    708 type U_short = X__u_short   /* types.h:34:19 */
    709 type U_int = X__u_int       /* types.h:35:17 */
    710 type U_long = X__u_long     /* types.h:36:18 */
    711 type Quad_t = X__quad_t     /* types.h:37:18 */
    712 type U_quad_t = X__u_quad_t /* types.h:38:20 */
    713 type Fsid_t = X__fsid_t     /* types.h:39:18 */
    714 type Loff_t = X__loff_t     /* types.h:42:18 */
    715 
    716 type Ino_t = X__ino64_t /* types.h:49:19 */
    717 
    718 type Dev_t = X__dev_t /* types.h:59:17 */
    719 
    720 type Gid_t = X__gid_t /* types.h:64:17 */
    721 
    722 type Mode_t = X__mode_t /* types.h:69:18 */
    723 
    724 type Nlink_t = X__nlink_t /* types.h:74:19 */
    725 
    726 type Uid_t = X__uid_t /* types.h:79:17 */
    727 
    728 type Off_t = X__off64_t /* types.h:87:19 */
    729 
    730 type Pid_t = X__pid_t /* types.h:97:17 */
    731 
    732 type Id_t = X__id_t /* types.h:103:16 */
    733 
    734 type Ssize_t = X__ssize_t /* types.h:108:19 */
    735 
    736 type Daddr_t = X__daddr_t /* types.h:114:19 */
    737 type Caddr_t = X__caddr_t /* types.h:115:19 */
    738 
    739 type Key_t = X__key_t /* types.h:121:17 */
    740 
    741 // bits/types.h -- definitions of __*_t types underlying *_t types.
    742 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
    743 //    This file is part of the GNU C Library.
    744 //
    745 //    The GNU C Library is free software; you can redistribute it and/or
    746 //    modify it under the terms of the GNU Lesser General Public
    747 //    License as published by the Free Software Foundation; either
    748 //    version 2.1 of the License, or (at your option) any later version.
    749 //
    750 //    The GNU C Library is distributed in the hope that it will be useful,
    751 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    752 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    753 //    Lesser General Public License for more details.
    754 //
    755 //    You should have received a copy of the GNU Lesser General Public
    756 //    License along with the GNU C Library; if not, see
    757 //    <https://www.gnu.org/licenses/>.
    758 
    759 // Never include this file directly; use <sys/types.h> instead.
    760 
    761 // Returned by `clock'.
    762 type Clock_t = X__clock_t /* clock_t.h:7:19 */
    763 
    764 // bits/types.h -- definitions of __*_t types underlying *_t types.
    765 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
    766 //    This file is part of the GNU C Library.
    767 //
    768 //    The GNU C Library is free software; you can redistribute it and/or
    769 //    modify it under the terms of the GNU Lesser General Public
    770 //    License as published by the Free Software Foundation; either
    771 //    version 2.1 of the License, or (at your option) any later version.
    772 //
    773 //    The GNU C Library is distributed in the hope that it will be useful,
    774 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    775 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    776 //    Lesser General Public License for more details.
    777 //
    778 //    You should have received a copy of the GNU Lesser General Public
    779 //    License along with the GNU C Library; if not, see
    780 //    <https://www.gnu.org/licenses/>.
    781 
    782 // Never include this file directly; use <sys/types.h> instead.
    783 
    784 // Clock ID used in clock and timer functions.
    785 type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
    786 
    787 // bits/types.h -- definitions of __*_t types underlying *_t types.
    788 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
    789 //    This file is part of the GNU C Library.
    790 //
    791 //    The GNU C Library is free software; you can redistribute it and/or
    792 //    modify it under the terms of the GNU Lesser General Public
    793 //    License as published by the Free Software Foundation; either
    794 //    version 2.1 of the License, or (at your option) any later version.
    795 //
    796 //    The GNU C Library is distributed in the hope that it will be useful,
    797 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    798 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    799 //    Lesser General Public License for more details.
    800 //
    801 //    You should have received a copy of the GNU Lesser General Public
    802 //    License along with the GNU C Library; if not, see
    803 //    <https://www.gnu.org/licenses/>.
    804 
    805 // Never include this file directly; use <sys/types.h> instead.
    806 
    807 // Returned by `time'.
    808 type Time_t = X__time_t /* time_t.h:7:18 */
    809 
    810 // bits/types.h -- definitions of __*_t types underlying *_t types.
    811 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
    812 //    This file is part of the GNU C Library.
    813 //
    814 //    The GNU C Library is free software; you can redistribute it and/or
    815 //    modify it under the terms of the GNU Lesser General Public
    816 //    License as published by the Free Software Foundation; either
    817 //    version 2.1 of the License, or (at your option) any later version.
    818 //
    819 //    The GNU C Library is distributed in the hope that it will be useful,
    820 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    821 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    822 //    Lesser General Public License for more details.
    823 //
    824 //    You should have received a copy of the GNU Lesser General Public
    825 //    License along with the GNU C Library; if not, see
    826 //    <https://www.gnu.org/licenses/>.
    827 
    828 // Never include this file directly; use <sys/types.h> instead.
    829 
    830 // Timer ID returned by `timer_create'.
    831 type Timer_t = X__timer_t /* timer_t.h:7:19 */
    832 
    833 // Copyright (C) 1989-2020 Free Software Foundation, Inc.
    834 //
    835 // This file is part of GCC.
    836 //
    837 // GCC is free software; you can redistribute it and/or modify
    838 // it under the terms of the GNU General Public License as published by
    839 // the Free Software Foundation; either version 3, or (at your option)
    840 // any later version.
    841 //
    842 // GCC is distributed in the hope that it will be useful,
    843 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    844 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    845 // GNU General Public License for more details.
    846 //
    847 // Under Section 7 of GPL version 3, you are granted additional
    848 // permissions described in the GCC Runtime Library Exception, version
    849 // 3.1, as published by the Free Software Foundation.
    850 //
    851 // You should have received a copy of the GNU General Public License and
    852 // a copy of the GCC Runtime Library Exception along with this program;
    853 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    854 // <http://www.gnu.org/licenses/>.
    855 
    856 // ISO C Standard:  7.17  Common definitions  <stddef.h>
    857 
    858 // Any one of these symbols __need_* means that GNU libc
    859 //    wants us just to define one data type.  So don't define
    860 //    the symbols that indicate this file's entire job has been done.
    861 
    862 // This avoids lossage on SunOS but only if stdtypes.h comes first.
    863 //    There's no way to win with the other order!  Sun lossage.
    864 
    865 // Sequent's header files use _PTRDIFF_T_ in some conflicting way.
    866 //    Just ignore it.
    867 
    868 // On VxWorks, <type/vxTypesBase.h> may have defined macros like
    869 //    _TYPE_size_t which will typedef size_t.  fixincludes patched the
    870 //    vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
    871 //    not defined, and so that defining this macro defines _GCC_SIZE_T.
    872 //    If we find that the macros are still defined at this point, we must
    873 //    invoke them so that the type is defined as expected.
    874 
    875 // In case nobody has defined these types, but we aren't running under
    876 //    GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
    877 //    __WCHAR_TYPE__ have reasonable values.  This can happen if the
    878 //    parts of GCC is compiled by an older compiler, that actually
    879 //    include gstddef.h, such as collect2.
    880 
    881 // Signed type of difference of two pointers.
    882 
    883 // Define this type if we are doing the whole job,
    884 //    or if we want this type in particular.
    885 
    886 // Unsigned type of `sizeof' something.
    887 
    888 // Define this type if we are doing the whole job,
    889 //    or if we want this type in particular.
    890 
    891 // Wide character type.
    892 //    Locale-writers should change this as necessary to
    893 //    be big enough to hold unique values not between 0 and 127,
    894 //    and not (wchar_t) -1, for each defined multibyte character.
    895 
    896 // Define this type if we are doing the whole job,
    897 //    or if we want this type in particular.
    898 
    899 // A null pointer constant.
    900 
    901 // Old compatibility names for C types.
    902 type Ulong = uint64  /* types.h:148:27 */
    903 type Ushort = uint16 /* types.h:149:28 */
    904 type Uint = uint32   /* types.h:150:22 */
    905 
    906 // These size-specific names are used by some of the inet code.
    907 
    908 // Define intN_t types.
    909 //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
    910 //    This file is part of the GNU C Library.
    911 //
    912 //    The GNU C Library is free software; you can redistribute it and/or
    913 //    modify it under the terms of the GNU Lesser General Public
    914 //    License as published by the Free Software Foundation; either
    915 //    version 2.1 of the License, or (at your option) any later version.
    916 //
    917 //    The GNU C Library is distributed in the hope that it will be useful,
    918 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    919 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    920 //    Lesser General Public License for more details.
    921 //
    922 //    You should have received a copy of the GNU Lesser General Public
    923 //    License along with the GNU C Library; if not, see
    924 //    <https://www.gnu.org/licenses/>.
    925 
    926 // bits/types.h -- definitions of __*_t types underlying *_t types.
    927 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
    928 //    This file is part of the GNU C Library.
    929 //
    930 //    The GNU C Library is free software; you can redistribute it and/or
    931 //    modify it under the terms of the GNU Lesser General Public
    932 //    License as published by the Free Software Foundation; either
    933 //    version 2.1 of the License, or (at your option) any later version.
    934 //
    935 //    The GNU C Library is distributed in the hope that it will be useful,
    936 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    937 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    938 //    Lesser General Public License for more details.
    939 //
    940 //    You should have received a copy of the GNU Lesser General Public
    941 //    License along with the GNU C Library; if not, see
    942 //    <https://www.gnu.org/licenses/>.
    943 
    944 // Never include this file directly; use <sys/types.h> instead.
    945 
    946 type Int8_t = X__int8_t   /* stdint-intn.h:24:18 */
    947 type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
    948 type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
    949 type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
    950 
    951 // These were defined by ISO C without the first `_'.
    952 type U_int8_t = X__uint8_t   /* types.h:158:19 */
    953 type U_int16_t = X__uint16_t /* types.h:159:20 */
    954 type U_int32_t = X__uint32_t /* types.h:160:20 */
    955 type U_int64_t = X__uint64_t /* types.h:161:20 */
    956 
    957 type Register_t = int32 /* types.h:164:13 */
    958 
    959 // It also defines `fd_set' and the FD_* macros for `select'.
    960 // `fd_set' type and related macros, and `select'/`pselect' declarations.
    961 //    Copyright (C) 1996-2020 Free Software Foundation, Inc.
    962 //    This file is part of the GNU C Library.
    963 //
    964 //    The GNU C Library is free software; you can redistribute it and/or
    965 //    modify it under the terms of the GNU Lesser General Public
    966 //    License as published by the Free Software Foundation; either
    967 //    version 2.1 of the License, or (at your option) any later version.
    968 //
    969 //    The GNU C Library is distributed in the hope that it will be useful,
    970 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    971 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    972 //    Lesser General Public License for more details.
    973 //
    974 //    You should have received a copy of the GNU Lesser General Public
    975 //    License along with the GNU C Library; if not, see
    976 //    <https://www.gnu.org/licenses/>.
    977 
    978 //	POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
    979 
    980 // Copyright (C) 1991-2020 Free Software Foundation, Inc.
    981 //    This file is part of the GNU C Library.
    982 //
    983 //    The GNU C Library is free software; you can redistribute it and/or
    984 //    modify it under the terms of the GNU Lesser General Public
    985 //    License as published by the Free Software Foundation; either
    986 //    version 2.1 of the License, or (at your option) any later version.
    987 //
    988 //    The GNU C Library is distributed in the hope that it will be useful,
    989 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
    990 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    991 //    Lesser General Public License for more details.
    992 //
    993 //    You should have received a copy of the GNU Lesser General Public
    994 //    License along with the GNU C Library; if not, see
    995 //    <https://www.gnu.org/licenses/>.
    996 
    997 // Get definition of needed basic types.
    998 // bits/types.h -- definitions of __*_t types underlying *_t types.
    999 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
   1000 //    This file is part of the GNU C Library.
   1001 //
   1002 //    The GNU C Library is free software; you can redistribute it and/or
   1003 //    modify it under the terms of the GNU Lesser General Public
   1004 //    License as published by the Free Software Foundation; either
   1005 //    version 2.1 of the License, or (at your option) any later version.
   1006 //
   1007 //    The GNU C Library is distributed in the hope that it will be useful,
   1008 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1009 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1010 //    Lesser General Public License for more details.
   1011 //
   1012 //    You should have received a copy of the GNU Lesser General Public
   1013 //    License along with the GNU C Library; if not, see
   1014 //    <https://www.gnu.org/licenses/>.
   1015 
   1016 // Never include this file directly; use <sys/types.h> instead.
   1017 
   1018 // Get __FD_* definitions.
   1019 // Copyright (C) 1997-2020 Free Software Foundation, Inc.
   1020 //    This file is part of the GNU C Library.
   1021 //
   1022 //    The GNU C Library is free software; you can redistribute it and/or
   1023 //    modify it under the terms of the GNU Lesser General Public
   1024 //    License as published by the Free Software Foundation; either
   1025 //    version 2.1 of the License, or (at your option) any later version.
   1026 //
   1027 //    The GNU C Library is distributed in the hope that it will be useful,
   1028 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1029 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1030 //    Lesser General Public License for more details.
   1031 //
   1032 //    You should have received a copy of the GNU Lesser General Public
   1033 //    License along with the GNU C Library; if not, see
   1034 //    <https://www.gnu.org/licenses/>.
   1035 
   1036 // We don't use `memset' because this would require a prototype and
   1037 //    the array isn't too big.
   1038 
   1039 // Get sigset_t.
   1040 
   1041 type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
   1042 
   1043 // A set of signals to be blocked, unblocked, or waited for.
   1044 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
   1045 
   1046 // Get definition of timer specification structures.
   1047 
   1048 // bits/types.h -- definitions of __*_t types underlying *_t types.
   1049 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
   1050 //    This file is part of the GNU C Library.
   1051 //
   1052 //    The GNU C Library is free software; you can redistribute it and/or
   1053 //    modify it under the terms of the GNU Lesser General Public
   1054 //    License as published by the Free Software Foundation; either
   1055 //    version 2.1 of the License, or (at your option) any later version.
   1056 //
   1057 //    The GNU C Library is distributed in the hope that it will be useful,
   1058 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1059 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1060 //    Lesser General Public License for more details.
   1061 //
   1062 //    You should have received a copy of the GNU Lesser General Public
   1063 //    License along with the GNU C Library; if not, see
   1064 //    <https://www.gnu.org/licenses/>.
   1065 
   1066 // Never include this file directly; use <sys/types.h> instead.
   1067 
   1068 // A time value that is accurate to the nearest
   1069 //
   1070 //	microsecond but also has a range of years.
   1071 type Timeval = struct {
   1072 	Ftv_sec  X__time_t
   1073 	Ftv_usec X__suseconds_t
   1074 } /* struct_timeval.h:8:1 */
   1075 
   1076 // NB: Include guard matches what <linux/time.h> uses.
   1077 
   1078 // bits/types.h -- definitions of __*_t types underlying *_t types.
   1079 //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
   1080 //    This file is part of the GNU C Library.
   1081 //
   1082 //    The GNU C Library is free software; you can redistribute it and/or
   1083 //    modify it under the terms of the GNU Lesser General Public
   1084 //    License as published by the Free Software Foundation; either
   1085 //    version 2.1 of the License, or (at your option) any later version.
   1086 //
   1087 //    The GNU C Library is distributed in the hope that it will be useful,
   1088 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1089 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1090 //    Lesser General Public License for more details.
   1091 //
   1092 //    You should have received a copy of the GNU Lesser General Public
   1093 //    License along with the GNU C Library; if not, see
   1094 //    <https://www.gnu.org/licenses/>.
   1095 
   1096 // Never include this file directly; use <sys/types.h> instead.
   1097 
   1098 // Endian macros for string.h functions
   1099 //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
   1100 //    This file is part of the GNU C Library.
   1101 //
   1102 //    The GNU C Library is free software; you can redistribute it and/or
   1103 //    modify it under the terms of the GNU Lesser General Public
   1104 //    License as published by the Free Software Foundation; either
   1105 //    version 2.1 of the License, or (at your option) any later version.
   1106 //
   1107 //    The GNU C Library is distributed in the hope that it will be useful,
   1108 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1109 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1110 //    Lesser General Public License for more details.
   1111 //
   1112 //    You should have received a copy of the GNU Lesser General Public
   1113 //    License along with the GNU C Library; if not, see
   1114 //    <http://www.gnu.org/licenses/>.
   1115 
   1116 // POSIX.1b structure for a time value.  This is like a `struct timeval' but
   1117 //
   1118 //	has nanoseconds instead of microseconds.
   1119 type Timespec = struct {
   1120 	Ftv_sec  X__time_t
   1121 	Ftv_nsec X__syscall_slong_t
   1122 } /* struct_timespec.h:10:1 */
   1123 
   1124 type Suseconds_t = X__suseconds_t /* select.h:43:23 */
   1125 
   1126 // The fd_set member is required to be an array of longs.
   1127 type X__fd_mask = int64 /* select.h:49:18 */
   1128 
   1129 // Some versions of <linux/posix_types.h> define this macros.
   1130 // It's easier to assume 8-bit bytes than to get CHAR_BIT.
   1131 
   1132 // fd_set for select and pselect.
   1133 type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
   1134 
   1135 // Maximum number of file descriptors in `fd_set'.
   1136 
   1137 // Sometimes the fd_set member is assumed to have this type.
   1138 type Fd_mask = X__fd_mask /* select.h:77:19 */
   1139 
   1140 // Define some inlines helping to catch common problems.
   1141 
   1142 type Blksize_t = X__blksize_t /* types.h:185:21 */
   1143 
   1144 // Types from the Large File Support interface.
   1145 type Blkcnt_t = X__blkcnt64_t     /* types.h:205:22 */ // Type to count number of disk blocks.
   1146 type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks.
   1147 type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes.
   1148 
   1149 // Now add the thread types.
   1150 // Declaration of common pthread types for all architectures.
   1151 //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
   1152 //    This file is part of the GNU C Library.
   1153 //
   1154 //    The GNU C Library is free software; you can redistribute it and/or
   1155 //    modify it under the terms of the GNU Lesser General Public
   1156 //    License as published by the Free Software Foundation; either
   1157 //    version 2.1 of the License, or (at your option) any later version.
   1158 //
   1159 //    The GNU C Library is distributed in the hope that it will be useful,
   1160 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1161 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1162 //    Lesser General Public License for more details.
   1163 //
   1164 //    You should have received a copy of the GNU Lesser General Public
   1165 //    License along with the GNU C Library; if not, see
   1166 //    <https://www.gnu.org/licenses/>.
   1167 
   1168 // For internal mutex and condition variable definitions.
   1169 // Common threading primitives definitions for both POSIX and C11.
   1170 //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
   1171 //    This file is part of the GNU C Library.
   1172 //
   1173 //    The GNU C Library is free software; you can redistribute it and/or
   1174 //    modify it under the terms of the GNU Lesser General Public
   1175 //    License as published by the Free Software Foundation; either
   1176 //    version 2.1 of the License, or (at your option) any later version.
   1177 //
   1178 //    The GNU C Library is distributed in the hope that it will be useful,
   1179 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1180 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1181 //    Lesser General Public License for more details.
   1182 //
   1183 //    You should have received a copy of the GNU Lesser General Public
   1184 //    License along with the GNU C Library; if not, see
   1185 //    <https://www.gnu.org/licenses/>.
   1186 
   1187 // Arch-specific definitions.  Each architecture must define the following
   1188 //    macros to define the expected sizes of pthread data types:
   1189 //
   1190 //    __SIZEOF_PTHREAD_ATTR_T        - size of pthread_attr_t.
   1191 //    __SIZEOF_PTHREAD_MUTEX_T       - size of pthread_mutex_t.
   1192 //    __SIZEOF_PTHREAD_MUTEXATTR_T   - size of pthread_mutexattr_t.
   1193 //    __SIZEOF_PTHREAD_COND_T        - size of pthread_cond_t.
   1194 //    __SIZEOF_PTHREAD_CONDATTR_T    - size of pthread_condattr_t.
   1195 //    __SIZEOF_PTHREAD_RWLOCK_T      - size of pthread_rwlock_t.
   1196 //    __SIZEOF_PTHREAD_RWLOCKATTR_T  - size of pthread_rwlockattr_t.
   1197 //    __SIZEOF_PTHREAD_BARRIER_T     - size of pthread_barrier_t.
   1198 //    __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
   1199 //
   1200 //    The additional macro defines any constraint for the lock alignment
   1201 //    inside the thread structures:
   1202 //
   1203 //    __LOCK_ALIGNMENT - for internal lock/futex usage.
   1204 //
   1205 //    Same idea but for the once locking primitive:
   1206 //
   1207 //    __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
   1208 
   1209 // Machine-specific pthread type layouts.  Generic version.
   1210 //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
   1211 //
   1212 //    This file is part of the GNU C Library.
   1213 //
   1214 //    The GNU C Library is free software; you can redistribute it and/or
   1215 //    modify it under the terms of the GNU Lesser General Public
   1216 //    License as published by the Free Software Foundation; either
   1217 //    version 2.1 of the License, or (at your option) any later version.
   1218 //
   1219 //    The GNU C Library is distributed in the hope that it will be useful,
   1220 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1221 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1222 //    Lesser General Public License for more details.
   1223 //
   1224 //    You should have received a copy of the GNU Lesser General Public
   1225 //    License along with the GNU C Library; if not, see
   1226 //    <http://www.gnu.org/licenses/>.
   1227 
   1228 // Determine the wordsize from the preprocessor defines.
   1229 
   1230 // Common definition of pthread_mutex_t.
   1231 
   1232 type X__pthread_internal_list = struct {
   1233 	F__prev uintptr
   1234 	F__next uintptr
   1235 } /* thread-shared-types.h:49:9 */
   1236 
   1237 // Type to count file system inodes.
   1238 
   1239 // Now add the thread types.
   1240 // Declaration of common pthread types for all architectures.
   1241 //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
   1242 //    This file is part of the GNU C Library.
   1243 //
   1244 //    The GNU C Library is free software; you can redistribute it and/or
   1245 //    modify it under the terms of the GNU Lesser General Public
   1246 //    License as published by the Free Software Foundation; either
   1247 //    version 2.1 of the License, or (at your option) any later version.
   1248 //
   1249 //    The GNU C Library is distributed in the hope that it will be useful,
   1250 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1251 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1252 //    Lesser General Public License for more details.
   1253 //
   1254 //    You should have received a copy of the GNU Lesser General Public
   1255 //    License along with the GNU C Library; if not, see
   1256 //    <https://www.gnu.org/licenses/>.
   1257 
   1258 // For internal mutex and condition variable definitions.
   1259 // Common threading primitives definitions for both POSIX and C11.
   1260 //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
   1261 //    This file is part of the GNU C Library.
   1262 //
   1263 //    The GNU C Library is free software; you can redistribute it and/or
   1264 //    modify it under the terms of the GNU Lesser General Public
   1265 //    License as published by the Free Software Foundation; either
   1266 //    version 2.1 of the License, or (at your option) any later version.
   1267 //
   1268 //    The GNU C Library is distributed in the hope that it will be useful,
   1269 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1270 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1271 //    Lesser General Public License for more details.
   1272 //
   1273 //    You should have received a copy of the GNU Lesser General Public
   1274 //    License along with the GNU C Library; if not, see
   1275 //    <https://www.gnu.org/licenses/>.
   1276 
   1277 // Arch-specific definitions.  Each architecture must define the following
   1278 //    macros to define the expected sizes of pthread data types:
   1279 //
   1280 //    __SIZEOF_PTHREAD_ATTR_T        - size of pthread_attr_t.
   1281 //    __SIZEOF_PTHREAD_MUTEX_T       - size of pthread_mutex_t.
   1282 //    __SIZEOF_PTHREAD_MUTEXATTR_T   - size of pthread_mutexattr_t.
   1283 //    __SIZEOF_PTHREAD_COND_T        - size of pthread_cond_t.
   1284 //    __SIZEOF_PTHREAD_CONDATTR_T    - size of pthread_condattr_t.
   1285 //    __SIZEOF_PTHREAD_RWLOCK_T      - size of pthread_rwlock_t.
   1286 //    __SIZEOF_PTHREAD_RWLOCKATTR_T  - size of pthread_rwlockattr_t.
   1287 //    __SIZEOF_PTHREAD_BARRIER_T     - size of pthread_barrier_t.
   1288 //    __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
   1289 //
   1290 //    The additional macro defines any constraint for the lock alignment
   1291 //    inside the thread structures:
   1292 //
   1293 //    __LOCK_ALIGNMENT - for internal lock/futex usage.
   1294 //
   1295 //    Same idea but for the once locking primitive:
   1296 //
   1297 //    __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
   1298 
   1299 // Machine-specific pthread type layouts.  Generic version.
   1300 //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
   1301 //
   1302 //    This file is part of the GNU C Library.
   1303 //
   1304 //    The GNU C Library is free software; you can redistribute it and/or
   1305 //    modify it under the terms of the GNU Lesser General Public
   1306 //    License as published by the Free Software Foundation; either
   1307 //    version 2.1 of the License, or (at your option) any later version.
   1308 //
   1309 //    The GNU C Library is distributed in the hope that it will be useful,
   1310 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1311 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1312 //    Lesser General Public License for more details.
   1313 //
   1314 //    You should have received a copy of the GNU Lesser General Public
   1315 //    License along with the GNU C Library; if not, see
   1316 //    <http://www.gnu.org/licenses/>.
   1317 
   1318 // Determine the wordsize from the preprocessor defines.
   1319 
   1320 // Common definition of pthread_mutex_t.
   1321 
   1322 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
   1323 
   1324 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
   1325 
   1326 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
   1327 
   1328 // Arch-specific mutex definitions.  A generic implementation is provided
   1329 //    by sysdeps/nptl/bits/struct_mutex.h.  If required, an architecture
   1330 //    can override it by defining:
   1331 //
   1332 //    1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
   1333 //       definition).  It should contains at least the internal members
   1334 //       defined in the generic version.
   1335 //
   1336 //    2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
   1337 //       atomic operations.
   1338 //
   1339 //    3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
   1340 //       It should initialize the mutex internal flag.
   1341 
   1342 // S390 internal mutex struct definitions.
   1343 //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
   1344 //    This file is part of the GNU C Library.
   1345 //
   1346 //    The GNU C Library is free software; you can redistribute it and/or
   1347 //    modify it under the terms of the GNU Lesser General Public
   1348 //    License as published by the Free Software Foundation; either
   1349 //    version 2.1 of the License, or (at your option) any later version.
   1350 //
   1351 //    The GNU C Library is distributed in the hope that it will be useful,
   1352 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1353 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1354 //    Lesser General Public License for more details.
   1355 //
   1356 //    You should have received a copy of the GNU Lesser General Public
   1357 //    License along with the GNU C Library; if not, see
   1358 //    <http://www.gnu.org/licenses/>.
   1359 
   1360 type X__pthread_mutex_s = struct {
   1361 	F__lock    int32
   1362 	F__count   uint32
   1363 	F__owner   int32
   1364 	F__nusers  uint32
   1365 	F__kind    int32
   1366 	F__spins   int16
   1367 	F__elision int16
   1368 	F__list    X__pthread_list_t
   1369 } /* struct_mutex.h:22:1 */
   1370 
   1371 // Arch-sepecific read-write lock definitions.  A generic implementation is
   1372 //    provided by struct_rwlock.h.  If required, an architecture can override it
   1373 //    by defining:
   1374 //
   1375 //    1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
   1376 //       It should contain at least the internal members defined in the
   1377 //       generic version.
   1378 //
   1379 //    2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
   1380 //       It should initialize the rwlock internal type.
   1381 
   1382 // S390 internal rwlock struct definitions.
   1383 //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
   1384 //
   1385 //    This file is part of the GNU C Library.
   1386 //
   1387 //    The GNU C Library is free software; you can redistribute it and/or
   1388 //    modify it under the terms of the GNU Lesser General Public
   1389 //    License as published by the Free Software Foundation; either
   1390 //    version 2.1 of the License, or (at your option) any later version.
   1391 //
   1392 //    The GNU C Library is distributed in the hope that it will be useful,
   1393 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1394 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1395 //    Lesser General Public License for more details.
   1396 //
   1397 //    You should have received a copy of the GNU Lesser General Public
   1398 //    License along with the GNU C Library; if not, see
   1399 //    <http://www.gnu.org/licenses/>.
   1400 
   1401 type X__pthread_rwlock_arch_t = struct {
   1402 	F__readers       uint32
   1403 	F__writers       uint32
   1404 	F__wrphase_futex uint32
   1405 	F__writers_futex uint32
   1406 	F__pad3          uint32
   1407 	F__pad4          uint32
   1408 	F__cur_writer    int32
   1409 	F__shared        int32
   1410 	F__pad1          uint64
   1411 	F__pad2          uint64
   1412 	F__flags         uint32
   1413 	F__ccgo_pad1     [4]byte
   1414 } /* struct_rwlock.h:23:1 */
   1415 
   1416 // Common definition of pthread_cond_t.
   1417 
   1418 type X__pthread_cond_s = struct {
   1419 	F__0            struct{ F__wseq uint64 }
   1420 	F__8            struct{ F__g1_start uint64 }
   1421 	F__g_refs       [2]uint32
   1422 	F__g_size       [2]uint32
   1423 	F__g1_orig_size uint32
   1424 	F__wrefs        uint32
   1425 	F__g_signals    [2]uint32
   1426 } /* thread-shared-types.h:92:1 */
   1427 
   1428 // Thread identifiers.  The structure of the attribute type is not
   1429 //
   1430 //	exposed on purpose.
   1431 type Pthread_t = uint64 /* pthreadtypes.h:27:27 */
   1432 
   1433 // Data structures for mutex handling.  The structure of the attribute
   1434 //
   1435 //	type is not exposed on purpose.
   1436 type Pthread_mutexattr_t = struct {
   1437 	F__ccgo_pad1 [0]uint32
   1438 	F__size      [4]uint8
   1439 } /* pthreadtypes.h:36:3 */
   1440 
   1441 // Data structure for condition variable handling.  The structure of
   1442 //
   1443 //	the attribute type is not exposed on purpose.
   1444 type Pthread_condattr_t = struct {
   1445 	F__ccgo_pad1 [0]uint32
   1446 	F__size      [4]uint8
   1447 } /* pthreadtypes.h:45:3 */
   1448 
   1449 // Keys for thread-specific data
   1450 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
   1451 
   1452 // Once-only execution
   1453 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
   1454 
   1455 type Pthread_attr_t1 = struct {
   1456 	F__ccgo_pad1 [0]uint64
   1457 	F__size      [56]uint8
   1458 } /* pthreadtypes.h:56:1 */
   1459 
   1460 type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
   1461 
   1462 type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */
   1463 
   1464 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
   1465 
   1466 // Data structure for reader-writer lock variable handling.  The
   1467 //
   1468 //	structure of the attribute type is deliberately not exposed.
   1469 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
   1470 
   1471 type Pthread_rwlockattr_t = struct {
   1472 	F__ccgo_pad1 [0]uint64
   1473 	F__size      [8]uint8
   1474 } /* pthreadtypes.h:97:3 */
   1475 
   1476 // POSIX spinlock data type.
   1477 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
   1478 
   1479 // POSIX barriers data type.  The structure of the type is
   1480 //
   1481 //	deliberately not exposed.
   1482 type Pthread_barrier_t = struct {
   1483 	F__ccgo_pad1 [0]uint64
   1484 	F__size      [32]uint8
   1485 } /* pthreadtypes.h:112:3 */
   1486 
   1487 type Pthread_barrierattr_t = struct {
   1488 	F__ccgo_pad1 [0]uint32
   1489 	F__size      [4]uint8
   1490 } /* pthreadtypes.h:118:3 */
   1491 
   1492 // Reentrant versions of the `random' family of functions.
   1493 //    These functions all use the following data structure to contain
   1494 //    state, rather than global state variables.
   1495 
   1496 type Random_data = struct {
   1497 	Ffptr        uintptr
   1498 	Frptr        uintptr
   1499 	Fstate       uintptr
   1500 	Frand_type   int32
   1501 	Frand_deg    int32
   1502 	Frand_sep    int32
   1503 	F__ccgo_pad1 [4]byte
   1504 	Fend_ptr     uintptr
   1505 } /* stdlib.h:423:1 */
   1506 
   1507 // Data structure for communication with thread safe versions.  This
   1508 //
   1509 //	type is to be regarded as opaque.  It's only exported because users
   1510 //	have to allocate objects of this type.
   1511 type Drand48_data = struct {
   1512 	F__x     [3]uint16
   1513 	F__old_x [3]uint16
   1514 	F__c     uint16
   1515 	F__init  uint16
   1516 	F__a     uint64
   1517 } /* stdlib.h:490:1 */
   1518 
   1519 // Shorthand for type of comparison functions.
   1520 type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
   1521 
   1522 // Floating-point inline functions for stdlib.h.
   1523 //    Copyright (C) 2012-2020 Free Software Foundation, Inc.
   1524 //    This file is part of the GNU C Library.
   1525 //
   1526 //    The GNU C Library is free software; you can redistribute it and/or
   1527 //    modify it under the terms of the GNU Lesser General Public
   1528 //    License as published by the Free Software Foundation; either
   1529 //    version 2.1 of the License, or (at your option) any later version.
   1530 //
   1531 //    The GNU C Library is distributed in the hope that it will be useful,
   1532 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
   1533 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   1534 //    Lesser General Public License for more details.
   1535 //
   1536 //    You should have received a copy of the GNU Lesser General Public
   1537 //    License along with the GNU C Library; if not, see
   1538 //    <https://www.gnu.org/licenses/>.
   1539 
   1540 // Define some macros helping to catch buffer overflows.
   1541 
   1542 var _ uint8 /* gen.c:2:13: */