fts_linux_arm.go (87530B)
1 // Code generated by 'ccgo fts/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 fts/fts_linux_arm.go -pkgname fts', DO NOT EDIT. 2 3 package fts 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 ACCESSPERMS = 511 19 ALLPERMS = 4095 20 BIG_ENDIAN = 4321 21 BYTE_ORDER = 1234 22 DEFFILEMODE = 438 23 FD_SETSIZE = 1024 24 FTS_AGAIN = 1 25 FTS_COMFOLLOW = 0x0001 26 FTS_D = 1 27 FTS_DC = 2 28 FTS_DEFAULT = 3 29 FTS_DNR = 4 30 FTS_DONTCHDIR = 0x01 31 FTS_DOT = 5 32 FTS_DP = 6 33 FTS_ERR = 7 34 FTS_F = 8 35 FTS_FOLLOW = 2 36 FTS_INIT = 9 37 FTS_LOGICAL = 0x0002 38 FTS_NAMEONLY = 0x0100 39 FTS_NOCHDIR = 0x0004 40 FTS_NOINSTR = 3 41 FTS_NOSTAT = 0x0008 42 FTS_NS = 10 43 FTS_NSOK = 11 44 FTS_OPTIONMASK = 0x00ff 45 FTS_PHYSICAL = 0x0010 46 FTS_ROOTLEVEL = 0 47 FTS_ROOTPARENTLEVEL = -1 48 FTS_SEEDOT = 0x0020 49 FTS_SKIP = 4 50 FTS_SL = 12 51 FTS_SLNONE = 13 52 FTS_STOP = 0x0200 53 FTS_SYMFOLLOW = 0x02 54 FTS_W = 14 55 FTS_WHITEOUT = 0x0080 56 FTS_XDEV = 0x0040 57 LITTLE_ENDIAN = 1234 58 PDP_ENDIAN = 3412 59 S_BLKSIZE = 512 60 S_IEXEC = 64 61 S_IFBLK = 24576 62 S_IFCHR = 8192 63 S_IFDIR = 16384 64 S_IFIFO = 4096 65 S_IFLNK = 40960 66 S_IFMT = 61440 67 S_IFREG = 32768 68 S_IFSOCK = 49152 69 S_IREAD = 256 70 S_IRGRP = 32 71 S_IROTH = 4 72 S_IRUSR = 256 73 S_IRWXG = 56 74 S_IRWXO = 7 75 S_IRWXU = 448 76 S_ISGID = 1024 77 S_ISUID = 2048 78 S_ISVTX = 512 79 S_IWGRP = 16 80 S_IWOTH = 2 81 S_IWRITE = 128 82 S_IWUSR = 128 83 S_IXGRP = 8 84 S_IXOTH = 1 85 S_IXUSR = 64 86 UTIME_NOW = 1073741823 87 UTIME_OMIT = 1073741822 88 X_ATFILE_SOURCE = 1 89 X_BITS_BYTESWAP_H = 1 90 X_BITS_ENDIANNESS_H = 1 91 X_BITS_ENDIAN_H = 1 92 X_BITS_PTHREADTYPES_ARCH_H = 1 93 X_BITS_PTHREADTYPES_COMMON_H = 1 94 X_BITS_STAT_H = 1 95 X_BITS_STDINT_INTN_H = 1 96 X_BITS_TIME64_H = 1 97 X_BITS_TYPESIZES_H = 1 98 X_BITS_TYPES_H = 1 99 X_BITS_UINTN_IDENTITY_H = 1 100 X_BSD_SIZE_T_ = 0 101 X_BSD_SIZE_T_DEFINED_ = 0 102 X_DEFAULT_SOURCE = 1 103 X_ENDIAN_H = 1 104 X_FEATURES_H = 1 105 X_FILE_OFFSET_BITS = 64 106 X_FTS_H = 1 107 X_GCC_SIZE_T = 0 108 X_MKNOD_VER = 1 109 X_MKNOD_VER_LINUX = 1 110 X_MKNOD_VER_SVR4 = 2 111 X_POSIX_C_SOURCE = 200809 112 X_POSIX_SOURCE = 1 113 X_SIZET_ = 0 114 X_SIZE_T = 0 115 X_SIZE_T_ = 0 116 X_SIZE_T_DECLARED = 0 117 X_SIZE_T_DEFINED = 0 118 X_SIZE_T_DEFINED_ = 0 119 X_STATBUF_ST_BLKSIZE = 0 120 X_STATBUF_ST_NSEC = 0 121 X_STATBUF_ST_RDEV = 0 122 X_STAT_VER = 3 123 X_STAT_VER_KERNEL = 1 124 X_STAT_VER_LINUX = 3 125 X_STAT_VER_LINUX_OLD = 1 126 X_STAT_VER_SVR4 = 2 127 X_STDC_PREDEF_H = 1 128 X_STRUCT_TIMESPEC = 1 129 X_SYS_CDEFS_H = 1 130 X_SYS_SELECT_H = 1 131 X_SYS_SIZE_T_H = 0 132 X_SYS_STAT_H = 1 133 X_SYS_TYPES_H = 1 134 X_THREAD_MUTEX_INTERNAL_H = 1 135 X_THREAD_SHARED_TYPES_H = 1 136 X_T_SIZE = 0 137 X_T_SIZE_ = 0 138 Linux = 1 139 Unix = 1 140 ) 141 142 type Ptrdiff_t = int32 /* <builtin>:3:26 */ 143 144 type Size_t = uint32 /* <builtin>:9:23 */ 145 146 type Wchar_t = uint32 /* <builtin>:15:24 */ 147 148 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 149 type X__float128 = float64 /* <builtin>:47:21 */ 150 151 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 152 // This file is part of the GNU C Library. 153 // 154 // The GNU C Library is free software; you can redistribute it and/or 155 // modify it under the terms of the GNU Lesser General Public 156 // License as published by the Free Software Foundation; either 157 // version 2.1 of the License, or (at your option) any later version. 158 // 159 // The GNU C Library is distributed in the hope that it will be useful, 160 // but WITHOUT ANY WARRANTY; without even the implied warranty of 161 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 162 // Lesser General Public License for more details. 163 // 164 // You should have received a copy of the GNU Lesser General Public 165 // License along with the GNU C Library; if not, see 166 // <https://www.gnu.org/licenses/>. 167 168 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 169 170 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 171 // This file is part of the GNU C Library. 172 // 173 // The GNU C Library is free software; you can redistribute it and/or 174 // modify it under the terms of the GNU Lesser General Public 175 // License as published by the Free Software Foundation; either 176 // version 2.1 of the License, or (at your option) any later version. 177 // 178 // The GNU C Library is distributed in the hope that it will be useful, 179 // but WITHOUT ANY WARRANTY; without even the implied warranty of 180 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 181 // Lesser General Public License for more details. 182 // 183 // You should have received a copy of the GNU Lesser General Public 184 // License along with the GNU C Library; if not, see 185 // <https://www.gnu.org/licenses/>. 186 187 // These are defined by the user (or the compiler) 188 // to specify the desired environment: 189 // 190 // __STRICT_ANSI__ ISO Standard C. 191 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 192 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 193 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 194 // __STDC_WANT_LIB_EXT2__ 195 // Extensions to ISO C99 from TR 27431-2:2010. 196 // __STDC_WANT_IEC_60559_BFP_EXT__ 197 // Extensions to ISO C11 from TS 18661-1:2014. 198 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 199 // Extensions to ISO C11 from TS 18661-4:2015. 200 // __STDC_WANT_IEC_60559_TYPES_EXT__ 201 // Extensions to ISO C11 from TS 18661-3:2015. 202 // 203 // _POSIX_SOURCE IEEE Std 1003.1. 204 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 205 // if >=199309L, add IEEE Std 1003.1b-1993; 206 // if >=199506L, add IEEE Std 1003.1c-1995; 207 // if >=200112L, all of IEEE 1003.1-2004 208 // if >=200809L, all of IEEE 1003.1-2008 209 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 210 // Single Unix conformance is wanted, to 600 for the 211 // sixth revision, to 700 for the seventh revision. 212 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 213 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 214 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 215 // _FILE_OFFSET_BITS=N Select default filesystem interface. 216 // _ATFILE_SOURCE Additional *at interfaces. 217 // _GNU_SOURCE All of the above, plus GNU extensions. 218 // _DEFAULT_SOURCE The default set of features (taking precedence over 219 // __STRICT_ANSI__). 220 // 221 // _FORTIFY_SOURCE Add security hardening to many library functions. 222 // Set to 1 or 2; 2 performs stricter checks than 1. 223 // 224 // _REENTRANT, _THREAD_SAFE 225 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 226 // 227 // The `-ansi' switch to the GNU C compiler, and standards conformance 228 // options such as `-std=c99', define __STRICT_ANSI__. If none of 229 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 230 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 231 // 200809L, as well as enabling miscellaneous functions from BSD and 232 // SVID. If more than one of these are defined, they accumulate. For 233 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 234 // give you ISO C, 1003.1, and 1003.2, but nothing else. 235 // 236 // These are defined by this file and are used by the 237 // header files to decide what to declare or define: 238 // 239 // __GLIBC_USE (F) Define things from feature set F. This is defined 240 // to 1 or 0; the subsequent macros are either defined 241 // or undefined, and those tests should be moved to 242 // __GLIBC_USE. 243 // __USE_ISOC11 Define ISO C11 things. 244 // __USE_ISOC99 Define ISO C99 things. 245 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 246 // __USE_ISOCXX11 Define ISO C++11 things. 247 // __USE_POSIX Define IEEE Std 1003.1 things. 248 // __USE_POSIX2 Define IEEE Std 1003.2 things. 249 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 250 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 251 // __USE_XOPEN Define XPG things. 252 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 253 // __USE_UNIX98 Define Single Unix V2 things. 254 // __USE_XOPEN2K Define XPG6 things. 255 // __USE_XOPEN2KXSI Define XPG6 XSI things. 256 // __USE_XOPEN2K8 Define XPG7 things. 257 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 258 // __USE_LARGEFILE Define correct standard I/O things. 259 // __USE_LARGEFILE64 Define LFS things with separate names. 260 // __USE_FILE_OFFSET64 Define 64bit interface as default. 261 // __USE_MISC Define things from 4.3BSD or System V Unix. 262 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 263 // __USE_GNU Define GNU extensions. 264 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 265 // 266 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 267 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 268 // only for compatibility. All new code should use the other symbols 269 // to test for features. 270 // 271 // All macros listed above as possibly being defined by this file are 272 // explicitly undefined if they are not explicitly defined. 273 // Feature-test macros that are not defined by the user or compiler 274 // but are implied by the other feature-test macros defined (or by the 275 // lack of any definitions) are defined by the file. 276 // 277 // ISO C feature test macros depend on the definition of the macro 278 // when an affected header is included, not when the first system 279 // header is included, and so they are handled in 280 // <bits/libc-header-start.h>, which does not have a multiple include 281 // guard. Feature test macros that can be handled from the first 282 // system header included are handled here. 283 284 // Undefine everything, so we get a clean slate. 285 286 // Suppress kernel-name space pollution unless user expressedly asks 287 // for it. 288 289 // Convenience macro to test the version of gcc. 290 // Use like this: 291 // #if __GNUC_PREREQ (2,8) 292 // ... code requiring gcc 2.8 or later ... 293 // #endif 294 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 295 // added in 2.0. 296 297 // Similarly for clang. Features added to GCC after version 4.2 may 298 // or may not also be available in clang, and clang's definitions of 299 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 300 // features can be queried via __has_extension/__has_feature. 301 302 // Whether to use feature set F. 303 304 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 305 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 306 // issue a warning; the expectation is that the source is being 307 // transitioned to use the new macro. 308 309 // If _GNU_SOURCE was defined by the user, turn on all the other features. 310 311 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 312 // define _DEFAULT_SOURCE. 313 314 // This is to enable the ISO C2X extension. 315 316 // This is to enable the ISO C11 extension. 317 318 // This is to enable the ISO C99 extension. 319 320 // This is to enable the ISO C90 Amendment 1:1995 extension. 321 322 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 323 // is defined, use POSIX.1-2008 (or another version depending on 324 // _XOPEN_SOURCE). 325 326 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 327 // defined in all multithreaded code. GNU libc has not required this 328 // for many years. We now treat them as compatibility synonyms for 329 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 330 // comprehensive support for multithreaded code. Using them never 331 // lowers the selected level of POSIX conformance, only raises it. 332 333 // The function 'gets' existed in C89, but is impossible to use 334 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 335 // compatibility with various implementations of <cstdio>, this test 336 // must consider only the value of __cplusplus when compiling C++. 337 338 // GNU formerly extended the scanf functions with modified format 339 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 340 // input using malloc. This extension conflicts with ISO C99, which 341 // defines %a as a standalone format specifier that reads a floating- 342 // point number; moreover, POSIX.1-2008 provides the same feature 343 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 344 // 345 // We now follow C99 unless GNU extensions are active and the compiler 346 // is specifically in C89 or C++98 mode (strict or not). For 347 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 348 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 349 // old extension. 350 351 // Get definitions of __STDC_* predefined macros, if the compiler has 352 // not preincluded this header automatically. 353 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 354 // This file is part of the GNU C Library. 355 // 356 // The GNU C Library is free software; you can redistribute it and/or 357 // modify it under the terms of the GNU Lesser General Public 358 // License as published by the Free Software Foundation; either 359 // version 2.1 of the License, or (at your option) any later version. 360 // 361 // The GNU C Library is distributed in the hope that it will be useful, 362 // but WITHOUT ANY WARRANTY; without even the implied warranty of 363 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 364 // Lesser General Public License for more details. 365 // 366 // You should have received a copy of the GNU Lesser General Public 367 // License along with the GNU C Library; if not, see 368 // <https://www.gnu.org/licenses/>. 369 370 // This macro indicates that the installed library is the GNU C Library. 371 // For historic reasons the value now is 6 and this will stay from now 372 // on. The use of this variable is deprecated. Use __GLIBC__ and 373 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 374 // GNU C library version and use the values in <gnu/lib-names.h> to get 375 // the sonames of the shared libraries. 376 377 // Major and minor version number of the GNU C library package. Use 378 // these macros to test for features in specific releases. 379 380 // This is here only because every header file already includes this one. 381 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 382 // This file is part of the GNU C Library. 383 // 384 // The GNU C Library is free software; you can redistribute it and/or 385 // modify it under the terms of the GNU Lesser General Public 386 // License as published by the Free Software Foundation; either 387 // version 2.1 of the License, or (at your option) any later version. 388 // 389 // The GNU C Library is distributed in the hope that it will be useful, 390 // but WITHOUT ANY WARRANTY; without even the implied warranty of 391 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 392 // Lesser General Public License for more details. 393 // 394 // You should have received a copy of the GNU Lesser General Public 395 // License along with the GNU C Library; if not, see 396 // <https://www.gnu.org/licenses/>. 397 398 // We are almost always included from features.h. 399 400 // The GNU libc does not support any K&R compilers or the traditional mode 401 // of ISO C compilers anymore. Check for some of the combinations not 402 // anymore supported. 403 404 // Some user header file might have defined this before. 405 406 // All functions, except those with callbacks or those that 407 // synchronize memory, are leaf functions. 408 409 // GCC can always grok prototypes. For C++ programs we add throw() 410 // to help it optimize the function calls. But this works only with 411 // gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions 412 // as non-throwing using a function attribute since programs can use 413 // the -fexceptions options for C code as well. 414 415 // Compilers that are not clang may object to 416 // #if defined __clang__ && __has_extension(...) 417 // even though they do not need to evaluate the right-hand side of the &&. 418 419 // These two macros are not used in glibc anymore. They are kept here 420 // only because some other projects expect the macros to be defined. 421 422 // For these things, GCC behaves the ANSI way normally, 423 // and the non-ANSI way under -traditional. 424 425 // This is not a typedef so `const __ptr_t' does the right thing. 426 427 // C++ needs to know that types and declarations are C, not C++. 428 429 // Fortify support. 430 431 // Support for flexible arrays. 432 // Headers that should use flexible arrays only if they're "real" 433 // (e.g. only if they won't affect sizeof()) should test 434 // #if __glibc_c99_flexarr_available. 435 436 // __asm__ ("xyz") is used throughout the headers to rename functions 437 // at the assembly language level. This is wrapped by the __REDIRECT 438 // macro, in order to support compilers that can do this some other 439 // way. When compilers don't support asm-names at all, we have to do 440 // preprocessor tricks instead (which don't have exactly the right 441 // semantics, but it's the best we can do). 442 // 443 // Example: 444 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 445 446 // 447 // #elif __SOME_OTHER_COMPILER__ 448 // 449 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 450 451 // GCC has various useful declarations that can be made with the 452 // `__attribute__' syntax. All of the ways we use this do fine if 453 // they are omitted for compilers that don't understand it. 454 455 // At some point during the gcc 2.96 development the `malloc' attribute 456 // for functions was introduced. We don't want to use it unconditionally 457 // (although this would be possible) since it generates warnings. 458 459 // Tell the compiler which arguments to an allocation function 460 // indicate the size of the allocation. 461 462 // At some point during the gcc 2.96 development the `pure' attribute 463 // for functions was introduced. We don't want to use it unconditionally 464 // (although this would be possible) since it generates warnings. 465 466 // This declaration tells the compiler that the value is constant. 467 468 // At some point during the gcc 3.1 development the `used' attribute 469 // for functions was introduced. We don't want to use it unconditionally 470 // (although this would be possible) since it generates warnings. 471 472 // Since version 3.2, gcc allows marking deprecated functions. 473 474 // Since version 4.5, gcc also allows one to specify the message printed 475 // when a deprecated function is used. clang claims to be gcc 4.2, but 476 // may also support this feature. 477 478 // At some point during the gcc 2.8 development the `format_arg' attribute 479 // for functions was introduced. We don't want to use it unconditionally 480 // (although this would be possible) since it generates warnings. 481 // If several `format_arg' attributes are given for the same function, in 482 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 483 // all designated arguments are considered. 484 485 // At some point during the gcc 2.97 development the `strfmon' format 486 // attribute for functions was introduced. We don't want to use it 487 // unconditionally (although this would be possible) since it 488 // generates warnings. 489 490 // The nonull function attribute allows to mark pointer parameters which 491 // must not be NULL. 492 493 // If fortification mode, we warn about unused results of certain 494 // function calls which can lead to problems. 495 496 // Forces a function to be always inlined. 497 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 498 // it conflicts with this definition. Therefore undefine it first to 499 // allow either header to be included first. 500 501 // Associate error messages with the source location of the call site rather 502 // than with the source location inside the function. 503 504 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 505 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 506 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 507 // older than 4.3 may define these macros and still not guarantee GNU inlining 508 // semantics. 509 // 510 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 511 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 512 // __GNUC_GNU_INLINE__ macro definitions. 513 514 // GCC 4.3 and above allow passing all anonymous arguments of an 515 // __extern_always_inline function to some other vararg function. 516 517 // It is possible to compile containing GCC extensions even if GCC is 518 // run in pedantic mode if the uses are carefully marked using the 519 // `__extension__' keyword. But this is not generally available before 520 // version 2.8. 521 522 // __restrict is known in EGCS 1.2 and above. 523 524 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 525 // array_name[restrict] 526 // GCC 3.1 supports this. 527 528 // Describes a char array whose address can safely be passed as the first 529 // argument to strncpy and strncat, as the char array is not necessarily 530 // a NUL-terminated string. 531 532 // Undefine (also defined in libc-symbols.h). 533 // Copies attributes from the declaration or type referenced by 534 // the argument. 535 536 // Copyright (C) 1999-2020 Free Software Foundation, Inc. 537 // This file is part of the GNU C Library. 538 // 539 // The GNU C Library is free software; you can redistribute it and/or 540 // modify it under the terms of the GNU Lesser General Public 541 // License as published by the Free Software Foundation; either 542 // version 2.1 of the License, or (at your option) any later version. 543 // 544 // The GNU C Library is distributed in the hope that it will be useful, 545 // but WITHOUT ANY WARRANTY; without even the implied warranty of 546 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 547 // Lesser General Public License for more details. 548 // 549 // You should have received a copy of the GNU Lesser General Public 550 // License along with the GNU C Library; if not, see 551 // <https://www.gnu.org/licenses/>. 552 553 // Properties of long double type. 554 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 555 // This file is part of the GNU C Library. 556 // 557 // The GNU C Library is free software; you can redistribute it and/or 558 // modify it under the terms of the GNU Lesser General Public 559 // License published by the Free Software Foundation; either 560 // version 2.1 of the License, or (at your option) any later version. 561 // 562 // The GNU C Library is distributed in the hope that it will be useful, 563 // but WITHOUT ANY WARRANTY; without even the implied warranty of 564 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 565 // Lesser General Public License for more details. 566 // 567 // You should have received a copy of the GNU Lesser General Public 568 // License along with the GNU C Library; if not, see 569 // <https://www.gnu.org/licenses/>. 570 571 // This header is included by <sys/cdefs.h>. 572 // 573 // If long double is ABI-compatible with double, it should define 574 // __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave 575 // __NO_LONG_DOUBLE_MATH undefined. 576 // 577 // If this build of the GNU C Library supports both long double 578 // ABI-compatible with double and some other long double format not 579 // ABI-compatible with double, it should define 580 // __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave 581 // __LONG_DOUBLE_MATH_OPTIONAL undefined. 582 // 583 // If __NO_LONG_DOUBLE_MATH is already defined, this header must not 584 // define anything; this is needed to work with the definition of 585 // __NO_LONG_DOUBLE_MATH in nldbl-compat.h. 586 587 // In the default version of this header, long double is 588 // ABI-compatible with double. 589 590 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 591 // intended for use in preprocessor macros. 592 // 593 // Note: MESSAGE must be a _single_ string; concatenation of string 594 // literals is not supported. 595 596 // Generic selection (ISO C11) is a C-only feature, available in GCC 597 // since version 4.9. Previous versions do not provide generic 598 // selection, even though they might set __STDC_VERSION__ to 201112L, 599 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 600 // when testing __STDC_VERSION__ for generic selection support. 601 // On the other hand, Clang also defines __GNUC__, so a clang-specific 602 // check is required to enable the use of generic selection. 603 604 // If we don't have __REDIRECT, prototypes will be missing if 605 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 606 607 // Decide whether we can define 'extern inline' functions in headers. 608 609 // This is here only because every header file already includes this one. 610 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 611 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 612 // that will always return failure (and set errno to ENOSYS). 613 // This file is automatically generated. 614 // This file selects the right generated file of `__stub_FUNCTION' macros 615 // based on the architecture being compiled for. 616 617 // This file is automatically generated. 618 // It defines a symbol `__stub_FUNCTION' for each function 619 // in the C library which is a stub, meaning it will fail 620 // every time called, usually setting errno to ENOSYS. 621 622 // bits/types.h -- definitions of __*_t types underlying *_t types. 623 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 624 // This file is part of the GNU C Library. 625 // 626 // The GNU C Library is free software; you can redistribute it and/or 627 // modify it under the terms of the GNU Lesser General Public 628 // License as published by the Free Software Foundation; either 629 // version 2.1 of the License, or (at your option) any later version. 630 // 631 // The GNU C Library is distributed in the hope that it will be useful, 632 // but WITHOUT ANY WARRANTY; without even the implied warranty of 633 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 634 // Lesser General Public License for more details. 635 // 636 // You should have received a copy of the GNU Lesser General Public 637 // License along with the GNU C Library; if not, see 638 // <https://www.gnu.org/licenses/>. 639 640 // Never include this file directly; use <sys/types.h> instead. 641 642 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 643 // This file is part of the GNU C Library. 644 // 645 // The GNU C Library is free software; you can redistribute it and/or 646 // modify it under the terms of the GNU Lesser General Public 647 // License as published by the Free Software Foundation; either 648 // version 2.1 of the License, or (at your option) any later version. 649 // 650 // The GNU C Library is distributed in the hope that it will be useful, 651 // but WITHOUT ANY WARRANTY; without even the implied warranty of 652 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 653 // Lesser General Public License for more details. 654 // 655 // You should have received a copy of the GNU Lesser General Public 656 // License along with the GNU C Library; if not, see 657 // <https://www.gnu.org/licenses/>. 658 659 // Copyright (C) 1999-2020 Free Software Foundation, Inc. 660 // This file is part of the GNU C Library. 661 // 662 // The GNU C Library is free software; you can redistribute it and/or 663 // modify it under the terms of the GNU Lesser General Public 664 // License as published by the Free Software Foundation; either 665 // version 2.1 of the License, or (at your option) any later version. 666 // 667 // The GNU C Library is distributed in the hope that it will be useful, 668 // but WITHOUT ANY WARRANTY; without even the implied warranty of 669 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 670 // Lesser General Public License for more details. 671 // 672 // You should have received a copy of the GNU Lesser General Public 673 // License along with the GNU C Library; if not, see 674 // <https://www.gnu.org/licenses/>. 675 676 // Bit size of the time_t type at glibc build time, general case. 677 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 678 // This file is part of the GNU C Library. 679 // 680 // The GNU C Library is free software; you can redistribute it and/or 681 // modify it under the terms of the GNU Lesser General Public 682 // License as published by the Free Software Foundation; either 683 // version 2.1 of the License, or (at your option) any later version. 684 // 685 // The GNU C Library is distributed in the hope that it will be useful, 686 // but WITHOUT ANY WARRANTY; without even the implied warranty of 687 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 688 // Lesser General Public License for more details. 689 // 690 // You should have received a copy of the GNU Lesser General Public 691 // License along with the GNU C Library; if not, see 692 // <https://www.gnu.org/licenses/>. 693 694 // Copyright (C) 1999-2020 Free Software Foundation, Inc. 695 // This file is part of the GNU C Library. 696 // 697 // The GNU C Library is free software; you can redistribute it and/or 698 // modify it under the terms of the GNU Lesser General Public 699 // License as published by the Free Software Foundation; either 700 // version 2.1 of the License, or (at your option) any later version. 701 // 702 // The GNU C Library is distributed in the hope that it will be useful, 703 // but WITHOUT ANY WARRANTY; without even the implied warranty of 704 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 705 // Lesser General Public License for more details. 706 // 707 // You should have received a copy of the GNU Lesser General Public 708 // License along with the GNU C Library; if not, see 709 // <https://www.gnu.org/licenses/>. 710 711 // Size in bits of the 'time_t' type of the default ABI. 712 713 // Convenience types. 714 type X__u_char = uint8 /* types.h:31:23 */ 715 type X__u_short = uint16 /* types.h:32:28 */ 716 type X__u_int = uint32 /* types.h:33:22 */ 717 type X__u_long = uint32 /* types.h:34:27 */ 718 719 // Fixed-size types, underlying types depend on word size and compiler. 720 type X__int8_t = int8 /* types.h:37:21 */ 721 type X__uint8_t = uint8 /* types.h:38:23 */ 722 type X__int16_t = int16 /* types.h:39:26 */ 723 type X__uint16_t = uint16 /* types.h:40:28 */ 724 type X__int32_t = int32 /* types.h:41:20 */ 725 type X__uint32_t = uint32 /* types.h:42:22 */ 726 type X__int64_t = int64 /* types.h:47:44 */ 727 type X__uint64_t = uint64 /* types.h:48:46 */ 728 729 // Smallest types with at least a given width. 730 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 731 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 732 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 733 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 734 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 735 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 736 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 737 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 738 739 // quad_t is also 64 bits. 740 type X__quad_t = int64 /* types.h:66:37 */ 741 type X__u_quad_t = uint64 /* types.h:67:46 */ 742 743 // Largest integral types. 744 type X__intmax_t = int64 /* types.h:75:37 */ 745 type X__uintmax_t = uint64 /* types.h:76:46 */ 746 747 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 748 // macros for each of the OS types we define below. The definitions 749 // of those macros must use the following macros for underlying types. 750 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 751 // variants of each of the following integer types on this machine. 752 // 753 // 16 -- "natural" 16-bit type (always short) 754 // 32 -- "natural" 32-bit type (always int) 755 // 64 -- "natural" 64-bit type (long or long long) 756 // LONG32 -- 32-bit type, traditionally long 757 // QUAD -- 64-bit type, traditionally long long 758 // WORD -- natural type of __WORDSIZE bits (int or long) 759 // LONGWORD -- type of __WORDSIZE bits, traditionally long 760 // 761 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 762 // conventional uses of `long' or `long long' type modifiers match the 763 // types we define, even when a less-adorned type would be the same size. 764 // This matters for (somewhat) portably writing printf/scanf formats for 765 // these types, where using the appropriate l or ll format modifiers can 766 // make the typedefs and the formats match up across all GNU platforms. If 767 // we used `long' when it's 64 bits where `long long' is expected, then the 768 // compiler would warn about the formats not matching the argument types, 769 // and the programmer changing them to shut up the compiler would break the 770 // program's portability. 771 // 772 // Here we assume what is presently the case in all the GCC configurations 773 // we support: long long is always 64 bits, long is always word/address size, 774 // and int is always 32 bits. 775 776 // We want __extension__ before typedef's that use nonstandard base types 777 // such as `long long' in C89 mode. 778 // bits/typesizes.h -- underlying types for *_t. Generic version. 779 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 780 // This file is part of the GNU C Library. 781 // 782 // The GNU C Library is free software; you can redistribute it and/or 783 // modify it under the terms of the GNU Lesser General Public 784 // License as published by the Free Software Foundation; either 785 // version 2.1 of the License, or (at your option) any later version. 786 // 787 // The GNU C Library is distributed in the hope that it will be useful, 788 // but WITHOUT ANY WARRANTY; without even the implied warranty of 789 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 790 // Lesser General Public License for more details. 791 // 792 // You should have received a copy of the GNU Lesser General Public 793 // License along with the GNU C Library; if not, see 794 // <https://www.gnu.org/licenses/>. 795 796 // See <bits/types.h> for the meaning of these macros. This file exists so 797 // that <bits/types.h> need not vary across different GNU platforms. 798 799 // Number of descriptors that can fit in an `fd_set'. 800 801 // bits/time64.h -- underlying types for __time64_t. Generic version. 802 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 803 // This file is part of the GNU C Library. 804 // 805 // The GNU C Library is free software; you can redistribute it and/or 806 // modify it under the terms of the GNU Lesser General Public 807 // License as published by the Free Software Foundation; either 808 // version 2.1 of the License, or (at your option) any later version. 809 // 810 // The GNU C Library is distributed in the hope that it will be useful, 811 // but WITHOUT ANY WARRANTY; without even the implied warranty of 812 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 813 // Lesser General Public License for more details. 814 // 815 // You should have received a copy of the GNU Lesser General Public 816 // License along with the GNU C Library; if not, see 817 // <https://www.gnu.org/licenses/>. 818 819 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 820 821 // Define a 64-bit time type alongsize the 32-bit one. 822 823 type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers. 824 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 825 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 826 type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers. 827 type X__ino64_t = X__uint64_t /* types.h:149:27 */ // Type of file serial numbers (LFS). 828 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 829 type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. 830 type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets. 831 type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 832 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 833 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 834 type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts. 835 type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement. 836 type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS). 837 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 838 type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch. 839 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 840 type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds. 841 842 type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. 843 type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. 844 845 // Clock ID used in clock and timer functions. 846 type X__clockid_t = int32 /* types.h:168:29 */ 847 848 // Timer ID returned by `timer_create'. 849 type X__timer_t = uintptr /* types.h:171:12 */ 850 851 // Type to represent block size. 852 type X__blksize_t = int32 /* types.h:174:29 */ 853 854 // Types from the Large File Support interface. 855 856 // Type to count number of disk blocks. 857 type X__blkcnt_t = int32 /* types.h:179:28 */ 858 type X__blkcnt64_t = X__int64_t /* types.h:180:30 */ 859 860 // Type to count file system blocks. 861 type X__fsblkcnt_t = uint32 /* types.h:183:30 */ 862 type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */ 863 864 // Type to count file system nodes. 865 type X__fsfilcnt_t = uint32 /* types.h:187:30 */ 866 type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */ 867 868 // Type of miscellaneous file system fields. 869 type X__fsword_t = int32 /* types.h:191:28 */ 870 871 type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error. 872 873 // Signed long type used in system calls. 874 type X__syscall_slong_t = int32 /* types.h:196:33 */ 875 // Unsigned long type used in system calls. 876 type X__syscall_ulong_t = uint32 /* types.h:198:33 */ 877 878 // These few don't really vary by system, they always correspond 879 // 880 // to one of the other defined types. 881 type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). 882 type X__caddr_t = uintptr /* types.h:203:14 */ 883 884 // Duplicates info from stdint.h but this is used in unistd.h. 885 type X__intptr_t = int32 /* types.h:206:25 */ 886 887 // Duplicate info from sys/socket.h. 888 type X__socklen_t = uint32 /* types.h:209:23 */ 889 890 // C99: An integer type that can be accessed as an atomic entity, 891 // 892 // even in the presence of asynchronous interrupts. 893 // It is not currently necessary for this to be machine-specific. 894 type X__sig_atomic_t = int32 /* types.h:214:13 */ 895 896 // Seconds since the Epoch, visible to user code when time_t is too 897 // 898 // narrow only for consistency with the old way of widening too-narrow 899 // types. User code should never use __time64_t. 900 type X__time64_t = X__int64_t /* types.h:222:28 */ 901 902 type U_char = X__u_char /* types.h:33:18 */ 903 type U_short = X__u_short /* types.h:34:19 */ 904 type U_int = X__u_int /* types.h:35:17 */ 905 type U_long = X__u_long /* types.h:36:18 */ 906 type Quad_t = X__quad_t /* types.h:37:18 */ 907 type U_quad_t = X__u_quad_t /* types.h:38:20 */ 908 type Fsid_t = X__fsid_t /* types.h:39:18 */ 909 type Loff_t = X__loff_t /* types.h:42:18 */ 910 911 type Ino_t = X__ino64_t /* types.h:49:19 */ 912 913 type Dev_t = X__dev_t /* types.h:59:17 */ 914 915 type Gid_t = X__gid_t /* types.h:64:17 */ 916 917 type Mode_t = X__mode_t /* types.h:69:18 */ 918 919 type Nlink_t = X__nlink_t /* types.h:74:19 */ 920 921 type Uid_t = X__uid_t /* types.h:79:17 */ 922 923 type Off_t = X__off64_t /* types.h:87:19 */ 924 925 type Pid_t = X__pid_t /* types.h:97:17 */ 926 927 type Id_t = X__id_t /* types.h:103:16 */ 928 929 type Ssize_t = X__ssize_t /* types.h:108:19 */ 930 931 type Daddr_t = X__daddr_t /* types.h:114:19 */ 932 type Caddr_t = X__caddr_t /* types.h:115:19 */ 933 934 type Key_t = X__key_t /* types.h:121:17 */ 935 936 // bits/types.h -- definitions of __*_t types underlying *_t types. 937 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 938 // This file is part of the GNU C Library. 939 // 940 // The GNU C Library is free software; you can redistribute it and/or 941 // modify it under the terms of the GNU Lesser General Public 942 // License as published by the Free Software Foundation; either 943 // version 2.1 of the License, or (at your option) any later version. 944 // 945 // The GNU C Library is distributed in the hope that it will be useful, 946 // but WITHOUT ANY WARRANTY; without even the implied warranty of 947 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 948 // Lesser General Public License for more details. 949 // 950 // You should have received a copy of the GNU Lesser General Public 951 // License along with the GNU C Library; if not, see 952 // <https://www.gnu.org/licenses/>. 953 954 // Never include this file directly; use <sys/types.h> instead. 955 956 // Returned by `clock'. 957 type Clock_t = X__clock_t /* clock_t.h:7:19 */ 958 959 // bits/types.h -- definitions of __*_t types underlying *_t types. 960 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 961 // This file is part of the GNU C Library. 962 // 963 // The GNU C Library is free software; you can redistribute it and/or 964 // modify it under the terms of the GNU Lesser General Public 965 // License as published by the Free Software Foundation; either 966 // version 2.1 of the License, or (at your option) any later version. 967 // 968 // The GNU C Library is distributed in the hope that it will be useful, 969 // but WITHOUT ANY WARRANTY; without even the implied warranty of 970 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 971 // Lesser General Public License for more details. 972 // 973 // You should have received a copy of the GNU Lesser General Public 974 // License along with the GNU C Library; if not, see 975 // <https://www.gnu.org/licenses/>. 976 977 // Never include this file directly; use <sys/types.h> instead. 978 979 // Clock ID used in clock and timer functions. 980 type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */ 981 982 // bits/types.h -- definitions of __*_t types underlying *_t types. 983 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 984 // This file is part of the GNU C Library. 985 // 986 // The GNU C Library is free software; you can redistribute it and/or 987 // modify it under the terms of the GNU Lesser General Public 988 // License as published by the Free Software Foundation; either 989 // version 2.1 of the License, or (at your option) any later version. 990 // 991 // The GNU C Library is distributed in the hope that it will be useful, 992 // but WITHOUT ANY WARRANTY; without even the implied warranty of 993 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 994 // Lesser General Public License for more details. 995 // 996 // You should have received a copy of the GNU Lesser General Public 997 // License along with the GNU C Library; if not, see 998 // <https://www.gnu.org/licenses/>. 999 1000 // Never include this file directly; use <sys/types.h> instead. 1001 1002 // Returned by `time'. 1003 type Time_t = X__time_t /* time_t.h:7:18 */ 1004 1005 // bits/types.h -- definitions of __*_t types underlying *_t types. 1006 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1007 // This file is part of the GNU C Library. 1008 // 1009 // The GNU C Library is free software; you can redistribute it and/or 1010 // modify it under the terms of the GNU Lesser General Public 1011 // License as published by the Free Software Foundation; either 1012 // version 2.1 of the License, or (at your option) any later version. 1013 // 1014 // The GNU C Library is distributed in the hope that it will be useful, 1015 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1017 // Lesser General Public License for more details. 1018 // 1019 // You should have received a copy of the GNU Lesser General Public 1020 // License along with the GNU C Library; if not, see 1021 // <https://www.gnu.org/licenses/>. 1022 1023 // Never include this file directly; use <sys/types.h> instead. 1024 1025 // Timer ID returned by `timer_create'. 1026 type Timer_t = X__timer_t /* timer_t.h:7:19 */ 1027 1028 // Wide character type. 1029 // Locale-writers should change this as necessary to 1030 // be big enough to hold unique values not between 0 and 127, 1031 // and not (wchar_t) -1, for each defined multibyte character. 1032 1033 // Define this type if we are doing the whole job, 1034 // or if we want this type in particular. 1035 1036 // A null pointer constant. 1037 1038 // Old compatibility names for C types. 1039 type Ulong = uint32 /* types.h:148:27 */ 1040 type Ushort = uint16 /* types.h:149:28 */ 1041 type Uint = uint32 /* types.h:150:22 */ 1042 1043 // These size-specific names are used by some of the inet code. 1044 1045 // Define intN_t types. 1046 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1047 // This file is part of the GNU C Library. 1048 // 1049 // The GNU C Library is free software; you can redistribute it and/or 1050 // modify it under the terms of the GNU Lesser General Public 1051 // License as published by the Free Software Foundation; either 1052 // version 2.1 of the License, or (at your option) any later version. 1053 // 1054 // The GNU C Library is distributed in the hope that it will be useful, 1055 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1056 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1057 // Lesser General Public License for more details. 1058 // 1059 // You should have received a copy of the GNU Lesser General Public 1060 // License along with the GNU C Library; if not, see 1061 // <https://www.gnu.org/licenses/>. 1062 1063 // bits/types.h -- definitions of __*_t types underlying *_t types. 1064 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1065 // This file is part of the GNU C Library. 1066 // 1067 // The GNU C Library is free software; you can redistribute it and/or 1068 // modify it under the terms of the GNU Lesser General Public 1069 // License as published by the Free Software Foundation; either 1070 // version 2.1 of the License, or (at your option) any later version. 1071 // 1072 // The GNU C Library is distributed in the hope that it will be useful, 1073 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1074 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1075 // Lesser General Public License for more details. 1076 // 1077 // You should have received a copy of the GNU Lesser General Public 1078 // License along with the GNU C Library; if not, see 1079 // <https://www.gnu.org/licenses/>. 1080 1081 // Never include this file directly; use <sys/types.h> instead. 1082 1083 type Int8_t = X__int8_t /* stdint-intn.h:24:18 */ 1084 type Int16_t = X__int16_t /* stdint-intn.h:25:19 */ 1085 type Int32_t = X__int32_t /* stdint-intn.h:26:19 */ 1086 type Int64_t = X__int64_t /* stdint-intn.h:27:19 */ 1087 1088 // These were defined by ISO C without the first `_'. 1089 type U_int8_t = X__uint8_t /* types.h:158:19 */ 1090 type U_int16_t = X__uint16_t /* types.h:159:20 */ 1091 type U_int32_t = X__uint32_t /* types.h:160:20 */ 1092 type U_int64_t = X__uint64_t /* types.h:161:20 */ 1093 1094 type Register_t = int32 /* types.h:164:13 */ 1095 1096 // It also defines `fd_set' and the FD_* macros for `select'. 1097 // `fd_set' type and related macros, and `select'/`pselect' declarations. 1098 // Copyright (C) 1996-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 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 1116 1117 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1118 // This file is part of the GNU C Library. 1119 // 1120 // The GNU C Library is free software; you can redistribute it and/or 1121 // modify it under the terms of the GNU Lesser General Public 1122 // License as published by the Free Software Foundation; either 1123 // version 2.1 of the License, or (at your option) any later version. 1124 // 1125 // The GNU C Library is distributed in the hope that it will be useful, 1126 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1127 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1128 // Lesser General Public License for more details. 1129 // 1130 // You should have received a copy of the GNU Lesser General Public 1131 // License along with the GNU C Library; if not, see 1132 // <https://www.gnu.org/licenses/>. 1133 1134 // Get definition of needed basic types. 1135 // bits/types.h -- definitions of __*_t types underlying *_t types. 1136 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1137 // This file is part of the GNU C Library. 1138 // 1139 // The GNU C Library is free software; you can redistribute it and/or 1140 // modify it under the terms of the GNU Lesser General Public 1141 // License as published by the Free Software Foundation; either 1142 // version 2.1 of the License, or (at your option) any later version. 1143 // 1144 // The GNU C Library is distributed in the hope that it will be useful, 1145 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1146 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1147 // Lesser General Public License for more details. 1148 // 1149 // You should have received a copy of the GNU Lesser General Public 1150 // License along with the GNU C Library; if not, see 1151 // <https://www.gnu.org/licenses/>. 1152 1153 // Never include this file directly; use <sys/types.h> instead. 1154 1155 // Get __FD_* definitions. 1156 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1157 // This file is part of the GNU C Library. 1158 // 1159 // The GNU C Library is free software; you can redistribute it and/or 1160 // modify it under the terms of the GNU Lesser General Public 1161 // License as published by the Free Software Foundation; either 1162 // version 2.1 of the License, or (at your option) any later version. 1163 // 1164 // The GNU C Library is distributed in the hope that it will be useful, 1165 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1166 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1167 // Lesser General Public License for more details. 1168 // 1169 // You should have received a copy of the GNU Lesser General Public 1170 // License along with the GNU C Library; if not, see 1171 // <https://www.gnu.org/licenses/>. 1172 1173 // We don't use `memset' because this would require a prototype and 1174 // the array isn't too big. 1175 1176 // Get sigset_t. 1177 1178 type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */ 1179 1180 // A set of signals to be blocked, unblocked, or waited for. 1181 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ 1182 1183 // Get definition of timer specification structures. 1184 1185 // bits/types.h -- definitions of __*_t types underlying *_t types. 1186 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1187 // This file is part of the GNU C Library. 1188 // 1189 // The GNU C Library is free software; you can redistribute it and/or 1190 // modify it under the terms of the GNU Lesser General Public 1191 // License as published by the Free Software Foundation; either 1192 // version 2.1 of the License, or (at your option) any later version. 1193 // 1194 // The GNU C Library is distributed in the hope that it will be useful, 1195 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1196 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1197 // Lesser General Public License for more details. 1198 // 1199 // You should have received a copy of the GNU Lesser General Public 1200 // License along with the GNU C Library; if not, see 1201 // <https://www.gnu.org/licenses/>. 1202 1203 // Never include this file directly; use <sys/types.h> instead. 1204 1205 // A time value that is accurate to the nearest 1206 // 1207 // microsecond but also has a range of years. 1208 type Timeval = struct { 1209 Ftv_sec X__time_t 1210 Ftv_usec X__suseconds_t 1211 } /* struct_timeval.h:8:1 */ 1212 1213 // NB: Include guard matches what <linux/time.h> uses. 1214 1215 // bits/types.h -- definitions of __*_t types underlying *_t types. 1216 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1217 // This file is part of the GNU C Library. 1218 // 1219 // The GNU C Library is free software; you can redistribute it and/or 1220 // modify it under the terms of the GNU Lesser General Public 1221 // License as published by the Free Software Foundation; either 1222 // version 2.1 of the License, or (at your option) any later version. 1223 // 1224 // The GNU C Library is distributed in the hope that it will be useful, 1225 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1226 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1227 // Lesser General Public License for more details. 1228 // 1229 // You should have received a copy of the GNU Lesser General Public 1230 // License along with the GNU C Library; if not, see 1231 // <https://www.gnu.org/licenses/>. 1232 1233 // Never include this file directly; use <sys/types.h> instead. 1234 1235 // Endian macros for string.h functions 1236 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1237 // This file is part of the GNU C Library. 1238 // 1239 // The GNU C Library is free software; you can redistribute it and/or 1240 // modify it under the terms of the GNU Lesser General Public 1241 // License as published by the Free Software Foundation; either 1242 // version 2.1 of the License, or (at your option) any later version. 1243 // 1244 // The GNU C Library is distributed in the hope that it will be useful, 1245 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1246 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1247 // Lesser General Public License for more details. 1248 // 1249 // You should have received a copy of the GNU Lesser General Public 1250 // License along with the GNU C Library; if not, see 1251 // <http://www.gnu.org/licenses/>. 1252 1253 // POSIX.1b structure for a time value. This is like a `struct timeval' but 1254 // 1255 // has nanoseconds instead of microseconds. 1256 type Timespec = struct { 1257 Ftv_sec X__time_t 1258 Ftv_nsec X__syscall_slong_t 1259 } /* struct_timespec.h:10:1 */ 1260 1261 type Suseconds_t = X__suseconds_t /* select.h:43:23 */ 1262 1263 // The fd_set member is required to be an array of longs. 1264 type X__fd_mask = int32 /* select.h:49:18 */ 1265 1266 // Some versions of <linux/posix_types.h> define this macros. 1267 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 1268 1269 // fd_set for select and pselect. 1270 type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */ 1271 1272 // Maximum number of file descriptors in `fd_set'. 1273 1274 // Sometimes the fd_set member is assumed to have this type. 1275 type Fd_mask = X__fd_mask /* select.h:77:19 */ 1276 1277 // Define some inlines helping to catch common problems. 1278 1279 type Blksize_t = X__blksize_t /* types.h:185:21 */ 1280 1281 // Types from the Large File Support interface. 1282 type Blkcnt_t = X__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 1283 type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 1284 type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 1285 1286 // Now add the thread types. 1287 // Declaration of common pthread types for all architectures. 1288 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1289 // This file is part of the GNU C Library. 1290 // 1291 // The GNU C Library is free software; you can redistribute it and/or 1292 // modify it under the terms of the GNU Lesser General Public 1293 // License as published by the Free Software Foundation; either 1294 // version 2.1 of the License, or (at your option) any later version. 1295 // 1296 // The GNU C Library is distributed in the hope that it will be useful, 1297 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1298 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1299 // Lesser General Public License for more details. 1300 // 1301 // You should have received a copy of the GNU Lesser General Public 1302 // License along with the GNU C Library; if not, see 1303 // <https://www.gnu.org/licenses/>. 1304 1305 // For internal mutex and condition variable definitions. 1306 // Common threading primitives definitions for both POSIX and C11. 1307 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1308 // This file is part of the GNU C Library. 1309 // 1310 // The GNU C Library is free software; you can redistribute it and/or 1311 // modify it under the terms of the GNU Lesser General Public 1312 // License as published by the Free Software Foundation; either 1313 // version 2.1 of the License, or (at your option) any later version. 1314 // 1315 // The GNU C Library is distributed in the hope that it will be useful, 1316 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1317 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1318 // Lesser General Public License for more details. 1319 // 1320 // You should have received a copy of the GNU Lesser General Public 1321 // License along with the GNU C Library; if not, see 1322 // <https://www.gnu.org/licenses/>. 1323 1324 // Arch-specific definitions. Each architecture must define the following 1325 // macros to define the expected sizes of pthread data types: 1326 // 1327 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 1328 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 1329 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 1330 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 1331 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 1332 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 1333 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 1334 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 1335 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 1336 // 1337 // The additional macro defines any constraint for the lock alignment 1338 // inside the thread structures: 1339 // 1340 // __LOCK_ALIGNMENT - for internal lock/futex usage. 1341 // 1342 // Same idea but for the once locking primitive: 1343 // 1344 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 1345 1346 // Machine-specific pthread type layouts. Generic version. 1347 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1348 // 1349 // This file is part of the GNU C Library. 1350 // 1351 // The GNU C Library is free software; you can redistribute it and/or 1352 // modify it under the terms of the GNU Lesser General Public 1353 // License as published by the Free Software Foundation; either 1354 // version 2.1 of the License, or (at your option) any later version. 1355 // 1356 // The GNU C Library is distributed in the hope that it will be useful, 1357 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1358 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1359 // Lesser General Public License for more details. 1360 // 1361 // You should have received a copy of the GNU Lesser General Public 1362 // License along with the GNU C Library; if not, see 1363 // <http://www.gnu.org/licenses/>. 1364 1365 // Copyright (C) 1999-2020 Free Software Foundation, Inc. 1366 // This file is part of the GNU C Library. 1367 // 1368 // The GNU C Library is free software; you can redistribute it and/or 1369 // modify it under the terms of the GNU Lesser General Public 1370 // License as published by the Free Software Foundation; either 1371 // version 2.1 of the License, or (at your option) any later version. 1372 // 1373 // The GNU C Library is distributed in the hope that it will be useful, 1374 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1375 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1376 // Lesser General Public License for more details. 1377 // 1378 // You should have received a copy of the GNU Lesser General Public 1379 // License along with the GNU C Library; if not, see 1380 // <https://www.gnu.org/licenses/>. 1381 1382 // Common definition of pthread_mutex_t. 1383 1384 type X__pthread_internal_list = struct { 1385 F__prev uintptr 1386 F__next uintptr 1387 } /* thread-shared-types.h:49:9 */ 1388 1389 // Type to count file system inodes. 1390 1391 // Now add the thread types. 1392 // Declaration of common pthread types for all architectures. 1393 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1394 // This file is part of the GNU C Library. 1395 // 1396 // The GNU C Library is free software; you can redistribute it and/or 1397 // modify it under the terms of the GNU Lesser General Public 1398 // License as published by the Free Software Foundation; either 1399 // version 2.1 of the License, or (at your option) any later version. 1400 // 1401 // The GNU C Library is distributed in the hope that it will be useful, 1402 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1403 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1404 // Lesser General Public License for more details. 1405 // 1406 // You should have received a copy of the GNU Lesser General Public 1407 // License along with the GNU C Library; if not, see 1408 // <https://www.gnu.org/licenses/>. 1409 1410 // For internal mutex and condition variable definitions. 1411 // Common threading primitives definitions for both POSIX and C11. 1412 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1413 // This file is part of the GNU C Library. 1414 // 1415 // The GNU C Library is free software; you can redistribute it and/or 1416 // modify it under the terms of the GNU Lesser General Public 1417 // License as published by the Free Software Foundation; either 1418 // version 2.1 of the License, or (at your option) any later version. 1419 // 1420 // The GNU C Library is distributed in the hope that it will be useful, 1421 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1422 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1423 // Lesser General Public License for more details. 1424 // 1425 // You should have received a copy of the GNU Lesser General Public 1426 // License along with the GNU C Library; if not, see 1427 // <https://www.gnu.org/licenses/>. 1428 1429 // Arch-specific definitions. Each architecture must define the following 1430 // macros to define the expected sizes of pthread data types: 1431 // 1432 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 1433 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 1434 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 1435 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 1436 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 1437 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 1438 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 1439 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 1440 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 1441 // 1442 // The additional macro defines any constraint for the lock alignment 1443 // inside the thread structures: 1444 // 1445 // __LOCK_ALIGNMENT - for internal lock/futex usage. 1446 // 1447 // Same idea but for the once locking primitive: 1448 // 1449 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 1450 1451 // Machine-specific pthread type layouts. Generic version. 1452 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1453 // 1454 // This file is part of the GNU C Library. 1455 // 1456 // The GNU C Library is free software; you can redistribute it and/or 1457 // modify it under the terms of the GNU Lesser General Public 1458 // License as published by the Free Software Foundation; either 1459 // version 2.1 of the License, or (at your option) any later version. 1460 // 1461 // The GNU C Library is distributed in the hope that it will be useful, 1462 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1463 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1464 // Lesser General Public License for more details. 1465 // 1466 // You should have received a copy of the GNU Lesser General Public 1467 // License along with the GNU C Library; if not, see 1468 // <http://www.gnu.org/licenses/>. 1469 1470 // Copyright (C) 1999-2020 Free Software Foundation, Inc. 1471 // This file is part of the GNU C Library. 1472 // 1473 // The GNU C Library is free software; you can redistribute it and/or 1474 // modify it under the terms of the GNU Lesser General Public 1475 // License as published by the Free Software Foundation; either 1476 // version 2.1 of the License, or (at your option) any later version. 1477 // 1478 // The GNU C Library is distributed in the hope that it will be useful, 1479 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1480 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1481 // Lesser General Public License for more details. 1482 // 1483 // You should have received a copy of the GNU Lesser General Public 1484 // License along with the GNU C Library; if not, see 1485 // <https://www.gnu.org/licenses/>. 1486 1487 // Common definition of pthread_mutex_t. 1488 1489 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ 1490 1491 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ 1492 1493 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ 1494 1495 // Arch-specific mutex definitions. A generic implementation is provided 1496 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 1497 // can override it by defining: 1498 // 1499 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 1500 // definition). It should contains at least the internal members 1501 // defined in the generic version. 1502 // 1503 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 1504 // atomic operations. 1505 // 1506 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 1507 // It should initialize the mutex internal flag. 1508 1509 // Default mutex implementation struct definitions. 1510 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1511 // This file is part of the GNU C Library. 1512 // 1513 // The GNU C Library is free software; you can redistribute it and/or 1514 // modify it under the terms of the GNU Lesser General Public 1515 // License as published by the Free Software Foundation; either 1516 // version 2.1 of the License, or (at your option) any later version. 1517 // 1518 // The GNU C Library is distributed in the hope that it will be useful, 1519 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1520 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1521 // Lesser General Public License for more details. 1522 // 1523 // You should have received a copy of the GNU Lesser General Public 1524 // License along with the GNU C Library; if not, see 1525 // <http://www.gnu.org/licenses/>. 1526 1527 // Generic struct for both POSIX and C11 mutexes. New ports are expected 1528 // to use the default layout, however architecture can redefine it to 1529 // add arch-specific extension (such as lock-elision). The struct have 1530 // a size of 32 bytes on LP32 and 40 bytes on LP64 architectures. 1531 1532 type X__pthread_mutex_s = struct { 1533 F__lock int32 1534 F__count uint32 1535 F__owner int32 1536 F__kind int32 1537 F__nusers uint32 1538 F__20 struct{ F__spins int32 } 1539 } /* struct_mutex.h:27:1 */ 1540 1541 // Arch-sepecific read-write lock definitions. A generic implementation is 1542 // provided by struct_rwlock.h. If required, an architecture can override it 1543 // by defining: 1544 // 1545 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 1546 // It should contain at least the internal members defined in the 1547 // generic version. 1548 // 1549 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 1550 // It should initialize the rwlock internal type. 1551 1552 // Default read-write lock implementation struct definitions. 1553 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1554 // This file is part of the GNU C Library. 1555 // 1556 // The GNU C Library is free software; you can redistribute it and/or 1557 // modify it under the terms of the GNU Lesser General Public 1558 // License as published by the Free Software Foundation; either 1559 // version 2.1 of the License, or (at your option) any later version. 1560 // 1561 // The GNU C Library is distributed in the hope that it will be useful, 1562 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1563 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1564 // Lesser General Public License for more details. 1565 // 1566 // You should have received a copy of the GNU Lesser General Public 1567 // License along with the GNU C Library; if not, see 1568 // <http://www.gnu.org/licenses/>. 1569 1570 // Endian macros for string.h functions 1571 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1572 // This file is part of the GNU C Library. 1573 // 1574 // The GNU C Library is free software; you can redistribute it and/or 1575 // modify it under the terms of the GNU Lesser General Public 1576 // License as published by the Free Software Foundation; either 1577 // version 2.1 of the License, or (at your option) any later version. 1578 // 1579 // The GNU C Library is distributed in the hope that it will be useful, 1580 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1581 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1582 // Lesser General Public License for more details. 1583 // 1584 // You should have received a copy of the GNU Lesser General Public 1585 // License along with the GNU C Library; if not, see 1586 // <http://www.gnu.org/licenses/>. 1587 1588 // Generic struct for both POSIX read-write lock. New ports are expected 1589 // to use the default layout, however archictetures can redefine it to add 1590 // arch-specific extensions (such as lock-elision). The struct have a size 1591 // of 32 bytes on both LP32 and LP64 architectures. 1592 1593 type X__pthread_rwlock_arch_t = struct { 1594 F__readers uint32 1595 F__writers uint32 1596 F__wrphase_futex uint32 1597 F__writers_futex uint32 1598 F__pad3 uint32 1599 F__pad4 uint32 1600 F__flags uint8 1601 F__shared uint8 1602 F__pad1 uint8 1603 F__pad2 uint8 1604 F__cur_writer int32 1605 } /* struct_rwlock.h:29:1 */ 1606 1607 // Common definition of pthread_cond_t. 1608 1609 type X__pthread_cond_s = struct { 1610 F__0 struct{ F__wseq uint64 } 1611 F__8 struct{ F__g1_start uint64 } 1612 F__g_refs [2]uint32 1613 F__g_size [2]uint32 1614 F__g1_orig_size uint32 1615 F__wrefs uint32 1616 F__g_signals [2]uint32 1617 } /* thread-shared-types.h:92:1 */ 1618 1619 // Thread identifiers. The structure of the attribute type is not 1620 // 1621 // exposed on purpose. 1622 type Pthread_t = uint32 /* pthreadtypes.h:27:27 */ 1623 1624 // Data structures for mutex handling. The structure of the attribute 1625 // 1626 // type is not exposed on purpose. 1627 type Pthread_mutexattr_t = struct { 1628 F__ccgo_pad1 [0]uint32 1629 F__size [4]uint8 1630 } /* pthreadtypes.h:36:3 */ 1631 1632 // Data structure for condition variable handling. The structure of 1633 // 1634 // the attribute type is not exposed on purpose. 1635 type Pthread_condattr_t = struct { 1636 F__ccgo_pad1 [0]uint32 1637 F__size [4]uint8 1638 } /* pthreadtypes.h:45:3 */ 1639 1640 // Keys for thread-specific data 1641 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 1642 1643 // Once-only execution 1644 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 1645 1646 type Pthread_attr_t1 = struct { 1647 F__ccgo_pad1 [0]uint32 1648 F__size [36]uint8 1649 } /* pthreadtypes.h:56:1 */ 1650 1651 type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */ 1652 1653 type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */ 1654 1655 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */ 1656 1657 // Data structure for reader-writer lock variable handling. The 1658 // 1659 // structure of the attribute type is deliberately not exposed. 1660 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 1661 1662 type Pthread_rwlockattr_t = struct { 1663 F__ccgo_pad1 [0]uint32 1664 F__size [8]uint8 1665 } /* pthreadtypes.h:97:3 */ 1666 1667 // POSIX spinlock data type. 1668 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 1669 1670 // POSIX barriers data type. The structure of the type is 1671 // 1672 // deliberately not exposed. 1673 type Pthread_barrier_t = struct { 1674 F__ccgo_pad1 [0]uint32 1675 F__size [20]uint8 1676 } /* pthreadtypes.h:112:3 */ 1677 1678 type Pthread_barrierattr_t = struct { 1679 F__ccgo_pad1 [0]uint32 1680 F__size [4]uint8 1681 } /* pthreadtypes.h:118:3 */ 1682 1683 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1684 // This file is part of the GNU C Library. 1685 // 1686 // The GNU C Library is free software; you can redistribute it and/or 1687 // modify it under the terms of the GNU Lesser General Public 1688 // License as published by the Free Software Foundation; either 1689 // version 2.1 of the License, or (at your option) any later version. 1690 // 1691 // The GNU C Library is distributed in the hope that it will be useful, 1692 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1693 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1694 // Lesser General Public License for more details. 1695 // 1696 // You should have received a copy of the GNU Lesser General Public 1697 // License along with the GNU C Library; if not, see 1698 // <https://www.gnu.org/licenses/>. 1699 1700 // POSIX Standard: 5.6 File Characteristics <sys/stat.h> 1701 1702 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1703 // This file is part of the GNU C Library. 1704 // 1705 // The GNU C Library is free software; you can redistribute it and/or 1706 // modify it under the terms of the GNU Lesser General Public 1707 // License as published by the Free Software Foundation; either 1708 // version 2.1 of the License, or (at your option) any later version. 1709 // 1710 // The GNU C Library is distributed in the hope that it will be useful, 1711 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1712 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1713 // Lesser General Public License for more details. 1714 // 1715 // You should have received a copy of the GNU Lesser General Public 1716 // License along with the GNU C Library; if not, see 1717 // <https://www.gnu.org/licenses/>. 1718 1719 // bits/types.h -- definitions of __*_t types underlying *_t types. 1720 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1721 // This file is part of the GNU C Library. 1722 // 1723 // The GNU C Library is free software; you can redistribute it and/or 1724 // modify it under the terms of the GNU Lesser General Public 1725 // License as published by the Free Software Foundation; either 1726 // version 2.1 of the License, or (at your option) any later version. 1727 // 1728 // The GNU C Library is distributed in the hope that it will be useful, 1729 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1730 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1731 // Lesser General Public License for more details. 1732 // 1733 // You should have received a copy of the GNU Lesser General Public 1734 // License along with the GNU C Library; if not, see 1735 // <https://www.gnu.org/licenses/>. 1736 1737 // Never include this file directly; use <sys/types.h> instead. 1738 1739 // NB: Include guard matches what <linux/time.h> uses. 1740 1741 // The Single Unix specification says that some more types are 1742 // available here. 1743 1744 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1745 // This file is part of the GNU C Library. 1746 // 1747 // The GNU C Library is free software; you can redistribute it and/or 1748 // modify it under the terms of the GNU Lesser General Public 1749 // License as published by the Free Software Foundation; either 1750 // version 2.1 of the License, or (at your option) any later version. 1751 // 1752 // The GNU C Library is distributed in the hope that it will be useful, 1753 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1754 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1755 // Lesser General Public License for more details. 1756 // 1757 // You should have received a copy of the GNU Lesser General Public 1758 // License along with the GNU C Library; if not, see 1759 // <https://www.gnu.org/licenses/>. 1760 1761 // Versions of the `struct stat' data structure. 1762 1763 // Versions of the `xmknod' interface. 1764 1765 type Stat = struct { 1766 Fst_dev X__dev_t 1767 F__pad1 uint16 1768 F__ccgo_pad1 [2]byte 1769 F__st_ino X__ino_t 1770 Fst_mode X__mode_t 1771 Fst_nlink X__nlink_t 1772 Fst_uid X__uid_t 1773 Fst_gid X__gid_t 1774 Fst_rdev X__dev_t 1775 F__pad2 uint16 1776 F__ccgo_pad2 [6]byte 1777 Fst_size X__off64_t 1778 Fst_blksize X__blksize_t 1779 F__ccgo_pad3 [4]byte 1780 Fst_blocks X__blkcnt64_t 1781 Fst_atim struct { 1782 Ftv_sec X__time_t 1783 Ftv_nsec X__syscall_slong_t 1784 } 1785 Fst_mtim struct { 1786 Ftv_sec X__time_t 1787 Ftv_nsec X__syscall_slong_t 1788 } 1789 Fst_ctim struct { 1790 Ftv_sec X__time_t 1791 Ftv_nsec X__syscall_slong_t 1792 } 1793 Fst_ino X__ino64_t 1794 } /* stat.h:38:1 */ 1795 1796 // File tree traversal functions declarations. 1797 // Copyright (C) 1994-2020 Free Software Foundation, Inc. 1798 // This file is part of the GNU C Library. 1799 // 1800 // The GNU C Library is free software; you can redistribute it and/or 1801 // modify it under the terms of the GNU Lesser General Public 1802 // License as published by the Free Software Foundation; either 1803 // version 2.1 of the License, or (at your option) any later version. 1804 // 1805 // The GNU C Library is distributed in the hope that it will be useful, 1806 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1807 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1808 // Lesser General Public License for more details. 1809 // 1810 // You should have received a copy of the GNU Lesser General Public 1811 // License along with the GNU C Library; if not, see 1812 // <https://www.gnu.org/licenses/>. 1813 1814 // Copyright (c) 1989, 1993 1815 // The Regents of the University of California. All rights reserved. 1816 // 1817 // Redistribution and use in source and binary forms, with or without 1818 // modification, are permitted provided that the following conditions 1819 // are met: 1820 // 1. Redistributions of source code must retain the above copyright 1821 // notice, this list of conditions and the following disclaimer. 1822 // 2. Redistributions in binary form must reproduce the above copyright 1823 // notice, this list of conditions and the following disclaimer in the 1824 // documentation and/or other materials provided with the distribution. 1825 // 4. Neither the name of the University nor the names of its contributors 1826 // may be used to endorse or promote products derived from this software 1827 // without specific prior written permission. 1828 // 1829 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1830 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1831 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1832 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 1833 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1834 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 1835 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1836 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 1837 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 1838 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1839 // SUCH DAMAGE. 1840 // 1841 // @(#)fts.h 8.3 (Berkeley) 8/14/94 1842 1843 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1844 // This file is part of the GNU C Library. 1845 // 1846 // The GNU C Library is free software; you can redistribute it and/or 1847 // modify it under the terms of the GNU Lesser General Public 1848 // License as published by the Free Software Foundation; either 1849 // version 2.1 of the License, or (at your option) any later version. 1850 // 1851 // The GNU C Library is distributed in the hope that it will be useful, 1852 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1853 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1854 // Lesser General Public License for more details. 1855 // 1856 // You should have received a copy of the GNU Lesser General Public 1857 // License along with the GNU C Library; if not, see 1858 // <https://www.gnu.org/licenses/>. 1859 1860 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1861 // This file is part of the GNU C Library. 1862 // 1863 // The GNU C Library is free software; you can redistribute it and/or 1864 // modify it under the terms of the GNU Lesser General Public 1865 // License as published by the Free Software Foundation; either 1866 // version 2.1 of the License, or (at your option) any later version. 1867 // 1868 // The GNU C Library is distributed in the hope that it will be useful, 1869 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1870 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1871 // Lesser General Public License for more details. 1872 // 1873 // You should have received a copy of the GNU Lesser General Public 1874 // License along with the GNU C Library; if not, see 1875 // <https://www.gnu.org/licenses/>. 1876 1877 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 1878 1879 type X_ftsent = struct { 1880 Ffts_cycle uintptr 1881 Ffts_parent uintptr 1882 Ffts_link uintptr 1883 Ffts_number int32 1884 Ffts_pointer uintptr 1885 Ffts_accpath uintptr 1886 Ffts_path uintptr 1887 Ffts_errno int32 1888 Ffts_symfd int32 1889 Ffts_pathlen uint16 1890 Ffts_namelen uint16 1891 Ffts_ino Ino_t 1892 Ffts_dev Dev_t 1893 Ffts_nlink Nlink_t 1894 Ffts_level int16 1895 Ffts_info uint16 1896 Ffts_flags uint16 1897 Ffts_instr uint16 1898 Ffts_statp uintptr 1899 Ffts_name [1]uint8 1900 F__ccgo_pad1 [7]byte 1901 } /* fts.h:58:2 */ 1902 1903 // File tree traversal functions declarations. 1904 // Copyright (C) 1994-2020 Free Software Foundation, Inc. 1905 // This file is part of the GNU C Library. 1906 // 1907 // The GNU C Library is free software; you can redistribute it and/or 1908 // modify it under the terms of the GNU Lesser General Public 1909 // License as published by the Free Software Foundation; either 1910 // version 2.1 of the License, or (at your option) any later version. 1911 // 1912 // The GNU C Library is distributed in the hope that it will be useful, 1913 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1914 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1915 // Lesser General Public License for more details. 1916 // 1917 // You should have received a copy of the GNU Lesser General Public 1918 // License along with the GNU C Library; if not, see 1919 // <https://www.gnu.org/licenses/>. 1920 1921 // Copyright (c) 1989, 1993 1922 // The Regents of the University of California. All rights reserved. 1923 // 1924 // Redistribution and use in source and binary forms, with or without 1925 // modification, are permitted provided that the following conditions 1926 // are met: 1927 // 1. Redistributions of source code must retain the above copyright 1928 // notice, this list of conditions and the following disclaimer. 1929 // 2. Redistributions in binary form must reproduce the above copyright 1930 // notice, this list of conditions and the following disclaimer in the 1931 // documentation and/or other materials provided with the distribution. 1932 // 4. Neither the name of the University nor the names of its contributors 1933 // may be used to endorse or promote products derived from this software 1934 // without specific prior written permission. 1935 // 1936 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1937 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1938 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1939 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 1940 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1941 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 1942 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1943 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 1944 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 1945 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1946 // SUCH DAMAGE. 1947 // 1948 // @(#)fts.h 8.3 (Berkeley) 8/14/94 1949 1950 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1951 // This file is part of the GNU C Library. 1952 // 1953 // The GNU C Library is free software; you can redistribute it and/or 1954 // modify it under the terms of the GNU Lesser General Public 1955 // License as published by the Free Software Foundation; either 1956 // version 2.1 of the License, or (at your option) any later version. 1957 // 1958 // The GNU C Library is distributed in the hope that it will be useful, 1959 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1960 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1961 // Lesser General Public License for more details. 1962 // 1963 // You should have received a copy of the GNU Lesser General Public 1964 // License along with the GNU C Library; if not, see 1965 // <https://www.gnu.org/licenses/>. 1966 1967 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1968 // This file is part of the GNU C Library. 1969 // 1970 // The GNU C Library is free software; you can redistribute it and/or 1971 // modify it under the terms of the GNU Lesser General Public 1972 // License as published by the Free Software Foundation; either 1973 // version 2.1 of the License, or (at your option) any later version. 1974 // 1975 // The GNU C Library is distributed in the hope that it will be useful, 1976 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1977 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1978 // Lesser General Public License for more details. 1979 // 1980 // You should have received a copy of the GNU Lesser General Public 1981 // License along with the GNU C Library; if not, see 1982 // <https://www.gnu.org/licenses/>. 1983 1984 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 1985 1986 type FTS = struct { 1987 Ffts_cur uintptr 1988 Ffts_child uintptr 1989 Ffts_array uintptr 1990 F__ccgo_pad1 [4]byte 1991 Ffts_dev Dev_t 1992 Ffts_path uintptr 1993 Ffts_rfd int32 1994 Ffts_pathlen int32 1995 Ffts_nitems int32 1996 Ffts_compar uintptr 1997 Ffts_options int32 1998 } /* fts.h:81:3 */ 1999 2000 type FTSENT = X_ftsent /* fts.h:147:3 */ 2001 2002 var _ uint8 /* gen.c:5:13: */