signal_linux_386.go (90859B)
1 // Code generated by 'ccgo signal/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 signal/signal_linux_386.go -pkgname signal', DO NOT EDIT. 2 3 package signal 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 FP_XSTATE_MAGIC1 = 0x46505853 19 FP_XSTATE_MAGIC2 = 0x46505845 20 MINSIGSTKSZ = 2048 21 NGREG = 19 22 NSIG = 65 23 SA_INTERRUPT = 0x20000000 24 SA_NOCLDSTOP = 1 25 SA_NOCLDWAIT = 2 26 SA_NODEFER = 0x40000000 27 SA_NOMASK = 1073741824 28 SA_ONESHOT = 2147483648 29 SA_ONSTACK = 0x08000000 30 SA_RESETHAND = 0x80000000 31 SA_RESTART = 0x10000000 32 SA_SIGINFO = 4 33 SA_STACK = 134217728 34 SIGABRT = 6 35 SIGALRM = 14 36 SIGBUS = 7 37 SIGCHLD = 17 38 SIGCLD = 17 39 SIGCONT = 18 40 SIGFPE = 8 41 SIGHUP = 1 42 SIGILL = 4 43 SIGINT = 2 44 SIGIO = 29 45 SIGIOT = 6 46 SIGKILL = 9 47 SIGPIPE = 13 48 SIGPOLL = 29 49 SIGPROF = 27 50 SIGPWR = 30 51 SIGQUIT = 3 52 SIGSEGV = 11 53 SIGSTKFLT = 16 54 SIGSTKSZ = 8192 55 SIGSTOP = 19 56 SIGSYS = 31 57 SIGTERM = 15 58 SIGTRAP = 5 59 SIGTSTP = 20 60 SIGTTIN = 21 61 SIGTTOU = 22 62 SIGURG = 23 63 SIGUSR1 = 10 64 SIGUSR2 = 12 65 SIGVTALRM = 26 66 SIGWINCH = 28 67 SIGXCPU = 24 68 SIGXFSZ = 25 69 SIG_BLOCK = 0 70 SIG_SETMASK = 2 71 SIG_UNBLOCK = 1 72 X86_FXSR_MAGIC = 0x0000 73 X_ATFILE_SOURCE = 1 74 X_BITS_ENDIANNESS_H = 1 75 X_BITS_ENDIAN_H = 1 76 X_BITS_PTHREADTYPES_ARCH_H = 1 77 X_BITS_PTHREADTYPES_COMMON_H = 1 78 X_BITS_SIGACTION_H = 1 79 X_BITS_SIGCONTEXT_H = 1 80 X_BITS_SIGEVENT_CONSTS_H = 1 81 X_BITS_SIGINFO_ARCH_H = 1 82 X_BITS_SIGINFO_CONSTS_H = 1 83 X_BITS_SIGNUM_GENERIC_H = 1 84 X_BITS_SIGNUM_H = 1 85 X_BITS_SIGSTACK_H = 1 86 X_BITS_SIGTHREAD_H = 1 87 X_BITS_SS_FLAGS_H = 1 88 X_BITS_TIME64_H = 1 89 X_BITS_TYPESIZES_H = 1 90 X_BITS_TYPES_H = 1 91 X_BSD_SIZE_T_ = 0 92 X_BSD_SIZE_T_DEFINED_ = 0 93 X_DEFAULT_SOURCE = 1 94 X_FEATURES_H = 1 95 X_FILE_OFFSET_BITS = 64 96 X_GCC_SIZE_T = 0 97 X_ILP32 = 1 98 X_NSIG = 65 99 X_POSIX_C_SOURCE = 200809 100 X_POSIX_SOURCE = 1 101 X_RWLOCK_INTERNAL_H = 0 102 X_SIGNAL_H = 0 103 X_SIZET_ = 0 104 X_SIZE_T = 0 105 X_SIZE_T_ = 0 106 X_SIZE_T_DECLARED = 0 107 X_SIZE_T_DEFINED = 0 108 X_SIZE_T_DEFINED_ = 0 109 X_STDC_PREDEF_H = 1 110 X_STRUCT_TIMESPEC = 1 111 X_SYS_CDEFS_H = 1 112 X_SYS_SIZE_T_H = 0 113 X_SYS_UCONTEXT_H = 1 114 X_THREAD_MUTEX_INTERNAL_H = 1 115 X_THREAD_SHARED_TYPES_H = 1 116 X_T_SIZE = 0 117 X_T_SIZE_ = 0 118 I386 = 1 119 Linux = 1 120 Unix = 1 121 ) 122 123 // POSIX names to access some of the members. 124 125 // sigevent constants. Linux version. 126 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 127 // This file is part of the GNU C Library. 128 // 129 // The GNU C Library is free software; you can redistribute it and/or 130 // modify it under the terms of the GNU Lesser General Public 131 // License as published by the Free Software Foundation; either 132 // version 2.1 of the License, or (at your option) any later version. 133 // 134 // The GNU C Library is distributed in the hope that it will be useful, 135 // but WITHOUT ANY WARRANTY; without even the implied warranty of 136 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 137 // Lesser General Public License for more details. 138 // 139 // You should have received a copy of the GNU Lesser General Public 140 // License along with the GNU C Library; if not, see 141 // <https://www.gnu.org/licenses/>. 142 143 // `sigev_notify' values. 144 const ( /* sigevent-consts.h:27:1: */ 145 SIGEV_SIGNAL = 0 // Notify via signal. 146 SIGEV_NONE = 1 // Other notification: meaningless. 147 SIGEV_THREAD = 2 // Deliver via thread creation. 148 149 SIGEV_THREAD_ID = 4 150 ) 151 152 // `si_code' values for SIGSEGV signal. 153 const ( /* siginfo-consts.h:119:1: */ 154 SEGV_MAPERR = 1 // Address not mapped to object. 155 SEGV_ACCERR = 2 // Invalid permissions for mapped object. 156 SEGV_BNDERR = 3 // Bounds checking failure. 157 SEGV_PKUERR = 4 // Protection key checking failure. 158 SEGV_ACCADI = 5 // ADI not enabled for mapped object. 159 SEGV_ADIDERR = 6 // Disrupting MCD error. 160 SEGV_ADIPERR = 7 161 ) 162 163 // `si_code' values for SIGBUS signal. 164 const ( /* siginfo-consts.h:138:1: */ 165 BUS_ADRALN = 1 // Invalid address alignment. 166 BUS_ADRERR = 2 // Non-existant physical address. 167 BUS_OBJERR = 3 // Object specific hardware error. 168 BUS_MCEERR_AR = 4 // Hardware memory error: action required. 169 BUS_MCEERR_AO = 5 170 ) 171 172 // `si_code' values for SIGCHLD signal. 173 const ( /* siginfo-consts.h:172:1: */ 174 CLD_EXITED = 1 // Child has exited. 175 CLD_KILLED = 2 // Child was killed. 176 CLD_DUMPED = 3 // Child terminated abnormally. 177 CLD_TRAPPED = 4 // Traced child has trapped. 178 CLD_STOPPED = 5 // Child has stopped. 179 CLD_CONTINUED = 6 180 ) 181 182 // `si_code' values for SIGPOLL signal. 183 const ( /* siginfo-consts.h:189:1: */ 184 POLL_IN = 1 // Data input available. 185 POLL_OUT = 2 // Output buffers available. 186 POLL_MSG = 3 // Input message available. 187 POLL_ERR = 4 // I/O error. 188 POLL_PRI = 5 // High priority input available. 189 POLL_HUP = 6 190 ) 191 192 // X/Open requires some more fields with fixed names. 193 194 // siginfo constants. Linux version. 195 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 196 // This file is part of the GNU C Library. 197 // 198 // The GNU C Library is free software; you can redistribute it and/or 199 // modify it under the terms of the GNU Lesser General Public 200 // License as published by the Free Software Foundation; either 201 // version 2.1 of the License, or (at your option) any later version. 202 // 203 // The GNU C Library is distributed in the hope that it will be useful, 204 // but WITHOUT ANY WARRANTY; without even the implied warranty of 205 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 206 // Lesser General Public License for more details. 207 // 208 // You should have received a copy of the GNU Lesser General Public 209 // License along with the GNU C Library; if not, see 210 // <https://www.gnu.org/licenses/>. 211 212 // Most of these constants are uniform across all architectures, but there 213 // is one exception. 214 // Architecture-specific adjustments to siginfo_t. x86 version. 215 216 // Values for `si_code'. Positive values are reserved for kernel-generated 217 // 218 // signals. 219 const ( /* siginfo-consts.h:35:1: */ 220 SI_ASYNCNL = -60 // Sent by asynch name lookup completion. 221 SI_DETHREAD = -7 // Sent by execve killing subsidiary 222 // threads. 223 SI_TKILL = -6 // Sent by tkill. 224 SI_SIGIO = -5 // Sent by queued SIGIO. 225 SI_ASYNCIO = -4 // Sent by AIO completion. 226 SI_MESGQ = -3 // Sent by real time mesq state change. 227 SI_TIMER = -2 // Sent by timer expiration. 228 SI_QUEUE = -1 // Sent by sigqueue. 229 SI_USER = 0 // Sent by kill, sigsend. 230 SI_KERNEL = 128 231 ) 232 233 // `si_code' values for SIGILL signal. 234 const ( /* siginfo-consts.h:71:1: */ 235 ILL_ILLOPC = 1 // Illegal opcode. 236 ILL_ILLOPN = 2 // Illegal operand. 237 ILL_ILLADR = 3 // Illegal addressing mode. 238 ILL_ILLTRP = 4 // Illegal trap. 239 ILL_PRVOPC = 5 // Privileged opcode. 240 ILL_PRVREG = 6 // Privileged register. 241 ILL_COPROC = 7 // Coprocessor error. 242 ILL_BADSTK = 8 // Internal stack error. 243 ILL_BADIADDR = 9 244 ) 245 246 // `si_code' values for SIGFPE signal. 247 const ( /* siginfo-consts.h:94:1: */ 248 FPE_INTDIV = 1 // Integer divide by zero. 249 FPE_INTOVF = 2 // Integer overflow. 250 FPE_FLTDIV = 3 // Floating point divide by zero. 251 FPE_FLTOVF = 4 // Floating point overflow. 252 FPE_FLTUND = 5 // Floating point underflow. 253 FPE_FLTRES = 6 // Floating point inexact result. 254 FPE_FLTINV = 7 // Floating point invalid operation. 255 FPE_FLTSUB = 8 // Subscript out of range. 256 FPE_FLTUNK = 14 // Undiagnosed floating-point exception. 257 FPE_CONDTRAP = 15 258 ) 259 260 // sigstack, sigaltstack definitions. 261 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 262 // This file is part of the GNU C Library. 263 // 264 // The GNU C Library is free software; you can redistribute it and/or 265 // modify it under the terms of the GNU Lesser General Public 266 // License as published by the Free Software Foundation; either 267 // version 2.1 of the License, or (at your option) any later version. 268 // 269 // The GNU C Library is distributed in the hope that it will be useful, 270 // but WITHOUT ANY WARRANTY; without even the implied warranty of 271 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 272 // Lesser General Public License for more details. 273 // 274 // You should have received a copy of the GNU Lesser General Public 275 // License along with the GNU C Library; if not, see 276 // <https://www.gnu.org/licenses/>. 277 278 // Minimum stack size for a signal handler. 279 280 // System default stack size. 281 282 // ss_flags values for stack_t. Linux version. 283 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 284 // This file is part of the GNU C Library. 285 // 286 // The GNU C Library is free software; you can redistribute it and/or 287 // modify it under the terms of the GNU Lesser General Public 288 // License as published by the Free Software Foundation; either 289 // version 2.1 of the License, or (at your option) any later version. 290 // 291 // The GNU C Library is distributed in the hope that it will be useful, 292 // but WITHOUT ANY WARRANTY; without even the implied warranty of 293 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 294 // Lesser General Public License for more details. 295 // 296 // You should have received a copy of the GNU Lesser General Public 297 // License along with the GNU C Library; if not, see 298 // <https://www.gnu.org/licenses/>. 299 300 // Possible values for `ss_flags'. 301 const ( /* ss_flags.h:27:1: */ 302 SS_ONSTACK = 1 303 SS_DISABLE = 2 304 ) 305 306 type Ptrdiff_t = int32 /* <builtin>:3:26 */ 307 308 type Size_t = uint32 /* <builtin>:9:23 */ 309 310 type Wchar_t = int32 /* <builtin>:15:24 */ 311 312 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 313 type X__float128 = float64 /* <builtin>:47:21 */ 314 315 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 316 // This file is part of the GNU C Library. 317 // 318 // The GNU C Library is free software; you can redistribute it and/or 319 // modify it under the terms of the GNU Lesser General Public 320 // License as published by the Free Software Foundation; either 321 // version 2.1 of the License, or (at your option) any later version. 322 // 323 // The GNU C Library is distributed in the hope that it will be useful, 324 // but WITHOUT ANY WARRANTY; without even the implied warranty of 325 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 326 // Lesser General Public License for more details. 327 // 328 // You should have received a copy of the GNU Lesser General Public 329 // License along with the GNU C Library; if not, see 330 // <https://www.gnu.org/licenses/>. 331 332 // ISO C99 Standard: 7.14 Signal handling <signal.h> 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 // These are defined by the user (or the compiler) 352 // to specify the desired environment: 353 // 354 // __STRICT_ANSI__ ISO Standard C. 355 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 356 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 357 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 358 // __STDC_WANT_LIB_EXT2__ 359 // Extensions to ISO C99 from TR 27431-2:2010. 360 // __STDC_WANT_IEC_60559_BFP_EXT__ 361 // Extensions to ISO C11 from TS 18661-1:2014. 362 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 363 // Extensions to ISO C11 from TS 18661-4:2015. 364 // __STDC_WANT_IEC_60559_TYPES_EXT__ 365 // Extensions to ISO C11 from TS 18661-3:2015. 366 // 367 // _POSIX_SOURCE IEEE Std 1003.1. 368 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 369 // if >=199309L, add IEEE Std 1003.1b-1993; 370 // if >=199506L, add IEEE Std 1003.1c-1995; 371 // if >=200112L, all of IEEE 1003.1-2004 372 // if >=200809L, all of IEEE 1003.1-2008 373 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 374 // Single Unix conformance is wanted, to 600 for the 375 // sixth revision, to 700 for the seventh revision. 376 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 377 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 378 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 379 // _FILE_OFFSET_BITS=N Select default filesystem interface. 380 // _ATFILE_SOURCE Additional *at interfaces. 381 // _GNU_SOURCE All of the above, plus GNU extensions. 382 // _DEFAULT_SOURCE The default set of features (taking precedence over 383 // __STRICT_ANSI__). 384 // 385 // _FORTIFY_SOURCE Add security hardening to many library functions. 386 // Set to 1 or 2; 2 performs stricter checks than 1. 387 // 388 // _REENTRANT, _THREAD_SAFE 389 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 390 // 391 // The `-ansi' switch to the GNU C compiler, and standards conformance 392 // options such as `-std=c99', define __STRICT_ANSI__. If none of 393 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 394 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 395 // 200809L, as well as enabling miscellaneous functions from BSD and 396 // SVID. If more than one of these are defined, they accumulate. For 397 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 398 // give you ISO C, 1003.1, and 1003.2, but nothing else. 399 // 400 // These are defined by this file and are used by the 401 // header files to decide what to declare or define: 402 // 403 // __GLIBC_USE (F) Define things from feature set F. This is defined 404 // to 1 or 0; the subsequent macros are either defined 405 // or undefined, and those tests should be moved to 406 // __GLIBC_USE. 407 // __USE_ISOC11 Define ISO C11 things. 408 // __USE_ISOC99 Define ISO C99 things. 409 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 410 // __USE_ISOCXX11 Define ISO C++11 things. 411 // __USE_POSIX Define IEEE Std 1003.1 things. 412 // __USE_POSIX2 Define IEEE Std 1003.2 things. 413 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 414 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 415 // __USE_XOPEN Define XPG things. 416 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 417 // __USE_UNIX98 Define Single Unix V2 things. 418 // __USE_XOPEN2K Define XPG6 things. 419 // __USE_XOPEN2KXSI Define XPG6 XSI things. 420 // __USE_XOPEN2K8 Define XPG7 things. 421 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 422 // __USE_LARGEFILE Define correct standard I/O things. 423 // __USE_LARGEFILE64 Define LFS things with separate names. 424 // __USE_FILE_OFFSET64 Define 64bit interface as default. 425 // __USE_MISC Define things from 4.3BSD or System V Unix. 426 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 427 // __USE_GNU Define GNU extensions. 428 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 429 // 430 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 431 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 432 // only for compatibility. All new code should use the other symbols 433 // to test for features. 434 // 435 // All macros listed above as possibly being defined by this file are 436 // explicitly undefined if they are not explicitly defined. 437 // Feature-test macros that are not defined by the user or compiler 438 // but are implied by the other feature-test macros defined (or by the 439 // lack of any definitions) are defined by the file. 440 // 441 // ISO C feature test macros depend on the definition of the macro 442 // when an affected header is included, not when the first system 443 // header is included, and so they are handled in 444 // <bits/libc-header-start.h>, which does not have a multiple include 445 // guard. Feature test macros that can be handled from the first 446 // system header included are handled here. 447 448 // Undefine everything, so we get a clean slate. 449 450 // Suppress kernel-name space pollution unless user expressedly asks 451 // for it. 452 453 // Convenience macro to test the version of gcc. 454 // Use like this: 455 // #if __GNUC_PREREQ (2,8) 456 // ... code requiring gcc 2.8 or later ... 457 // #endif 458 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 459 // added in 2.0. 460 461 // Similarly for clang. Features added to GCC after version 4.2 may 462 // or may not also be available in clang, and clang's definitions of 463 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 464 // features can be queried via __has_extension/__has_feature. 465 466 // Whether to use feature set F. 467 468 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 469 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 470 // issue a warning; the expectation is that the source is being 471 // transitioned to use the new macro. 472 473 // If _GNU_SOURCE was defined by the user, turn on all the other features. 474 475 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 476 // define _DEFAULT_SOURCE. 477 478 // This is to enable the ISO C2X extension. 479 480 // This is to enable the ISO C11 extension. 481 482 // This is to enable the ISO C99 extension. 483 484 // This is to enable the ISO C90 Amendment 1:1995 extension. 485 486 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 487 // is defined, use POSIX.1-2008 (or another version depending on 488 // _XOPEN_SOURCE). 489 490 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 491 // defined in all multithreaded code. GNU libc has not required this 492 // for many years. We now treat them as compatibility synonyms for 493 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 494 // comprehensive support for multithreaded code. Using them never 495 // lowers the selected level of POSIX conformance, only raises it. 496 497 // The function 'gets' existed in C89, but is impossible to use 498 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 499 // compatibility with various implementations of <cstdio>, this test 500 // must consider only the value of __cplusplus when compiling C++. 501 502 // GNU formerly extended the scanf functions with modified format 503 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 504 // input using malloc. This extension conflicts with ISO C99, which 505 // defines %a as a standalone format specifier that reads a floating- 506 // point number; moreover, POSIX.1-2008 provides the same feature 507 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 508 // 509 // We now follow C99 unless GNU extensions are active and the compiler 510 // is specifically in C89 or C++98 mode (strict or not). For 511 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 512 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 513 // old extension. 514 515 // Get definitions of __STDC_* predefined macros, if the compiler has 516 // not preincluded this header automatically. 517 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 518 // This file is part of the GNU C Library. 519 // 520 // The GNU C Library is free software; you can redistribute it and/or 521 // modify it under the terms of the GNU Lesser General Public 522 // License as published by the Free Software Foundation; either 523 // version 2.1 of the License, or (at your option) any later version. 524 // 525 // The GNU C Library is distributed in the hope that it will be useful, 526 // but WITHOUT ANY WARRANTY; without even the implied warranty of 527 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 528 // Lesser General Public License for more details. 529 // 530 // You should have received a copy of the GNU Lesser General Public 531 // License along with the GNU C Library; if not, see 532 // <https://www.gnu.org/licenses/>. 533 534 // This macro indicates that the installed library is the GNU C Library. 535 // For historic reasons the value now is 6 and this will stay from now 536 // on. The use of this variable is deprecated. Use __GLIBC__ and 537 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 538 // GNU C library version and use the values in <gnu/lib-names.h> to get 539 // the sonames of the shared libraries. 540 541 // Major and minor version number of the GNU C library package. Use 542 // these macros to test for features in specific releases. 543 544 // This is here only because every header file already includes this one. 545 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 546 // This file is part of the GNU C Library. 547 // 548 // The GNU C Library is free software; you can redistribute it and/or 549 // modify it under the terms of the GNU Lesser General Public 550 // License as published by the Free Software Foundation; either 551 // version 2.1 of the License, or (at your option) any later version. 552 // 553 // The GNU C Library is distributed in the hope that it will be useful, 554 // but WITHOUT ANY WARRANTY; without even the implied warranty of 555 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 556 // Lesser General Public License for more details. 557 // 558 // You should have received a copy of the GNU Lesser General Public 559 // License along with the GNU C Library; if not, see 560 // <https://www.gnu.org/licenses/>. 561 562 // We are almost always included from features.h. 563 564 // The GNU libc does not support any K&R compilers or the traditional mode 565 // of ISO C compilers anymore. Check for some of the combinations not 566 // anymore supported. 567 568 // Some user header file might have defined this before. 569 570 // All functions, except those with callbacks or those that 571 // synchronize memory, are leaf functions. 572 573 // GCC can always grok prototypes. For C++ programs we add throw() 574 // to help it optimize the function calls. But this works only with 575 // gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions 576 // as non-throwing using a function attribute since programs can use 577 // the -fexceptions options for C code as well. 578 579 // Compilers that are not clang may object to 580 // #if defined __clang__ && __has_extension(...) 581 // even though they do not need to evaluate the right-hand side of the &&. 582 583 // These two macros are not used in glibc anymore. They are kept here 584 // only because some other projects expect the macros to be defined. 585 586 // For these things, GCC behaves the ANSI way normally, 587 // and the non-ANSI way under -traditional. 588 589 // This is not a typedef so `const __ptr_t' does the right thing. 590 591 // C++ needs to know that types and declarations are C, not C++. 592 593 // Fortify support. 594 595 // Support for flexible arrays. 596 // Headers that should use flexible arrays only if they're "real" 597 // (e.g. only if they won't affect sizeof()) should test 598 // #if __glibc_c99_flexarr_available. 599 600 // __asm__ ("xyz") is used throughout the headers to rename functions 601 // at the assembly language level. This is wrapped by the __REDIRECT 602 // macro, in order to support compilers that can do this some other 603 // way. When compilers don't support asm-names at all, we have to do 604 // preprocessor tricks instead (which don't have exactly the right 605 // semantics, but it's the best we can do). 606 // 607 // Example: 608 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 609 610 // 611 // #elif __SOME_OTHER_COMPILER__ 612 // 613 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 614 615 // GCC has various useful declarations that can be made with the 616 // `__attribute__' syntax. All of the ways we use this do fine if 617 // they are omitted for compilers that don't understand it. 618 619 // At some point during the gcc 2.96 development the `malloc' attribute 620 // for functions was introduced. We don't want to use it unconditionally 621 // (although this would be possible) since it generates warnings. 622 623 // Tell the compiler which arguments to an allocation function 624 // indicate the size of the allocation. 625 626 // At some point during the gcc 2.96 development the `pure' attribute 627 // for functions was introduced. We don't want to use it unconditionally 628 // (although this would be possible) since it generates warnings. 629 630 // This declaration tells the compiler that the value is constant. 631 632 // At some point during the gcc 3.1 development the `used' attribute 633 // for functions was introduced. We don't want to use it unconditionally 634 // (although this would be possible) since it generates warnings. 635 636 // Since version 3.2, gcc allows marking deprecated functions. 637 638 // Since version 4.5, gcc also allows one to specify the message printed 639 // when a deprecated function is used. clang claims to be gcc 4.2, but 640 // may also support this feature. 641 642 // At some point during the gcc 2.8 development the `format_arg' attribute 643 // for functions was introduced. We don't want to use it unconditionally 644 // (although this would be possible) since it generates warnings. 645 // If several `format_arg' attributes are given for the same function, in 646 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 647 // all designated arguments are considered. 648 649 // At some point during the gcc 2.97 development the `strfmon' format 650 // attribute for functions was introduced. We don't want to use it 651 // unconditionally (although this would be possible) since it 652 // generates warnings. 653 654 // The nonull function attribute allows to mark pointer parameters which 655 // must not be NULL. 656 657 // If fortification mode, we warn about unused results of certain 658 // function calls which can lead to problems. 659 660 // Forces a function to be always inlined. 661 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 662 // it conflicts with this definition. Therefore undefine it first to 663 // allow either header to be included first. 664 665 // Associate error messages with the source location of the call site rather 666 // than with the source location inside the function. 667 668 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 669 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 670 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 671 // older than 4.3 may define these macros and still not guarantee GNU inlining 672 // semantics. 673 // 674 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 675 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 676 // __GNUC_GNU_INLINE__ macro definitions. 677 678 // GCC 4.3 and above allow passing all anonymous arguments of an 679 // __extern_always_inline function to some other vararg function. 680 681 // It is possible to compile containing GCC extensions even if GCC is 682 // run in pedantic mode if the uses are carefully marked using the 683 // `__extension__' keyword. But this is not generally available before 684 // version 2.8. 685 686 // __restrict is known in EGCS 1.2 and above. 687 688 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 689 // array_name[restrict] 690 // GCC 3.1 supports this. 691 692 // Describes a char array whose address can safely be passed as the first 693 // argument to strncpy and strncat, as the char array is not necessarily 694 // a NUL-terminated string. 695 696 // Undefine (also defined in libc-symbols.h). 697 // Copies attributes from the declaration or type referenced by 698 // the argument. 699 700 // Determine the wordsize from the preprocessor defines. 701 702 // Properties of long double type. ldbl-96 version. 703 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 704 // This file is part of the GNU C Library. 705 // 706 // The GNU C Library is free software; you can redistribute it and/or 707 // modify it under the terms of the GNU Lesser General Public 708 // License published by the Free Software Foundation; either 709 // version 2.1 of the License, or (at your option) any later version. 710 // 711 // The GNU C Library is distributed in the hope that it will be useful, 712 // but WITHOUT ANY WARRANTY; without even the implied warranty of 713 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 714 // Lesser General Public License for more details. 715 // 716 // You should have received a copy of the GNU Lesser General Public 717 // License along with the GNU C Library; if not, see 718 // <https://www.gnu.org/licenses/>. 719 720 // long double is distinct from double, so there is nothing to 721 // define here. 722 723 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 724 // intended for use in preprocessor macros. 725 // 726 // Note: MESSAGE must be a _single_ string; concatenation of string 727 // literals is not supported. 728 729 // Generic selection (ISO C11) is a C-only feature, available in GCC 730 // since version 4.9. Previous versions do not provide generic 731 // selection, even though they might set __STDC_VERSION__ to 201112L, 732 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 733 // when testing __STDC_VERSION__ for generic selection support. 734 // On the other hand, Clang also defines __GNUC__, so a clang-specific 735 // check is required to enable the use of generic selection. 736 737 // If we don't have __REDIRECT, prototypes will be missing if 738 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 739 740 // Decide whether we can define 'extern inline' functions in headers. 741 742 // This is here only because every header file already includes this one. 743 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 744 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 745 // that will always return failure (and set errno to ENOSYS). 746 // This file is automatically generated. 747 // This file selects the right generated file of `__stub_FUNCTION' macros 748 // based on the architecture being compiled for. 749 750 // This file is automatically generated. 751 // It defines a symbol `__stub_FUNCTION' for each function 752 // in the C library which is a stub, meaning it will fail 753 // every time called, usually setting errno to ENOSYS. 754 755 // bits/types.h -- definitions of __*_t types underlying *_t types. 756 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 757 // This file is part of the GNU C Library. 758 // 759 // The GNU C Library is free software; you can redistribute it and/or 760 // modify it under the terms of the GNU Lesser General Public 761 // License as published by the Free Software Foundation; either 762 // version 2.1 of the License, or (at your option) any later version. 763 // 764 // The GNU C Library is distributed in the hope that it will be useful, 765 // but WITHOUT ANY WARRANTY; without even the implied warranty of 766 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 767 // Lesser General Public License for more details. 768 // 769 // You should have received a copy of the GNU Lesser General Public 770 // License along with the GNU C Library; if not, see 771 // <https://www.gnu.org/licenses/>. 772 773 // Never include this file directly; use <sys/types.h> instead. 774 775 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 776 // This file is part of the GNU C Library. 777 // 778 // The GNU C Library is free software; you can redistribute it and/or 779 // modify it under the terms of the GNU Lesser General Public 780 // License as published by the Free Software Foundation; either 781 // version 2.1 of the License, or (at your option) any later version. 782 // 783 // The GNU C Library is distributed in the hope that it will be useful, 784 // but WITHOUT ANY WARRANTY; without even the implied warranty of 785 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 786 // Lesser General Public License for more details. 787 // 788 // You should have received a copy of the GNU Lesser General Public 789 // License along with the GNU C Library; if not, see 790 // <https://www.gnu.org/licenses/>. 791 792 // Determine the wordsize from the preprocessor defines. 793 794 // Bit size of the time_t type at glibc build time, x86-64 and x32 case. 795 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 796 // This file is part of the GNU C Library. 797 // 798 // The GNU C Library is free software; you can redistribute it and/or 799 // modify it under the terms of the GNU Lesser General Public 800 // License as published by the Free Software Foundation; either 801 // version 2.1 of the License, or (at your option) any later version. 802 // 803 // The GNU C Library is distributed in the hope that it will be useful, 804 // but WITHOUT ANY WARRANTY; without even the implied warranty of 805 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 806 // Lesser General Public License for more details. 807 // 808 // You should have received a copy of the GNU Lesser General Public 809 // License along with the GNU C Library; if not, see 810 // <https://www.gnu.org/licenses/>. 811 812 // For others, time size is word size. 813 814 // Convenience types. 815 type X__u_char = uint8 /* types.h:31:23 */ 816 type X__u_short = uint16 /* types.h:32:28 */ 817 type X__u_int = uint32 /* types.h:33:22 */ 818 type X__u_long = uint32 /* types.h:34:27 */ 819 820 // Fixed-size types, underlying types depend on word size and compiler. 821 type X__int8_t = int8 /* types.h:37:21 */ 822 type X__uint8_t = uint8 /* types.h:38:23 */ 823 type X__int16_t = int16 /* types.h:39:26 */ 824 type X__uint16_t = uint16 /* types.h:40:28 */ 825 type X__int32_t = int32 /* types.h:41:20 */ 826 type X__uint32_t = uint32 /* types.h:42:22 */ 827 type X__int64_t = int64 /* types.h:47:44 */ 828 type X__uint64_t = uint64 /* types.h:48:46 */ 829 830 // Smallest types with at least a given width. 831 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 832 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 833 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 834 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 835 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 836 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 837 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 838 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 839 840 // quad_t is also 64 bits. 841 type X__quad_t = int64 /* types.h:66:37 */ 842 type X__u_quad_t = uint64 /* types.h:67:46 */ 843 844 // Largest integral types. 845 type X__intmax_t = int64 /* types.h:75:37 */ 846 type X__uintmax_t = uint64 /* types.h:76:46 */ 847 848 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 849 // macros for each of the OS types we define below. The definitions 850 // of those macros must use the following macros for underlying types. 851 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 852 // variants of each of the following integer types on this machine. 853 // 854 // 16 -- "natural" 16-bit type (always short) 855 // 32 -- "natural" 32-bit type (always int) 856 // 64 -- "natural" 64-bit type (long or long long) 857 // LONG32 -- 32-bit type, traditionally long 858 // QUAD -- 64-bit type, traditionally long long 859 // WORD -- natural type of __WORDSIZE bits (int or long) 860 // LONGWORD -- type of __WORDSIZE bits, traditionally long 861 // 862 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 863 // conventional uses of `long' or `long long' type modifiers match the 864 // types we define, even when a less-adorned type would be the same size. 865 // This matters for (somewhat) portably writing printf/scanf formats for 866 // these types, where using the appropriate l or ll format modifiers can 867 // make the typedefs and the formats match up across all GNU platforms. If 868 // we used `long' when it's 64 bits where `long long' is expected, then the 869 // compiler would warn about the formats not matching the argument types, 870 // and the programmer changing them to shut up the compiler would break the 871 // program's portability. 872 // 873 // Here we assume what is presently the case in all the GCC configurations 874 // we support: long long is always 64 bits, long is always word/address size, 875 // and int is always 32 bits. 876 877 // We want __extension__ before typedef's that use nonstandard base types 878 // such as `long long' in C89 mode. 879 // bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. 880 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 881 // This file is part of the GNU C Library. 882 // 883 // The GNU C Library is free software; you can redistribute it and/or 884 // modify it under the terms of the GNU Lesser General Public 885 // License as published by the Free Software Foundation; either 886 // version 2.1 of the License, or (at your option) any later version. 887 // 888 // The GNU C Library is distributed in the hope that it will be useful, 889 // but WITHOUT ANY WARRANTY; without even the implied warranty of 890 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 891 // Lesser General Public License for more details. 892 // 893 // You should have received a copy of the GNU Lesser General Public 894 // License along with the GNU C Library; if not, see 895 // <https://www.gnu.org/licenses/>. 896 897 // See <bits/types.h> for the meaning of these macros. This file exists so 898 // that <bits/types.h> need not vary across different GNU platforms. 899 900 // X32 kernel interface is 64-bit. 901 902 // Number of descriptors that can fit in an `fd_set'. 903 904 // bits/time64.h -- underlying types for __time64_t. Generic version. 905 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 906 // This file is part of the GNU C Library. 907 // 908 // The GNU C Library is free software; you can redistribute it and/or 909 // modify it under the terms of the GNU Lesser General Public 910 // License as published by the Free Software Foundation; either 911 // version 2.1 of the License, or (at your option) any later version. 912 // 913 // The GNU C Library is distributed in the hope that it will be useful, 914 // but WITHOUT ANY WARRANTY; without even the implied warranty of 915 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 916 // Lesser General Public License for more details. 917 // 918 // You should have received a copy of the GNU Lesser General Public 919 // License along with the GNU C Library; if not, see 920 // <https://www.gnu.org/licenses/>. 921 922 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 923 924 // Define a 64-bit time type alongsize the 32-bit one. 925 926 type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers. 927 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 928 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 929 type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers. 930 type X__ino64_t = X__uint64_t /* types.h:149:27 */ // Type of file serial numbers (LFS). 931 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 932 type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. 933 type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets. 934 type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 935 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 936 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 937 type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts. 938 type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement. 939 type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS). 940 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 941 type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch. 942 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 943 type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds. 944 945 type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. 946 type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. 947 948 // Clock ID used in clock and timer functions. 949 type X__clockid_t = int32 /* types.h:168:29 */ 950 951 // Timer ID returned by `timer_create'. 952 type X__timer_t = uintptr /* types.h:171:12 */ 953 954 // Type to represent block size. 955 type X__blksize_t = int32 /* types.h:174:29 */ 956 957 // Types from the Large File Support interface. 958 959 // Type to count number of disk blocks. 960 type X__blkcnt_t = int32 /* types.h:179:28 */ 961 type X__blkcnt64_t = X__int64_t /* types.h:180:30 */ 962 963 // Type to count file system blocks. 964 type X__fsblkcnt_t = uint32 /* types.h:183:30 */ 965 type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */ 966 967 // Type to count file system nodes. 968 type X__fsfilcnt_t = uint32 /* types.h:187:30 */ 969 type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */ 970 971 // Type of miscellaneous file system fields. 972 type X__fsword_t = int32 /* types.h:191:28 */ 973 974 type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error. 975 976 // Signed long type used in system calls. 977 type X__syscall_slong_t = int32 /* types.h:196:33 */ 978 // Unsigned long type used in system calls. 979 type X__syscall_ulong_t = uint32 /* types.h:198:33 */ 980 981 // These few don't really vary by system, they always correspond 982 // 983 // to one of the other defined types. 984 type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). 985 type X__caddr_t = uintptr /* types.h:203:14 */ 986 987 // Duplicates info from stdint.h but this is used in unistd.h. 988 type X__intptr_t = int32 /* types.h:206:25 */ 989 990 // Duplicate info from sys/socket.h. 991 type X__socklen_t = uint32 /* types.h:209:23 */ 992 993 // C99: An integer type that can be accessed as an atomic entity, 994 // 995 // even in the presence of asynchronous interrupts. 996 // It is not currently necessary for this to be machine-specific. 997 type X__sig_atomic_t = int32 /* types.h:214:13 */ 998 999 // Seconds since the Epoch, visible to user code when time_t is too 1000 // 1001 // narrow only for consistency with the old way of widening too-narrow 1002 // types. User code should never use __time64_t. 1003 type X__time64_t = X__int64_t /* types.h:222:28 */ 1004 1005 // Signal number definitions. Linux version. 1006 // Copyright (C) 1995-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 // Signal number constants. Generic template. 1024 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1025 // This file is part of the GNU C Library. 1026 // 1027 // The GNU C Library is free software; you can redistribute it and/or 1028 // modify it under the terms of the GNU Lesser General Public 1029 // License as published by the Free Software Foundation; either 1030 // version 2.1 of the License, or (at your option) any later version. 1031 // 1032 // The GNU C Library is distributed in the hope that it will be useful, 1033 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1034 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1035 // Lesser General Public License for more details. 1036 // 1037 // You should have received a copy of the GNU Lesser General Public 1038 // License along with the GNU C Library; if not, see 1039 // <https://www.gnu.org/licenses/>. 1040 1041 // Fake signal functions. 1042 1043 // We define here all the signal names listed in POSIX (1003.1-2008); 1044 // as of 1003.1-2013, no additional signals have been added by POSIX. 1045 // We also define here signal names that historically exist in every 1046 // real-world POSIX variant (e.g. SIGWINCH). 1047 // 1048 // Signals in the 1-15 range are defined with their historical numbers. 1049 // For other signals, we use the BSD numbers. 1050 // There are two unallocated signal numbers in the 1-31 range: 7 and 29. 1051 // Signal number 0 is reserved for use as kill(pid, 0), to test whether 1052 // a process exists without sending it a signal. 1053 1054 // ISO C99 signals. 1055 1056 // Historical signals specified by POSIX. 1057 1058 // New(er) POSIX signals (1003.1-2008, 1003.1-2013). 1059 1060 // Nonstandard signals found in all modern POSIX systems 1061 // (including both BSD and Linux). 1062 1063 // Archaic names for compatibility. 1064 1065 // Not all systems support real-time signals. bits/signum.h indicates 1066 // that they are supported by overriding __SIGRTMAX to a value greater 1067 // than __SIGRTMIN. These constants give the kernel-level hard limits, 1068 // but some real-time signals may be used internally by glibc. Do not 1069 // use these constants in application code; use SIGRTMIN and SIGRTMAX 1070 // (defined in signal.h) instead. 1071 1072 // Biggest signal number + 1 (including real-time signals). 1073 1074 // Adjustments and additions to the signal number constants for 1075 // most Linux systems. 1076 1077 // bits/types.h -- definitions of __*_t types underlying *_t types. 1078 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1079 // This file is part of the GNU C Library. 1080 // 1081 // The GNU C Library is free software; you can redistribute it and/or 1082 // modify it under the terms of the GNU Lesser General Public 1083 // License as published by the Free Software Foundation; either 1084 // version 2.1 of the License, or (at your option) any later version. 1085 // 1086 // The GNU C Library is distributed in the hope that it will be useful, 1087 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1088 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1089 // Lesser General Public License for more details. 1090 // 1091 // You should have received a copy of the GNU Lesser General Public 1092 // License along with the GNU C Library; if not, see 1093 // <https://www.gnu.org/licenses/>. 1094 1095 // Never include this file directly; use <sys/types.h> instead. 1096 1097 // An integral type that can be modified atomically, without the 1098 // 1099 // possibility of a signal arriving in the middle of the operation. 1100 type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */ 1101 1102 type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */ 1103 1104 // A set of signals to be blocked, unblocked, or waited for. 1105 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ 1106 1107 type Pid_t = X__pid_t /* signal.h:40:17 */ 1108 type Uid_t = X__uid_t /* signal.h:46:17 */ 1109 1110 // We need `struct timespec' later on. 1111 // NB: Include guard matches what <linux/time.h> uses. 1112 1113 // bits/types.h -- definitions of __*_t types underlying *_t types. 1114 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1115 // This file is part of the GNU C Library. 1116 // 1117 // The GNU C Library is free software; you can redistribute it and/or 1118 // modify it under the terms of the GNU Lesser General Public 1119 // License as published by the Free Software Foundation; either 1120 // version 2.1 of the License, or (at your option) any later version. 1121 // 1122 // The GNU C Library is distributed in the hope that it will be useful, 1123 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1124 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1125 // Lesser General Public License for more details. 1126 // 1127 // You should have received a copy of the GNU Lesser General Public 1128 // License along with the GNU C Library; if not, see 1129 // <https://www.gnu.org/licenses/>. 1130 1131 // Never include this file directly; use <sys/types.h> instead. 1132 1133 // Endian macros for string.h functions 1134 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1135 // This file is part of the GNU C Library. 1136 // 1137 // The GNU C Library is free software; you can redistribute it and/or 1138 // modify it under the terms of the GNU Lesser General Public 1139 // License as published by the Free Software Foundation; either 1140 // version 2.1 of the License, or (at your option) any later version. 1141 // 1142 // The GNU C Library is distributed in the hope that it will be useful, 1143 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1144 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1145 // Lesser General Public License for more details. 1146 // 1147 // You should have received a copy of the GNU Lesser General Public 1148 // License along with the GNU C Library; if not, see 1149 // <http://www.gnu.org/licenses/>. 1150 1151 // Definitions for byte order, according to significance of bytes, 1152 // from low addresses to high addresses. The value is what you get by 1153 // putting '4' in the most significant byte, '3' in the second most 1154 // significant byte, '2' in the second least significant byte, and '1' 1155 // in the least significant byte, and then writing down one digit for 1156 // each byte, starting with the byte at the lowest address at the left, 1157 // and proceeding to the byte with the highest address at the right. 1158 1159 // This file defines `__BYTE_ORDER' for the particular machine. 1160 1161 // i386/x86_64 are little-endian. 1162 1163 // Some machines may need to use a different endianness for floating point 1164 // values. 1165 1166 // POSIX.1b structure for a time value. This is like a `struct timeval' but 1167 // 1168 // has nanoseconds instead of microseconds. 1169 type Timespec = struct { 1170 Ftv_sec X__time_t 1171 Ftv_nsec X__syscall_slong_t 1172 } /* struct_timespec.h:10:1 */ 1173 1174 // Determine the wordsize from the preprocessor defines. 1175 1176 // bits/types.h -- definitions of __*_t types underlying *_t types. 1177 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1178 // This file is part of the GNU C Library. 1179 // 1180 // The GNU C Library is free software; you can redistribute it and/or 1181 // modify it under the terms of the GNU Lesser General Public 1182 // License as published by the Free Software Foundation; either 1183 // version 2.1 of the License, or (at your option) any later version. 1184 // 1185 // The GNU C Library is distributed in the hope that it will be useful, 1186 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1187 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1188 // Lesser General Public License for more details. 1189 // 1190 // You should have received a copy of the GNU Lesser General Public 1191 // License along with the GNU C Library; if not, see 1192 // <https://www.gnu.org/licenses/>. 1193 1194 // Never include this file directly; use <sys/types.h> instead. 1195 1196 // Define __sigval_t. 1197 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1198 // This file is part of the GNU C Library. 1199 // 1200 // The GNU C Library is free software; you can redistribute it and/or 1201 // modify it under the terms of the GNU Lesser General Public 1202 // License as published by the Free Software Foundation; either 1203 // version 2.1 of the License, or (at your option) any later version. 1204 // 1205 // The GNU C Library is distributed in the hope that it will be useful, 1206 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1207 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1208 // Lesser General Public License for more details. 1209 // 1210 // You should have received a copy of the GNU Lesser General Public 1211 // License along with the GNU C Library; if not, see 1212 // <https://www.gnu.org/licenses/>. 1213 1214 // Type for data associated with a signal. 1215 type Sigval = struct{ Fsival_int int32 } /* __sigval_t.h:24:1 */ 1216 1217 type X__sigval_t = Sigval /* __sigval_t.h:30:22 */ 1218 1219 // Some fields of siginfo_t have architecture-specific variations. 1220 // Architecture-specific adjustments to siginfo_t. x86 version. 1221 1222 type Siginfo_t = struct { 1223 Fsi_signo int32 1224 Fsi_errno int32 1225 Fsi_code int32 1226 F_sifields struct{ F_pad [29]int32 } 1227 } /* siginfo_t.h:124:5 */ 1228 1229 // Architectures might also add architecture-specific constants. 1230 // These are all considered GNU extensions. 1231 1232 // Define __sigval_t. 1233 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1234 // This file is part of the GNU C Library. 1235 // 1236 // The GNU C Library is free software; you can redistribute it and/or 1237 // modify it under the terms of the GNU Lesser General Public 1238 // License as published by the Free Software Foundation; either 1239 // version 2.1 of the License, or (at your option) any later version. 1240 // 1241 // The GNU C Library is distributed in the hope that it will be useful, 1242 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1243 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1244 // Lesser General Public License for more details. 1245 // 1246 // You should have received a copy of the GNU Lesser General Public 1247 // License along with the GNU C Library; if not, see 1248 // <https://www.gnu.org/licenses/>. 1249 1250 // To avoid sigval_t (not a standard type name) having C++ name 1251 // mangling depending on whether the selected standard includes union 1252 // sigval, it should not be defined at all when using a standard for 1253 // which the sigval name is not reserved; in that case, headers should 1254 // not include <bits/types/sigval_t.h> and should use only the 1255 // internal __sigval_t name. 1256 1257 type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */ 1258 1259 // Determine the wordsize from the preprocessor defines. 1260 1261 // bits/types.h -- definitions of __*_t types underlying *_t types. 1262 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1263 // This file is part of the GNU C Library. 1264 // 1265 // The GNU C Library is free software; you can redistribute it and/or 1266 // modify it under the terms of the GNU Lesser General Public 1267 // License as published by the Free Software Foundation; either 1268 // version 2.1 of the License, or (at your option) any later version. 1269 // 1270 // The GNU C Library is distributed in the hope that it will be useful, 1271 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1272 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1273 // Lesser General Public License for more details. 1274 // 1275 // You should have received a copy of the GNU Lesser General Public 1276 // License along with the GNU C Library; if not, see 1277 // <https://www.gnu.org/licenses/>. 1278 1279 // Never include this file directly; use <sys/types.h> instead. 1280 1281 // Define __sigval_t. 1282 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1283 // This file is part of the GNU C Library. 1284 // 1285 // The GNU C Library is free software; you can redistribute it and/or 1286 // modify it under the terms of the GNU Lesser General Public 1287 // License as published by the Free Software Foundation; either 1288 // version 2.1 of the License, or (at your option) any later version. 1289 // 1290 // The GNU C Library is distributed in the hope that it will be useful, 1291 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1292 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1293 // Lesser General Public License for more details. 1294 // 1295 // You should have received a copy of the GNU Lesser General Public 1296 // License along with the GNU C Library; if not, see 1297 // <https://www.gnu.org/licenses/>. 1298 1299 // Forward declaration. 1300 type Pthread_attr_t1 = struct { 1301 F__ccgo_pad1 [0]uint32 1302 F__size [36]int8 1303 } /* sigevent_t.h:17:9 */ 1304 1305 // Determine the wordsize from the preprocessor defines. 1306 1307 // bits/types.h -- definitions of __*_t types underlying *_t types. 1308 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1309 // This file is part of the GNU C Library. 1310 // 1311 // The GNU C Library is free software; you can redistribute it and/or 1312 // modify it under the terms of the GNU Lesser General Public 1313 // License as published by the Free Software Foundation; either 1314 // version 2.1 of the License, or (at your option) any later version. 1315 // 1316 // The GNU C Library is distributed in the hope that it will be useful, 1317 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1318 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1319 // Lesser General Public License for more details. 1320 // 1321 // You should have received a copy of the GNU Lesser General Public 1322 // License along with the GNU C Library; if not, see 1323 // <https://www.gnu.org/licenses/>. 1324 1325 // Never include this file directly; use <sys/types.h> instead. 1326 1327 // Define __sigval_t. 1328 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1329 // This file is part of the GNU C Library. 1330 // 1331 // The GNU C Library is free software; you can redistribute it and/or 1332 // modify it under the terms of the GNU Lesser General Public 1333 // License as published by the Free Software Foundation; either 1334 // version 2.1 of the License, or (at your option) any later version. 1335 // 1336 // The GNU C Library is distributed in the hope that it will be useful, 1337 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1338 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1339 // Lesser General Public License for more details. 1340 // 1341 // You should have received a copy of the GNU Lesser General Public 1342 // License along with the GNU C Library; if not, see 1343 // <https://www.gnu.org/licenses/>. 1344 1345 // Forward declaration. 1346 type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */ 1347 1348 // Structure to transport application-defined values with signals. 1349 type Sigevent = struct { 1350 Fsigev_value X__sigval_t 1351 Fsigev_signo int32 1352 Fsigev_notify int32 1353 F_sigev_un struct{ F_pad [13]int32 } 1354 } /* sigevent_t.h:22:9 */ 1355 1356 // Structure to transport application-defined values with signals. 1357 type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */ 1358 1359 // Type of a signal handler. 1360 type X__sighandler_t = uintptr /* signal.h:72:14 */ 1361 1362 // 4.4 BSD uses the name `sig_t' for this. 1363 type Sig_t = X__sighandler_t /* signal.h:190:24 */ 1364 1365 // Get the system-specific definitions of `struct sigaction' 1366 // and the `SA_*' and `SIG_*'. constants. 1367 // The proper definitions for Linux's sigaction. 1368 // Copyright (C) 1993-2020 Free Software Foundation, Inc. 1369 // This file is part of the GNU C Library. 1370 // 1371 // The GNU C Library is free software; you can redistribute it and/or 1372 // modify it under the terms of the GNU Lesser General Public 1373 // License as published by the Free Software Foundation; either 1374 // version 2.1 of the License, or (at your option) any later version. 1375 // 1376 // The GNU C Library is distributed in the hope that it will be useful, 1377 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1378 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1379 // Lesser General Public License for more details. 1380 // 1381 // You should have received a copy of the GNU Lesser General Public 1382 // License along with the GNU C Library; if not, see 1383 // <https://www.gnu.org/licenses/>. 1384 1385 // Structure describing the action to be taken when a signal arrives. 1386 type Sigaction = struct { 1387 F__sigaction_handler struct{ Fsa_handler X__sighandler_t } 1388 Fsa_mask X__sigset_t 1389 Fsa_flags int32 1390 Fsa_restorer uintptr 1391 } /* sigaction.h:27:1 */ 1392 1393 // Get machine-dependent `struct sigcontext' and signal subcodes. 1394 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1395 // This file is part of the GNU C Library. 1396 // 1397 // The GNU C Library is free software; you can redistribute it and/or 1398 // modify it under the terms of the GNU Lesser General Public 1399 // License as published by the Free Software Foundation; either 1400 // version 2.1 of the License, or (at your option) any later version. 1401 // 1402 // The GNU C Library is distributed in the hope that it will be useful, 1403 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1404 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1405 // Lesser General Public License for more details. 1406 // 1407 // You should have received a copy of the GNU Lesser General Public 1408 // License along with the GNU C Library; if not, see 1409 // <https://www.gnu.org/licenses/>. 1410 1411 // bits/types.h -- definitions of __*_t types underlying *_t types. 1412 // Copyright (C) 2002-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 // Never include this file directly; use <sys/types.h> instead. 1430 1431 type X_fpx_sw_bytes = struct { 1432 Fmagic1 X__uint32_t 1433 Fextended_size X__uint32_t 1434 Fxstate_bv X__uint64_t 1435 Fxstate_size X__uint32_t 1436 F__glibc_reserved1 [7]X__uint32_t 1437 } /* sigcontext.h:31:1 */ 1438 1439 type X_fpreg = struct { 1440 Fsignificand [4]uint16 1441 Fexponent uint16 1442 } /* sigcontext.h:40:1 */ 1443 1444 type X_fpxreg = struct { 1445 Fsignificand [4]uint16 1446 Fexponent uint16 1447 F__glibc_reserved1 [3]uint16 1448 } /* sigcontext.h:46:1 */ 1449 1450 type X_xmmreg = struct{ Felement [4]X__uint32_t } /* sigcontext.h:53:1 */ 1451 1452 type X_fpstate = struct { 1453 Fcw X__uint32_t 1454 Fsw X__uint32_t 1455 Ftag X__uint32_t 1456 Fipoff X__uint32_t 1457 Fcssel X__uint32_t 1458 Fdataoff X__uint32_t 1459 Fdatasel X__uint32_t 1460 F_st [8]struct { 1461 Fsignificand [4]uint16 1462 Fexponent uint16 1463 } 1464 Fstatus uint16 1465 Fmagic uint16 1466 F_fxsr_env [6]X__uint32_t 1467 Fmxcsr X__uint32_t 1468 F__glibc_reserved1 X__uint32_t 1469 F_fxsr_st [8]struct { 1470 Fsignificand [4]uint16 1471 Fexponent uint16 1472 F__glibc_reserved1 [3]uint16 1473 } 1474 F_xmm [8]struct{ Felement [4]X__uint32_t } 1475 F__glibc_reserved2 [56]X__uint32_t 1476 } /* sigcontext.h:62:1 */ 1477 1478 // Kernel headers before 2.1.1 define a struct sigcontext_struct, but 1479 // we need sigcontext. Some packages have come to rely on 1480 // sigcontext_struct being defined on 32-bit x86, so define this for 1481 // their benefit. 1482 1483 type Sigcontext = struct { 1484 Fgs uint16 1485 F__gsh uint16 1486 Ffs uint16 1487 F__fsh uint16 1488 Fes uint16 1489 F__esh uint16 1490 Fds uint16 1491 F__dsh uint16 1492 Fedi uint32 1493 Fesi uint32 1494 Febp uint32 1495 Fesp uint32 1496 Febx uint32 1497 Fedx uint32 1498 Fecx uint32 1499 Feax uint32 1500 Ftrapno uint32 1501 Ferr uint32 1502 Feip uint32 1503 Fcs uint16 1504 F__csh uint16 1505 Feflags uint32 1506 Fesp_at_signal uint32 1507 Fss uint16 1508 F__ssh uint16 1509 Ffpstate uintptr 1510 Foldmask uint32 1511 Fcr2 uint32 1512 } /* sigcontext.h:95:1 */ 1513 1514 type X_xsave_hdr = struct { 1515 Fxstate_bv X__uint64_t 1516 F__glibc_reserved1 [2]X__uint64_t 1517 F__glibc_reserved2 [5]X__uint64_t 1518 } /* sigcontext.h:177:1 */ 1519 1520 type X_ymmh_state = struct{ Fymmh_space [64]X__uint32_t } /* sigcontext.h:184:1 */ 1521 1522 type X_xstate = struct { 1523 Ffpstate struct { 1524 Fcw X__uint32_t 1525 Fsw X__uint32_t 1526 Ftag X__uint32_t 1527 Fipoff X__uint32_t 1528 Fcssel X__uint32_t 1529 Fdataoff X__uint32_t 1530 Fdatasel X__uint32_t 1531 F_st [8]struct { 1532 Fsignificand [4]uint16 1533 Fexponent uint16 1534 } 1535 Fstatus uint16 1536 Fmagic uint16 1537 F_fxsr_env [6]X__uint32_t 1538 Fmxcsr X__uint32_t 1539 F__glibc_reserved1 X__uint32_t 1540 F_fxsr_st [8]struct { 1541 Fsignificand [4]uint16 1542 Fexponent uint16 1543 F__glibc_reserved1 [3]uint16 1544 } 1545 F_xmm [8]struct{ Felement [4]X__uint32_t } 1546 F__glibc_reserved2 [56]X__uint32_t 1547 } 1548 Fxstate_hdr struct { 1549 Fxstate_bv X__uint64_t 1550 F__glibc_reserved1 [2]X__uint64_t 1551 F__glibc_reserved2 [5]X__uint64_t 1552 } 1553 Fymmh struct{ Fymmh_space [64]X__uint32_t } 1554 } /* sigcontext.h:189:1 */ 1555 1556 // Wide character type. 1557 // Locale-writers should change this as necessary to 1558 // be big enough to hold unique values not between 0 and 127, 1559 // and not (wchar_t) -1, for each defined multibyte character. 1560 1561 // Define this type if we are doing the whole job, 1562 // or if we want this type in particular. 1563 1564 // A null pointer constant. 1565 1566 // Define stack_t. Linux version. 1567 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 1568 // This file is part of the GNU C Library. 1569 // 1570 // The GNU C Library is free software; you can redistribute it and/or 1571 // modify it under the terms of the GNU Lesser General Public 1572 // License as published by the Free Software Foundation; either 1573 // version 2.1 of the License, or (at your option) any later version. 1574 // 1575 // The GNU C Library is distributed in the hope that it will be useful, 1576 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1577 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1578 // Lesser General Public License for more details. 1579 // 1580 // You should have received a copy of the GNU Lesser General Public 1581 // License along with the GNU C Library; if not, see 1582 // <https://www.gnu.org/licenses/>. 1583 1584 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 1585 // 1586 // This file is part of GCC. 1587 // 1588 // GCC is free software; you can redistribute it and/or modify 1589 // it under the terms of the GNU General Public License as published by 1590 // the Free Software Foundation; either version 3, or (at your option) 1591 // any later version. 1592 // 1593 // GCC is distributed in the hope that it will be useful, 1594 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1595 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1596 // GNU General Public License for more details. 1597 // 1598 // Under Section 7 of GPL version 3, you are granted additional 1599 // permissions described in the GCC Runtime Library Exception, version 1600 // 3.1, as published by the Free Software Foundation. 1601 // 1602 // You should have received a copy of the GNU General Public License and 1603 // a copy of the GCC Runtime Library Exception along with this program; 1604 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1605 // <http://www.gnu.org/licenses/>. 1606 1607 // ISO C Standard: 7.17 Common definitions <stddef.h> 1608 1609 // Any one of these symbols __need_* means that GNU libc 1610 // wants us just to define one data type. So don't define 1611 // the symbols that indicate this file's entire job has been done. 1612 1613 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1614 // There's no way to win with the other order! Sun lossage. 1615 1616 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1617 // Just ignore it. 1618 1619 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1620 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1621 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1622 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1623 // If we find that the macros are still defined at this point, we must 1624 // invoke them so that the type is defined as expected. 1625 1626 // In case nobody has defined these types, but we aren't running under 1627 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1628 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1629 // parts of GCC is compiled by an older compiler, that actually 1630 // include gstddef.h, such as collect2. 1631 1632 // Signed type of difference of two pointers. 1633 1634 // Define this type if we are doing the whole job, 1635 // or if we want this type in particular. 1636 1637 // Unsigned type of `sizeof' something. 1638 1639 // Define this type if we are doing the whole job, 1640 // or if we want this type in particular. 1641 1642 // Wide character type. 1643 // Locale-writers should change this as necessary to 1644 // be big enough to hold unique values not between 0 and 127, 1645 // and not (wchar_t) -1, for each defined multibyte character. 1646 1647 // Define this type if we are doing the whole job, 1648 // or if we want this type in particular. 1649 1650 // A null pointer constant. 1651 1652 // Structure describing a signal stack. 1653 type Stack_t = struct { 1654 Fss_sp uintptr 1655 Fss_flags int32 1656 Fss_size Size_t 1657 } /* stack_t.h:31:5 */ 1658 1659 // This will define `ucontext_t' and `mcontext_t'. 1660 // Copyright (C) 2001-2020 Free Software Foundation, Inc. 1661 // This file is part of the GNU C Library. 1662 // 1663 // The GNU C Library is free software; you can redistribute it and/or 1664 // modify it under the terms of the GNU Lesser General Public 1665 // License as published by the Free Software Foundation; either 1666 // version 2.1 of the License, or (at your option) any later version. 1667 // 1668 // The GNU C Library is distributed in the hope that it will be useful, 1669 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1670 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1671 // Lesser General Public License for more details. 1672 // 1673 // You should have received a copy of the GNU Lesser General Public 1674 // License along with the GNU C Library; if not, see 1675 // <https://www.gnu.org/licenses/>. 1676 1677 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1678 // This file is part of the GNU C Library. 1679 // 1680 // The GNU C Library is free software; you can redistribute it and/or 1681 // modify it under the terms of the GNU Lesser General Public 1682 // License as published by the Free Software Foundation; either 1683 // version 2.1 of the License, or (at your option) any later version. 1684 // 1685 // The GNU C Library is distributed in the hope that it will be useful, 1686 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1687 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1688 // Lesser General Public License for more details. 1689 // 1690 // You should have received a copy of the GNU Lesser General Public 1691 // License along with the GNU C Library; if not, see 1692 // <https://www.gnu.org/licenses/>. 1693 1694 // bits/types.h -- definitions of __*_t types underlying *_t types. 1695 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1696 // This file is part of the GNU C Library. 1697 // 1698 // The GNU C Library is free software; you can redistribute it and/or 1699 // modify it under the terms of the GNU Lesser General Public 1700 // License as published by the Free Software Foundation; either 1701 // version 2.1 of the License, or (at your option) any later version. 1702 // 1703 // The GNU C Library is distributed in the hope that it will be useful, 1704 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1705 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1706 // Lesser General Public License for more details. 1707 // 1708 // You should have received a copy of the GNU Lesser General Public 1709 // License along with the GNU C Library; if not, see 1710 // <https://www.gnu.org/licenses/>. 1711 1712 // Never include this file directly; use <sys/types.h> instead. 1713 1714 // Define stack_t. Linux version. 1715 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 1716 // This file is part of the GNU C Library. 1717 // 1718 // The GNU C Library is free software; you can redistribute it and/or 1719 // modify it under the terms of the GNU Lesser General Public 1720 // License as published by the Free Software Foundation; either 1721 // version 2.1 of the License, or (at your option) any later version. 1722 // 1723 // The GNU C Library is distributed in the hope that it will be useful, 1724 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1725 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1726 // Lesser General Public License for more details. 1727 // 1728 // You should have received a copy of the GNU Lesser General Public 1729 // License along with the GNU C Library; if not, see 1730 // <https://www.gnu.org/licenses/>. 1731 1732 // Type for general register. 1733 type Greg_t = int32 /* ucontext.h:156:13 */ 1734 1735 // Number of general registers. 1736 1737 // Container for all general registers. 1738 type Gregset_t = [19]Greg_t /* ucontext.h:165:16 */ 1739 1740 // Definitions taken from the kernel headers. 1741 type X_libc_fpreg = struct { 1742 Fsignificand [4]uint16 1743 Fexponent uint16 1744 } /* ucontext.h:213:1 */ 1745 1746 type X_libc_fpstate = struct { 1747 Fcw uint32 1748 Fsw uint32 1749 Ftag uint32 1750 Fipoff uint32 1751 Fcssel uint32 1752 Fdataoff uint32 1753 Fdatasel uint32 1754 F_st [8]struct { 1755 Fsignificand [4]uint16 1756 Fexponent uint16 1757 } 1758 Fstatus uint32 1759 } /* ucontext.h:219:1 */ 1760 1761 // Structure to describe FPU registers. 1762 type Fpregset_t = uintptr /* ucontext.h:233:30 */ 1763 1764 // Context to describe whole processor state. 1765 type Mcontext_t = struct { 1766 Fgregs Gregset_t 1767 Ffpregs Fpregset_t 1768 Foldmask uint32 1769 Fcr2 uint32 1770 } /* ucontext.h:244:5 */ 1771 1772 // Userlevel context. 1773 type Ucontext_t1 = struct { 1774 Fuc_flags uint32 1775 Fuc_link uintptr 1776 Fuc_stack Stack_t 1777 Fuc_mcontext Mcontext_t 1778 Fuc_sigmask Sigset_t 1779 F__fpregs_mem struct { 1780 Fcw uint32 1781 Fsw uint32 1782 Ftag uint32 1783 Fipoff uint32 1784 Fcssel uint32 1785 Fdataoff uint32 1786 Fdatasel uint32 1787 F_st [8]struct { 1788 Fsignificand [4]uint16 1789 Fexponent uint16 1790 } 1791 Fstatus uint32 1792 } 1793 F__ssp [4]uint32 1794 } /* ucontext.h:247:9 */ 1795 1796 // Userlevel context. 1797 type Ucontext_t = Ucontext_t1 /* ucontext.h:256:5 */ 1798 1799 // Define struct sigstack. 1800 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 1801 // This file is part of the GNU C Library. 1802 // 1803 // The GNU C Library is free software; you can redistribute it and/or 1804 // modify it under the terms of the GNU Lesser General Public 1805 // License as published by the Free Software Foundation; either 1806 // version 2.1 of the License, or (at your option) any later version. 1807 // 1808 // The GNU C Library is distributed in the hope that it will be useful, 1809 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1810 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1811 // Lesser General Public License for more details. 1812 // 1813 // You should have received a copy of the GNU Lesser General Public 1814 // License along with the GNU C Library; if not, see 1815 // <https://www.gnu.org/licenses/>. 1816 1817 // Structure describing a signal stack (obsolete). 1818 type Sigstack = struct { 1819 Fss_sp uintptr 1820 Fss_onstack int32 1821 } /* struct_sigstack.h:23:1 */ 1822 1823 // Some of the functions for handling signals in threaded programs must 1824 // be defined here. 1825 // Declaration of common pthread types for all architectures. 1826 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1827 // This file is part of the GNU C Library. 1828 // 1829 // The GNU C Library is free software; you can redistribute it and/or 1830 // modify it under the terms of the GNU Lesser General Public 1831 // License as published by the Free Software Foundation; either 1832 // version 2.1 of the License, or (at your option) any later version. 1833 // 1834 // The GNU C Library is distributed in the hope that it will be useful, 1835 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1836 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1837 // Lesser General Public License for more details. 1838 // 1839 // You should have received a copy of the GNU Lesser General Public 1840 // License along with the GNU C Library; if not, see 1841 // <https://www.gnu.org/licenses/>. 1842 1843 // For internal mutex and condition variable definitions. 1844 // Common threading primitives definitions for both POSIX and C11. 1845 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1846 // This file is part of the GNU C Library. 1847 // 1848 // The GNU C Library is free software; you can redistribute it and/or 1849 // modify it under the terms of the GNU Lesser General Public 1850 // License as published by the Free Software Foundation; either 1851 // version 2.1 of the License, or (at your option) any later version. 1852 // 1853 // The GNU C Library is distributed in the hope that it will be useful, 1854 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1855 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1856 // Lesser General Public License for more details. 1857 // 1858 // You should have received a copy of the GNU Lesser General Public 1859 // License along with the GNU C Library; if not, see 1860 // <https://www.gnu.org/licenses/>. 1861 1862 // Arch-specific definitions. Each architecture must define the following 1863 // macros to define the expected sizes of pthread data types: 1864 // 1865 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 1866 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 1867 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 1868 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 1869 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 1870 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 1871 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 1872 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 1873 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 1874 // 1875 // The additional macro defines any constraint for the lock alignment 1876 // inside the thread structures: 1877 // 1878 // __LOCK_ALIGNMENT - for internal lock/futex usage. 1879 // 1880 // Same idea but for the once locking primitive: 1881 // 1882 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 1883 1884 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1885 // This file is part of the GNU C Library. 1886 // 1887 // The GNU C Library is free software; you can redistribute it and/or 1888 // modify it under the terms of the GNU Lesser General Public 1889 // License as published by the Free Software Foundation; either 1890 // version 2.1 of the License, or (at your option) any later version. 1891 // 1892 // The GNU C Library is distributed in the hope that it will be useful, 1893 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1894 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1895 // Lesser General Public License for more details. 1896 // 1897 // You should have received a copy of the GNU Lesser General Public 1898 // License along with the GNU C Library; if not, see 1899 // <https://www.gnu.org/licenses/>. 1900 1901 // Determine the wordsize from the preprocessor defines. 1902 1903 // Extra attributes for the cleanup functions. 1904 1905 // Common definition of pthread_mutex_t. 1906 1907 type X__pthread_internal_list = struct { 1908 F__prev uintptr 1909 F__next uintptr 1910 } /* thread-shared-types.h:49:9 */ 1911 1912 // Some of the functions for handling signals in threaded programs must 1913 // be defined here. 1914 // Declaration of common pthread types for all architectures. 1915 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1916 // This file is part of the GNU C Library. 1917 // 1918 // The GNU C Library is free software; you can redistribute it and/or 1919 // modify it under the terms of the GNU Lesser General Public 1920 // License as published by the Free Software Foundation; either 1921 // version 2.1 of the License, or (at your option) any later version. 1922 // 1923 // The GNU C Library is distributed in the hope that it will be useful, 1924 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1925 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1926 // Lesser General Public License for more details. 1927 // 1928 // You should have received a copy of the GNU Lesser General Public 1929 // License along with the GNU C Library; if not, see 1930 // <https://www.gnu.org/licenses/>. 1931 1932 // For internal mutex and condition variable definitions. 1933 // Common threading primitives definitions for both POSIX and C11. 1934 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1935 // This file is part of the GNU C Library. 1936 // 1937 // The GNU C Library is free software; you can redistribute it and/or 1938 // modify it under the terms of the GNU Lesser General Public 1939 // License as published by the Free Software Foundation; either 1940 // version 2.1 of the License, or (at your option) any later version. 1941 // 1942 // The GNU C Library is distributed in the hope that it will be useful, 1943 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1944 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1945 // Lesser General Public License for more details. 1946 // 1947 // You should have received a copy of the GNU Lesser General Public 1948 // License along with the GNU C Library; if not, see 1949 // <https://www.gnu.org/licenses/>. 1950 1951 // Arch-specific definitions. Each architecture must define the following 1952 // macros to define the expected sizes of pthread data types: 1953 // 1954 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 1955 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 1956 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 1957 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 1958 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 1959 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 1960 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 1961 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 1962 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 1963 // 1964 // The additional macro defines any constraint for the lock alignment 1965 // inside the thread structures: 1966 // 1967 // __LOCK_ALIGNMENT - for internal lock/futex usage. 1968 // 1969 // Same idea but for the once locking primitive: 1970 // 1971 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 1972 1973 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1974 // This file is part of the GNU C Library. 1975 // 1976 // The GNU C Library is free software; you can redistribute it and/or 1977 // modify it under the terms of the GNU Lesser General Public 1978 // License as published by the Free Software Foundation; either 1979 // version 2.1 of the License, or (at your option) any later version. 1980 // 1981 // The GNU C Library is distributed in the hope that it will be useful, 1982 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1983 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1984 // Lesser General Public License for more details. 1985 // 1986 // You should have received a copy of the GNU Lesser General Public 1987 // License along with the GNU C Library; if not, see 1988 // <https://www.gnu.org/licenses/>. 1989 1990 // Determine the wordsize from the preprocessor defines. 1991 1992 // Extra attributes for the cleanup functions. 1993 1994 // Common definition of pthread_mutex_t. 1995 1996 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ 1997 1998 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ 1999 2000 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ 2001 2002 // Arch-specific mutex definitions. A generic implementation is provided 2003 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 2004 // can override it by defining: 2005 // 2006 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 2007 // definition). It should contains at least the internal members 2008 // defined in the generic version. 2009 // 2010 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 2011 // atomic operations. 2012 // 2013 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 2014 // It should initialize the mutex internal flag. 2015 2016 // x86 internal mutex struct definitions. 2017 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2018 // This file is part of the GNU C Library. 2019 // 2020 // The GNU C Library is free software; you can redistribute it and/or 2021 // modify it under the terms of the GNU Lesser General Public 2022 // License as published by the Free Software Foundation; either 2023 // version 2.1 of the License, or (at your option) any later version. 2024 // 2025 // The GNU C Library is distributed in the hope that it will be useful, 2026 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2027 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2028 // Lesser General Public License for more details. 2029 // 2030 // You should have received a copy of the GNU Lesser General Public 2031 // License along with the GNU C Library; if not, see 2032 // <http://www.gnu.org/licenses/>. 2033 2034 type X__pthread_mutex_s = struct { 2035 F__lock int32 2036 F__count uint32 2037 F__owner int32 2038 F__kind int32 2039 F__nusers uint32 2040 F__20 struct { 2041 F__ccgo_pad1 [0]uint32 2042 F__elision_data struct { 2043 F__espins int16 2044 F__eelision int16 2045 } 2046 } 2047 } /* struct_mutex.h:22:1 */ 2048 2049 // Arch-sepecific read-write lock definitions. A generic implementation is 2050 // provided by struct_rwlock.h. If required, an architecture can override it 2051 // by defining: 2052 // 2053 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 2054 // It should contain at least the internal members defined in the 2055 // generic version. 2056 // 2057 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 2058 // It should initialize the rwlock internal type. 2059 2060 // x86 internal rwlock struct definitions. 2061 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2062 // 2063 // This file is part of the GNU C Library. 2064 // 2065 // The GNU C Library is free software; you can redistribute it and/or 2066 // modify it under the terms of the GNU Lesser General Public 2067 // License as published by the Free Software Foundation; either 2068 // version 2.1 of the License, or (at your option) any later version. 2069 // 2070 // The GNU C Library is distributed in the hope that it will be useful, 2071 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2072 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2073 // Lesser General Public License for more details. 2074 // 2075 // You should have received a copy of the GNU Lesser General Public 2076 // License along with the GNU C Library; if not, see 2077 // <http://www.gnu.org/licenses/>. 2078 2079 type X__pthread_rwlock_arch_t = struct { 2080 F__readers uint32 2081 F__writers uint32 2082 F__wrphase_futex uint32 2083 F__writers_futex uint32 2084 F__pad3 uint32 2085 F__pad4 uint32 2086 F__flags uint8 2087 F__shared uint8 2088 F__rwelision int8 2089 F__pad2 uint8 2090 F__cur_writer int32 2091 } /* struct_rwlock.h:23:1 */ 2092 2093 // Common definition of pthread_cond_t. 2094 2095 type X__pthread_cond_s = struct { 2096 F__0 struct{ F__wseq uint64 } 2097 F__8 struct{ F__g1_start uint64 } 2098 F__g_refs [2]uint32 2099 F__g_size [2]uint32 2100 F__g1_orig_size uint32 2101 F__wrefs uint32 2102 F__g_signals [2]uint32 2103 } /* thread-shared-types.h:92:1 */ 2104 2105 // Thread identifiers. The structure of the attribute type is not 2106 // 2107 // exposed on purpose. 2108 type Pthread_t = uint32 /* pthreadtypes.h:27:27 */ 2109 2110 // Data structures for mutex handling. The structure of the attribute 2111 // 2112 // type is not exposed on purpose. 2113 type Pthread_mutexattr_t = struct { 2114 F__ccgo_pad1 [0]uint32 2115 F__size [4]int8 2116 } /* pthreadtypes.h:36:3 */ 2117 2118 // Data structure for condition variable handling. The structure of 2119 // 2120 // the attribute type is not exposed on purpose. 2121 type Pthread_condattr_t = struct { 2122 F__ccgo_pad1 [0]uint32 2123 F__size [4]int8 2124 } /* pthreadtypes.h:45:3 */ 2125 2126 // Keys for thread-specific data 2127 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 2128 2129 // Once-only execution 2130 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 2131 2132 type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */ 2133 2134 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */ 2135 2136 // Data structure for reader-writer lock variable handling. The 2137 // 2138 // structure of the attribute type is deliberately not exposed. 2139 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 2140 2141 type Pthread_rwlockattr_t = struct { 2142 F__ccgo_pad1 [0]uint32 2143 F__size [8]int8 2144 } /* pthreadtypes.h:97:3 */ 2145 2146 // POSIX spinlock data type. 2147 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 2148 2149 // POSIX barriers data type. The structure of the type is 2150 // 2151 // deliberately not exposed. 2152 type Pthread_barrier_t = struct { 2153 F__ccgo_pad1 [0]uint32 2154 F__size [20]int8 2155 } /* pthreadtypes.h:112:3 */ 2156 2157 type Pthread_barrierattr_t = struct { 2158 F__ccgo_pad1 [0]uint32 2159 F__size [4]int8 2160 } /* pthreadtypes.h:118:3 */ 2161 2162 // System-specific extensions. 2163 // System-specific extensions of <signal.h>, Linux version. 2164 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2165 // This file is part of the GNU C Library. 2166 // 2167 // The GNU C Library is free software; you can redistribute it and/or 2168 // modify it under the terms of the GNU Lesser General Public 2169 // License as published by the Free Software Foundation; either 2170 // version 2.1 of the License, or (at your option) any later version. 2171 // 2172 // The GNU C Library is distributed in the hope that it will be useful, 2173 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2174 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2175 // Lesser General Public License for more details. 2176 // 2177 // You should have received a copy of the GNU Lesser General Public 2178 // License along with the GNU C Library; if not, see 2179 // <https://www.gnu.org/licenses/>. 2180 2181 var _ int8 /* gen.c:2:13: */