gtsocial-umbx

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

stdlib_linux_ppc64le.go (68495B)


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