signal_linux_arm64.go (139790B)
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_arm64.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 BIG_ENDIAN = 4321 19 BYTE_ORDER = 1234 20 ELF_PRARGSZ = 80 21 ESR_MAGIC = 0x45535201 22 EXTRA_MAGIC = 0x45585401 23 FD_SETSIZE = 1024 24 FPSIMD_MAGIC = 0x46508001 25 LITTLE_ENDIAN = 1234 26 MINSIGSTKSZ = 5120 27 NSIG = 65 28 PDP_ENDIAN = 3412 29 SA_INTERRUPT = 0x20000000 30 SA_NOCLDSTOP = 1 31 SA_NOCLDWAIT = 2 32 SA_NODEFER = 0x40000000 33 SA_NOMASK = 1073741824 34 SA_ONESHOT = 2147483648 35 SA_ONSTACK = 0x08000000 36 SA_RESETHAND = 0x80000000 37 SA_RESTART = 0x10000000 38 SA_SIGINFO = 4 39 SA_STACK = 134217728 40 SIGABRT = 6 41 SIGALRM = 14 42 SIGBUS = 7 43 SIGCHLD = 17 44 SIGCLD = 17 45 SIGCONT = 18 46 SIGFPE = 8 47 SIGHUP = 1 48 SIGILL = 4 49 SIGINT = 2 50 SIGIO = 29 51 SIGIOT = 6 52 SIGKILL = 9 53 SIGPIPE = 13 54 SIGPOLL = 29 55 SIGPROF = 27 56 SIGPWR = 30 57 SIGQUIT = 3 58 SIGSEGV = 11 59 SIGSTKFLT = 16 60 SIGSTKSZ = 16384 61 SIGSTOP = 19 62 SIGSYS = 31 63 SIGTERM = 15 64 SIGTRAP = 5 65 SIGTSTP = 20 66 SIGTTIN = 21 67 SIGTTOU = 22 68 SIGURG = 23 69 SIGUSR1 = 10 70 SIGUSR2 = 12 71 SIGVTALRM = 26 72 SIGWINCH = 28 73 SIGXCPU = 24 74 SIGXFSZ = 25 75 SIG_BLOCK = 0 76 SIG_SETMASK = 2 77 SIG_UNBLOCK = 1 78 SVE_MAGIC = 0x53564501 79 SVE_NUM_PREGS = 16 80 SVE_NUM_ZREGS = 32 81 SVE_VL_MAX = 8192 82 SVE_VL_MIN = 16 83 SVE_VQ_BYTES = 16 84 SVE_VQ_MAX = 512 85 SVE_VQ_MIN = 1 86 X_ASM_GENERIC_INT_LL64_H = 0 87 X_ASM_GENERIC_TYPES_H = 0 88 X_ATFILE_SOURCE = 1 89 X_BITS_BYTESWAP_H = 1 90 X_BITS_ENDIANNESS_H = 1 91 X_BITS_ENDIAN_H = 1 92 X_BITS_PTHREADTYPES_ARCH_H = 1 93 X_BITS_PTHREADTYPES_COMMON_H = 1 94 X_BITS_SIGACTION_H = 1 95 X_BITS_SIGCONTEXT_H = 1 96 X_BITS_SIGEVENT_CONSTS_H = 1 97 X_BITS_SIGINFO_ARCH_H = 1 98 X_BITS_SIGINFO_CONSTS_H = 1 99 X_BITS_SIGNUM_GENERIC_H = 1 100 X_BITS_SIGNUM_H = 1 101 X_BITS_SIGSTACK_H = 1 102 X_BITS_SIGTHREAD_H = 1 103 X_BITS_SS_FLAGS_H = 1 104 X_BITS_STDINT_INTN_H = 1 105 X_BITS_TIME64_H = 1 106 X_BITS_TYPESIZES_H = 1 107 X_BITS_TYPES_H = 1 108 X_BITS_UINTN_IDENTITY_H = 1 109 X_BSD_SIZE_T_ = 0 110 X_BSD_SIZE_T_DEFINED_ = 0 111 X_DEFAULT_SOURCE = 1 112 X_ENDIAN_H = 1 113 X_FEATURES_H = 1 114 X_FILE_OFFSET_BITS = 64 115 X_GCC_SIZE_T = 0 116 X_LINUX_POSIX_TYPES_H = 0 117 X_LINUX_TYPES_H = 0 118 X_LP64 = 1 119 X_NSIG = 65 120 X_POSIX_C_SOURCE = 200809 121 X_POSIX_SOURCE = 1 122 X_RWLOCK_INTERNAL_H = 0 123 X_SIGNAL_H = 0 124 X_SIZET_ = 0 125 X_SIZE_T = 0 126 X_SIZE_T_ = 0 127 X_SIZE_T_DECLARED = 0 128 X_SIZE_T_DEFINED = 0 129 X_SIZE_T_DEFINED_ = 0 130 X_STDC_PREDEF_H = 1 131 X_STRUCT_TIMESPEC = 1 132 X_SYS_CDEFS_H = 1 133 X_SYS_PROCFS_H = 1 134 X_SYS_SELECT_H = 1 135 X_SYS_SIZE_T_H = 0 136 X_SYS_TIME_H = 1 137 X_SYS_TYPES_H = 1 138 X_SYS_UCONTEXT_H = 1 139 X_SYS_USER_H = 1 140 X_THREAD_MUTEX_INTERNAL_H = 1 141 X_THREAD_SHARED_TYPES_H = 1 142 X_T_SIZE = 0 143 X_T_SIZE_ = 0 144 Linux = 1 145 Unix = 1 146 ) 147 148 // POSIX names to access some of the members. 149 150 // sigevent constants. Linux version. 151 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 152 // This file is part of the GNU C Library. 153 // 154 // The GNU C Library is free software; you can redistribute it and/or 155 // modify it under the terms of the GNU Lesser General Public 156 // License as published by the Free Software Foundation; either 157 // version 2.1 of the License, or (at your option) any later version. 158 // 159 // The GNU C Library is distributed in the hope that it will be useful, 160 // but WITHOUT ANY WARRANTY; without even the implied warranty of 161 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 162 // Lesser General Public License for more details. 163 // 164 // You should have received a copy of the GNU Lesser General Public 165 // License along with the GNU C Library; if not, see 166 // <https://www.gnu.org/licenses/>. 167 168 // `sigev_notify' values. 169 const ( /* sigevent-consts.h:27:1: */ 170 SIGEV_SIGNAL = 0 // Notify via signal. 171 SIGEV_NONE = 1 // Other notification: meaningless. 172 SIGEV_THREAD = 2 // Deliver via thread creation. 173 174 SIGEV_THREAD_ID = 4 175 ) 176 177 // `si_code' values for SIGSEGV signal. 178 const ( /* siginfo-consts.h:119:1: */ 179 SEGV_MAPERR = 1 // Address not mapped to object. 180 SEGV_ACCERR = 2 // Invalid permissions for mapped object. 181 SEGV_BNDERR = 3 // Bounds checking failure. 182 SEGV_PKUERR = 4 // Protection key checking failure. 183 SEGV_ACCADI = 5 // ADI not enabled for mapped object. 184 SEGV_ADIDERR = 6 // Disrupting MCD error. 185 SEGV_ADIPERR = 7 186 ) 187 188 // `si_code' values for SIGBUS signal. 189 const ( /* siginfo-consts.h:138:1: */ 190 BUS_ADRALN = 1 // Invalid address alignment. 191 BUS_ADRERR = 2 // Non-existant physical address. 192 BUS_OBJERR = 3 // Object specific hardware error. 193 BUS_MCEERR_AR = 4 // Hardware memory error: action required. 194 BUS_MCEERR_AO = 5 195 ) 196 197 // `si_code' values for SIGCHLD signal. 198 const ( /* siginfo-consts.h:172:1: */ 199 CLD_EXITED = 1 // Child has exited. 200 CLD_KILLED = 2 // Child was killed. 201 CLD_DUMPED = 3 // Child terminated abnormally. 202 CLD_TRAPPED = 4 // Traced child has trapped. 203 CLD_STOPPED = 5 // Child has stopped. 204 CLD_CONTINUED = 6 205 ) 206 207 // `si_code' values for SIGPOLL signal. 208 const ( /* siginfo-consts.h:189:1: */ 209 POLL_IN = 1 // Data input available. 210 POLL_OUT = 2 // Output buffers available. 211 POLL_MSG = 3 // Input message available. 212 POLL_ERR = 4 // I/O error. 213 POLL_PRI = 5 // High priority input available. 214 POLL_HUP = 6 215 ) 216 217 // X/Open requires some more fields with fixed names. 218 219 // siginfo constants. Linux version. 220 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 221 // This file is part of the GNU C Library. 222 // 223 // The GNU C Library is free software; you can redistribute it and/or 224 // modify it under the terms of the GNU Lesser General Public 225 // License as published by the Free Software Foundation; either 226 // version 2.1 of the License, or (at your option) any later version. 227 // 228 // The GNU C Library is distributed in the hope that it will be useful, 229 // but WITHOUT ANY WARRANTY; without even the implied warranty of 230 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 231 // Lesser General Public License for more details. 232 // 233 // You should have received a copy of the GNU Lesser General Public 234 // License along with the GNU C Library; if not, see 235 // <https://www.gnu.org/licenses/>. 236 237 // Most of these constants are uniform across all architectures, but there 238 // is one exception. 239 // Architecture-specific adjustments to siginfo_t. 240 241 // Values for `si_code'. Positive values are reserved for kernel-generated 242 // 243 // signals. 244 const ( /* siginfo-consts.h:35:1: */ 245 SI_ASYNCNL = -60 // Sent by asynch name lookup completion. 246 SI_DETHREAD = -7 // Sent by execve killing subsidiary 247 // threads. 248 SI_TKILL = -6 // Sent by tkill. 249 SI_SIGIO = -5 // Sent by queued SIGIO. 250 SI_ASYNCIO = -4 // Sent by AIO completion. 251 SI_MESGQ = -3 // Sent by real time mesq state change. 252 SI_TIMER = -2 // Sent by timer expiration. 253 SI_QUEUE = -1 // Sent by sigqueue. 254 SI_USER = 0 // Sent by kill, sigsend. 255 SI_KERNEL = 128 256 ) 257 258 // `si_code' values for SIGILL signal. 259 const ( /* siginfo-consts.h:71:1: */ 260 ILL_ILLOPC = 1 // Illegal opcode. 261 ILL_ILLOPN = 2 // Illegal operand. 262 ILL_ILLADR = 3 // Illegal addressing mode. 263 ILL_ILLTRP = 4 // Illegal trap. 264 ILL_PRVOPC = 5 // Privileged opcode. 265 ILL_PRVREG = 6 // Privileged register. 266 ILL_COPROC = 7 // Coprocessor error. 267 ILL_BADSTK = 8 // Internal stack error. 268 ILL_BADIADDR = 9 269 ) 270 271 // `si_code' values for SIGFPE signal. 272 const ( /* siginfo-consts.h:94:1: */ 273 FPE_INTDIV = 1 // Integer divide by zero. 274 FPE_INTOVF = 2 // Integer overflow. 275 FPE_FLTDIV = 3 // Floating point divide by zero. 276 FPE_FLTOVF = 4 // Floating point overflow. 277 FPE_FLTUND = 5 // Floating point underflow. 278 FPE_FLTRES = 6 // Floating point inexact result. 279 FPE_FLTINV = 7 // Floating point invalid operation. 280 FPE_FLTSUB = 8 // Subscript out of range. 281 FPE_FLTUNK = 14 // Undiagnosed floating-point exception. 282 FPE_CONDTRAP = 15 283 ) 284 285 // sigstack, sigaltstack definitions. 286 // Copyright (C) 2015-2020 Free Software Foundation, Inc. 287 // This file is part of the GNU C Library. 288 // 289 // The GNU C Library is free software; you can redistribute it and/or 290 // modify it under the terms of the GNU Lesser General Public 291 // License as published by the Free Software Foundation; either 292 // version 2.1 of the License, or (at your option) any later version. 293 // 294 // The GNU C Library is distributed in the hope that it will be useful, 295 // but WITHOUT ANY WARRANTY; without even the implied warranty of 296 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 297 // Lesser General Public License for more details. 298 // 299 // You should have received a copy of the GNU Lesser General Public 300 // License along with the GNU C Library; if not, see 301 // <https://www.gnu.org/licenses/>. 302 303 // Minimum stack size for a signal handler. 304 305 // System default stack size. 306 307 // ss_flags values for stack_t. Linux version. 308 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 309 // This file is part of the GNU C Library. 310 // 311 // The GNU C Library is free software; you can redistribute it and/or 312 // modify it under the terms of the GNU Lesser General Public 313 // License as published by the Free Software Foundation; either 314 // version 2.1 of the License, or (at your option) any later version. 315 // 316 // The GNU C Library is distributed in the hope that it will be useful, 317 // but WITHOUT ANY WARRANTY; without even the implied warranty of 318 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 319 // Lesser General Public License for more details. 320 // 321 // You should have received a copy of the GNU Lesser General Public 322 // License along with the GNU C Library; if not, see 323 // <https://www.gnu.org/licenses/>. 324 325 // Possible values for `ss_flags'. 326 const ( /* ss_flags.h:27:1: */ 327 SS_ONSTACK = 1 328 SS_DISABLE = 2 329 ) 330 331 // Values for the first argument to `getitimer' and `setitimer'. 332 const ( /* time.h:89:1: */ 333 // Timers run in real time. 334 ITIMER_REAL = 0 335 // Timers run only when the process is executing. 336 ITIMER_VIRTUAL = 1 337 // Timers run when the process is executing and when 338 // the system is executing on behalf of the process. 339 ITIMER_PROF = 2 340 ) 341 342 type Ptrdiff_t = int64 /* <builtin>:3:26 */ 343 344 type Size_t = uint64 /* <builtin>:9:23 */ 345 346 type Wchar_t = uint32 /* <builtin>:15:24 */ 347 348 type X__int128_t = struct { 349 Flo int64 350 Fhi int64 351 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 352 type X__uint128_t = struct { 353 Flo uint64 354 Fhi uint64 355 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 356 357 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 358 type X__float128 = float64 /* <builtin>:47:21 */ 359 360 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 361 // This file is part of the GNU C Library. 362 // 363 // The GNU C Library is free software; you can redistribute it and/or 364 // modify it under the terms of the GNU Lesser General Public 365 // License as published by the Free Software Foundation; either 366 // version 2.1 of the License, or (at your option) any later version. 367 // 368 // The GNU C Library is distributed in the hope that it will be useful, 369 // but WITHOUT ANY WARRANTY; without even the implied warranty of 370 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 371 // Lesser General Public License for more details. 372 // 373 // You should have received a copy of the GNU Lesser General Public 374 // License along with the GNU C Library; if not, see 375 // <https://www.gnu.org/licenses/>. 376 377 // ISO C99 Standard: 7.14 Signal handling <signal.h> 378 379 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 380 // This file is part of the GNU C Library. 381 // 382 // The GNU C Library is free software; you can redistribute it and/or 383 // modify it under the terms of the GNU Lesser General Public 384 // License as published by the Free Software Foundation; either 385 // version 2.1 of the License, or (at your option) any later version. 386 // 387 // The GNU C Library is distributed in the hope that it will be useful, 388 // but WITHOUT ANY WARRANTY; without even the implied warranty of 389 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 390 // Lesser General Public License for more details. 391 // 392 // You should have received a copy of the GNU Lesser General Public 393 // License along with the GNU C Library; if not, see 394 // <https://www.gnu.org/licenses/>. 395 396 // These are defined by the user (or the compiler) 397 // to specify the desired environment: 398 // 399 // __STRICT_ANSI__ ISO Standard C. 400 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 401 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 402 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 403 // __STDC_WANT_LIB_EXT2__ 404 // Extensions to ISO C99 from TR 27431-2:2010. 405 // __STDC_WANT_IEC_60559_BFP_EXT__ 406 // Extensions to ISO C11 from TS 18661-1:2014. 407 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 408 // Extensions to ISO C11 from TS 18661-4:2015. 409 // __STDC_WANT_IEC_60559_TYPES_EXT__ 410 // Extensions to ISO C11 from TS 18661-3:2015. 411 // 412 // _POSIX_SOURCE IEEE Std 1003.1. 413 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 414 // if >=199309L, add IEEE Std 1003.1b-1993; 415 // if >=199506L, add IEEE Std 1003.1c-1995; 416 // if >=200112L, all of IEEE 1003.1-2004 417 // if >=200809L, all of IEEE 1003.1-2008 418 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 419 // Single Unix conformance is wanted, to 600 for the 420 // sixth revision, to 700 for the seventh revision. 421 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 422 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 423 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 424 // _FILE_OFFSET_BITS=N Select default filesystem interface. 425 // _ATFILE_SOURCE Additional *at interfaces. 426 // _GNU_SOURCE All of the above, plus GNU extensions. 427 // _DEFAULT_SOURCE The default set of features (taking precedence over 428 // __STRICT_ANSI__). 429 // 430 // _FORTIFY_SOURCE Add security hardening to many library functions. 431 // Set to 1 or 2; 2 performs stricter checks than 1. 432 // 433 // _REENTRANT, _THREAD_SAFE 434 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 435 // 436 // The `-ansi' switch to the GNU C compiler, and standards conformance 437 // options such as `-std=c99', define __STRICT_ANSI__. If none of 438 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 439 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 440 // 200809L, as well as enabling miscellaneous functions from BSD and 441 // SVID. If more than one of these are defined, they accumulate. For 442 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 443 // give you ISO C, 1003.1, and 1003.2, but nothing else. 444 // 445 // These are defined by this file and are used by the 446 // header files to decide what to declare or define: 447 // 448 // __GLIBC_USE (F) Define things from feature set F. This is defined 449 // to 1 or 0; the subsequent macros are either defined 450 // or undefined, and those tests should be moved to 451 // __GLIBC_USE. 452 // __USE_ISOC11 Define ISO C11 things. 453 // __USE_ISOC99 Define ISO C99 things. 454 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 455 // __USE_ISOCXX11 Define ISO C++11 things. 456 // __USE_POSIX Define IEEE Std 1003.1 things. 457 // __USE_POSIX2 Define IEEE Std 1003.2 things. 458 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 459 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 460 // __USE_XOPEN Define XPG things. 461 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 462 // __USE_UNIX98 Define Single Unix V2 things. 463 // __USE_XOPEN2K Define XPG6 things. 464 // __USE_XOPEN2KXSI Define XPG6 XSI things. 465 // __USE_XOPEN2K8 Define XPG7 things. 466 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 467 // __USE_LARGEFILE Define correct standard I/O things. 468 // __USE_LARGEFILE64 Define LFS things with separate names. 469 // __USE_FILE_OFFSET64 Define 64bit interface as default. 470 // __USE_MISC Define things from 4.3BSD or System V Unix. 471 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 472 // __USE_GNU Define GNU extensions. 473 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 474 // 475 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 476 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 477 // only for compatibility. All new code should use the other symbols 478 // to test for features. 479 // 480 // All macros listed above as possibly being defined by this file are 481 // explicitly undefined if they are not explicitly defined. 482 // Feature-test macros that are not defined by the user or compiler 483 // but are implied by the other feature-test macros defined (or by the 484 // lack of any definitions) are defined by the file. 485 // 486 // ISO C feature test macros depend on the definition of the macro 487 // when an affected header is included, not when the first system 488 // header is included, and so they are handled in 489 // <bits/libc-header-start.h>, which does not have a multiple include 490 // guard. Feature test macros that can be handled from the first 491 // system header included are handled here. 492 493 // Undefine everything, so we get a clean slate. 494 495 // Suppress kernel-name space pollution unless user expressedly asks 496 // for it. 497 498 // Convenience macro to test the version of gcc. 499 // Use like this: 500 // #if __GNUC_PREREQ (2,8) 501 // ... code requiring gcc 2.8 or later ... 502 // #endif 503 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 504 // added in 2.0. 505 506 // Similarly for clang. Features added to GCC after version 4.2 may 507 // or may not also be available in clang, and clang's definitions of 508 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 509 // features can be queried via __has_extension/__has_feature. 510 511 // Whether to use feature set F. 512 513 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 514 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 515 // issue a warning; the expectation is that the source is being 516 // transitioned to use the new macro. 517 518 // If _GNU_SOURCE was defined by the user, turn on all the other features. 519 520 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 521 // define _DEFAULT_SOURCE. 522 523 // This is to enable the ISO C2X extension. 524 525 // This is to enable the ISO C11 extension. 526 527 // This is to enable the ISO C99 extension. 528 529 // This is to enable the ISO C90 Amendment 1:1995 extension. 530 531 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 532 // is defined, use POSIX.1-2008 (or another version depending on 533 // _XOPEN_SOURCE). 534 535 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 536 // defined in all multithreaded code. GNU libc has not required this 537 // for many years. We now treat them as compatibility synonyms for 538 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 539 // comprehensive support for multithreaded code. Using them never 540 // lowers the selected level of POSIX conformance, only raises it. 541 542 // The function 'gets' existed in C89, but is impossible to use 543 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 544 // compatibility with various implementations of <cstdio>, this test 545 // must consider only the value of __cplusplus when compiling C++. 546 547 // GNU formerly extended the scanf functions with modified format 548 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 549 // input using malloc. This extension conflicts with ISO C99, which 550 // defines %a as a standalone format specifier that reads a floating- 551 // point number; moreover, POSIX.1-2008 provides the same feature 552 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 553 // 554 // We now follow C99 unless GNU extensions are active and the compiler 555 // is specifically in C89 or C++98 mode (strict or not). For 556 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 557 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 558 // old extension. 559 560 // Get definitions of __STDC_* predefined macros, if the compiler has 561 // not preincluded this header automatically. 562 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 563 // This file is part of the GNU C Library. 564 // 565 // The GNU C Library is free software; you can redistribute it and/or 566 // modify it under the terms of the GNU Lesser General Public 567 // License as published by the Free Software Foundation; either 568 // version 2.1 of the License, or (at your option) any later version. 569 // 570 // The GNU C Library is distributed in the hope that it will be useful, 571 // but WITHOUT ANY WARRANTY; without even the implied warranty of 572 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 573 // Lesser General Public License for more details. 574 // 575 // You should have received a copy of the GNU Lesser General Public 576 // License along with the GNU C Library; if not, see 577 // <https://www.gnu.org/licenses/>. 578 579 // This macro indicates that the installed library is the GNU C Library. 580 // For historic reasons the value now is 6 and this will stay from now 581 // on. The use of this variable is deprecated. Use __GLIBC__ and 582 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 583 // GNU C library version and use the values in <gnu/lib-names.h> to get 584 // the sonames of the shared libraries. 585 586 // Major and minor version number of the GNU C library package. Use 587 // these macros to test for features in specific releases. 588 589 // This is here only because every header file already includes this one. 590 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 591 // This file is part of the GNU C Library. 592 // 593 // The GNU C Library is free software; you can redistribute it and/or 594 // modify it under the terms of the GNU Lesser General Public 595 // License as published by the Free Software Foundation; either 596 // version 2.1 of the License, or (at your option) any later version. 597 // 598 // The GNU C Library is distributed in the hope that it will be useful, 599 // but WITHOUT ANY WARRANTY; without even the implied warranty of 600 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 601 // Lesser General Public License for more details. 602 // 603 // You should have received a copy of the GNU Lesser General Public 604 // License along with the GNU C Library; if not, see 605 // <https://www.gnu.org/licenses/>. 606 607 // We are almost always included from features.h. 608 609 // The GNU libc does not support any K&R compilers or the traditional mode 610 // of ISO C compilers anymore. Check for some of the combinations not 611 // anymore supported. 612 613 // Some user header file might have defined this before. 614 615 // All functions, except those with callbacks or those that 616 // synchronize memory, are leaf functions. 617 618 // GCC can always grok prototypes. For C++ programs we add throw() 619 // to help it optimize the function calls. But this works only with 620 // gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions 621 // as non-throwing using a function attribute since programs can use 622 // the -fexceptions options for C code as well. 623 624 // Compilers that are not clang may object to 625 // #if defined __clang__ && __has_extension(...) 626 // even though they do not need to evaluate the right-hand side of the &&. 627 628 // These two macros are not used in glibc anymore. They are kept here 629 // only because some other projects expect the macros to be defined. 630 631 // For these things, GCC behaves the ANSI way normally, 632 // and the non-ANSI way under -traditional. 633 634 // This is not a typedef so `const __ptr_t' does the right thing. 635 636 // C++ needs to know that types and declarations are C, not C++. 637 638 // Fortify support. 639 640 // Support for flexible arrays. 641 // Headers that should use flexible arrays only if they're "real" 642 // (e.g. only if they won't affect sizeof()) should test 643 // #if __glibc_c99_flexarr_available. 644 645 // __asm__ ("xyz") is used throughout the headers to rename functions 646 // at the assembly language level. This is wrapped by the __REDIRECT 647 // macro, in order to support compilers that can do this some other 648 // way. When compilers don't support asm-names at all, we have to do 649 // preprocessor tricks instead (which don't have exactly the right 650 // semantics, but it's the best we can do). 651 // 652 // Example: 653 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 654 655 // 656 // #elif __SOME_OTHER_COMPILER__ 657 // 658 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 659 660 // GCC has various useful declarations that can be made with the 661 // `__attribute__' syntax. All of the ways we use this do fine if 662 // they are omitted for compilers that don't understand it. 663 664 // At some point during the gcc 2.96 development the `malloc' attribute 665 // for functions was introduced. We don't want to use it unconditionally 666 // (although this would be possible) since it generates warnings. 667 668 // Tell the compiler which arguments to an allocation function 669 // indicate the size of the allocation. 670 671 // At some point during the gcc 2.96 development the `pure' attribute 672 // for functions was introduced. We don't want to use it unconditionally 673 // (although this would be possible) since it generates warnings. 674 675 // This declaration tells the compiler that the value is constant. 676 677 // At some point during the gcc 3.1 development the `used' attribute 678 // for functions was introduced. We don't want to use it unconditionally 679 // (although this would be possible) since it generates warnings. 680 681 // Since version 3.2, gcc allows marking deprecated functions. 682 683 // Since version 4.5, gcc also allows one to specify the message printed 684 // when a deprecated function is used. clang claims to be gcc 4.2, but 685 // may also support this feature. 686 687 // At some point during the gcc 2.8 development the `format_arg' attribute 688 // for functions was introduced. We don't want to use it unconditionally 689 // (although this would be possible) since it generates warnings. 690 // If several `format_arg' attributes are given for the same function, in 691 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 692 // all designated arguments are considered. 693 694 // At some point during the gcc 2.97 development the `strfmon' format 695 // attribute for functions was introduced. We don't want to use it 696 // unconditionally (although this would be possible) since it 697 // generates warnings. 698 699 // The nonull function attribute allows to mark pointer parameters which 700 // must not be NULL. 701 702 // If fortification mode, we warn about unused results of certain 703 // function calls which can lead to problems. 704 705 // Forces a function to be always inlined. 706 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 707 // it conflicts with this definition. Therefore undefine it first to 708 // allow either header to be included first. 709 710 // Associate error messages with the source location of the call site rather 711 // than with the source location inside the function. 712 713 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 714 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 715 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 716 // older than 4.3 may define these macros and still not guarantee GNU inlining 717 // semantics. 718 // 719 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 720 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 721 // __GNUC_GNU_INLINE__ macro definitions. 722 723 // GCC 4.3 and above allow passing all anonymous arguments of an 724 // __extern_always_inline function to some other vararg function. 725 726 // It is possible to compile containing GCC extensions even if GCC is 727 // run in pedantic mode if the uses are carefully marked using the 728 // `__extension__' keyword. But this is not generally available before 729 // version 2.8. 730 731 // __restrict is known in EGCS 1.2 and above. 732 733 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 734 // array_name[restrict] 735 // GCC 3.1 supports this. 736 737 // Describes a char array whose address can safely be passed as the first 738 // argument to strncpy and strncat, as the char array is not necessarily 739 // a NUL-terminated string. 740 741 // Undefine (also defined in libc-symbols.h). 742 // Copies attributes from the declaration or type referenced by 743 // the argument. 744 745 // Determine the wordsize from the preprocessor defines. 746 // 747 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 748 // This file is part of the GNU C Library. 749 // 750 // The GNU C Library is free software; you can redistribute it and/or 751 // modify it under the terms of the GNU Lesser General Public 752 // License as published by the Free Software Foundation; either 753 // version 2.1 of the License, or (at your option) any later version. 754 // 755 // The GNU C Library is distributed in the hope that it will be useful, 756 // but WITHOUT ANY WARRANTY; without even the implied warranty of 757 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 758 // Lesser General Public License for more details. 759 // 760 // You should have received a copy of the GNU Lesser General Public 761 // License along with the GNU C Library; if not, see 762 // <https://www.gnu.org/licenses/>. 763 764 // Properties of long double type. ldbl-128 version. 765 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 766 // This file is part of the GNU C Library. 767 // 768 // The GNU C Library is free software; you can redistribute it and/or 769 // modify it under the terms of the GNU Lesser General Public 770 // License published by the Free Software Foundation; either 771 // version 2.1 of the License, or (at your option) any later version. 772 // 773 // The GNU C Library is distributed in the hope that it will be useful, 774 // but WITHOUT ANY WARRANTY; without even the implied warranty of 775 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 776 // Lesser General Public License for more details. 777 // 778 // You should have received a copy of the GNU Lesser General Public 779 // License along with the GNU C Library; if not, see 780 // <https://www.gnu.org/licenses/>. 781 782 // long double is distinct from double, so there is nothing to 783 // define here. 784 785 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 786 // intended for use in preprocessor macros. 787 // 788 // Note: MESSAGE must be a _single_ string; concatenation of string 789 // literals is not supported. 790 791 // Generic selection (ISO C11) is a C-only feature, available in GCC 792 // since version 4.9. Previous versions do not provide generic 793 // selection, even though they might set __STDC_VERSION__ to 201112L, 794 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 795 // when testing __STDC_VERSION__ for generic selection support. 796 // On the other hand, Clang also defines __GNUC__, so a clang-specific 797 // check is required to enable the use of generic selection. 798 799 // If we don't have __REDIRECT, prototypes will be missing if 800 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 801 802 // Decide whether we can define 'extern inline' functions in headers. 803 804 // This is here only because every header file already includes this one. 805 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 806 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 807 // that will always return failure (and set errno to ENOSYS). 808 // This file is automatically generated. 809 // This file selects the right generated file of `__stub_FUNCTION' macros 810 // based on the architecture being compiled for. 811 812 // Determine the wordsize from the preprocessor defines. 813 // 814 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 815 // This file is part of the GNU C Library. 816 // 817 // The GNU C Library is free software; you can redistribute it and/or 818 // modify it under the terms of the GNU Lesser General Public 819 // License as published by the Free Software Foundation; either 820 // version 2.1 of the License, or (at your option) any later version. 821 // 822 // The GNU C Library is distributed in the hope that it will be useful, 823 // but WITHOUT ANY WARRANTY; without even the implied warranty of 824 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 825 // Lesser General Public License for more details. 826 // 827 // You should have received a copy of the GNU Lesser General Public 828 // License along with the GNU C Library; if not, see 829 // <https://www.gnu.org/licenses/>. 830 831 // This file is automatically generated. 832 // It defines a symbol `__stub_FUNCTION' for each function 833 // in the C library which is a stub, meaning it will fail 834 // every time called, usually setting errno to ENOSYS. 835 836 // bits/types.h -- definitions of __*_t types underlying *_t types. 837 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 838 // This file is part of the GNU C Library. 839 // 840 // The GNU C Library is free software; you can redistribute it and/or 841 // modify it under the terms of the GNU Lesser General Public 842 // License as published by the Free Software Foundation; either 843 // version 2.1 of the License, or (at your option) any later version. 844 // 845 // The GNU C Library is distributed in the hope that it will be useful, 846 // but WITHOUT ANY WARRANTY; without even the implied warranty of 847 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 848 // Lesser General Public License for more details. 849 // 850 // You should have received a copy of the GNU Lesser General Public 851 // License along with the GNU C Library; if not, see 852 // <https://www.gnu.org/licenses/>. 853 854 // Never include this file directly; use <sys/types.h> instead. 855 856 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 857 // This file is part of the GNU C Library. 858 // 859 // The GNU C Library is free software; you can redistribute it and/or 860 // modify it under the terms of the GNU Lesser General Public 861 // License as published by the Free Software Foundation; either 862 // version 2.1 of the License, or (at your option) any later version. 863 // 864 // The GNU C Library is distributed in the hope that it will be useful, 865 // but WITHOUT ANY WARRANTY; without even the implied warranty of 866 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 867 // Lesser General Public License for more details. 868 // 869 // You should have received a copy of the GNU Lesser General Public 870 // License along with the GNU C Library; if not, see 871 // <https://www.gnu.org/licenses/>. 872 873 // Determine the wordsize from the preprocessor defines. 874 // 875 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 876 // This file is part of the GNU C Library. 877 // 878 // The GNU C Library is free software; you can redistribute it and/or 879 // modify it under the terms of the GNU Lesser General Public 880 // License as published by the Free Software Foundation; either 881 // version 2.1 of the License, or (at your option) any later version. 882 // 883 // The GNU C Library is distributed in the hope that it will be useful, 884 // but WITHOUT ANY WARRANTY; without even the implied warranty of 885 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 886 // Lesser General Public License for more details. 887 // 888 // You should have received a copy of the GNU Lesser General Public 889 // License along with the GNU C Library; if not, see 890 // <https://www.gnu.org/licenses/>. 891 892 // Bit size of the time_t type at glibc build time, general case. 893 // Copyright (C) 2018-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 // Determine the wordsize from the preprocessor defines. 911 // 912 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 913 // This file is part of the GNU C Library. 914 // 915 // The GNU C Library is free software; you can redistribute it and/or 916 // modify it under the terms of the GNU Lesser General Public 917 // License as published by the Free Software Foundation; either 918 // version 2.1 of the License, or (at your option) any later version. 919 // 920 // The GNU C Library is distributed in the hope that it will be useful, 921 // but WITHOUT ANY WARRANTY; without even the implied warranty of 922 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 923 // Lesser General Public License for more details. 924 // 925 // You should have received a copy of the GNU Lesser General Public 926 // License along with the GNU C Library; if not, see 927 // <https://www.gnu.org/licenses/>. 928 929 // Size in bits of the 'time_t' type of the default ABI. 930 931 // Convenience types. 932 type X__u_char = uint8 /* types.h:31:23 */ 933 type X__u_short = uint16 /* types.h:32:28 */ 934 type X__u_int = uint32 /* types.h:33:22 */ 935 type X__u_long = uint64 /* types.h:34:27 */ 936 937 // Fixed-size types, underlying types depend on word size and compiler. 938 type X__int8_t = int8 /* types.h:37:21 */ 939 type X__uint8_t = uint8 /* types.h:38:23 */ 940 type X__int16_t = int16 /* types.h:39:26 */ 941 type X__uint16_t = uint16 /* types.h:40:28 */ 942 type X__int32_t = int32 /* types.h:41:20 */ 943 type X__uint32_t = uint32 /* types.h:42:22 */ 944 type X__int64_t = int64 /* types.h:44:25 */ 945 type X__uint64_t = uint64 /* types.h:45:27 */ 946 947 // Smallest types with at least a given width. 948 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 949 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 950 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 951 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 952 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 953 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 954 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 955 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 956 957 // quad_t is also 64 bits. 958 type X__quad_t = int64 /* types.h:63:18 */ 959 type X__u_quad_t = uint64 /* types.h:64:27 */ 960 961 // Largest integral types. 962 type X__intmax_t = int64 /* types.h:72:18 */ 963 type X__uintmax_t = uint64 /* types.h:73:27 */ 964 965 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 966 // macros for each of the OS types we define below. The definitions 967 // of those macros must use the following macros for underlying types. 968 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 969 // variants of each of the following integer types on this machine. 970 // 971 // 16 -- "natural" 16-bit type (always short) 972 // 32 -- "natural" 32-bit type (always int) 973 // 64 -- "natural" 64-bit type (long or long long) 974 // LONG32 -- 32-bit type, traditionally long 975 // QUAD -- 64-bit type, traditionally long long 976 // WORD -- natural type of __WORDSIZE bits (int or long) 977 // LONGWORD -- type of __WORDSIZE bits, traditionally long 978 // 979 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 980 // conventional uses of `long' or `long long' type modifiers match the 981 // types we define, even when a less-adorned type would be the same size. 982 // This matters for (somewhat) portably writing printf/scanf formats for 983 // these types, where using the appropriate l or ll format modifiers can 984 // make the typedefs and the formats match up across all GNU platforms. If 985 // we used `long' when it's 64 bits where `long long' is expected, then the 986 // compiler would warn about the formats not matching the argument types, 987 // and the programmer changing them to shut up the compiler would break the 988 // program's portability. 989 // 990 // Here we assume what is presently the case in all the GCC configurations 991 // we support: long long is always 64 bits, long is always word/address size, 992 // and int is always 32 bits. 993 994 // No need to mark the typedef with __extension__. 995 // bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. 996 // Copyright (C) 2011-2020 Free Software Foundation, Inc. 997 // This file is part of the GNU C Library. 998 // Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. 999 // 1000 // The GNU C Library is free software; you can redistribute it and/or 1001 // modify it under the terms of the GNU Lesser General Public 1002 // License as published by the Free Software Foundation; either 1003 // version 2.1 of the License, or (at your option) any later version. 1004 // 1005 // The GNU C Library is distributed in the hope that it will be useful, 1006 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1007 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1008 // Lesser General Public License for more details. 1009 // 1010 // You should have received a copy of the GNU Lesser General Public 1011 // License along with the GNU C Library. If not, see 1012 // <https://www.gnu.org/licenses/>. 1013 1014 // See <bits/types.h> for the meaning of these macros. This file exists so 1015 // that <bits/types.h> need not vary across different GNU platforms. 1016 1017 // Tell the libc code that off_t and off64_t are actually the same type 1018 // for all ABI purposes, even if possibly expressed as different base types 1019 // for C type-checking purposes. 1020 1021 // Same for ino_t and ino64_t. 1022 1023 // And for __rlim_t and __rlim64_t. 1024 1025 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 1026 // Number of descriptors that can fit in an `fd_set'. 1027 1028 // bits/time64.h -- underlying types for __time64_t. Generic version. 1029 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 1030 // This file is part of the GNU C Library. 1031 // 1032 // The GNU C Library is free software; you can redistribute it and/or 1033 // modify it under the terms of the GNU Lesser General Public 1034 // License as published by the Free Software Foundation; either 1035 // version 2.1 of the License, or (at your option) any later version. 1036 // 1037 // The GNU C Library is distributed in the hope that it will be useful, 1038 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1039 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1040 // Lesser General Public License for more details. 1041 // 1042 // You should have received a copy of the GNU Lesser General Public 1043 // License along with the GNU C Library; if not, see 1044 // <https://www.gnu.org/licenses/>. 1045 1046 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 1047 1048 // If we already have 64-bit time type then use it. 1049 1050 type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. 1051 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 1052 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 1053 type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. 1054 type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). 1055 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 1056 type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. 1057 type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 1058 type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 1059 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 1060 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 1061 type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. 1062 type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 1063 type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). 1064 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 1065 type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. 1066 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 1067 type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. 1068 1069 type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. 1070 type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. 1071 1072 // Clock ID used in clock and timer functions. 1073 type X__clockid_t = int32 /* types.h:168:29 */ 1074 1075 // Timer ID returned by `timer_create'. 1076 type X__timer_t = uintptr /* types.h:171:12 */ 1077 1078 // Type to represent block size. 1079 type X__blksize_t = int32 /* types.h:174:29 */ 1080 1081 // Types from the Large File Support interface. 1082 1083 // Type to count number of disk blocks. 1084 type X__blkcnt_t = int64 /* types.h:179:28 */ 1085 type X__blkcnt64_t = int64 /* types.h:180:30 */ 1086 1087 // Type to count file system blocks. 1088 type X__fsblkcnt_t = uint64 /* types.h:183:30 */ 1089 type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ 1090 1091 // Type to count file system nodes. 1092 type X__fsfilcnt_t = uint64 /* types.h:187:30 */ 1093 type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ 1094 1095 // Type of miscellaneous file system fields. 1096 type X__fsword_t = int64 /* types.h:191:28 */ 1097 1098 type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. 1099 1100 // Signed long type used in system calls. 1101 type X__syscall_slong_t = int64 /* types.h:196:33 */ 1102 // Unsigned long type used in system calls. 1103 type X__syscall_ulong_t = uint64 /* types.h:198:33 */ 1104 1105 // These few don't really vary by system, they always correspond 1106 // 1107 // to one of the other defined types. 1108 type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). 1109 type X__caddr_t = uintptr /* types.h:203:14 */ 1110 1111 // Duplicates info from stdint.h but this is used in unistd.h. 1112 type X__intptr_t = int64 /* types.h:206:25 */ 1113 1114 // Duplicate info from sys/socket.h. 1115 type X__socklen_t = uint32 /* types.h:209:23 */ 1116 1117 // C99: An integer type that can be accessed as an atomic entity, 1118 // 1119 // even in the presence of asynchronous interrupts. 1120 // It is not currently necessary for this to be machine-specific. 1121 type X__sig_atomic_t = int32 /* types.h:214:13 */ 1122 1123 // Seconds since the Epoch, visible to user code when time_t is too 1124 // narrow only for consistency with the old way of widening too-narrow 1125 // types. User code should never use __time64_t. 1126 1127 // Signal number definitions. Linux version. 1128 // Copyright (C) 1995-2020 Free Software Foundation, Inc. 1129 // This file is part of the GNU C Library. 1130 // 1131 // The GNU C Library is free software; you can redistribute it and/or 1132 // modify it under the terms of the GNU Lesser General Public 1133 // License as published by the Free Software Foundation; either 1134 // version 2.1 of the License, or (at your option) any later version. 1135 // 1136 // The GNU C Library is distributed in the hope that it will be useful, 1137 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1138 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1139 // Lesser General Public License for more details. 1140 // 1141 // You should have received a copy of the GNU Lesser General Public 1142 // License along with the GNU C Library; if not, see 1143 // <https://www.gnu.org/licenses/>. 1144 1145 // Signal number constants. Generic template. 1146 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1147 // This file is part of the GNU C Library. 1148 // 1149 // The GNU C Library is free software; you can redistribute it and/or 1150 // modify it under the terms of the GNU Lesser General Public 1151 // License as published by the Free Software Foundation; either 1152 // version 2.1 of the License, or (at your option) any later version. 1153 // 1154 // The GNU C Library is distributed in the hope that it will be useful, 1155 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1156 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1157 // Lesser General Public License for more details. 1158 // 1159 // You should have received a copy of the GNU Lesser General Public 1160 // License along with the GNU C Library; if not, see 1161 // <https://www.gnu.org/licenses/>. 1162 1163 // Fake signal functions. 1164 1165 // We define here all the signal names listed in POSIX (1003.1-2008); 1166 // as of 1003.1-2013, no additional signals have been added by POSIX. 1167 // We also define here signal names that historically exist in every 1168 // real-world POSIX variant (e.g. SIGWINCH). 1169 // 1170 // Signals in the 1-15 range are defined with their historical numbers. 1171 // For other signals, we use the BSD numbers. 1172 // There are two unallocated signal numbers in the 1-31 range: 7 and 29. 1173 // Signal number 0 is reserved for use as kill(pid, 0), to test whether 1174 // a process exists without sending it a signal. 1175 1176 // ISO C99 signals. 1177 1178 // Historical signals specified by POSIX. 1179 1180 // New(er) POSIX signals (1003.1-2008, 1003.1-2013). 1181 1182 // Nonstandard signals found in all modern POSIX systems 1183 // (including both BSD and Linux). 1184 1185 // Archaic names for compatibility. 1186 1187 // Not all systems support real-time signals. bits/signum.h indicates 1188 // that they are supported by overriding __SIGRTMAX to a value greater 1189 // than __SIGRTMIN. These constants give the kernel-level hard limits, 1190 // but some real-time signals may be used internally by glibc. Do not 1191 // use these constants in application code; use SIGRTMIN and SIGRTMAX 1192 // (defined in signal.h) instead. 1193 1194 // Biggest signal number + 1 (including real-time signals). 1195 1196 // Adjustments and additions to the signal number constants for 1197 // most Linux systems. 1198 1199 // bits/types.h -- definitions of __*_t types underlying *_t types. 1200 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1201 // This file is part of the GNU C Library. 1202 // 1203 // The GNU C Library is free software; you can redistribute it and/or 1204 // modify it under the terms of the GNU Lesser General Public 1205 // License as published by the Free Software Foundation; either 1206 // version 2.1 of the License, or (at your option) any later version. 1207 // 1208 // The GNU C Library is distributed in the hope that it will be useful, 1209 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1210 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1211 // Lesser General Public License for more details. 1212 // 1213 // You should have received a copy of the GNU Lesser General Public 1214 // License along with the GNU C Library; if not, see 1215 // <https://www.gnu.org/licenses/>. 1216 1217 // Never include this file directly; use <sys/types.h> instead. 1218 1219 // An integral type that can be modified atomically, without the 1220 // 1221 // possibility of a signal arriving in the middle of the operation. 1222 type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */ 1223 1224 type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */ 1225 1226 // A set of signals to be blocked, unblocked, or waited for. 1227 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ 1228 1229 type Pid_t = X__pid_t /* signal.h:40:17 */ 1230 type Uid_t = X__uid_t /* signal.h:46:17 */ 1231 1232 // We need `struct timespec' later on. 1233 // NB: Include guard matches what <linux/time.h> uses. 1234 1235 // bits/types.h -- definitions of __*_t types underlying *_t types. 1236 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1237 // This file is part of the GNU C Library. 1238 // 1239 // The GNU C Library is free software; you can redistribute it and/or 1240 // modify it under the terms of the GNU Lesser General Public 1241 // License as published by the Free Software Foundation; either 1242 // version 2.1 of the License, or (at your option) any later version. 1243 // 1244 // The GNU C Library is distributed in the hope that it will be useful, 1245 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1246 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1247 // Lesser General Public License for more details. 1248 // 1249 // You should have received a copy of the GNU Lesser General Public 1250 // License along with the GNU C Library; if not, see 1251 // <https://www.gnu.org/licenses/>. 1252 1253 // Never include this file directly; use <sys/types.h> instead. 1254 1255 // Endian macros for string.h functions 1256 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1257 // This file is part of the GNU C Library. 1258 // 1259 // The GNU C Library is free software; you can redistribute it and/or 1260 // modify it under the terms of the GNU Lesser General Public 1261 // License as published by the Free Software Foundation; either 1262 // version 2.1 of the License, or (at your option) any later version. 1263 // 1264 // The GNU C Library is distributed in the hope that it will be useful, 1265 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1266 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1267 // Lesser General Public License for more details. 1268 // 1269 // You should have received a copy of the GNU Lesser General Public 1270 // License along with the GNU C Library; if not, see 1271 // <http://www.gnu.org/licenses/>. 1272 1273 // Definitions for byte order, according to significance of bytes, 1274 // from low addresses to high addresses. The value is what you get by 1275 // putting '4' in the most significant byte, '3' in the second most 1276 // significant byte, '2' in the second least significant byte, and '1' 1277 // in the least significant byte, and then writing down one digit for 1278 // each byte, starting with the byte at the lowest address at the left, 1279 // and proceeding to the byte with the highest address at the right. 1280 1281 // This file defines `__BYTE_ORDER' for the particular machine. 1282 1283 // AArch64 has selectable endianness. 1284 1285 // Some machines may need to use a different endianness for floating point 1286 // values. 1287 1288 // POSIX.1b structure for a time value. This is like a `struct timeval' but 1289 // 1290 // has nanoseconds instead of microseconds. 1291 type Timespec = struct { 1292 Ftv_sec X__time_t 1293 Ftv_nsec X__syscall_slong_t 1294 } /* struct_timespec.h:10:1 */ 1295 1296 // Determine the wordsize from the preprocessor defines. 1297 // 1298 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 1299 // This file is part of the GNU C Library. 1300 // 1301 // The GNU C Library is free software; you can redistribute it and/or 1302 // modify it under the terms of the GNU Lesser General Public 1303 // License as published by the Free Software Foundation; either 1304 // version 2.1 of the License, or (at your option) any later version. 1305 // 1306 // The GNU C Library is distributed in the hope that it will be useful, 1307 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1308 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1309 // Lesser General Public License for more details. 1310 // 1311 // You should have received a copy of the GNU Lesser General Public 1312 // License along with the GNU C Library; if not, see 1313 // <https://www.gnu.org/licenses/>. 1314 1315 // bits/types.h -- definitions of __*_t types underlying *_t types. 1316 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1317 // This file is part of the GNU C Library. 1318 // 1319 // The GNU C Library is free software; you can redistribute it and/or 1320 // modify it under the terms of the GNU Lesser General Public 1321 // License as published by the Free Software Foundation; either 1322 // version 2.1 of the License, or (at your option) any later version. 1323 // 1324 // The GNU C Library is distributed in the hope that it will be useful, 1325 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1326 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1327 // Lesser General Public License for more details. 1328 // 1329 // You should have received a copy of the GNU Lesser General Public 1330 // License along with the GNU C Library; if not, see 1331 // <https://www.gnu.org/licenses/>. 1332 1333 // Never include this file directly; use <sys/types.h> instead. 1334 1335 // Define __sigval_t. 1336 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1337 // This file is part of the GNU C Library. 1338 // 1339 // The GNU C Library is free software; you can redistribute it and/or 1340 // modify it under the terms of the GNU Lesser General Public 1341 // License as published by the Free Software Foundation; either 1342 // version 2.1 of the License, or (at your option) any later version. 1343 // 1344 // The GNU C Library is distributed in the hope that it will be useful, 1345 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1346 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1347 // Lesser General Public License for more details. 1348 // 1349 // You should have received a copy of the GNU Lesser General Public 1350 // License along with the GNU C Library; if not, see 1351 // <https://www.gnu.org/licenses/>. 1352 1353 // Type for data associated with a signal. 1354 type Sigval = struct { 1355 F__ccgo_pad1 [0]uint64 1356 Fsival_int int32 1357 F__ccgo_pad2 [4]byte 1358 } /* __sigval_t.h:24:1 */ 1359 1360 type X__sigval_t = Sigval /* __sigval_t.h:30:22 */ 1361 1362 // Some fields of siginfo_t have architecture-specific variations. 1363 // Architecture-specific adjustments to siginfo_t. 1364 1365 // This architecture has no adjustments to make to siginfo_t. 1366 1367 type Siginfo_t = struct { 1368 Fsi_signo int32 1369 Fsi_errno int32 1370 Fsi_code int32 1371 F__pad0 int32 1372 F_sifields struct { 1373 F__ccgo_pad1 [0]uint64 1374 F_pad [28]int32 1375 } 1376 } /* siginfo_t.h:124:5 */ 1377 1378 // Architectures might also add architecture-specific constants. 1379 // These are all considered GNU extensions. 1380 1381 // Define __sigval_t. 1382 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1383 // This file is part of the GNU C Library. 1384 // 1385 // The GNU C Library is free software; you can redistribute it and/or 1386 // modify it under the terms of the GNU Lesser General Public 1387 // License as published by the Free Software Foundation; either 1388 // version 2.1 of the License, or (at your option) any later version. 1389 // 1390 // The GNU C Library is distributed in the hope that it will be useful, 1391 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1392 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1393 // Lesser General Public License for more details. 1394 // 1395 // You should have received a copy of the GNU Lesser General Public 1396 // License along with the GNU C Library; if not, see 1397 // <https://www.gnu.org/licenses/>. 1398 1399 // To avoid sigval_t (not a standard type name) having C++ name 1400 // mangling depending on whether the selected standard includes union 1401 // sigval, it should not be defined at all when using a standard for 1402 // which the sigval name is not reserved; in that case, headers should 1403 // not include <bits/types/sigval_t.h> and should use only the 1404 // internal __sigval_t name. 1405 1406 type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */ 1407 1408 // Determine the wordsize from the preprocessor defines. 1409 // 1410 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 1411 // This file is part of the GNU C Library. 1412 // 1413 // The GNU C Library is free software; you can redistribute it and/or 1414 // modify it under the terms of the GNU Lesser General Public 1415 // License as published by the Free Software Foundation; either 1416 // version 2.1 of the License, or (at your option) any later version. 1417 // 1418 // The GNU C Library is distributed in the hope that it will be useful, 1419 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1420 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1421 // Lesser General Public License for more details. 1422 // 1423 // You should have received a copy of the GNU Lesser General Public 1424 // License along with the GNU C Library; if not, see 1425 // <https://www.gnu.org/licenses/>. 1426 1427 // bits/types.h -- definitions of __*_t types underlying *_t types. 1428 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1429 // This file is part of the GNU C Library. 1430 // 1431 // The GNU C Library is free software; you can redistribute it and/or 1432 // modify it under the terms of the GNU Lesser General Public 1433 // License as published by the Free Software Foundation; either 1434 // version 2.1 of the License, or (at your option) any later version. 1435 // 1436 // The GNU C Library is distributed in the hope that it will be useful, 1437 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1438 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1439 // Lesser General Public License for more details. 1440 // 1441 // You should have received a copy of the GNU Lesser General Public 1442 // License along with the GNU C Library; if not, see 1443 // <https://www.gnu.org/licenses/>. 1444 1445 // Never include this file directly; use <sys/types.h> instead. 1446 1447 // Define __sigval_t. 1448 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1449 // This file is part of the GNU C Library. 1450 // 1451 // The GNU C Library is free software; you can redistribute it and/or 1452 // modify it under the terms of the GNU Lesser General Public 1453 // License as published by the Free Software Foundation; either 1454 // version 2.1 of the License, or (at your option) any later version. 1455 // 1456 // The GNU C Library is distributed in the hope that it will be useful, 1457 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1458 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1459 // Lesser General Public License for more details. 1460 // 1461 // You should have received a copy of the GNU Lesser General Public 1462 // License along with the GNU C Library; if not, see 1463 // <https://www.gnu.org/licenses/>. 1464 1465 // Forward declaration. 1466 type Pthread_attr_t1 = struct { 1467 F__ccgo_pad1 [0]uint64 1468 F__size [64]uint8 1469 } /* sigevent_t.h:17:9 */ 1470 1471 // Determine the wordsize from the preprocessor defines. 1472 // 1473 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 1474 // This file is part of the GNU C Library. 1475 // 1476 // The GNU C Library is free software; you can redistribute it and/or 1477 // modify it under the terms of the GNU Lesser General Public 1478 // License as published by the Free Software Foundation; either 1479 // version 2.1 of the License, or (at your option) any later version. 1480 // 1481 // The GNU C Library is distributed in the hope that it will be useful, 1482 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1483 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1484 // Lesser General Public License for more details. 1485 // 1486 // You should have received a copy of the GNU Lesser General Public 1487 // License along with the GNU C Library; if not, see 1488 // <https://www.gnu.org/licenses/>. 1489 1490 // bits/types.h -- definitions of __*_t types underlying *_t types. 1491 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1492 // This file is part of the GNU C Library. 1493 // 1494 // The GNU C Library is free software; you can redistribute it and/or 1495 // modify it under the terms of the GNU Lesser General Public 1496 // License as published by the Free Software Foundation; either 1497 // version 2.1 of the License, or (at your option) any later version. 1498 // 1499 // The GNU C Library is distributed in the hope that it will be useful, 1500 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1501 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1502 // Lesser General Public License for more details. 1503 // 1504 // You should have received a copy of the GNU Lesser General Public 1505 // License along with the GNU C Library; if not, see 1506 // <https://www.gnu.org/licenses/>. 1507 1508 // Never include this file directly; use <sys/types.h> instead. 1509 1510 // Define __sigval_t. 1511 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1512 // This file is part of the GNU C Library. 1513 // 1514 // The GNU C Library is free software; you can redistribute it and/or 1515 // modify it under the terms of the GNU Lesser General Public 1516 // License as published by the Free Software Foundation; either 1517 // version 2.1 of the License, or (at your option) any later version. 1518 // 1519 // The GNU C Library is distributed in the hope that it will be useful, 1520 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1521 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1522 // Lesser General Public License for more details. 1523 // 1524 // You should have received a copy of the GNU Lesser General Public 1525 // License along with the GNU C Library; if not, see 1526 // <https://www.gnu.org/licenses/>. 1527 1528 // Forward declaration. 1529 type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */ 1530 1531 // Structure to transport application-defined values with signals. 1532 type Sigevent = struct { 1533 Fsigev_value X__sigval_t 1534 Fsigev_signo int32 1535 Fsigev_notify int32 1536 F_sigev_un struct { 1537 F__ccgo_pad1 [0]uint64 1538 F_pad [12]int32 1539 } 1540 } /* sigevent_t.h:22:9 */ 1541 1542 // Structure to transport application-defined values with signals. 1543 type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */ 1544 1545 // Type of a signal handler. 1546 type X__sighandler_t = uintptr /* signal.h:72:14 */ 1547 1548 // 4.4 BSD uses the name `sig_t' for this. 1549 type Sig_t = X__sighandler_t /* signal.h:190:24 */ 1550 1551 // Get the system-specific definitions of `struct sigaction' 1552 // and the `SA_*' and `SIG_*'. constants. 1553 // The proper definitions for Linux's sigaction. 1554 // Copyright (C) 1993-2020 Free Software Foundation, Inc. 1555 // This file is part of the GNU C Library. 1556 // 1557 // The GNU C Library is free software; you can redistribute it and/or 1558 // modify it under the terms of the GNU Lesser General Public 1559 // License as published by the Free Software Foundation; either 1560 // version 2.1 of the License, or (at your option) any later version. 1561 // 1562 // The GNU C Library is distributed in the hope that it will be useful, 1563 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1564 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1565 // Lesser General Public License for more details. 1566 // 1567 // You should have received a copy of the GNU Lesser General Public 1568 // License along with the GNU C Library; if not, see 1569 // <https://www.gnu.org/licenses/>. 1570 1571 // Structure describing the action to be taken when a signal arrives. 1572 type Sigaction = struct { 1573 F__sigaction_handler struct{ Fsa_handler X__sighandler_t } 1574 Fsa_mask X__sigset_t 1575 Fsa_flags int32 1576 F__ccgo_pad1 [4]byte 1577 Fsa_restorer uintptr 1578 } /* sigaction.h:27:1 */ 1579 1580 // Get machine-dependent `struct sigcontext' and signal subcodes. 1581 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 1582 // This file is part of the GNU C Library. 1583 // 1584 // The GNU C Library is free software; you can redistribute it and/or 1585 // modify it under the terms of the GNU Lesser General Public 1586 // License as published by the Free Software Foundation; either 1587 // version 2.1 of the License, or (at your option) any later version. 1588 // 1589 // The GNU C Library is distributed in the hope that it will be useful, 1590 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1591 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1592 // Lesser General Public License for more details. 1593 // 1594 // You should have received a copy of the GNU Lesser General Public 1595 // License along with the GNU C Library; if not, see 1596 // <https://www.gnu.org/licenses/>. 1597 1598 // Kernel headers before 2.1.1 define a struct sigcontext_struct, but 1599 // we need sigcontext. 1600 1601 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1602 // Copyright (C) 2012 ARM Ltd. 1603 // 1604 // This program is free software; you can redistribute it and/or modify 1605 // it under the terms of the GNU General Public License version 2 as 1606 // published by the Free Software Foundation. 1607 // 1608 // This program is distributed in the hope that it will be useful, 1609 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1610 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1611 // GNU General Public License for more details. 1612 // 1613 // You should have received a copy of the GNU General Public License 1614 // along with this program. If not, see <http://www.gnu.org/licenses/>. 1615 1616 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1617 1618 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1619 // int-ll64 is used everywhere now. 1620 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1621 // asm-generic/int-ll64.h 1622 // 1623 // Integer declarations for architectures which use "long long" 1624 // for 64-bit types. 1625 1626 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1627 // Copyright (C) 2012 ARM Ltd. 1628 // 1629 // This program is free software; you can redistribute it and/or modify 1630 // it under the terms of the GNU General Public License version 2 as 1631 // published by the Free Software Foundation. 1632 // 1633 // This program is distributed in the hope that it will be useful, 1634 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1635 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1636 // GNU General Public License for more details. 1637 // 1638 // You should have received a copy of the GNU General Public License 1639 // along with this program. If not, see <http://www.gnu.org/licenses/>. 1640 1641 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1642 1643 // There seems to be no way of detecting this automatically from user 1644 // space, so 64 bit architectures should override this in their 1645 // bitsperlong.h. In particular, an architecture that supports 1646 // both 32 and 64 bit user space must not rely on CONFIG_64BIT 1647 // to decide it, but rather check a compiler provided macro. 1648 1649 // __xx is ok: it doesn't pollute the POSIX namespace. Use these in the 1650 // header files exported to user space 1651 1652 type X__s8 = int8 /* int-ll64.h:20:25 */ 1653 type X__u8 = uint8 /* int-ll64.h:21:23 */ 1654 1655 type X__s16 = int16 /* int-ll64.h:23:26 */ 1656 type X__u16 = uint16 /* int-ll64.h:24:24 */ 1657 1658 type X__s32 = int32 /* int-ll64.h:26:24 */ 1659 type X__u32 = uint32 /* int-ll64.h:27:22 */ 1660 1661 type X__s64 = int64 /* int-ll64.h:30:44 */ 1662 type X__u64 = uint64 /* int-ll64.h:31:42 */ 1663 1664 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1665 1666 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1667 1668 // This allows for 1024 file descriptors: if NR_OPEN is ever grown 1669 // beyond that you'll have to change this too. But 1024 fd's seem to be 1670 // enough even for such "real" unices like OSF/1, so hopefully this is 1671 // one limit that doesn't have to be changed [again]. 1672 // 1673 // Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in 1674 // <sys/time.h> (and thus <linux/time.h>) - but this is a more logical 1675 // place for them. Solved by having dummy defines in <sys/time.h>. 1676 1677 // This macro may have been defined in <gnu/types.h>. But we always 1678 // use the one here. 1679 1680 type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */ 1681 1682 // Type of a signal handler. 1683 type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */ 1684 1685 // Type of a SYSV IPC key. 1686 type X__kernel_key_t = int32 /* posix_types.h:33:13 */ 1687 type X__kernel_mqd_t = int32 /* posix_types.h:34:13 */ 1688 1689 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1690 1691 type X__kernel_old_uid_t = uint16 /* posix_types.h:5:24 */ 1692 type X__kernel_old_gid_t = uint16 /* posix_types.h:6:24 */ 1693 1694 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1695 1696 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1697 // Copyright (C) 2012 ARM Ltd. 1698 // 1699 // This program is free software; you can redistribute it and/or modify 1700 // it under the terms of the GNU General Public License version 2 as 1701 // published by the Free Software Foundation. 1702 // 1703 // This program is distributed in the hope that it will be useful, 1704 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1705 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1706 // GNU General Public License for more details. 1707 // 1708 // You should have received a copy of the GNU General Public License 1709 // along with this program. If not, see <http://www.gnu.org/licenses/>. 1710 // This file is generally used by user-level software, so you need to 1711 // be a little careful about namespace pollution etc. 1712 // 1713 // First the types that are often defined in different ways across 1714 // architectures, so that you can override them. 1715 1716 type X__kernel_long_t = int64 /* posix_types.h:15:15 */ 1717 type X__kernel_ulong_t = uint64 /* posix_types.h:16:23 */ 1718 1719 type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */ 1720 1721 type X__kernel_mode_t = uint32 /* posix_types.h:24:22 */ 1722 1723 type X__kernel_pid_t = int32 /* posix_types.h:28:14 */ 1724 1725 type X__kernel_ipc_pid_t = int32 /* posix_types.h:32:14 */ 1726 1727 type X__kernel_uid_t = uint32 /* posix_types.h:36:22 */ 1728 type X__kernel_gid_t = uint32 /* posix_types.h:37:22 */ 1729 1730 type X__kernel_suseconds_t = X__kernel_long_t /* posix_types.h:41:26 */ 1731 1732 type X__kernel_daddr_t = int32 /* posix_types.h:45:14 */ 1733 1734 type X__kernel_uid32_t = uint32 /* posix_types.h:49:22 */ 1735 type X__kernel_gid32_t = uint32 /* posix_types.h:50:22 */ 1736 1737 type X__kernel_old_dev_t = uint32 /* posix_types.h:59:22 */ 1738 1739 // Most 32 bit architectures use "unsigned int" size_t, 1740 // and all 64 bit architectures use "unsigned long" size_t. 1741 type X__kernel_size_t = X__kernel_ulong_t /* posix_types.h:72:26 */ 1742 type X__kernel_ssize_t = X__kernel_long_t /* posix_types.h:73:25 */ 1743 type X__kernel_ptrdiff_t = X__kernel_long_t /* posix_types.h:74:25 */ 1744 1745 type X__kernel_fsid_t = struct{ Fval [2]int32 } /* posix_types.h:81:3 */ 1746 1747 // anything below here should be completely generic 1748 type X__kernel_off_t = X__kernel_long_t /* posix_types.h:87:25 */ 1749 type X__kernel_loff_t = int64 /* posix_types.h:88:19 */ 1750 type X__kernel_old_time_t = X__kernel_long_t /* posix_types.h:89:25 */ 1751 type X__kernel_time_t = X__kernel_long_t /* posix_types.h:90:25 */ 1752 type X__kernel_time64_t = int64 /* posix_types.h:91:19 */ 1753 type X__kernel_clock_t = X__kernel_long_t /* posix_types.h:92:25 */ 1754 type X__kernel_timer_t = int32 /* posix_types.h:93:14 */ 1755 type X__kernel_clockid_t = int32 /* posix_types.h:94:14 */ 1756 type X__kernel_caddr_t = uintptr /* posix_types.h:95:14 */ 1757 type X__kernel_uid16_t = uint16 /* posix_types.h:96:24 */ 1758 type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ 1759 1760 // Below are truly Linux-specific types that should never collide with 1761 // any application/library that wants linux/types.h. 1762 1763 type X__le16 = X__u16 /* types.h:24:25 */ 1764 type X__be16 = X__u16 /* types.h:25:25 */ 1765 type X__le32 = X__u32 /* types.h:26:25 */ 1766 type X__be32 = X__u32 /* types.h:27:25 */ 1767 type X__le64 = X__u64 /* types.h:28:25 */ 1768 type X__be64 = X__u64 /* types.h:29:25 */ 1769 1770 type X__sum16 = X__u16 /* types.h:31:25 */ 1771 type X__wsum = X__u32 /* types.h:32:25 */ 1772 1773 // aligned_u64 should be used in defining kernel<->userspace ABIs to avoid 1774 // common 32/64-bit compat problems. 1775 // 64-bit values align to 4-byte boundaries on x86_32 (and possibly other 1776 // architectures) and to 8-byte boundaries on 64-bit architectures. The new 1777 // aligned_64 type enforces 8-byte alignment so that structs containing 1778 // aligned_64 values have the same alignment on 32-bit and 64-bit architectures. 1779 // No conversions are necessary between 32-bit user-space and a 64-bit kernel. 1780 1781 type X__poll_t = uint32 /* types.h:47:28 */ 1782 1783 // Signal context structure - contains all info to do with the state 1784 // before the signal handler was invoked. 1785 type Sigcontext = struct { 1786 Ffault_address X__u64 1787 Fregs [31]X__u64 1788 Fsp X__u64 1789 Fpc X__u64 1790 Fpstate X__u64 1791 F__reserved [4096]X__u8 1792 } /* sigcontext.h:28:1 */ 1793 1794 // Allocation of __reserved[]: 1795 // (Note: records do not necessarily occur in the order shown here.) 1796 // 1797 // size description 1798 // 1799 // 0x210 fpsimd_context 1800 // 0x10 esr_context 1801 // 0x8a0 sve_context (vl <= 64) (optional) 1802 // 0x20 extra_context (optional) 1803 // 0x10 terminator (null _aarch64_ctx) 1804 // 1805 // 0x510 (reserved for future allocation) 1806 // 1807 // New records that can exceed this space need to be opt-in for userspace, so 1808 // that an expanded signal frame is not generated unexpectedly. The mechanism 1809 // for opting in will depend on the extension that generates each new record. 1810 // The above table documents the maximum set and sizes of records than can be 1811 // generated when userspace does not opt in for any such extension. 1812 1813 // Header to be used at the beginning of structures extending the user 1814 // context. Such structures must be placed after the rt_sigframe on the stack 1815 // and be 16-byte aligned. The last structure must be a dummy one with the 1816 // magic and size set to 0. 1817 type X_aarch64_ctx = struct { 1818 Fmagic X__u32 1819 Fsize X__u32 1820 } /* sigcontext.h:66:1 */ 1821 1822 type Fpsimd_context = struct { 1823 Fhead struct { 1824 Fmagic X__u32 1825 Fsize X__u32 1826 } 1827 Ffpsr X__u32 1828 Ffpcr X__u32 1829 Fvregs [32]X__uint128_t 1830 } /* sigcontext.h:73:1 */ 1831 1832 // Note: similarly to all other integer fields, each V-register is stored in an 1833 // endianness-dependent format, with the byte at offset i from the start of the 1834 // in-memory representation of the register value containing 1835 // 1836 // bits [(7 + 8 * i) : (8 * i)] of the register on little-endian hosts; or 1837 // bits [(127 - 8 * i) : (120 - 8 * i)] on big-endian hosts. 1838 1839 // ESR_EL1 context 1840 1841 type Esr_context = struct { 1842 Fhead struct { 1843 Fmagic X__u32 1844 Fsize X__u32 1845 } 1846 Fesr X__u64 1847 } /* sigcontext.h:92:1 */ 1848 1849 // extra_context: describes extra space in the signal frame for 1850 // additional structures that don't fit in sigcontext.__reserved[]. 1851 // 1852 // Note: 1853 // 1854 // 1) fpsimd_context, esr_context and extra_context must be placed in 1855 // sigcontext.__reserved[] if present. They cannot be placed in the 1856 // extra space. Any other record can be placed either in the extra 1857 // space or in sigcontext.__reserved[], unless otherwise specified in 1858 // this file. 1859 // 1860 // 2) There must not be more than one extra_context. 1861 // 1862 // 3) If extra_context is present, it must be followed immediately in 1863 // sigcontext.__reserved[] by the terminating null _aarch64_ctx. 1864 // 1865 // 4) The extra space to which datap points must start at the first 1866 // 16-byte aligned address immediately after the terminating null 1867 // _aarch64_ctx that follows the extra_context structure in 1868 // __reserved[]. The extra space may overrun the end of __reserved[], 1869 // as indicated by a sufficiently large value for the size field. 1870 // 1871 // 5) The extra space must itself be terminated with a null 1872 // _aarch64_ctx. 1873 1874 type Extra_context = struct { 1875 Fhead struct { 1876 Fmagic X__u32 1877 Fsize X__u32 1878 } 1879 Fdatap X__u64 1880 Fsize X__u32 1881 F__reserved [3]X__u32 1882 } /* sigcontext.h:125:1 */ 1883 1884 type Sve_context = struct { 1885 Fhead struct { 1886 Fmagic X__u32 1887 Fsize X__u32 1888 } 1889 Fvl X__u16 1890 F__reserved [3]X__u16 1891 } /* sigcontext.h:134:1 */ 1892 1893 // Wide character type. 1894 // Locale-writers should change this as necessary to 1895 // be big enough to hold unique values not between 0 and 127, 1896 // and not (wchar_t) -1, for each defined multibyte character. 1897 1898 // Define this type if we are doing the whole job, 1899 // or if we want this type in particular. 1900 1901 // A null pointer constant. 1902 1903 // Define stack_t. Linux version. 1904 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 1905 // This file is part of the GNU C Library. 1906 // 1907 // The GNU C Library is free software; you can redistribute it and/or 1908 // modify it under the terms of the GNU Lesser General Public 1909 // License as published by the Free Software Foundation; either 1910 // version 2.1 of the License, or (at your option) any later version. 1911 // 1912 // The GNU C Library is distributed in the hope that it will be useful, 1913 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1914 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1915 // Lesser General Public License for more details. 1916 // 1917 // You should have received a copy of the GNU Lesser General Public 1918 // License along with the GNU C Library; if not, see 1919 // <https://www.gnu.org/licenses/>. 1920 1921 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 1922 // 1923 // This file is part of GCC. 1924 // 1925 // GCC is free software; you can redistribute it and/or modify 1926 // it under the terms of the GNU General Public License as published by 1927 // the Free Software Foundation; either version 3, or (at your option) 1928 // any later version. 1929 // 1930 // GCC is distributed in the hope that it will be useful, 1931 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1932 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1933 // GNU General Public License for more details. 1934 // 1935 // Under Section 7 of GPL version 3, you are granted additional 1936 // permissions described in the GCC Runtime Library Exception, version 1937 // 3.1, as published by the Free Software Foundation. 1938 // 1939 // You should have received a copy of the GNU General Public License and 1940 // a copy of the GCC Runtime Library Exception along with this program; 1941 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1942 // <http://www.gnu.org/licenses/>. 1943 1944 // ISO C Standard: 7.17 Common definitions <stddef.h> 1945 1946 // Any one of these symbols __need_* means that GNU libc 1947 // wants us just to define one data type. So don't define 1948 // the symbols that indicate this file's entire job has been done. 1949 1950 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1951 // There's no way to win with the other order! Sun lossage. 1952 1953 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1954 // Just ignore it. 1955 1956 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1957 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1958 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1959 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1960 // If we find that the macros are still defined at this point, we must 1961 // invoke them so that the type is defined as expected. 1962 1963 // In case nobody has defined these types, but we aren't running under 1964 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1965 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1966 // parts of GCC is compiled by an older compiler, that actually 1967 // include gstddef.h, such as collect2. 1968 1969 // Signed type of difference of two pointers. 1970 1971 // Define this type if we are doing the whole job, 1972 // or if we want this type in particular. 1973 1974 // Unsigned type of `sizeof' something. 1975 1976 // Define this type if we are doing the whole job, 1977 // or if we want this type in particular. 1978 1979 // Wide character type. 1980 // Locale-writers should change this as necessary to 1981 // be big enough to hold unique values not between 0 and 127, 1982 // and not (wchar_t) -1, for each defined multibyte character. 1983 1984 // Define this type if we are doing the whole job, 1985 // or if we want this type in particular. 1986 1987 // A null pointer constant. 1988 1989 // Structure describing a signal stack. 1990 type Stack_t = struct { 1991 Fss_sp uintptr 1992 Fss_flags int32 1993 F__ccgo_pad1 [4]byte 1994 Fss_size Size_t 1995 } /* stack_t.h:31:5 */ 1996 1997 // This will define `ucontext_t' and `mcontext_t'. 1998 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 1999 // 2000 // This file is part of the GNU C Library. 2001 // 2002 // The GNU C Library is free software; you can redistribute it and/or 2003 // modify it under the terms of the GNU Lesser General Public 2004 // License as published by the Free Software Foundation; either 2005 // version 2.1 of the License, or (at your option) any later version. 2006 // 2007 // The GNU C Library is distributed in the hope that it will be useful, 2008 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2009 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2010 // Lesser General Public License for more details. 2011 // 2012 // You should have received a copy of the GNU Lesser General Public 2013 // License along with the GNU C Library; if not, see 2014 // <https://www.gnu.org/licenses/>. 2015 2016 // System V/AArch64 ABI compliant context switching support. 2017 2018 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2019 // This file is part of the GNU C Library. 2020 // 2021 // The GNU C Library is free software; you can redistribute it and/or 2022 // modify it under the terms of the GNU Lesser General Public 2023 // License as published by the Free Software Foundation; either 2024 // version 2.1 of the License, or (at your option) any later version. 2025 // 2026 // The GNU C Library is distributed in the hope that it will be useful, 2027 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2028 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2029 // Lesser General Public License for more details. 2030 // 2031 // You should have received a copy of the GNU Lesser General Public 2032 // License along with the GNU C Library; if not, see 2033 // <https://www.gnu.org/licenses/>. 2034 2035 // Define stack_t. Linux version. 2036 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 2037 // This file is part of the GNU C Library. 2038 // 2039 // The GNU C Library is free software; you can redistribute it and/or 2040 // modify it under the terms of the GNU Lesser General Public 2041 // License as published by the Free Software Foundation; either 2042 // version 2.1 of the License, or (at your option) any later version. 2043 // 2044 // The GNU C Library is distributed in the hope that it will be useful, 2045 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2046 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2047 // Lesser General Public License for more details. 2048 // 2049 // You should have received a copy of the GNU Lesser General Public 2050 // License along with the GNU C Library; if not, see 2051 // <https://www.gnu.org/licenses/>. 2052 2053 // Definitions for core files and libthread_db. Generic Linux version. 2054 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 2055 // 2056 // This file is part of the GNU C Library. 2057 // 2058 // The GNU C Library is free software; you can redistribute it and/or 2059 // modify it under the terms of the GNU Lesser General Public 2060 // License as published by the Free Software Foundation; either 2061 // version 2.1 of the License, or (at your option) any later version. 2062 // 2063 // The GNU C Library is distributed in the hope that it will be useful, 2064 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2065 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2066 // Lesser General Public License for more details. 2067 // 2068 // You should have received a copy of the GNU Lesser General Public 2069 // License along with the GNU C Library; if not, see 2070 // <https://www.gnu.org/licenses/>. 2071 2072 // This is somewhat modelled after the file of the same name on SVR4 2073 // systems. It provides a definition of the core file format for ELF 2074 // used on Linux. It doesn't have anything to do with the /proc file 2075 // system, even though Linux has one. 2076 // 2077 // Anyway, the whole purpose of this file is for GDB and GDB only. 2078 // Don't read too much into it. Don't use it for anything other than 2079 // GDB unless you know what you are doing. 2080 2081 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2082 // This file is part of the GNU C Library. 2083 // 2084 // The GNU C Library is free software; you can redistribute it and/or 2085 // modify it under the terms of the GNU Lesser General Public 2086 // License as published by the Free Software Foundation; either 2087 // version 2.1 of the License, or (at your option) any later version. 2088 // 2089 // The GNU C Library is distributed in the hope that it will be useful, 2090 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2091 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2092 // Lesser General Public License for more details. 2093 // 2094 // You should have received a copy of the GNU Lesser General Public 2095 // License along with the GNU C Library; if not, see 2096 // <https://www.gnu.org/licenses/>. 2097 2098 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2099 // This file is part of the GNU C Library. 2100 // 2101 // The GNU C Library is free software; you can redistribute it and/or 2102 // modify it under the terms of the GNU Lesser General Public 2103 // License as published by the Free Software Foundation; either 2104 // version 2.1 of the License, or (at your option) any later version. 2105 // 2106 // The GNU C Library is distributed in the hope that it will be useful, 2107 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2108 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2109 // Lesser General Public License for more details. 2110 // 2111 // You should have received a copy of the GNU Lesser General Public 2112 // License along with the GNU C Library; if not, see 2113 // <https://www.gnu.org/licenses/>. 2114 2115 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 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 // <https://www.gnu.org/licenses/>. 2131 2132 // bits/types.h -- definitions of __*_t types underlying *_t types. 2133 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2134 // This file is part of the GNU C Library. 2135 // 2136 // The GNU C Library is free software; you can redistribute it and/or 2137 // modify it under the terms of the GNU Lesser General Public 2138 // License as published by the Free Software Foundation; either 2139 // version 2.1 of the License, or (at your option) any later version. 2140 // 2141 // The GNU C Library is distributed in the hope that it will be useful, 2142 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2143 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2144 // Lesser General Public License for more details. 2145 // 2146 // You should have received a copy of the GNU Lesser General Public 2147 // License along with the GNU C Library; if not, see 2148 // <https://www.gnu.org/licenses/>. 2149 2150 // Never include this file directly; use <sys/types.h> instead. 2151 2152 // bits/types.h -- definitions of __*_t types underlying *_t types. 2153 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2154 // This file is part of the GNU C Library. 2155 // 2156 // The GNU C Library is free software; you can redistribute it and/or 2157 // modify it under the terms of the GNU Lesser General Public 2158 // License as published by the Free Software Foundation; either 2159 // version 2.1 of the License, or (at your option) any later version. 2160 // 2161 // The GNU C Library is distributed in the hope that it will be useful, 2162 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2163 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2164 // Lesser General Public License for more details. 2165 // 2166 // You should have received a copy of the GNU Lesser General Public 2167 // License along with the GNU C Library; if not, see 2168 // <https://www.gnu.org/licenses/>. 2169 2170 // Never include this file directly; use <sys/types.h> instead. 2171 2172 // Returned by `time'. 2173 type Time_t = X__time_t /* time_t.h:7:18 */ 2174 2175 // bits/types.h -- definitions of __*_t types underlying *_t types. 2176 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2177 // This file is part of the GNU C Library. 2178 // 2179 // The GNU C Library is free software; you can redistribute it and/or 2180 // modify it under the terms of the GNU Lesser General Public 2181 // License as published by the Free Software Foundation; either 2182 // version 2.1 of the License, or (at your option) any later version. 2183 // 2184 // The GNU C Library is distributed in the hope that it will be useful, 2185 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2186 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2187 // Lesser General Public License for more details. 2188 // 2189 // You should have received a copy of the GNU Lesser General Public 2190 // License along with the GNU C Library; if not, see 2191 // <https://www.gnu.org/licenses/>. 2192 2193 // Never include this file directly; use <sys/types.h> instead. 2194 2195 // A time value that is accurate to the nearest 2196 // 2197 // microsecond but also has a range of years. 2198 type Timeval = struct { 2199 Ftv_sec X__time_t 2200 Ftv_usec X__suseconds_t 2201 } /* struct_timeval.h:8:1 */ 2202 2203 type Suseconds_t = X__suseconds_t /* time.h:28:23 */ 2204 2205 // `fd_set' type and related macros, and `select'/`pselect' declarations. 2206 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 2207 // This file is part of the GNU C Library. 2208 // 2209 // The GNU C Library is free software; you can redistribute it and/or 2210 // modify it under the terms of the GNU Lesser General Public 2211 // License as published by the Free Software Foundation; either 2212 // version 2.1 of the License, or (at your option) any later version. 2213 // 2214 // The GNU C Library is distributed in the hope that it will be useful, 2215 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2216 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2217 // Lesser General Public License for more details. 2218 // 2219 // You should have received a copy of the GNU Lesser General Public 2220 // License along with the GNU C Library; if not, see 2221 // <https://www.gnu.org/licenses/>. 2222 2223 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 2224 2225 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2226 // This file is part of the GNU C Library. 2227 // 2228 // The GNU C Library is free software; you can redistribute it and/or 2229 // modify it under the terms of the GNU Lesser General Public 2230 // License as published by the Free Software Foundation; either 2231 // version 2.1 of the License, or (at your option) any later version. 2232 // 2233 // The GNU C Library is distributed in the hope that it will be useful, 2234 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2235 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2236 // Lesser General Public License for more details. 2237 // 2238 // You should have received a copy of the GNU Lesser General Public 2239 // License along with the GNU C Library; if not, see 2240 // <https://www.gnu.org/licenses/>. 2241 2242 // Get definition of needed basic types. 2243 // bits/types.h -- definitions of __*_t types underlying *_t types. 2244 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2245 // This file is part of the GNU C Library. 2246 // 2247 // The GNU C Library is free software; you can redistribute it and/or 2248 // modify it under the terms of the GNU Lesser General Public 2249 // License as published by the Free Software Foundation; either 2250 // version 2.1 of the License, or (at your option) any later version. 2251 // 2252 // The GNU C Library is distributed in the hope that it will be useful, 2253 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2254 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2255 // Lesser General Public License for more details. 2256 // 2257 // You should have received a copy of the GNU Lesser General Public 2258 // License along with the GNU C Library; if not, see 2259 // <https://www.gnu.org/licenses/>. 2260 2261 // Never include this file directly; use <sys/types.h> instead. 2262 2263 // Get __FD_* definitions. 2264 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 2265 // This file is part of the GNU C Library. 2266 // 2267 // The GNU C Library is free software; you can redistribute it and/or 2268 // modify it under the terms of the GNU Lesser General Public 2269 // License as published by the Free Software Foundation; either 2270 // version 2.1 of the License, or (at your option) any later version. 2271 // 2272 // The GNU C Library is distributed in the hope that it will be useful, 2273 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2274 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2275 // Lesser General Public License for more details. 2276 // 2277 // You should have received a copy of the GNU Lesser General Public 2278 // License along with the GNU C Library; if not, see 2279 // <https://www.gnu.org/licenses/>. 2280 2281 // We don't use `memset' because this would require a prototype and 2282 // the array isn't too big. 2283 2284 // Get sigset_t. 2285 2286 // Get definition of timer specification structures. 2287 // NB: Include guard matches what <linux/time.h> uses. 2288 2289 // The fd_set member is required to be an array of longs. 2290 type X__fd_mask = int64 /* select.h:49:18 */ 2291 2292 // Some versions of <linux/posix_types.h> define this macros. 2293 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 2294 2295 // fd_set for select and pselect. 2296 type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */ 2297 2298 // Maximum number of file descriptors in `fd_set'. 2299 2300 // Sometimes the fd_set member is assumed to have this type. 2301 type Fd_mask = X__fd_mask /* select.h:77:19 */ 2302 2303 // Define some inlines helping to catch common problems. 2304 2305 // Structure crudely representing a timezone. 2306 // 2307 // This is obsolete and should never be used. 2308 type Timezone = struct { 2309 Ftz_minuteswest int32 2310 Ftz_dsttime int32 2311 } /* time.h:52:1 */ 2312 2313 // Type of the second argument to `getitimer' and 2314 // 2315 // the second and third arguments `setitimer'. 2316 type Itimerval = struct { 2317 Fit_interval struct { 2318 Ftv_sec X__time_t 2319 Ftv_usec X__suseconds_t 2320 } 2321 Fit_value struct { 2322 Ftv_sec X__time_t 2323 Ftv_usec X__suseconds_t 2324 } 2325 } /* time.h:105:1 */ 2326 2327 type X__itimer_which_t = int32 /* time.h:118:13 */ 2328 2329 // Convenience macros for operations on timevals. 2330 // NOTE: `timercmp' does not work for >= or <=. 2331 2332 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2333 // This file is part of the GNU C Library. 2334 // 2335 // The GNU C Library is free software; you can redistribute it and/or 2336 // modify it under the terms of the GNU Lesser General Public 2337 // License as published by the Free Software Foundation; either 2338 // version 2.1 of the License, or (at your option) any later version. 2339 // 2340 // The GNU C Library is distributed in the hope that it will be useful, 2341 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2342 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2343 // Lesser General Public License for more details. 2344 // 2345 // You should have received a copy of the GNU Lesser General Public 2346 // License along with the GNU C Library; if not, see 2347 // <https://www.gnu.org/licenses/>. 2348 2349 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 2350 2351 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2352 // This file is part of the GNU C Library. 2353 // 2354 // The GNU C Library is free software; you can redistribute it and/or 2355 // modify it under the terms of the GNU Lesser General Public 2356 // License as published by the Free Software Foundation; either 2357 // version 2.1 of the License, or (at your option) any later version. 2358 // 2359 // The GNU C Library is distributed in the hope that it will be useful, 2360 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2361 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2362 // Lesser General Public License for more details. 2363 // 2364 // You should have received a copy of the GNU Lesser General Public 2365 // License along with the GNU C Library; if not, see 2366 // <https://www.gnu.org/licenses/>. 2367 2368 // bits/types.h -- definitions of __*_t types underlying *_t types. 2369 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2370 // This file is part of the GNU C Library. 2371 // 2372 // The GNU C Library is free software; you can redistribute it and/or 2373 // modify it under the terms of the GNU Lesser General Public 2374 // License as published by the Free Software Foundation; either 2375 // version 2.1 of the License, or (at your option) any later version. 2376 // 2377 // The GNU C Library is distributed in the hope that it will be useful, 2378 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2379 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2380 // Lesser General Public License for more details. 2381 // 2382 // You should have received a copy of the GNU Lesser General Public 2383 // License along with the GNU C Library; if not, see 2384 // <https://www.gnu.org/licenses/>. 2385 2386 // Never include this file directly; use <sys/types.h> instead. 2387 2388 type U_char = X__u_char /* types.h:33:18 */ 2389 type U_short = X__u_short /* types.h:34:19 */ 2390 type U_int = X__u_int /* types.h:35:17 */ 2391 type U_long = X__u_long /* types.h:36:18 */ 2392 type Quad_t = X__quad_t /* types.h:37:18 */ 2393 type U_quad_t = X__u_quad_t /* types.h:38:20 */ 2394 type Fsid_t = X__fsid_t /* types.h:39:18 */ 2395 type Loff_t = X__loff_t /* types.h:42:18 */ 2396 2397 type Ino_t = X__ino64_t /* types.h:49:19 */ 2398 2399 type Dev_t = X__dev_t /* types.h:59:17 */ 2400 2401 type Gid_t = X__gid_t /* types.h:64:17 */ 2402 2403 type Mode_t = X__mode_t /* types.h:69:18 */ 2404 2405 type Nlink_t = X__nlink_t /* types.h:74:19 */ 2406 2407 type Off_t = X__off64_t /* types.h:87:19 */ 2408 2409 type Id_t = X__id_t /* types.h:103:16 */ 2410 2411 type Ssize_t = X__ssize_t /* types.h:108:19 */ 2412 2413 type Daddr_t = X__daddr_t /* types.h:114:19 */ 2414 type Caddr_t = X__caddr_t /* types.h:115:19 */ 2415 2416 type Key_t = X__key_t /* types.h:121:17 */ 2417 2418 // bits/types.h -- definitions of __*_t types underlying *_t types. 2419 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2420 // This file is part of the GNU C Library. 2421 // 2422 // The GNU C Library is free software; you can redistribute it and/or 2423 // modify it under the terms of the GNU Lesser General Public 2424 // License as published by the Free Software Foundation; either 2425 // version 2.1 of the License, or (at your option) any later version. 2426 // 2427 // The GNU C Library is distributed in the hope that it will be useful, 2428 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2429 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2430 // Lesser General Public License for more details. 2431 // 2432 // You should have received a copy of the GNU Lesser General Public 2433 // License along with the GNU C Library; if not, see 2434 // <https://www.gnu.org/licenses/>. 2435 2436 // Never include this file directly; use <sys/types.h> instead. 2437 2438 // Returned by `clock'. 2439 type Clock_t = X__clock_t /* clock_t.h:7:19 */ 2440 2441 // bits/types.h -- definitions of __*_t types underlying *_t types. 2442 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2443 // This file is part of the GNU C Library. 2444 // 2445 // The GNU C Library is free software; you can redistribute it and/or 2446 // modify it under the terms of the GNU Lesser General Public 2447 // License as published by the Free Software Foundation; either 2448 // version 2.1 of the License, or (at your option) any later version. 2449 // 2450 // The GNU C Library is distributed in the hope that it will be useful, 2451 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2452 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2453 // Lesser General Public License for more details. 2454 // 2455 // You should have received a copy of the GNU Lesser General Public 2456 // License along with the GNU C Library; if not, see 2457 // <https://www.gnu.org/licenses/>. 2458 2459 // Never include this file directly; use <sys/types.h> instead. 2460 2461 // Clock ID used in clock and timer functions. 2462 type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */ 2463 2464 // bits/types.h -- definitions of __*_t types underlying *_t types. 2465 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2466 // This file is part of the GNU C Library. 2467 // 2468 // The GNU C Library is free software; you can redistribute it and/or 2469 // modify it under the terms of the GNU Lesser General Public 2470 // License as published by the Free Software Foundation; either 2471 // version 2.1 of the License, or (at your option) any later version. 2472 // 2473 // The GNU C Library is distributed in the hope that it will be useful, 2474 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2475 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2476 // Lesser General Public License for more details. 2477 // 2478 // You should have received a copy of the GNU Lesser General Public 2479 // License along with the GNU C Library; if not, see 2480 // <https://www.gnu.org/licenses/>. 2481 2482 // Never include this file directly; use <sys/types.h> instead. 2483 2484 // Timer ID returned by `timer_create'. 2485 type Timer_t = X__timer_t /* timer_t.h:7:19 */ 2486 2487 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 2488 // 2489 // This file is part of GCC. 2490 // 2491 // GCC is free software; you can redistribute it and/or modify 2492 // it under the terms of the GNU General Public License as published by 2493 // the Free Software Foundation; either version 3, or (at your option) 2494 // any later version. 2495 // 2496 // GCC is distributed in the hope that it will be useful, 2497 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2498 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2499 // GNU General Public License for more details. 2500 // 2501 // Under Section 7 of GPL version 3, you are granted additional 2502 // permissions described in the GCC Runtime Library Exception, version 2503 // 3.1, as published by the Free Software Foundation. 2504 // 2505 // You should have received a copy of the GNU General Public License and 2506 // a copy of the GCC Runtime Library Exception along with this program; 2507 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 2508 // <http://www.gnu.org/licenses/>. 2509 2510 // ISO C Standard: 7.17 Common definitions <stddef.h> 2511 2512 // Any one of these symbols __need_* means that GNU libc 2513 // wants us just to define one data type. So don't define 2514 // the symbols that indicate this file's entire job has been done. 2515 2516 // This avoids lossage on SunOS but only if stdtypes.h comes first. 2517 // There's no way to win with the other order! Sun lossage. 2518 2519 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 2520 // Just ignore it. 2521 2522 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 2523 // _TYPE_size_t which will typedef size_t. fixincludes patched the 2524 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 2525 // not defined, and so that defining this macro defines _GCC_SIZE_T. 2526 // If we find that the macros are still defined at this point, we must 2527 // invoke them so that the type is defined as expected. 2528 2529 // In case nobody has defined these types, but we aren't running under 2530 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 2531 // __WCHAR_TYPE__ have reasonable values. This can happen if the 2532 // parts of GCC is compiled by an older compiler, that actually 2533 // include gstddef.h, such as collect2. 2534 2535 // Signed type of difference of two pointers. 2536 2537 // Define this type if we are doing the whole job, 2538 // or if we want this type in particular. 2539 2540 // Unsigned type of `sizeof' something. 2541 2542 // Define this type if we are doing the whole job, 2543 // or if we want this type in particular. 2544 2545 // Wide character type. 2546 // Locale-writers should change this as necessary to 2547 // be big enough to hold unique values not between 0 and 127, 2548 // and not (wchar_t) -1, for each defined multibyte character. 2549 2550 // Define this type if we are doing the whole job, 2551 // or if we want this type in particular. 2552 2553 // A null pointer constant. 2554 2555 // Old compatibility names for C types. 2556 type Ulong = uint64 /* types.h:148:27 */ 2557 type Ushort = uint16 /* types.h:149:28 */ 2558 type Uint = uint32 /* types.h:150:22 */ 2559 2560 // These size-specific names are used by some of the inet code. 2561 2562 // Define intN_t types. 2563 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2564 // This file is part of the GNU C Library. 2565 // 2566 // The GNU C Library is free software; you can redistribute it and/or 2567 // modify it under the terms of the GNU Lesser General Public 2568 // License as published by the Free Software Foundation; either 2569 // version 2.1 of the License, or (at your option) any later version. 2570 // 2571 // The GNU C Library is distributed in the hope that it will be useful, 2572 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2573 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2574 // Lesser General Public License for more details. 2575 // 2576 // You should have received a copy of the GNU Lesser General Public 2577 // License along with the GNU C Library; if not, see 2578 // <https://www.gnu.org/licenses/>. 2579 2580 // bits/types.h -- definitions of __*_t types underlying *_t types. 2581 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2582 // This file is part of the GNU C Library. 2583 // 2584 // The GNU C Library is free software; you can redistribute it and/or 2585 // modify it under the terms of the GNU Lesser General Public 2586 // License as published by the Free Software Foundation; either 2587 // version 2.1 of the License, or (at your option) any later version. 2588 // 2589 // The GNU C Library is distributed in the hope that it will be useful, 2590 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2591 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2592 // Lesser General Public License for more details. 2593 // 2594 // You should have received a copy of the GNU Lesser General Public 2595 // License along with the GNU C Library; if not, see 2596 // <https://www.gnu.org/licenses/>. 2597 2598 // Never include this file directly; use <sys/types.h> instead. 2599 2600 type Int8_t = X__int8_t /* stdint-intn.h:24:18 */ 2601 type Int16_t = X__int16_t /* stdint-intn.h:25:19 */ 2602 type Int32_t = X__int32_t /* stdint-intn.h:26:19 */ 2603 type Int64_t = X__int64_t /* stdint-intn.h:27:19 */ 2604 2605 // These were defined by ISO C without the first `_'. 2606 type U_int8_t = X__uint8_t /* types.h:158:19 */ 2607 type U_int16_t = X__uint16_t /* types.h:159:20 */ 2608 type U_int32_t = X__uint32_t /* types.h:160:20 */ 2609 type U_int64_t = X__uint64_t /* types.h:161:20 */ 2610 2611 type Register_t = int32 /* types.h:164:13 */ 2612 2613 // It also defines `fd_set' and the FD_* macros for `select'. 2614 // `fd_set' type and related macros, and `select'/`pselect' declarations. 2615 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 2616 // This file is part of the GNU C Library. 2617 // 2618 // The GNU C Library is free software; you can redistribute it and/or 2619 // modify it under the terms of the GNU Lesser General Public 2620 // License as published by the Free Software Foundation; either 2621 // version 2.1 of the License, or (at your option) any later version. 2622 // 2623 // The GNU C Library is distributed in the hope that it will be useful, 2624 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2625 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2626 // Lesser General Public License for more details. 2627 // 2628 // You should have received a copy of the GNU Lesser General Public 2629 // License along with the GNU C Library; if not, see 2630 // <https://www.gnu.org/licenses/>. 2631 2632 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 2633 2634 type Blksize_t = X__blksize_t /* types.h:185:21 */ 2635 2636 // Types from the Large File Support interface. 2637 type Blkcnt_t = X__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 2638 type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 2639 type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 2640 2641 // Now add the thread types. 2642 // Declaration of common pthread types for all architectures. 2643 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2644 // This file is part of the GNU C Library. 2645 // 2646 // The GNU C Library is free software; you can redistribute it and/or 2647 // modify it under the terms of the GNU Lesser General Public 2648 // License as published by the Free Software Foundation; either 2649 // version 2.1 of the License, or (at your option) any later version. 2650 // 2651 // The GNU C Library is distributed in the hope that it will be useful, 2652 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2653 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2654 // Lesser General Public License for more details. 2655 // 2656 // You should have received a copy of the GNU Lesser General Public 2657 // License along with the GNU C Library; if not, see 2658 // <https://www.gnu.org/licenses/>. 2659 2660 // For internal mutex and condition variable definitions. 2661 // Common threading primitives definitions for both POSIX and C11. 2662 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2663 // This file is part of the GNU C Library. 2664 // 2665 // The GNU C Library is free software; you can redistribute it and/or 2666 // modify it under the terms of the GNU Lesser General Public 2667 // License as published by the Free Software Foundation; either 2668 // version 2.1 of the License, or (at your option) any later version. 2669 // 2670 // The GNU C Library is distributed in the hope that it will be useful, 2671 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2672 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2673 // Lesser General Public License for more details. 2674 // 2675 // You should have received a copy of the GNU Lesser General Public 2676 // License along with the GNU C Library; if not, see 2677 // <https://www.gnu.org/licenses/>. 2678 2679 // Arch-specific definitions. Each architecture must define the following 2680 // macros to define the expected sizes of pthread data types: 2681 // 2682 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 2683 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 2684 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 2685 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 2686 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 2687 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 2688 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 2689 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 2690 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 2691 // 2692 // The additional macro defines any constraint for the lock alignment 2693 // inside the thread structures: 2694 // 2695 // __LOCK_ALIGNMENT - for internal lock/futex usage. 2696 // 2697 // Same idea but for the once locking primitive: 2698 // 2699 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 2700 2701 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2702 // 2703 // This file is part of the GNU C Library. 2704 // 2705 // The GNU C Library is free software; you can redistribute it and/or 2706 // modify it under the terms of the GNU Lesser General Public 2707 // License as published by the Free Software Foundation; either 2708 // version 2.1 of the License, or (at your option) any later version. 2709 // 2710 // The GNU C Library is distributed in the hope that it will be useful, 2711 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2712 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2713 // Lesser General Public License for more details. 2714 // 2715 // You should have received a copy of the GNU Lesser General Public 2716 // License along with the GNU C Library; if not, see 2717 // <https://www.gnu.org/licenses/>. 2718 2719 // Endian macros for string.h functions 2720 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 2721 // This file is part of the GNU C Library. 2722 // 2723 // The GNU C Library is free software; you can redistribute it and/or 2724 // modify it under the terms of the GNU Lesser General Public 2725 // License as published by the Free Software Foundation; either 2726 // version 2.1 of the License, or (at your option) any later version. 2727 // 2728 // The GNU C Library is distributed in the hope that it will be useful, 2729 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2730 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2731 // Lesser General Public License for more details. 2732 // 2733 // You should have received a copy of the GNU Lesser General Public 2734 // License along with the GNU C Library; if not, see 2735 // <http://www.gnu.org/licenses/>. 2736 2737 // Common definition of pthread_mutex_t. 2738 2739 type X__pthread_internal_list = struct { 2740 F__prev uintptr 2741 F__next uintptr 2742 } /* thread-shared-types.h:49:9 */ 2743 2744 // Type to count file system inodes. 2745 2746 // Now add the thread types. 2747 // Declaration of common pthread types for all architectures. 2748 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2749 // This file is part of the GNU C Library. 2750 // 2751 // The GNU C Library is free software; you can redistribute it and/or 2752 // modify it under the terms of the GNU Lesser General Public 2753 // License as published by the Free Software Foundation; either 2754 // version 2.1 of the License, or (at your option) any later version. 2755 // 2756 // The GNU C Library is distributed in the hope that it will be useful, 2757 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2758 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2759 // Lesser General Public License for more details. 2760 // 2761 // You should have received a copy of the GNU Lesser General Public 2762 // License along with the GNU C Library; if not, see 2763 // <https://www.gnu.org/licenses/>. 2764 2765 // For internal mutex and condition variable definitions. 2766 // Common threading primitives definitions for both POSIX and C11. 2767 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2768 // This file is part of the GNU C Library. 2769 // 2770 // The GNU C Library is free software; you can redistribute it and/or 2771 // modify it under the terms of the GNU Lesser General Public 2772 // License as published by the Free Software Foundation; either 2773 // version 2.1 of the License, or (at your option) any later version. 2774 // 2775 // The GNU C Library is distributed in the hope that it will be useful, 2776 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2777 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2778 // Lesser General Public License for more details. 2779 // 2780 // You should have received a copy of the GNU Lesser General Public 2781 // License along with the GNU C Library; if not, see 2782 // <https://www.gnu.org/licenses/>. 2783 2784 // Arch-specific definitions. Each architecture must define the following 2785 // macros to define the expected sizes of pthread data types: 2786 // 2787 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 2788 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 2789 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 2790 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 2791 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 2792 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 2793 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 2794 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 2795 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 2796 // 2797 // The additional macro defines any constraint for the lock alignment 2798 // inside the thread structures: 2799 // 2800 // __LOCK_ALIGNMENT - for internal lock/futex usage. 2801 // 2802 // Same idea but for the once locking primitive: 2803 // 2804 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 2805 2806 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2807 // 2808 // This file is part of the GNU C Library. 2809 // 2810 // The GNU C Library is free software; you can redistribute it and/or 2811 // modify it under the terms of the GNU Lesser General Public 2812 // License as published by the Free Software Foundation; either 2813 // version 2.1 of the License, or (at your option) any later version. 2814 // 2815 // The GNU C Library is distributed in the hope that it will be useful, 2816 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2817 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2818 // Lesser General Public License for more details. 2819 // 2820 // You should have received a copy of the GNU Lesser General Public 2821 // License along with the GNU C Library; if not, see 2822 // <https://www.gnu.org/licenses/>. 2823 2824 // Endian macros for string.h functions 2825 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 2826 // This file is part of the GNU C Library. 2827 // 2828 // The GNU C Library is free software; you can redistribute it and/or 2829 // modify it under the terms of the GNU Lesser General Public 2830 // License as published by the Free Software Foundation; either 2831 // version 2.1 of the License, or (at your option) any later version. 2832 // 2833 // The GNU C Library is distributed in the hope that it will be useful, 2834 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2835 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2836 // Lesser General Public License for more details. 2837 // 2838 // You should have received a copy of the GNU Lesser General Public 2839 // License along with the GNU C Library; if not, see 2840 // <http://www.gnu.org/licenses/>. 2841 2842 // Common definition of pthread_mutex_t. 2843 2844 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ 2845 2846 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ 2847 2848 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ 2849 2850 // Arch-specific mutex definitions. A generic implementation is provided 2851 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 2852 // can override it by defining: 2853 // 2854 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 2855 // definition). It should contains at least the internal members 2856 // defined in the generic version. 2857 // 2858 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 2859 // atomic operations. 2860 // 2861 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 2862 // It should initialize the mutex internal flag. 2863 2864 // Default mutex implementation struct definitions. 2865 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2866 // This file is part of the GNU C Library. 2867 // 2868 // The GNU C Library is free software; you can redistribute it and/or 2869 // modify it under the terms of the GNU Lesser General Public 2870 // License as published by the Free Software Foundation; either 2871 // version 2.1 of the License, or (at your option) any later version. 2872 // 2873 // The GNU C Library is distributed in the hope that it will be useful, 2874 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2875 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2876 // Lesser General Public License for more details. 2877 // 2878 // You should have received a copy of the GNU Lesser General Public 2879 // License along with the GNU C Library; if not, see 2880 // <http://www.gnu.org/licenses/>. 2881 2882 // Generic struct for both POSIX and C11 mutexes. New ports are expected 2883 // to use the default layout, however architecture can redefine it to 2884 // add arch-specific extension (such as lock-elision). The struct have 2885 // a size of 32 bytes on LP32 and 40 bytes on LP64 architectures. 2886 2887 type X__pthread_mutex_s = struct { 2888 F__lock int32 2889 F__count uint32 2890 F__owner int32 2891 F__nusers uint32 2892 F__kind int32 2893 F__spins int32 2894 F__list X__pthread_list_t 2895 } /* struct_mutex.h:27:1 */ 2896 2897 // Arch-sepecific read-write lock definitions. A generic implementation is 2898 // provided by struct_rwlock.h. If required, an architecture can override it 2899 // by defining: 2900 // 2901 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 2902 // It should contain at least the internal members defined in the 2903 // generic version. 2904 // 2905 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 2906 // It should initialize the rwlock internal type. 2907 2908 // AArch64 internal rwlock struct definitions. 2909 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2910 // 2911 // This file is part of the GNU C Library. 2912 // 2913 // The GNU C Library is free software; you can redistribute it and/or 2914 // modify it under the terms of the GNU Lesser General Public 2915 // License as published by the Free Software Foundation; either 2916 // version 2.1 of the License, or (at your option) any later version. 2917 // 2918 // The GNU C Library is distributed in the hope that it will be useful, 2919 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2920 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2921 // Lesser General Public License for more details. 2922 // 2923 // You should have received a copy of the GNU Lesser General Public 2924 // License along with the GNU C Library; if not, see 2925 // <http://www.gnu.org/licenses/>. 2926 2927 type X__pthread_rwlock_arch_t = struct { 2928 F__readers uint32 2929 F__writers uint32 2930 F__wrphase_futex uint32 2931 F__writers_futex uint32 2932 F__pad3 uint32 2933 F__pad4 uint32 2934 F__cur_writer int32 2935 F__shared int32 2936 F__pad1 uint64 2937 F__pad2 uint64 2938 F__flags uint32 2939 F__ccgo_pad1 [4]byte 2940 } /* struct_rwlock.h:23:1 */ 2941 2942 // Common definition of pthread_cond_t. 2943 2944 type X__pthread_cond_s = struct { 2945 F__0 struct{ F__wseq uint64 } 2946 F__8 struct{ F__g1_start uint64 } 2947 F__g_refs [2]uint32 2948 F__g_size [2]uint32 2949 F__g1_orig_size uint32 2950 F__wrefs uint32 2951 F__g_signals [2]uint32 2952 } /* thread-shared-types.h:92:1 */ 2953 2954 // Thread identifiers. The structure of the attribute type is not 2955 // 2956 // exposed on purpose. 2957 type Pthread_t = uint64 /* pthreadtypes.h:27:27 */ 2958 2959 // Data structures for mutex handling. The structure of the attribute 2960 // 2961 // type is not exposed on purpose. 2962 type Pthread_mutexattr_t = struct { 2963 F__ccgo_pad1 [0]uint32 2964 F__size [8]uint8 2965 } /* pthreadtypes.h:36:3 */ 2966 2967 // Data structure for condition variable handling. The structure of 2968 // 2969 // the attribute type is not exposed on purpose. 2970 type Pthread_condattr_t = struct { 2971 F__ccgo_pad1 [0]uint32 2972 F__size [8]uint8 2973 } /* pthreadtypes.h:45:3 */ 2974 2975 // Keys for thread-specific data 2976 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 2977 2978 // Once-only execution 2979 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 2980 2981 type Pthread_mutex_t = struct { 2982 F__data X__pthread_mutex_s 2983 F__ccgo_pad1 [8]byte 2984 } /* pthreadtypes.h:72:3 */ 2985 2986 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */ 2987 2988 // Data structure for reader-writer lock variable handling. The 2989 // 2990 // structure of the attribute type is deliberately not exposed. 2991 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 2992 2993 type Pthread_rwlockattr_t = struct { 2994 F__ccgo_pad1 [0]uint64 2995 F__size [8]uint8 2996 } /* pthreadtypes.h:97:3 */ 2997 2998 // POSIX spinlock data type. 2999 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 3000 3001 // POSIX barriers data type. The structure of the type is 3002 // 3003 // deliberately not exposed. 3004 type Pthread_barrier_t = struct { 3005 F__ccgo_pad1 [0]uint64 3006 F__size [32]uint8 3007 } /* pthreadtypes.h:112:3 */ 3008 3009 type Pthread_barrierattr_t = struct { 3010 F__ccgo_pad1 [0]uint32 3011 F__size [8]uint8 3012 } /* pthreadtypes.h:118:3 */ 3013 3014 // Copyright (C) 2009-2020 Free Software Foundation, Inc. 3015 // 3016 // This file is part of the GNU C Library. 3017 // 3018 // The GNU C Library is free software; you can redistribute it and/or 3019 // modify it under the terms of the GNU Lesser General Public License as 3020 // published by the Free Software Foundation; either version 2.1 of the 3021 // License, or (at your option) any later version. 3022 // 3023 // The GNU C Library is distributed in the hope that it will be useful, 3024 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3025 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3026 // Lesser General Public License for more details. 3027 // 3028 // You should have received a copy of the GNU Lesser General Public 3029 // License along with the GNU C Library; if not, see 3030 // <https://www.gnu.org/licenses/>. 3031 3032 type User_regs_struct = struct { 3033 Fregs [31]uint64 3034 Fsp uint64 3035 Fpc uint64 3036 Fpstate uint64 3037 } /* user.h:22:1 */ 3038 3039 type User_fpsimd_struct = struct { 3040 Fvregs [32]X__uint128_t 3041 Ffpsr uint32 3042 Ffpcr uint32 3043 } /* user.h:30:1 */ 3044 3045 // bits/procfs.h, provided by each architecture, must define 3046 // elf_gregset_t, elf_fpregset_t and any other architecture-specific 3047 // types needed. 3048 // Types for registers for sys/procfs.h. AArch64 version. 3049 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 3050 // 3051 // This file is part of the GNU C Library. 3052 // 3053 // The GNU C Library is free software; you can redistribute it and/or 3054 // modify it under the terms of the GNU Lesser General Public 3055 // License as published by the Free Software Foundation; either 3056 // version 2.1 of the License, or (at your option) any later version. 3057 // 3058 // The GNU C Library is distributed in the hope that it will be useful, 3059 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3060 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3061 // Lesser General Public License for more details. 3062 // 3063 // You should have received a copy of the GNU Lesser General Public 3064 // License along with the GNU C Library; if not, see 3065 // <https://www.gnu.org/licenses/>. 3066 3067 // Type for a general-purpose register. 3068 type Elf_greg_t = X__uint64_t /* procfs.h:25:20 */ 3069 3070 // And the whole bunch of them. We could have used `struct 3071 // 3072 // pt_regs' directly in the typedef, but tradition says that 3073 // the register set is an array, which does have some peculiar 3074 // semantics, so leave it that way. 3075 type Elf_gregset_t = [34]Elf_greg_t /* procfs.h:32:20 */ 3076 3077 // Register set for the floating-point registers. 3078 type Elf_fpregset_t = User_fpsimd_struct /* procfs.h:35:35 */ 3079 3080 // bits/procfs-id.h must define __pr_uid_t and __pr_gid_t, the types 3081 // of pr_uid and pr_gid. 3082 // Types of pr_uid and pr_gid in struct elf_prpsinfo. Generic Linux version. 3083 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 3084 // 3085 // This file is part of the GNU C Library. 3086 // 3087 // The GNU C Library is free software; you can redistribute it and/or 3088 // modify it under the terms of the GNU Lesser General Public 3089 // License as published by the Free Software Foundation; either 3090 // version 2.1 of the License, or (at your option) any later version. 3091 // 3092 // The GNU C Library is distributed in the hope that it will be useful, 3093 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3094 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3095 // Lesser General Public License for more details. 3096 // 3097 // You should have received a copy of the GNU Lesser General Public 3098 // License along with the GNU C Library; if not, see 3099 // <https://www.gnu.org/licenses/>. 3100 3101 type X__pr_uid_t = uint32 /* procfs-id.h:24:22 */ 3102 type X__pr_gid_t = uint32 /* procfs-id.h:25:22 */ 3103 3104 // Signal info. 3105 type Elf_siginfo = struct { 3106 Fsi_signo int32 3107 Fsi_code int32 3108 Fsi_errno int32 3109 } /* procfs.h:49:1 */ 3110 3111 // Definitions to generate Intel SVR4-like core files. These mostly 3112 // have the same names as the SVR4 types with "elf_" tacked on the 3113 // front to prevent clashes with Linux definitions, and the typedef 3114 // forms have been avoided. This is mostly like the SVR4 structure, 3115 // but more Linuxy, with things that Linux does not support and which 3116 // GDB doesn't really use excluded. 3117 3118 type Elf_prstatus = struct { 3119 Fpr_info struct { 3120 Fsi_signo int32 3121 Fsi_code int32 3122 Fsi_errno int32 3123 } 3124 Fpr_cursig int16 3125 F__ccgo_pad1 [2]byte 3126 Fpr_sigpend uint64 3127 Fpr_sighold uint64 3128 Fpr_pid X__pid_t 3129 Fpr_ppid X__pid_t 3130 Fpr_pgrp X__pid_t 3131 Fpr_sid X__pid_t 3132 Fpr_utime struct { 3133 Ftv_sec X__time_t 3134 Ftv_usec X__suseconds_t 3135 } 3136 Fpr_stime struct { 3137 Ftv_sec X__time_t 3138 Ftv_usec X__suseconds_t 3139 } 3140 Fpr_cutime struct { 3141 Ftv_sec X__time_t 3142 Ftv_usec X__suseconds_t 3143 } 3144 Fpr_cstime struct { 3145 Ftv_sec X__time_t 3146 Ftv_usec X__suseconds_t 3147 } 3148 Fpr_reg Elf_gregset_t 3149 Fpr_fpvalid int32 3150 F__ccgo_pad2 [4]byte 3151 } /* procfs.h:63:1 */ 3152 3153 type Elf_prpsinfo = struct { 3154 Fpr_state uint8 3155 Fpr_sname uint8 3156 Fpr_zomb uint8 3157 Fpr_nice uint8 3158 F__ccgo_pad1 [4]byte 3159 Fpr_flag uint64 3160 Fpr_uid X__pr_uid_t 3161 Fpr_gid X__pr_gid_t 3162 Fpr_pid int32 3163 Fpr_ppid int32 3164 Fpr_pgrp int32 3165 Fpr_sid int32 3166 Fpr_fname [16]uint8 3167 Fpr_psargs [80]uint8 3168 } /* procfs.h:84:1 */ 3169 3170 // The rest of this file provides the types for emulation of the 3171 // Solaris <proc_service.h> interfaces that should be implemented by 3172 // users of libthread_db. 3173 3174 // Addresses. 3175 type Psaddr_t = uintptr /* procfs.h:104:14 */ 3176 3177 // Types of prgregset_t and prfpregset_t. Generic Linux version. 3178 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 3179 // 3180 // This file is part of the GNU C Library. 3181 // 3182 // The GNU C Library is free software; you can redistribute it and/or 3183 // modify it under the terms of the GNU Lesser General Public 3184 // License as published by the Free Software Foundation; either 3185 // version 2.1 of the License, or (at your option) any later version. 3186 // 3187 // The GNU C Library is distributed in the hope that it will be useful, 3188 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3189 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3190 // Lesser General Public License for more details. 3191 // 3192 // You should have received a copy of the GNU Lesser General Public 3193 // License along with the GNU C Library; if not, see 3194 // <https://www.gnu.org/licenses/>. 3195 3196 type X__prgregset_t = Elf_gregset_t /* procfs-prregset.h:24:23 */ 3197 type X__prfpregset_t = Elf_fpregset_t /* procfs-prregset.h:25:24 */ 3198 3199 // Register sets. Linux has different names. 3200 type Prgregset_t = X__prgregset_t /* procfs.h:109:23 */ 3201 type Prfpregset_t = X__prfpregset_t /* procfs.h:110:24 */ 3202 3203 // We don't have any differences between processes and threads, 3204 // 3205 // therefore have only one PID type. 3206 type Lwpid_t = X__pid_t /* procfs.h:114:17 */ 3207 3208 // Process status and info. In the end we do provide typedefs for them. 3209 type Prstatus_t = Elf_prstatus /* procfs.h:117:29 */ 3210 type Prpsinfo_t = Elf_prpsinfo /* procfs.h:118:29 */ 3211 3212 // On some architectures, provide other-ABI variants of the above 3213 // types. 3214 // Extra sys/procfs.h definitions. Generic Linux version. 3215 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 3216 // 3217 // This file is part of the GNU C Library. 3218 // 3219 // The GNU C Library is free software; you can redistribute it and/or 3220 // modify it under the terms of the GNU Lesser General Public 3221 // License as published by the Free Software Foundation; either 3222 // version 2.1 of the License, or (at your option) any later version. 3223 // 3224 // The GNU C Library is distributed in the hope that it will be useful, 3225 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3226 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3227 // Lesser General Public License for more details. 3228 // 3229 // You should have received a copy of the GNU Lesser General Public 3230 // License along with the GNU C Library; if not, see 3231 // <https://www.gnu.org/licenses/>. 3232 3233 type Greg_t = Elf_greg_t /* ucontext.h:39:20 */ 3234 3235 // Container for all general registers. 3236 type Gregset_t = Elf_gregset_t /* ucontext.h:42:23 */ 3237 3238 // Structure to describe FPU registers. 3239 type Fpregset_t = Elf_fpregset_t /* ucontext.h:45:24 */ 3240 3241 // Context to describe whole processor state. This only describes 3242 // 3243 // the core registers; coprocessor registers get saved elsewhere 3244 // (e.g. in uc_regspace, or somewhere unspecified on the stack 3245 // during non-RT signal handlers). 3246 type Mcontext_t = struct { 3247 Ffault_address uint64 3248 Fregs [31]uint64 3249 Fsp uint64 3250 Fpc uint64 3251 Fpstate uint64 3252 F__reserved [4096]uint8 3253 } /* ucontext.h:64:5 */ 3254 3255 // Userlevel context. 3256 type Ucontext_t1 = struct { 3257 Fuc_flags uint64 3258 Fuc_link uintptr 3259 Fuc_stack Stack_t 3260 Fuc_sigmask Sigset_t 3261 Fuc_mcontext Mcontext_t 3262 } /* ucontext.h:67:9 */ 3263 3264 // Userlevel context. 3265 type Ucontext_t = Ucontext_t1 /* ucontext.h:74:5 */ 3266 3267 // Define struct sigstack. 3268 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 3269 // This file is part of the GNU C Library. 3270 // 3271 // The GNU C Library is free software; you can redistribute it and/or 3272 // modify it under the terms of the GNU Lesser General Public 3273 // License as published by the Free Software Foundation; either 3274 // version 2.1 of the License, or (at your option) any later version. 3275 // 3276 // The GNU C Library is distributed in the hope that it will be useful, 3277 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3278 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3279 // Lesser General Public License for more details. 3280 // 3281 // You should have received a copy of the GNU Lesser General Public 3282 // License along with the GNU C Library; if not, see 3283 // <https://www.gnu.org/licenses/>. 3284 3285 // Structure describing a signal stack (obsolete). 3286 type Sigstack = struct { 3287 Fss_sp uintptr 3288 Fss_onstack int32 3289 F__ccgo_pad1 [4]byte 3290 } /* struct_sigstack.h:23:1 */ 3291 3292 // System-specific extensions. 3293 // System-specific extensions of <signal.h>, Linux version. 3294 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 3295 // This file is part of the GNU C Library. 3296 // 3297 // The GNU C Library is free software; you can redistribute it and/or 3298 // modify it under the terms of the GNU Lesser General Public 3299 // License as published by the Free Software Foundation; either 3300 // version 2.1 of the License, or (at your option) any later version. 3301 // 3302 // The GNU C Library is distributed in the hope that it will be useful, 3303 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3304 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3305 // Lesser General Public License for more details. 3306 // 3307 // You should have received a copy of the GNU Lesser General Public 3308 // License along with the GNU C Library; if not, see 3309 // <https://www.gnu.org/licenses/>. 3310 3311 var _ uint8 /* gen.c:2:13: */