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