.examples
.github
alerting
client
config
controller
core
docs
jsonpath
metrics
pattern
security
storage
test
util
vendor
github.com
golang.org
google.golang.org
gopkg.in
lukechampine.com
modernc.org
cc
ccgo
libc
errno
fcntl
fts
grp
honnef.co
langinfo
limits
netdb
netinet
poll
pthread
pwd
signal
stdio
stdlib
capi_darwin_amd64.go
capi_darwin_arm64.go
capi_freebsd_386.go
capi_freebsd_amd64.go
capi_freebsd_arm.go
capi_freebsd_arm64.go
capi_linux_386.go
capi_linux_amd64.go
capi_linux_arm.go
capi_linux_arm64.go
capi_linux_ppc64le.go
capi_linux_riscv64.go
capi_linux_s390x.go
capi_netbsd_amd64.go
capi_netbsd_arm.go
capi_openbsd_386.go
capi_openbsd_amd64.go
capi_openbsd_arm64.go
capi_windows_386.go
capi_windows_amd64.go
capi_windows_arm64.go
stdlib_darwin_amd64.go
stdlib_darwin_arm64.go
stdlib_freebsd_386.go
stdlib_freebsd_amd64.go
stdlib_freebsd_arm.go
stdlib_freebsd_arm64.go
stdlib_linux_386.go
stdlib_linux_amd64.go
stdlib_linux_arm.go
stdlib_linux_arm64.go
stdlib_linux_ppc64le.go
stdlib_linux_riscv64.go
stdlib_linux_s390x.go
stdlib_netbsd_amd64.go
stdlib_netbsd_arm.go
stdlib_openbsd_386.go
stdlib_openbsd_amd64.go
stdlib_openbsd_arm64.go
stdlib_windows_386.go
stdlib_windows_amd64.go
stdlib_windows_arm64.go
sys
termios
time
unistd
utime
uuid
wctype
AUTHORS
CONTRIBUTORS
HACKING
LICENSE
LICENSE-GO
Makefile
README.md
build_all_targets.sh
capi_darwin_amd64.go
capi_darwin_arm64.go
capi_freebsd_386.go
capi_freebsd_amd64.go
capi_freebsd_arm.go
capi_freebsd_arm64.go
capi_linux_386.go
capi_linux_amd64.go
capi_linux_arm.go
capi_linux_arm64.go
capi_linux_ppc64le.go
capi_linux_riscv64.go
capi_linux_s390x.go
capi_netbsd_amd64.go
capi_netbsd_arm.go
capi_openbsd_386.go
capi_openbsd_amd64.go
capi_openbsd_arm64.go
capi_windows_386.go
capi_windows_amd64.go
capi_windows_arm64.go
ccgo.go
dmesg.go
etc.go
fsync.go
int128.go
ioutil_darwin.go
ioutil_freebsd.go
ioutil_linux.go
ioutil_netbsd.go
ioutil_openbsd.go
libc.go
libc32.go
libc64.go
libc_darwin.go
libc_darwin_amd64.go
libc_darwin_arm64.go
libc_freebsd.go
libc_freebsd_386.go
libc_freebsd_amd64.go
libc_freebsd_arm.go
libc_freebsd_arm64.go
libc_linux.go
libc_linux_386.go
libc_linux_amd64.go
libc_linux_arm.go
libc_linux_arm64.go
libc_linux_ppc64le.go
libc_linux_riscv64.go
libc_linux_s390x.go
libc_netbsd.go
libc_netbsd_amd64.go
libc_netbsd_arm.go
libc_openbsd.go
libc_openbsd_386.go
libc_openbsd_amd64.go
libc_openbsd_arm64.go
libc_unix.go
libc_windows.go
libc_windows_386.go
libc_windows_amd64.go
libc_windows_arm64.go
mem.go
mem_brk.go
memgrind.go
musl_darwin_amd64.go
musl_darwin_arm64.go
musl_freebsd_386.go
musl_freebsd_amd64.go
musl_freebsd_arm.go
musl_freebsd_arm64.go
musl_linux_386.go
musl_linux_amd64.go
musl_linux_arm.go
musl_linux_arm64.go
musl_linux_ppc64le.go
musl_linux_riscv64.go
musl_linux_s390x.go
musl_netbsd_amd64.go
musl_netbsd_arm.go
musl_openbsd_386.go
musl_openbsd_amd64.go
musl_openbsd_arm64.go
musl_windows_386.go
musl_windows_amd64.go
musl_windows_arm64.go
nodmesg.go
nofsync.go
printf.go
pthread.go
pthread_all.go
scanf.go
sync.go
watch.go
mathutil
memory
opt
sqlite
strutil
token
modules.txt
watchdog
web
.dockerignore
.gitattributes
.gitignore
Dockerfile
LICENSE
Makefile
README.md
config.yaml
go.mod
go.sum
main.go
1618 lines
67 KiB
Go
1618 lines
67 KiB
Go
// Code generated by 'ccgo stdlib/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 stdlib/stdlib_linux_arm64.go -pkgname stdlib', DO NOT EDIT.
|
|
|
|
package stdlib
|
|
|
|
import (
|
|
"math"
|
|
"reflect"
|
|
"sync/atomic"
|
|
"unsafe"
|
|
)
|
|
|
|
var _ = math.Pi
|
|
var _ reflect.Kind
|
|
var _ atomic.Value
|
|
var _ unsafe.Pointer
|
|
|
|
const (
|
|
BIG_ENDIAN = 4321
|
|
BYTE_ORDER = 1234
|
|
EXIT_FAILURE = 1
|
|
EXIT_SUCCESS = 0
|
|
FD_SETSIZE = 1024
|
|
LITTLE_ENDIAN = 1234
|
|
PDP_ENDIAN = 3412
|
|
RAND_MAX = 2147483647
|
|
WCONTINUED = 8
|
|
WEXITED = 4
|
|
WNOHANG = 1
|
|
WNOWAIT = 0x01000000
|
|
WSTOPPED = 2
|
|
WUNTRACED = 2
|
|
X_ALLOCA_H = 1
|
|
X_ATFILE_SOURCE = 1
|
|
X_BITS_BYTESWAP_H = 1
|
|
X_BITS_ENDIANNESS_H = 1
|
|
X_BITS_ENDIAN_H = 1
|
|
X_BITS_FLOATN_COMMON_H = 0
|
|
X_BITS_FLOATN_H = 0
|
|
X_BITS_PTHREADTYPES_ARCH_H = 1
|
|
X_BITS_PTHREADTYPES_COMMON_H = 1
|
|
X_BITS_STDINT_INTN_H = 1
|
|
X_BITS_TIME64_H = 1
|
|
X_BITS_TYPESIZES_H = 1
|
|
X_BITS_TYPES_H = 1
|
|
X_BITS_UINTN_IDENTITY_H = 1
|
|
X_BSD_SIZE_T_ = 0
|
|
X_BSD_SIZE_T_DEFINED_ = 0
|
|
X_DEFAULT_SOURCE = 1
|
|
X_ENDIAN_H = 1
|
|
X_FEATURES_H = 1
|
|
X_FILE_OFFSET_BITS = 64
|
|
X_GCC_SIZE_T = 0
|
|
X_GCC_WCHAR_T = 0
|
|
X_LP64 = 1
|
|
X_POSIX_C_SOURCE = 200809
|
|
X_POSIX_SOURCE = 1
|
|
X_RWLOCK_INTERNAL_H = 0
|
|
X_SIZET_ = 0
|
|
X_SIZE_T = 0
|
|
X_SIZE_T_ = 0
|
|
X_SIZE_T_DECLARED = 0
|
|
X_SIZE_T_DEFINED = 0
|
|
X_SIZE_T_DEFINED_ = 0
|
|
X_STDC_PREDEF_H = 1
|
|
X_STDLIB_H = 1
|
|
X_STRUCT_TIMESPEC = 1
|
|
X_SYS_CDEFS_H = 1
|
|
X_SYS_SELECT_H = 1
|
|
X_SYS_SIZE_T_H = 0
|
|
X_SYS_TYPES_H = 1
|
|
X_THREAD_MUTEX_INTERNAL_H = 1
|
|
X_THREAD_SHARED_TYPES_H = 1
|
|
X_T_SIZE = 0
|
|
X_T_SIZE_ = 0
|
|
X_T_WCHAR = 0
|
|
X_T_WCHAR_ = 0
|
|
X_WCHAR_T = 0
|
|
X_WCHAR_T_ = 0
|
|
X_WCHAR_T_DECLARED = 0
|
|
X_WCHAR_T_DEFINED = 0
|
|
X_WCHAR_T_DEFINED_ = 0
|
|
X_WCHAR_T_H = 0
|
|
Linux = 1
|
|
Unix = 1
|
|
)
|
|
|
|
// A null pointer constant.
|
|
|
|
// XPG requires a few symbols from <sys/wait.h> being defined.
|
|
// Definitions of flag bits for `waitpid' et al.
|
|
// 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
|
|
// <https://www.gnu.org/licenses/>.
|
|
|
|
// Bits in the third argument to `waitpid'.
|
|
|
|
// Bits in the fourth argument to `waitid'.
|
|
|
|
// The following values are used by the `waitid' function.
|
|
|
|
// The Linux kernel defines these bare, rather than an enum,
|
|
// which causes a conflict if the include order is reversed.
|
|
|
|
const ( /* waitflags.h:52:1: */
|
|
P_ALL = 0 // Wait for any child.
|
|
P_PID = 1 // Wait for specified process.
|
|
P_PGID = 2
|
|
)
|
|
|
|
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
|
|
|
type Size_t = uint64 /* <builtin>:9:23 */
|
|
|
|
type Wchar_t = uint32 /* <builtin>:15:24 */
|
|
|
|
type X__int128_t = struct {
|
|
Flo int64
|
|
Fhi int64
|
|
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
|
type X__uint128_t = struct {
|
|
Flo uint64
|
|
Fhi uint64
|
|
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
|
|
|
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
|
type X__float128 = float64 /* <builtin>:47:21 */
|
|
|
|
// A null pointer constant.
|
|
|
|
// XPG requires a few symbols from <sys/wait.h> being defined.
|
|
// Definitions of flag bits for `waitpid' et al.
|
|
// 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
|
|
// <https://www.gnu.org/licenses/>.
|
|
|
|
// Bits in the third argument to `waitpid'.
|
|
|
|
// Bits in the fourth argument to `waitid'.
|
|
|
|
// The following values are used by the `waitid' function.
|
|
|
|
// The Linux kernel defines these bare, rather than an enum,
|
|
// which causes a conflict if the include order is reversed.
|
|
|
|
type Idtype_t = uint32 /* waitflags.h:57:3 */
|
|
// Definitions of status bits for `wait' et al.
|
|
// 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
|
|
// <https://www.gnu.org/licenses/>.
|
|
|
|
// Everything extant so far uses these same bits.
|
|
|
|
// If WIFEXITED(STATUS), the low-order 8 bits of the status.
|
|
|
|
// If WIFSIGNALED(STATUS), the terminating signal.
|
|
|
|
// If WIFSTOPPED(STATUS), the signal that stopped the child.
|
|
|
|
// Nonzero if STATUS indicates normal termination.
|
|
|
|
// Nonzero if STATUS indicates termination by a signal.
|
|
|
|
// Nonzero if STATUS indicates the child is stopped.
|
|
|
|
// Nonzero if STATUS indicates the child continued after a stop. We only
|
|
// define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
|
|
|
|
// Nonzero if STATUS indicates the child dumped core.
|
|
|
|
// Macros for constructing status values.
|
|
|
|
// Define the macros <sys/wait.h> also would define this way.
|
|
|
|
// _FloatN API tests for enablement.
|
|
// Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
|
|
// 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/>.
|
|
|
|
// 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
|
|
// 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/>.
|
|
|
|
// Properties of long double type. ldbl-128 version.
|
|
// 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
|
|
// modify it under the terms of the GNU Lesser General Public
|
|
// License 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/>.
|
|
|
|
// long double is distinct from double, so there is nothing to
|
|
// define here.
|
|
|
|
// Defined to 1 if the current compiler invocation provides a
|
|
// floating-point type with the IEEE 754 binary128 format, and this
|
|
// glibc includes corresponding *f128 interfaces for it.
|
|
|
|
// Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
|
|
// from the default float, double and long double types in this glibc.
|
|
|
|
// Defined to 1 if the current compiler invocation provides a
|
|
// floating-point type with the right format for _Float64x, and this
|
|
// glibc includes corresponding *f64x interfaces for it.
|
|
|
|
// Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
|
|
// of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
|
|
// the format of _Float128, which must be different from that of long
|
|
// double.
|
|
|
|
// Defined to concatenate the literal suffix to be used with _Float128
|
|
// types, if __HAVE_FLOAT128 is 1.
|
|
|
|
// Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
|
|
|
|
// The remaining of this file provides support for older compilers.
|
|
|
|
// The type _Float128 exists only since GCC 7.0.
|
|
|
|
// Various built-in functions do not exist before GCC 7.0.
|
|
|
|
// Macros to control TS 18661-3 glibc features where the same
|
|
// definitions are appropriate for all platforms.
|
|
// 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/>.
|
|
|
|
// 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
|
|
// 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/>.
|
|
|
|
// Properties of long double type. ldbl-128 version.
|
|
// 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
|
|
// modify it under the terms of the GNU Lesser General Public
|
|
// License 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/>.
|
|
|
|
// long double is distinct from double, so there is nothing to
|
|
// define here.
|
|
|
|
// This header should be included at the bottom of each bits/floatn.h.
|
|
// It defines the following macros for each _FloatN and _FloatNx type,
|
|
// where the same definitions, or definitions based only on the macros
|
|
// in bits/floatn.h, are appropriate for all glibc configurations.
|
|
|
|
// Defined to 1 if the current compiler invocation provides a
|
|
// floating-point type with the right format for this type, and this
|
|
// glibc includes corresponding *fN or *fNx interfaces for it.
|
|
|
|
// Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
|
|
// type is the first with its format in the sequence of (the default
|
|
// choices for) float, double, long double, _Float16, _Float32,
|
|
// _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
|
|
// glibc; that is, if functions present once per floating-point format
|
|
// rather than once per type are present for this type.
|
|
//
|
|
// All configurations supported by glibc have _Float32 the same format
|
|
// as float, _Float64 and _Float32x the same format as double, the
|
|
// _Float64x the same format as either long double or _Float128. No
|
|
// configurations support _Float128x or, as of GCC 7, have compiler
|
|
// support for a type meeting the requirements for _Float128x.
|
|
|
|
// Defined to 1 if the corresponding _FloatN type is not binary compatible
|
|
// with the corresponding ISO C type in the current compilation unit as
|
|
// opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
|
|
// in glibc.
|
|
|
|
// Defined to 1 if any _FloatN or _FloatNx types that are not
|
|
// ABI-distinct are however distinct types at the C language level (so
|
|
// for the purposes of __builtin_types_compatible_p and _Generic).
|
|
|
|
// Defined to concatenate the literal suffix to be used with _FloatN
|
|
// or _FloatNx types, if __HAVE_<type> is 1. The corresponding
|
|
// literal suffixes exist since GCC 7, for C only.
|
|
|
|
// Defined to a complex type if __HAVE_<type> is 1.
|
|
|
|
// The remaining of this file provides support for older compilers.
|
|
|
|
// If double, long double and _Float64 all have the same set of
|
|
// values, TS 18661-3 requires the usual arithmetic conversions on
|
|
// long double and _Float64 to produce _Float64. For this to be the
|
|
// case when building with a compiler without a distinct _Float64
|
|
// type, _Float64 must be a typedef for long double, not for
|
|
// double.
|
|
|
|
// Returned by `div'.
|
|
type Div_t = struct {
|
|
Fquot int32
|
|
Frem int32
|
|
} /* stdlib.h:62:5 */
|
|
|
|
// Returned by `ldiv'.
|
|
type Ldiv_t = struct {
|
|
Fquot int64
|
|
Frem int64
|
|
} /* stdlib.h:70:5 */
|
|
|
|
// Returned by `lldiv'.
|
|
type Lldiv_t = struct {
|
|
Fquot int64
|
|
Frem int64
|
|
} /* stdlib.h:80:5 */
|
|
|
|
// 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
|
|
// 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/>.
|
|
|
|
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
|
|
|
|
// 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
|
|
// 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/>.
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
// 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
|
|
// 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.
|
|
//
|
|
// 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
|
|
// 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/>.
|
|
|
|
// Bit size of the time_t type at glibc build time, general 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/>.
|
|
|
|
// Determine the wordsize from the preprocessor defines.
|
|
//
|
|
// 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
|
|
// 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/>.
|
|
|
|
// Size in bits of the 'time_t' type of the default ABI.
|
|
|
|
// Convenience types.
|
|
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: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: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:63:18 */
|
|
type X__u_quad_t = uint64 /* types.h:64:27 */
|
|
|
|
// Largest integral types.
|
|
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
|
|
// of those macros must use the following macros for underlying types.
|
|
// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
|
|
// variants of each of the following integer types on this machine.
|
|
//
|
|
// 16 -- "natural" 16-bit type (always short)
|
|
// 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, traditionally long long
|
|
// WORD -- natural type of __WORDSIZE bits (int or long)
|
|
// LONGWORD -- type of __WORDSIZE bits, traditionally long
|
|
//
|
|
// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
|
|
// conventional uses of `long' or `long long' type modifiers match the
|
|
// types we define, even when a less-adorned type would be the same size.
|
|
// This matters for (somewhat) portably writing printf/scanf formats for
|
|
// these types, where using the appropriate l or ll format modifiers can
|
|
// make the typedefs and the formats match up across all GNU platforms. If
|
|
// we used `long' when it's 64 bits where `long long' is expected, then the
|
|
// compiler would warn about the formats not matching the argument types,
|
|
// and the programmer changing them to shut up the compiler would break the
|
|
// program's portability.
|
|
//
|
|
// Here we assume what is presently the case in all the GCC configurations
|
|
// we support: long long is always 64 bits, long is always word/address size,
|
|
// and int is always 32 bits.
|
|
|
|
// No need to mark the typedef with __extension__.
|
|
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
|
|
// Copyright (C) 2011-2020 Free Software Foundation, Inc.
|
|
// This file is part of the GNU C Library.
|
|
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
|
|
//
|
|
// 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/>.
|
|
|
|
// 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.
|
|
|
|
// Tell the libc code that off_t and off64_t are actually the same type
|
|
// for all ABI purposes, even if possibly expressed as different base types
|
|
// for C type-checking purposes.
|
|
|
|
// Same for ino_t and ino64_t.
|
|
|
|
// 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'.
|
|
|
|
// 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 = uint32 /* 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:168:29 */
|
|
|
|
// Timer ID returned by `timer_create'.
|
|
type X__timer_t = uintptr /* types.h:171:12 */
|
|
|
|
// Type to represent block size.
|
|
type X__blksize_t = int32 /* 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:179:28 */
|
|
type X__blkcnt64_t = int64 /* types.h:180:30 */
|
|
|
|
// Type to count file system blocks.
|
|
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:187:30 */
|
|
type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
|
|
|
|
// Type of miscellaneous file system fields.
|
|
type X__fsword_t = int64 /* types.h:191:28 */
|
|
|
|
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:196:33 */
|
|
// Unsigned long type used in system calls.
|
|
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: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:206:25 */
|
|
|
|
// Duplicate info from sys/socket.h.
|
|
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: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.
|
|
|
|
type U_char = X__u_char /* types.h:33:18 */
|
|
type U_short = X__u_short /* types.h:34:19 */
|
|
type U_int = X__u_int /* types.h:35:17 */
|
|
type U_long = X__u_long /* types.h:36:18 */
|
|
type Quad_t = X__quad_t /* types.h:37:18 */
|
|
type U_quad_t = X__u_quad_t /* types.h:38:20 */
|
|
type Fsid_t = X__fsid_t /* types.h:39:18 */
|
|
type Loff_t = X__loff_t /* types.h:42:18 */
|
|
|
|
type Ino_t = X__ino64_t /* types.h:49:19 */
|
|
|
|
type Dev_t = X__dev_t /* types.h:59:17 */
|
|
|
|
type Gid_t = X__gid_t /* types.h:64:17 */
|
|
|
|
type Mode_t = X__mode_t /* types.h:69:18 */
|
|
|
|
type Nlink_t = X__nlink_t /* types.h:74:19 */
|
|
|
|
type Uid_t = X__uid_t /* types.h:79:17 */
|
|
|
|
type Off_t = X__off64_t /* types.h:87:19 */
|
|
|
|
type Pid_t = X__pid_t /* types.h:97:17 */
|
|
|
|
type Id_t = X__id_t /* types.h:103:16 */
|
|
|
|
type Ssize_t = X__ssize_t /* types.h:108:19 */
|
|
|
|
type Daddr_t = X__daddr_t /* types.h:114:19 */
|
|
type Caddr_t = X__caddr_t /* types.h:115:19 */
|
|
|
|
type Key_t = X__key_t /* types.h:121:17 */
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
// Returned by `clock'.
|
|
type Clock_t = X__clock_t /* clock_t.h:7:19 */
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
// Clock ID used in clock and timer functions.
|
|
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
// Returned by `time'.
|
|
type Time_t = X__time_t /* time_t.h:7:18 */
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
// Timer ID returned by `timer_create'.
|
|
type Timer_t = X__timer_t /* timer_t.h:7:19 */
|
|
|
|
// Copyright (C) 1989-2020 Free Software Foundation, Inc.
|
|
//
|
|
// This file is part of GCC.
|
|
//
|
|
// GCC is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 3, or (at your option)
|
|
// any later version.
|
|
//
|
|
// GCC 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 General Public License for more details.
|
|
//
|
|
// Under Section 7 of GPL version 3, you are granted additional
|
|
// permissions described in the GCC Runtime Library Exception, version
|
|
// 3.1, as published by the Free Software Foundation.
|
|
//
|
|
// You should have received a copy of the GNU General Public License and
|
|
// a copy of the GCC Runtime Library Exception along with this program;
|
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
// <http://www.gnu.org/licenses/>.
|
|
|
|
// ISO C Standard: 7.17 Common definitions <stddef.h>
|
|
|
|
// Any one of these symbols __need_* means that GNU libc
|
|
// wants us just to define one data type. So don't define
|
|
// the symbols that indicate this file's entire job has been done.
|
|
|
|
// This avoids lossage on SunOS but only if stdtypes.h comes first.
|
|
// There's no way to win with the other order! Sun lossage.
|
|
|
|
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
|
|
// Just ignore it.
|
|
|
|
// On VxWorks, <type/vxTypesBase.h> may have defined macros like
|
|
// _TYPE_size_t which will typedef size_t. fixincludes patched the
|
|
// vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
|
|
// not defined, and so that defining this macro defines _GCC_SIZE_T.
|
|
// If we find that the macros are still defined at this point, we must
|
|
// invoke them so that the type is defined as expected.
|
|
|
|
// In case nobody has defined these types, but we aren't running under
|
|
// GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
|
|
// __WCHAR_TYPE__ have reasonable values. This can happen if the
|
|
// parts of GCC is compiled by an older compiler, that actually
|
|
// include gstddef.h, such as collect2.
|
|
|
|
// Signed type of difference of two pointers.
|
|
|
|
// Define this type if we are doing the whole job,
|
|
// or if we want this type in particular.
|
|
|
|
// Unsigned type of `sizeof' something.
|
|
|
|
// Define this type if we are doing the whole job,
|
|
// or if we want this type in particular.
|
|
|
|
// Wide character type.
|
|
// Locale-writers should change this as necessary to
|
|
// be big enough to hold unique values not between 0 and 127,
|
|
// and not (wchar_t) -1, for each defined multibyte character.
|
|
|
|
// Define this type if we are doing the whole job,
|
|
// or if we want this type in particular.
|
|
|
|
// A null pointer constant.
|
|
|
|
// Old compatibility names for C types.
|
|
type Ulong = uint64 /* types.h:148:27 */
|
|
type Ushort = uint16 /* types.h:149:28 */
|
|
type Uint = uint32 /* types.h:150:22 */
|
|
|
|
// These size-specific names are used by some of the inet code.
|
|
|
|
// Define intN_t types.
|
|
// 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/>.
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
type Int8_t = X__int8_t /* stdint-intn.h:24:18 */
|
|
type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
|
|
type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
|
|
type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
|
|
|
|
// These were defined by ISO C without the first `_'.
|
|
type U_int8_t = X__uint8_t /* types.h:158:19 */
|
|
type U_int16_t = X__uint16_t /* types.h:159:20 */
|
|
type U_int32_t = X__uint32_t /* types.h:160:20 */
|
|
type U_int64_t = X__uint64_t /* types.h:161:20 */
|
|
|
|
type Register_t = int32 /* types.h:164:13 */
|
|
|
|
// It also defines `fd_set' and the FD_* macros for `select'.
|
|
// `fd_set' type and related macros, and `select'/`pselect' declarations.
|
|
// Copyright (C) 1996-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/>.
|
|
|
|
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
|
|
|
|
// 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
|
|
// 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/>.
|
|
|
|
// Get definition of needed basic types.
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
// Get __FD_* definitions.
|
|
// 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
|
|
// 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/>.
|
|
|
|
// We don't use `memset' because this would require a prototype and
|
|
// the array isn't too big.
|
|
|
|
// Get sigset_t.
|
|
|
|
type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */
|
|
|
|
// A set of signals to be blocked, unblocked, or waited for.
|
|
type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
|
|
|
|
// Get definition of timer specification structures.
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// Never include this file directly; use <sys/types.h> instead.
|
|
|
|
// A time value that is accurate to the nearest
|
|
//
|
|
// microsecond but also has a range of years.
|
|
type Timeval = struct {
|
|
Ftv_sec X__time_t
|
|
Ftv_usec X__suseconds_t
|
|
} /* struct_timeval.h:8:1 */
|
|
|
|
// NB: Include guard matches what <linux/time.h> uses.
|
|
|
|
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
|
// 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/>.
|
|
|
|
// 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/>.
|
|
|
|
// 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:10:1 */
|
|
|
|
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
|
|
|
|
// The fd_set member is required to be an array of longs.
|
|
type X__fd_mask = int64 /* select.h:49:18 */
|
|
|
|
// Some versions of <linux/posix_types.h> define this macros.
|
|
// It's easier to assume 8-bit bytes than to get CHAR_BIT.
|
|
|
|
// fd_set for select and pselect.
|
|
type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */
|
|
|
|
// Maximum number of file descriptors in `fd_set'.
|
|
|
|
// Sometimes the fd_set member is assumed to have this type.
|
|
type Fd_mask = X__fd_mask /* select.h:77:19 */
|
|
|
|
// Define some inlines helping to catch common problems.
|
|
|
|
type Blksize_t = X__blksize_t /* types.h:185:21 */
|
|
|
|
// Types from the Large File Support interface.
|
|
type Blkcnt_t = X__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks.
|
|
type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks.
|
|
type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes.
|
|
|
|
// Now add the thread types.
|
|
// 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/>.
|
|
|
|
// 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/>.
|
|
|
|
// Common definition of pthread_mutex_t.
|
|
|
|
type X__pthread_internal_list = struct {
|
|
F__prev uintptr
|
|
F__next uintptr
|
|
} /* thread-shared-types.h:49:9 */
|
|
|
|
// Type to count file system inodes.
|
|
|
|
// Now add the thread types.
|
|
// 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/>.
|
|
|
|
// 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/>.
|
|
|
|
// Common definition of pthread_mutex_t.
|
|
|
|
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 */
|
|
|
|
// 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.
|
|
|
|
// Default mutex implementation 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/>.
|
|
|
|
// Generic struct for both POSIX and C11 mutexes. New ports are expected
|
|
// to use the default layout, however architecture can redefine it to
|
|
// add arch-specific extension (such as lock-elision). The struct have
|
|
// a size of 32 bytes on LP32 and 40 bytes on LP64 architectures.
|
|
|
|
type X__pthread_mutex_s = struct {
|
|
F__lock int32
|
|
F__count uint32
|
|
F__owner int32
|
|
F__nusers uint32
|
|
F__kind int32
|
|
F__spins int32
|
|
F__list X__pthread_list_t
|
|
} /* struct_mutex.h:27: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.
|
|
|
|
// AArch64 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__pad1 uint64
|
|
F__pad2 uint64
|
|
F__flags uint32
|
|
F__ccgo_pad1 [4]byte
|
|
} /* struct_rwlock.h:23:1 */
|
|
|
|
// Common definition of pthread_cond_t.
|
|
|
|
type X__pthread_cond_s = struct {
|
|
F__0 struct{ F__wseq uint64 }
|
|
F__8 struct{ F__g1_start uint64 }
|
|
F__g_refs [2]uint32
|
|
F__g_size [2]uint32
|
|
F__g1_orig_size uint32
|
|
F__wrefs uint32
|
|
F__g_signals [2]uint32
|
|
} /* thread-shared-types.h:92:1 */
|
|
|
|
// Thread identifiers. The structure of the attribute type is not
|
|
//
|
|
// exposed on purpose.
|
|
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 {
|
|
F__ccgo_pad1 [0]uint32
|
|
F__size [8]uint8
|
|
} /* 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 {
|
|
F__ccgo_pad1 [0]uint32
|
|
F__size [8]uint8
|
|
} /* pthreadtypes.h:45:3 */
|
|
|
|
// Keys for thread-specific data
|
|
type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
|
|
|
|
// Once-only execution
|
|
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
|
|
|
|
type Pthread_attr_t1 = struct {
|
|
F__ccgo_pad1 [0]uint64
|
|
F__size [64]uint8
|
|
} /* pthreadtypes.h:56:1 */
|
|
|
|
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
|
|
|
|
type Pthread_mutex_t = struct {
|
|
F__data X__pthread_mutex_s
|
|
F__ccgo_pad1 [8]byte
|
|
} /* pthreadtypes.h:72:3 */
|
|
|
|
type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
|
|
|
|
// Data structure for reader-writer lock variable handling. The
|
|
//
|
|
// structure of the attribute type is deliberately not exposed.
|
|
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
|
|
|
|
type Pthread_rwlockattr_t = struct {
|
|
F__ccgo_pad1 [0]uint64
|
|
F__size [8]uint8
|
|
} /* pthreadtypes.h:97:3 */
|
|
|
|
// POSIX spinlock data type.
|
|
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 {
|
|
F__ccgo_pad1 [0]uint64
|
|
F__size [32]uint8
|
|
} /* pthreadtypes.h:112:3 */
|
|
|
|
type Pthread_barrierattr_t = struct {
|
|
F__ccgo_pad1 [0]uint32
|
|
F__size [8]uint8
|
|
} /* pthreadtypes.h:118:3 */
|
|
|
|
// Reentrant versions of the `random' family of functions.
|
|
// These functions all use the following data structure to contain
|
|
// state, rather than global state variables.
|
|
|
|
type Random_data = struct {
|
|
Ffptr uintptr
|
|
Frptr uintptr
|
|
Fstate uintptr
|
|
Frand_type int32
|
|
Frand_deg int32
|
|
Frand_sep int32
|
|
F__ccgo_pad1 [4]byte
|
|
Fend_ptr uintptr
|
|
} /* stdlib.h:423:1 */
|
|
|
|
// Data structure for communication with thread safe versions. This
|
|
//
|
|
// type is to be regarded as opaque. It's only exported because users
|
|
// have to allocate objects of this type.
|
|
type Drand48_data = struct {
|
|
F__x [3]uint16
|
|
F__old_x [3]uint16
|
|
F__c uint16
|
|
F__init uint16
|
|
F__a uint64
|
|
} /* stdlib.h:490:1 */
|
|
|
|
// Shorthand for type of comparison functions.
|
|
type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
|
|
|
|
// Floating-point inline functions for stdlib.h.
|
|
// 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
|
|
// 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 some macros helping to catch buffer overflows.
|
|
|
|
var _ uint8 /* gen.c:2:13: */
|