gtsocial-umbx

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

stdlib_linux_386.go (64450B)


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