diff options
Diffstat (limited to 'vendor/modernc.org/libc/signal/signal_linux_amd64.go')
-rw-r--r-- | vendor/modernc.org/libc/signal/signal_linux_amd64.go | 774 |
1 files changed, 499 insertions, 275 deletions
diff --git a/vendor/modernc.org/libc/signal/signal_linux_amd64.go b/vendor/modernc.org/libc/signal/signal_linux_amd64.go index f52f5b08c..0212ae926 100644 --- a/vendor/modernc.org/libc/signal/signal_linux_amd64.go +++ b/vendor/modernc.org/libc/signal/signal_linux_amd64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo signal/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_linux_amd64.go -pkgname signal', DO NOT EDIT. +// Code generated by 'ccgo signal/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_linux_amd64.go -pkgname signal', DO NOT EDIT. package signal @@ -70,6 +70,8 @@ const ( SIG_SETMASK = 2 SIG_UNBLOCK = 1 X_ATFILE_SOURCE = 1 + X_BITS_ENDIANNESS_H = 1 + X_BITS_ENDIAN_H = 1 X_BITS_PTHREADTYPES_ARCH_H = 1 X_BITS_PTHREADTYPES_COMMON_H = 1 X_BITS_SIGACTION_H = 1 @@ -82,6 +84,7 @@ const ( X_BITS_SIGSTACK_H = 1 X_BITS_SIGTHREAD_H = 1 X_BITS_SS_FLAGS_H = 1 + X_BITS_TIME64_H = 1 X_BITS_TYPESIZES_H = 1 X_BITS_TYPES_H = 1 X_BSD_SIZE_T_ = 0 @@ -94,6 +97,7 @@ const ( X_NSIG = 65 X_POSIX_C_SOURCE = 200809 X_POSIX_SOURCE = 1 + X_RWLOCK_INTERNAL_H = 0 X_SIGNAL_H = 0 X_SIZET_ = 0 X_SIZE_T = 0 @@ -106,6 +110,7 @@ const ( X_SYS_CDEFS_H = 1 X_SYS_SIZE_T_H = 0 X_SYS_UCONTEXT_H = 1 + X_THREAD_MUTEX_INTERNAL_H = 1 X_THREAD_SHARED_TYPES_H = 1 X_T_SIZE = 0 X_T_SIZE_ = 0 @@ -116,7 +121,7 @@ const ( // POSIX names to access some of the members. // sigevent constants. Linux version. -// Copyright (C) 1997-2018 Free Software Foundation, Inc. +// Copyright (C) 1997-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -131,7 +136,7 @@ const ( // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // `sigev_notify' values. const ( /* sigevent-consts.h:27:1: */ @@ -143,15 +148,18 @@ const ( /* sigevent-consts.h:27:1: */ ) // `si_code' values for SIGSEGV signal. -const ( /* siginfo-consts.h:110:1: */ - SEGV_MAPERR = 1 // Address not mapped to object. - SEGV_ACCERR = 2 // Invalid permissions for mapped object. - SEGV_BNDERR = 3 // Bounds checking failure. - SEGV_PKUERR = 4 +const ( /* siginfo-consts.h:119:1: */ + SEGV_MAPERR = 1 // Address not mapped to object. + SEGV_ACCERR = 2 // Invalid permissions for mapped object. + SEGV_BNDERR = 3 // Bounds checking failure. + SEGV_PKUERR = 4 // Protection key checking failure. + SEGV_ACCADI = 5 // ADI not enabled for mapped object. + SEGV_ADIDERR = 6 // Disrupting MCD error. + SEGV_ADIPERR = 7 ) // `si_code' values for SIGBUS signal. -const ( /* siginfo-consts.h:123:1: */ +const ( /* siginfo-consts.h:138:1: */ BUS_ADRALN = 1 // Invalid address alignment. BUS_ADRERR = 2 // Non-existant physical address. BUS_OBJERR = 3 // Object specific hardware error. @@ -160,7 +168,7 @@ const ( /* siginfo-consts.h:123:1: */ ) // `si_code' values for SIGCHLD signal. -const ( /* siginfo-consts.h:151:1: */ +const ( /* siginfo-consts.h:172:1: */ CLD_EXITED = 1 // Child has exited. CLD_KILLED = 2 // Child was killed. CLD_DUMPED = 3 // Child terminated abnormally. @@ -170,7 +178,7 @@ const ( /* siginfo-consts.h:151:1: */ ) // `si_code' values for SIGPOLL signal. -const ( /* siginfo-consts.h:168:1: */ +const ( /* siginfo-consts.h:189:1: */ POLL_IN = 1 // Data input available. POLL_OUT = 2 // Output buffers available. POLL_MSG = 3 // Input message available. @@ -182,7 +190,7 @@ const ( /* siginfo-consts.h:168:1: */ // X/Open requires some more fields with fixed names. // siginfo constants. Linux version. -// Copyright (C) 1997-2018 Free Software Foundation, Inc. +// Copyright (C) 1997-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -197,7 +205,7 @@ const ( /* siginfo-consts.h:168:1: */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Most of these constants are uniform across all architectures, but there // is one exception. @@ -206,43 +214,48 @@ const ( /* siginfo-consts.h:168:1: */ // Values for `si_code'. Positive values are reserved for kernel-generated // signals. const ( /* siginfo-consts.h:35:1: */ - SI_ASYNCNL = -60 // Sent by asynch name lookup completion. - SI_TKILL = -6 // Sent by tkill. - SI_SIGIO = -5 // Sent by queued SIGIO. - SI_ASYNCIO = -4 // Sent by AIO completion. - SI_MESGQ = -3 // Sent by real time mesq state change. - SI_TIMER = -2 // Sent by timer expiration. - SI_QUEUE = -1 // Sent by sigqueue. - SI_USER = 0 // Sent by kill, sigsend. + SI_ASYNCNL = -60 // Sent by asynch name lookup completion. + SI_DETHREAD = -7 // Sent by execve killing subsidiary + // threads. + SI_TKILL = -6 // Sent by tkill. + SI_SIGIO = -5 // Sent by queued SIGIO. + SI_ASYNCIO = -4 // Sent by AIO completion. + SI_MESGQ = -3 // Sent by real time mesq state change. + SI_TIMER = -2 // Sent by timer expiration. + SI_QUEUE = -1 // Sent by sigqueue. + SI_USER = 0 // Sent by kill, sigsend. SI_KERNEL = 128 ) // `si_code' values for SIGILL signal. -const ( /* siginfo-consts.h:68:1: */ - ILL_ILLOPC = 1 // Illegal opcode. - ILL_ILLOPN = 2 // Illegal operand. - ILL_ILLADR = 3 // Illegal addressing mode. - ILL_ILLTRP = 4 // Illegal trap. - ILL_PRVOPC = 5 // Privileged opcode. - ILL_PRVREG = 6 // Privileged register. - ILL_COPROC = 7 // Coprocessor error. - ILL_BADSTK = 8 +const ( /* siginfo-consts.h:71:1: */ + ILL_ILLOPC = 1 // Illegal opcode. + ILL_ILLOPN = 2 // Illegal operand. + ILL_ILLADR = 3 // Illegal addressing mode. + ILL_ILLTRP = 4 // Illegal trap. + ILL_PRVOPC = 5 // Privileged opcode. + ILL_PRVREG = 6 // Privileged register. + ILL_COPROC = 7 // Coprocessor error. + ILL_BADSTK = 8 // Internal stack error. + ILL_BADIADDR = 9 ) // `si_code' values for SIGFPE signal. -const ( /* siginfo-consts.h:89:1: */ - FPE_INTDIV = 1 // Integer divide by zero. - FPE_INTOVF = 2 // Integer overflow. - FPE_FLTDIV = 3 // Floating point divide by zero. - FPE_FLTOVF = 4 // Floating point overflow. - FPE_FLTUND = 5 // Floating point underflow. - FPE_FLTRES = 6 // Floating point inexact result. - FPE_FLTINV = 7 // Floating point invalid operation. - FPE_FLTSUB = 8 +const ( /* siginfo-consts.h:94:1: */ + FPE_INTDIV = 1 // Integer divide by zero. + FPE_INTOVF = 2 // Integer overflow. + FPE_FLTDIV = 3 // Floating point divide by zero. + FPE_FLTOVF = 4 // Floating point overflow. + FPE_FLTUND = 5 // Floating point underflow. + FPE_FLTRES = 6 // Floating point inexact result. + FPE_FLTINV = 7 // Floating point invalid operation. + FPE_FLTSUB = 8 // Subscript out of range. + FPE_FLTUNK = 14 // Undiagnosed floating-point exception. + FPE_CONDTRAP = 15 ) // sigstack, sigaltstack definitions. -// Copyright (C) 1998-2018 Free Software Foundation, Inc. +// Copyright (C) 1998-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -257,14 +270,14 @@ const ( /* siginfo-consts.h:89:1: */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Minimum stack size for a signal handler. // System default stack size. // ss_flags values for stack_t. Linux version. -// Copyright (C) 1998-2018 Free Software Foundation, Inc. +// Copyright (C) 1998-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -279,7 +292,7 @@ const ( /* siginfo-consts.h:89:1: */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Possible values for `ss_flags'. const ( /* ss_flags.h:27:1: */ @@ -305,7 +318,7 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ -// Copyright (C) 1991-2018 Free Software Foundation, Inc. +// Copyright (C) 1991-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -320,11 +333,11 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // ISO C99 Standard: 7.14 Signal handling <signal.h> -// Copyright (C) 1991-2018 Free Software Foundation, Inc. +// Copyright (C) 1991-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -339,7 +352,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // These are defined by the user (or the compiler) // to specify the desired environment: @@ -347,6 +360,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // __STRICT_ANSI__ ISO Standard C. // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. +// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. // __STDC_WANT_LIB_EXT2__ // Extensions to ISO C99 from TR 27431-2:2010. // __STDC_WANT_IEC_60559_BFP_EXT__ @@ -467,6 +481,8 @@ type X__float128 = float64 /* <builtin>:47:21 */ // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, // define _DEFAULT_SOURCE. +// This is to enable the ISO C2X extension. + // This is to enable the ISO C11 extension. // This is to enable the ISO C99 extension. @@ -489,9 +505,22 @@ type X__float128 = float64 /* <builtin>:47:21 */ // compatibility with various implementations of <cstdio>, this test // must consider only the value of __cplusplus when compiling C++. +// GNU formerly extended the scanf functions with modified format +// specifiers %as, %aS, and %a[...] that allocate a buffer for the +// input using malloc. This extension conflicts with ISO C99, which +// defines %a as a standalone format specifier that reads a floating- +// point number; moreover, POSIX.1-2008 provides the same feature +// using the modifier letter 'm' instead (%ms, %mS, %m[...]). +// +// We now follow C99 unless GNU extensions are active and the compiler +// is specifically in C89 or C++98 mode (strict or not). For +// instance, with GCC, -std=gnu11 will have C99-compliant scanf with +// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the +// old extension. + // Get definitions of __STDC_* predefined macros, if the compiler has // not preincluded this header automatically. -// Copyright (C) 1991-2018 Free Software Foundation, Inc. +// Copyright (C) 1991-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -506,7 +535,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // This macro indicates that the installed library is the GNU C Library. // For historic reasons the value now is 6 and this will stay from now @@ -519,7 +548,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // these macros to test for features in specific releases. // This is here only because every header file already includes this one. -// Copyright (C) 1992-2018 Free Software Foundation, Inc. +// Copyright (C) 1992-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -534,7 +563,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // We are almost always included from features.h. @@ -649,7 +678,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // semantics. // // clang++ identifies itself as gcc-4.2, but has support for GNU inlining -// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and +// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and // __GNUC_GNU_INLINE__ macro definitions. // GCC 4.3 and above allow passing all anonymous arguments of an @@ -670,11 +699,15 @@ type X__float128 = float64 /* <builtin>:47:21 */ // argument to strncpy and strncat, as the char array is not necessarily // a NUL-terminated string. +// Undefine (also defined in libc-symbols.h). +// Copies attributes from the declaration or type referenced by +// the argument. + // Determine the wordsize from the preprocessor defines. // Both x86-64 and x32 use the 64-bit system call interface. // Properties of long double type. ldbl-96 version. -// Copyright (C) 2016-2018 Free Software Foundation, Inc. +// Copyright (C) 2016-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -689,7 +722,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // long double is distinct from double, so there is nothing to // define here. @@ -727,7 +760,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // every time called, usually setting errno to ENOSYS. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -742,11 +775,11 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. -// Copyright (C) 1991-2018 Free Software Foundation, Inc. +// Copyright (C) 1991-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -761,45 +794,64 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Determine the wordsize from the preprocessor defines. // Both x86-64 and x32 use the 64-bit system call interface. +// Bit size of the time_t type at glibc build time, x86-64 and x32 case. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// For others, time size is word size. // Convenience types. -type X__u_char = uint8 /* types.h:30:23 */ -type X__u_short = uint16 /* types.h:31:28 */ -type X__u_int = uint32 /* types.h:32:22 */ -type X__u_long = uint64 /* types.h:33:27 */ +type X__u_char = uint8 /* types.h:31:23 */ +type X__u_short = uint16 /* types.h:32:28 */ +type X__u_int = uint32 /* types.h:33:22 */ +type X__u_long = uint64 /* types.h:34:27 */ // Fixed-size types, underlying types depend on word size and compiler. -type X__int8_t = int8 /* types.h:36:21 */ -type X__uint8_t = uint8 /* types.h:37:23 */ -type X__int16_t = int16 /* types.h:38:26 */ -type X__uint16_t = uint16 /* types.h:39:28 */ -type X__int32_t = int32 /* types.h:40:20 */ -type X__uint32_t = uint32 /* types.h:41:22 */ -type X__int64_t = int64 /* types.h:43:25 */ -type X__uint64_t = uint64 /* types.h:44:27 */ +type X__int8_t = int8 /* types.h:37:21 */ +type X__uint8_t = uint8 /* types.h:38:23 */ +type X__int16_t = int16 /* types.h:39:26 */ +type X__uint16_t = uint16 /* types.h:40:28 */ +type X__int32_t = int32 /* types.h:41:20 */ +type X__uint32_t = uint32 /* types.h:42:22 */ +type X__int64_t = int64 /* types.h:44:25 */ +type X__uint64_t = uint64 /* types.h:45:27 */ // Smallest types with at least a given width. -type X__int_least8_t = X__int8_t /* types.h:51:18 */ -type X__uint_least8_t = X__uint8_t /* types.h:52:19 */ -type X__int_least16_t = X__int16_t /* types.h:53:19 */ -type X__uint_least16_t = X__uint16_t /* types.h:54:20 */ -type X__int_least32_t = X__int32_t /* types.h:55:19 */ -type X__uint_least32_t = X__uint32_t /* types.h:56:20 */ -type X__int_least64_t = X__int64_t /* types.h:57:19 */ -type X__uint_least64_t = X__uint64_t /* types.h:58:20 */ +type X__int_least8_t = X__int8_t /* types.h:52:18 */ +type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ +type X__int_least16_t = X__int16_t /* types.h:54:19 */ +type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ +type X__int_least32_t = X__int32_t /* types.h:56:19 */ +type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ +type X__int_least64_t = X__int64_t /* types.h:58:19 */ +type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ // quad_t is also 64 bits. -type X__quad_t = int64 /* types.h:62:18 */ -type X__u_quad_t = uint64 /* types.h:63:27 */ +type X__quad_t = int64 /* types.h:63:18 */ +type X__u_quad_t = uint64 /* types.h:64:27 */ // Largest integral types. -type X__intmax_t = int64 /* types.h:71:18 */ -type X__uintmax_t = uint64 /* types.h:72:27 */ +type X__intmax_t = int64 /* types.h:72:18 */ +type X__uintmax_t = uint64 /* types.h:73:27 */ // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE // macros for each of the OS types we define below. The definitions @@ -811,7 +863,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */ // 32 -- "natural" 32-bit type (always int) // 64 -- "natural" 64-bit type (long or long long) // LONG32 -- 32-bit type, traditionally long -// QUAD -- 64-bit type, always long long +// QUAD -- 64-bit type, traditionally long long // WORD -- natural type of __WORDSIZE bits (int or long) // LONGWORD -- type of __WORDSIZE bits, traditionally long // @@ -832,7 +884,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */ // No need to mark the typedef with __extension__. // bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. -// Copyright (C) 2012-2018 Free Software Foundation, Inc. +// Copyright (C) 2012-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -847,7 +899,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // See <bits/types.h> for the meaning of these macros. This file exists so // that <bits/types.h> need not vary across different GNU platforms. @@ -862,81 +914,109 @@ type X__uintmax_t = uint64 /* types.h:72:27 */ // And for __rlim_t and __rlim64_t. +// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. + // Number of descriptors that can fit in an `fd_set'. -type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers. -type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications. -type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications. -type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers. -type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS). -type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks. -type X__nlink_t = uint64 /* types.h:149:27 */ // Type of file link counts. -type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets. -type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS). -type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications. -type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs. -type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts. -type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement. -type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS). -type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs. -type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch. -type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds. -type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds. - -type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address. -type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key. +// bits/time64.h -- underlying types for __time64_t. Generic version. +// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Define __TIME64_T_TYPE so that it is always a 64-bit type. + +// If we already have 64-bit time type then use it. + +type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. +type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. +type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. +type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. +type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). +type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. +type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. +type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. +type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). +type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. +type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. +type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. +type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. +type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). +type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. +type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. +type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. +type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. + +type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. // Clock ID used in clock and timer functions. -type X__clockid_t = int32 /* types.h:166:29 */ +type X__clockid_t = int32 /* types.h:168:29 */ // Timer ID returned by `timer_create'. -type X__timer_t = uintptr /* types.h:169:12 */ +type X__timer_t = uintptr /* types.h:171:12 */ // Type to represent block size. -type X__blksize_t = int64 /* types.h:172:29 */ +type X__blksize_t = int64 /* types.h:174:29 */ // Types from the Large File Support interface. // Type to count number of disk blocks. -type X__blkcnt_t = int64 /* types.h:177:28 */ -type X__blkcnt64_t = int64 /* types.h:178:30 */ +type X__blkcnt_t = int64 /* types.h:179:28 */ +type X__blkcnt64_t = int64 /* types.h:180:30 */ // Type to count file system blocks. -type X__fsblkcnt_t = uint64 /* types.h:181:30 */ -type X__fsblkcnt64_t = uint64 /* types.h:182:32 */ +type X__fsblkcnt_t = uint64 /* types.h:183:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ // Type to count file system nodes. -type X__fsfilcnt_t = uint64 /* types.h:185:30 */ -type X__fsfilcnt64_t = uint64 /* types.h:186:32 */ +type X__fsfilcnt_t = uint64 /* types.h:187:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ // Type of miscellaneous file system fields. -type X__fsword_t = int64 /* types.h:189:28 */ +type X__fsword_t = int64 /* types.h:191:28 */ -type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error. +type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. // Signed long type used in system calls. -type X__syscall_slong_t = int64 /* types.h:194:33 */ +type X__syscall_slong_t = int64 /* types.h:196:33 */ // Unsigned long type used in system calls. -type X__syscall_ulong_t = uint64 /* types.h:196:33 */ +type X__syscall_ulong_t = uint64 /* types.h:198:33 */ // These few don't really vary by system, they always correspond // to one of the other defined types. -type X__loff_t = X__off64_t /* types.h:200:19 */ // Type of file sizes and offsets (LFS). -type X__caddr_t = uintptr /* types.h:201:14 */ +type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:203:14 */ // Duplicates info from stdint.h but this is used in unistd.h. -type X__intptr_t = int64 /* types.h:204:25 */ +type X__intptr_t = int64 /* types.h:206:25 */ // Duplicate info from sys/socket.h. -type X__socklen_t = uint32 /* types.h:207:23 */ +type X__socklen_t = uint32 /* types.h:209:23 */ // C99: An integer type that can be accessed as an atomic entity, // even in the presence of asynchronous interrupts. // It is not currently necessary for this to be machine-specific. -type X__sig_atomic_t = int32 /* types.h:212:13 */ +type X__sig_atomic_t = int32 /* types.h:214:13 */ + +// Seconds since the Epoch, visible to user code when time_t is too +// narrow only for consistency with the old way of widening too-narrow +// types. User code should never use __time64_t. // Signal number definitions. Linux version. -// Copyright (C) 1995-2018 Free Software Foundation, Inc. +// Copyright (C) 1995-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -951,10 +1031,10 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Signal number constants. Generic template. -// Copyright (C) 1991-2018 Free Software Foundation, Inc. +// Copyright (C) 1991-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -969,7 +1049,7 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Fake signal functions. @@ -1008,7 +1088,7 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */ // most Linux systems. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1023,7 +1103,7 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. @@ -1043,7 +1123,7 @@ type Uid_t = X__uid_t /* signal.h:46:17 */ // NB: Include guard matches what <linux/time.h> uses. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1058,22 +1138,55 @@ type Uid_t = X__uid_t /* signal.h:46:17 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. +// Endian macros for string.h functions +// Copyright (C) 1992-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <http://www.gnu.org/licenses/>. + +// Definitions for byte order, according to significance of bytes, +// from low addresses to high addresses. The value is what you get by +// putting '4' in the most significant byte, '3' in the second most +// significant byte, '2' in the second least significant byte, and '1' +// in the least significant byte, and then writing down one digit for +// each byte, starting with the byte at the lowest address at the left, +// and proceeding to the byte with the highest address at the right. + +// This file defines `__BYTE_ORDER' for the particular machine. + +// i386/x86_64 are little-endian. + +// Some machines may need to use a different endianness for floating point +// values. + // POSIX.1b structure for a time value. This is like a `struct timeval' but // has nanoseconds instead of microseconds. type Timespec = struct { Ftv_sec X__time_t Ftv_nsec X__syscall_slong_t -} /* struct_timespec.h:9:1 */ +} /* struct_timespec.h:10:1 */ // Determine the wordsize from the preprocessor defines. // Both x86-64 and x32 use the 64-bit system call interface. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1088,12 +1201,12 @@ type Timespec = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. // Define __sigval_t. -// Copyright (C) 1997-2018 Free Software Foundation, Inc. +// Copyright (C) 1997-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1108,13 +1221,13 @@ type Timespec = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Type for data associated with a signal. type Sigval = struct { - _ [0]uint64 - Fsival_int int32 - _ [4]byte + F__ccgo_pad1 [0]uint64 + Fsival_int int32 + F__ccgo_pad2 [4]byte } /* __sigval_t.h:24:1 */ type X__sigval_t = Sigval /* __sigval_t.h:30:22 */ @@ -1128,8 +1241,8 @@ type Siginfo_t = struct { Fsi_code int32 F__pad0 int32 F_sifields struct { - _ [0]uint64 - F_pad [28]int32 + F__ccgo_pad1 [0]uint64 + F_pad [28]int32 } } /* siginfo_t.h:124:5 */ @@ -1137,7 +1250,7 @@ type Siginfo_t = struct { // These are all considered GNU extensions. // Define __sigval_t. -// Copyright (C) 1997-2018 Free Software Foundation, Inc. +// Copyright (C) 1997-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1152,7 +1265,7 @@ type Siginfo_t = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // To avoid sigval_t (not a standard type name) having C++ name // mangling depending on whether the selected standard includes union @@ -1167,7 +1280,7 @@ type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */ // Both x86-64 and x32 use the 64-bit system call interface. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1182,12 +1295,12 @@ type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. // Define __sigval_t. -// Copyright (C) 1997-2018 Free Software Foundation, Inc. +// Copyright (C) 1997-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1202,19 +1315,19 @@ type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Forward declaration. type Pthread_attr_t1 = struct { - _ [0]uint64 - F__size [56]int8 + F__ccgo_pad1 [0]uint64 + F__size [56]int8 } /* sigevent_t.h:17:9 */ // Determine the wordsize from the preprocessor defines. // Both x86-64 and x32 use the 64-bit system call interface. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1229,12 +1342,12 @@ type Pthread_attr_t1 = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. // Define __sigval_t. -// Copyright (C) 1997-2018 Free Software Foundation, Inc. +// Copyright (C) 1997-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1249,7 +1362,7 @@ type Pthread_attr_t1 = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Forward declaration. type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */ @@ -1260,8 +1373,8 @@ type Sigevent = struct { Fsigev_signo int32 Fsigev_notify int32 F_sigev_un struct { - _ [0]uint64 - F_pad [12]int32 + F__ccgo_pad1 [0]uint64 + F_pad [12]int32 } } /* sigevent_t.h:22:9 */ @@ -1277,7 +1390,7 @@ type Sig_t = X__sighandler_t /* signal.h:190:24 */ // Get the system-specific definitions of `struct sigaction' // and the `SA_*' and `SIG_*'. constants. // The proper definitions for Linux's sigaction. -// Copyright (C) 1993-2018 Free Software Foundation, Inc. +// Copyright (C) 1993-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1292,19 +1405,19 @@ type Sig_t = X__sighandler_t /* signal.h:190:24 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Structure describing the action to be taken when a signal arrives. type Sigaction = struct { F__sigaction_handler struct{ Fsa_handler X__sighandler_t } Fsa_mask X__sigset_t Fsa_flags int32 - _ [4]byte + F__ccgo_pad1 [4]byte Fsa_restorer uintptr } /* sigaction.h:27:1 */ // Get machine-dependent `struct sigcontext' and signal subcodes. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1319,10 +1432,10 @@ type Sigaction = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1337,7 +1450,7 @@ type Sigaction = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. @@ -1453,15 +1566,10 @@ type X_xstate = struct { // Define this type if we are doing the whole job, // or if we want this type in particular. -// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc. -// are already defined. -// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. -// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. - // A null pointer constant. // Define stack_t. Linux version. -// Copyright (C) 1998-2018 Free Software Foundation, Inc. +// Copyright (C) 1998-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1476,9 +1584,9 @@ type X_xstate = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. -// Copyright (C) 1989-2018 Free Software Foundation, Inc. +// Copyright (C) 1989-2020 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -1510,15 +1618,6 @@ type X_xstate = struct { // This avoids lossage on SunOS but only if stdtypes.h comes first. // There's no way to win with the other order! Sun lossage. -// On 4.3bsd-net2, make sure ansi.h is included, so we have -// one less case to deal with in the following. -// On FreeBSD 5, machine/ansi.h does not exist anymore... - -// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are -// defined if the corresponding type is *not* defined. -// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_. -// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ - // Sequent's header files use _PTRDIFF_T_ in some conflicting way. // Just ignore it. @@ -1553,23 +1652,18 @@ type X_xstate = struct { // Define this type if we are doing the whole job, // or if we want this type in particular. -// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc. -// are already defined. -// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. -// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. - // A null pointer constant. // Structure describing a signal stack. type Stack_t = struct { - Fss_sp uintptr - Fss_flags int32 - _ [4]byte - Fss_size Size_t + Fss_sp uintptr + Fss_flags int32 + F__ccgo_pad1 [4]byte + Fss_size Size_t } /* stack_t.h:31:5 */ // This will define `ucontext_t' and `mcontext_t'. -// Copyright (C) 2001-2018 Free Software Foundation, Inc. +// Copyright (C) 2001-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1584,9 +1678,9 @@ type Stack_t = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. -// Copyright (C) 1991-2018 Free Software Foundation, Inc. +// Copyright (C) 1991-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1601,10 +1695,10 @@ type Stack_t = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2018 Free Software Foundation, Inc. +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1619,12 +1713,12 @@ type Stack_t = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Never include this file directly; use <sys/types.h> instead. // Define stack_t. Linux version. -// Copyright (C) 1998-2018 Free Software Foundation, Inc. +// Copyright (C) 1998-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1639,7 +1733,7 @@ type Stack_t = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Type for general register. type Greg_t = int64 /* ucontext.h:37:37 */ @@ -1716,7 +1810,7 @@ type Ucontext_t1 = struct { type Ucontext_t = Ucontext_t1 /* ucontext.h:151:5 */ // Define struct sigstack. -// Copyright (C) 1998-2018 Free Software Foundation, Inc. +// Copyright (C) 1998-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1731,19 +1825,19 @@ type Ucontext_t = Ucontext_t1 /* ucontext.h:151:5 */ // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Structure describing a signal stack (obsolete). type Sigstack = struct { - Fss_sp uintptr - Fss_onstack int32 - _ [4]byte + Fss_sp uintptr + Fss_onstack int32 + F__ccgo_pad1 [4]byte } /* struct_sigstack.h:23:1 */ // Some of the functions for handling signals in threaded programs must // be defined here. // Declaration of common pthread types for all architectures. -// Copyright (C) 2017-2018 Free Software Foundation, Inc. +// Copyright (C) 2017-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1758,11 +1852,11 @@ type Sigstack = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // For internal mutex and condition variable definitions. // Common threading primitives definitions for both POSIX and C11. -// Copyright (C) 2017-2018 Free Software Foundation, Inc. +// Copyright (C) 2017-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1777,7 +1871,7 @@ type Sigstack = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Arch-specific definitions. Each architecture must define the following // macros to define the expected sizes of pthread data types: @@ -1792,36 +1886,6 @@ type Sigstack = struct { // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. // -// Also, the following macros must be define for internal pthread_mutex_t -// struct definitions (struct __pthread_mutex_s): -// -// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind' -// and before '__spin' (for 64 bits) or -// '__nusers' (for 32 bits). -// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of -// the internal structure. -// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock -// elision or 0 otherwise. -// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The -// preferred value for new architectures -// is 0. -// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and -// __list will be place inside a union for -// linuxthreads compatibility. -// The preferred value for new architectures -// is 0. -// -// For a new port the preferred values for the required defines are: -// -// #define __PTHREAD_COMPAT_PADDING_MID -// #define __PTHREAD_COMPAT_PADDING_END -// #define __PTHREAD_MUTEX_LOCK_ELISION 0 -// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0 -// #define __PTHREAD_MUTEX_USE_UNION 0 -// -// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to -// eventually support lock elision using transactional memory. -// // The additional macro defines any constraint for the lock alignment // inside the thread structures: // @@ -1830,11 +1894,8 @@ type Sigstack = struct { // Same idea but for the once locking primitive: // // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. -// -// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t) -// must be defined. -// -// Copyright (C) 2002-2018 Free Software Foundation, Inc. + +// Copyright (C) 2002-2020 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1849,42 +1910,140 @@ type Sigstack = struct { // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <http://www.gnu.org/licenses/>. +// <https://www.gnu.org/licenses/>. // Determine the wordsize from the preprocessor defines. // Both x86-64 and x32 use the 64-bit system call interface. -// Definitions for internal mutex struct. - -type X__pthread_rwlock_arch_t = struct { - F__readers uint32 - F__writers uint32 - F__wrphase_futex uint32 - F__writers_futex uint32 - F__pad3 uint32 - F__pad4 uint32 - F__cur_writer int32 - F__shared int32 - F__rwelision int8 - F__pad1 [7]uint8 - F__pad2 uint64 - F__flags uint32 - _ [4]byte -} /* pthreadtypes-arch.h:65:1 */ - // Common definition of pthread_mutex_t. type X__pthread_internal_list = struct { F__prev uintptr F__next uintptr -} /* thread-shared-types.h:82:9 */ +} /* thread-shared-types.h:49:9 */ + +// Some of the functions for handling signals in threaded programs must +// be defined here. +// Declaration of common pthread types for all architectures. +// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// For internal mutex and condition variable definitions. +// Common threading primitives definitions for both POSIX and C11. +// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Arch-specific definitions. Each architecture must define the following +// macros to define the expected sizes of pthread data types: +// +// __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. +// __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. +// __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. +// __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. +// __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. +// __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. +// __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. +// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. +// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. +// +// The additional macro defines any constraint for the lock alignment +// inside the thread structures: +// +// __LOCK_ALIGNMENT - for internal lock/futex usage. +// +// Same idea but for the once locking primitive: +// +// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. + +// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Determine the wordsize from the preprocessor defines. + +// Both x86-64 and x32 use the 64-bit system call interface. // Common definition of pthread_mutex_t. -type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:86:3 */ +type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ + +type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ + +type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ -// Lock elision support. +// Arch-specific mutex definitions. A generic implementation is provided +// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture +// can override it by defining: +// +// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t +// definition). It should contains at least the internal members +// defined in the generic version. +// +// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with +// atomic operations. +// +// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. +// It should initialize the mutex internal flag. + +// x86 internal mutex struct definitions. +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <http://www.gnu.org/licenses/>. type X__pthread_mutex_s = struct { F__lock int32 @@ -1895,7 +2054,53 @@ type X__pthread_mutex_s = struct { F__spins int16 F__elision int16 F__list X__pthread_list_t -} /* thread-shared-types.h:118:1 */ +} /* struct_mutex.h:22:1 */ + +// Arch-sepecific read-write lock definitions. A generic implementation is +// provided by struct_rwlock.h. If required, an architecture can override it +// by defining: +// +// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). +// It should contain at least the internal members defined in the +// generic version. +// +// 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. +// It should initialize the rwlock internal type. + +// x86 internal rwlock struct definitions. +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <http://www.gnu.org/licenses/>. + +type X__pthread_rwlock_arch_t = struct { + F__readers uint32 + F__writers uint32 + F__wrphase_futex uint32 + F__writers_futex uint32 + F__pad3 uint32 + F__pad4 uint32 + F__cur_writer int32 + F__shared int32 + F__rwelision int8 + F__pad1 [7]uint8 + F__pad2 uint64 + F__flags uint32 + F__ccgo_pad1 [4]byte +} /* struct_rwlock.h:23:1 */ // Common definition of pthread_cond_t. @@ -1907,7 +2112,7 @@ type X__pthread_cond_s = struct { F__g1_orig_size uint32 F__wrefs uint32 F__g_signals [2]uint32 -} /* thread-shared-types.h:171:1 */ +} /* thread-shared-types.h:92:1 */ // Thread identifiers. The structure of the attribute type is not // exposed on purpose. @@ -1916,15 +2121,15 @@ type Pthread_t = uint64 /* pthreadtypes.h:27:27 */ // Data structures for mutex handling. The structure of the attribute // type is not exposed on purpose. type Pthread_mutexattr_t = struct { - _ [0]uint32 - F__size [4]int8 + F__ccgo_pad1 [0]uint32 + F__size [4]int8 } /* pthreadtypes.h:36:3 */ // Data structure for condition variable handling. The structure of // the attribute type is not exposed on purpose. type Pthread_condattr_t = struct { - _ [0]uint32 - F__size [4]int8 + F__ccgo_pad1 [0]uint32 + F__size [4]int8 } /* pthreadtypes.h:45:3 */ // Keys for thread-specific data @@ -1942,8 +2147,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ type Pthread_rwlockattr_t = struct { - _ [0]uint64 - F__size [8]int8 + F__ccgo_pad1 [0]uint64 + F__size [8]int8 } /* pthreadtypes.h:97:3 */ // POSIX spinlock data type. @@ -1952,13 +2157,32 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ // POSIX barriers data type. The structure of the type is // deliberately not exposed. type Pthread_barrier_t = struct { - _ [0]uint64 - F__size [32]int8 + F__ccgo_pad1 [0]uint64 + F__size [32]int8 } /* pthreadtypes.h:112:3 */ type Pthread_barrierattr_t = struct { - _ [0]uint32 - F__size [4]int8 + F__ccgo_pad1 [0]uint32 + F__size [4]int8 } /* pthreadtypes.h:118:3 */ +// System-specific extensions. +// System-specific extensions of <signal.h>, Linux version. +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + var _ int8 /* gen.c:2:13: */ |