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