Excluded ccls cache, day2-2
This commit is contained in:
parent
5acad23788
commit
fe694d1e6d
124 changed files with 12 additions and 10577 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -391,6 +391,9 @@ fabric.properties
|
|||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
# ---> C
|
||||
# ccls Language Server
|
||||
*.ccls-cache
|
||||
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
|
|
10
README.md
10
README.md
|
@ -7,11 +7,13 @@
|
|||
## License
|
||||
|
||||
I don't expect this to be used in any relevant capacity. Hence, this code is
|
||||
under the most serious copyleft license I could find - the [EPL 2.0][2]. This is
|
||||
a rather fun license for people who really mean it. It virtually checks _all_
|
||||
the boxes on (choosealicense.com)[https://choosealicense.com/appendix/].
|
||||
under the most serious copyleft license I found out there, the [EPL 2.0][2].
|
||||
This is a rather interesting license for people who _really_ mean it. It
|
||||
virtually checks all the boxes on
|
||||
[choosealicense.com](https://choosealicense.com/appendix/). Smells like
|
||||
committee.
|
||||
|
||||
Beware when cloning! I might take ownership of your favorite pet :)
|
||||
Beware of cloning! I might take ownership of your favorite pet 🙂
|
||||
|
||||
[1]: https://adventofcode.com/2019/
|
||||
[2]: https://eupl.eu/1.2/en/
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
/* Copyright (C) 1992-2019 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/>. */
|
||||
|
||||
#ifndef _ALLOCA_H
|
||||
#define _ALLOCA_H 1
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Remove any previous definitions. */
|
||||
#undef alloca
|
||||
|
||||
/* Allocate a block that will be freed when the calling function exits. */
|
||||
extern void *alloca (size_t __size) __THROW;
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define alloca(size) __builtin_alloca (size)
|
||||
#endif /* GCC. */
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* alloca.h */
|
Binary file not shown.
|
@ -1,79 +0,0 @@
|
|||
/* Macros and inline functions to swap the order of bytes in integer values.
|
||||
Copyright (C) 1997-2019 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/>. */
|
||||
|
||||
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
|
||||
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_BYTESWAP_H
|
||||
#define _BITS_BYTESWAP_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Swap bytes in 16-bit value. */
|
||||
#define __bswap_constant_16(x) \
|
||||
((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
|
||||
|
||||
static __inline __uint16_t
|
||||
__bswap_16 (__uint16_t __bsx)
|
||||
{
|
||||
#if __GNUC_PREREQ (4, 8)
|
||||
return __builtin_bswap16 (__bsx);
|
||||
#else
|
||||
return __bswap_constant_16 (__bsx);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Swap bytes in 32-bit value. */
|
||||
#define __bswap_constant_32(x) \
|
||||
((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) \
|
||||
| (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
|
||||
|
||||
static __inline __uint32_t
|
||||
__bswap_32 (__uint32_t __bsx)
|
||||
{
|
||||
#if __GNUC_PREREQ (4, 3)
|
||||
return __builtin_bswap32 (__bsx);
|
||||
#else
|
||||
return __bswap_constant_32 (__bsx);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Swap bytes in 64-bit value. */
|
||||
#define __bswap_constant_64(x) \
|
||||
((((x) & 0xff00000000000000ull) >> 56) \
|
||||
| (((x) & 0x00ff000000000000ull) >> 40) \
|
||||
| (((x) & 0x0000ff0000000000ull) >> 24) \
|
||||
| (((x) & 0x000000ff00000000ull) >> 8) \
|
||||
| (((x) & 0x00000000ff000000ull) << 8) \
|
||||
| (((x) & 0x0000000000ff0000ull) << 24) \
|
||||
| (((x) & 0x000000000000ff00ull) << 40) \
|
||||
| (((x) & 0x00000000000000ffull) << 56))
|
||||
|
||||
__extension__ static __inline __uint64_t
|
||||
__bswap_64 (__uint64_t __bsx)
|
||||
{
|
||||
#if __GNUC_PREREQ (4, 3)
|
||||
return __builtin_bswap64 (__bsx);
|
||||
#else
|
||||
return __bswap_constant_64 (__bsx);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* _BITS_BYTESWAP_H */
|
Binary file not shown.
|
@ -1,7 +0,0 @@
|
|||
/* i386/x86_64 are little-endian. */
|
||||
|
||||
#ifndef _ENDIAN_H
|
||||
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
|
||||
#endif
|
||||
|
||||
#define __BYTE_ORDER __LITTLE_ENDIAN
|
Binary file not shown.
|
@ -1,329 +0,0 @@
|
|||
/* Macros to control TS 18661-3 glibc features where the same
|
||||
definitions are appropriate for all platforms.
|
||||
Copyright (C) 2017-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_FLOATN_COMMON_H
|
||||
#define _BITS_FLOATN_COMMON_H
|
||||
|
||||
#include <features.h>
|
||||
#include <bits/long-double.h>
|
||||
|
||||
/* 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. */
|
||||
#define __HAVE_FLOAT16 0
|
||||
#define __HAVE_FLOAT32 1
|
||||
#define __HAVE_FLOAT64 1
|
||||
#define __HAVE_FLOAT32X 1
|
||||
#define __HAVE_FLOAT128X 0
|
||||
|
||||
/* 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. */
|
||||
#define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16
|
||||
#define __HAVE_DISTINCT_FLOAT32 0
|
||||
#define __HAVE_DISTINCT_FLOAT64 0
|
||||
#define __HAVE_DISTINCT_FLOAT32X 0
|
||||
#define __HAVE_DISTINCT_FLOAT64X 0
|
||||
#define __HAVE_DISTINCT_FLOAT128X __HAVE_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. */
|
||||
#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 \
|
||||
&& __LDBL_MANT_DIG__ != 113)
|
||||
|
||||
/* 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). */
|
||||
#if __GNUC_PREREQ (7, 0) && !defined __cplusplus
|
||||
# define __HAVE_FLOATN_NOT_TYPEDEF 1
|
||||
#else
|
||||
# define __HAVE_FLOATN_NOT_TYPEDEF 0
|
||||
#endif
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
/* 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. */
|
||||
# if __HAVE_FLOAT16
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
/* No corresponding suffix available for this type. */
|
||||
# define __f16(x) ((_Float16) x##f)
|
||||
# else
|
||||
# define __f16(x) x##f16
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT32
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# define __f32(x) x##f
|
||||
# else
|
||||
# define __f32(x) x##f32
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT64
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# ifdef __NO_LONG_DOUBLE_MATH
|
||||
# define __f64(x) x##l
|
||||
# else
|
||||
# define __f64(x) x
|
||||
# endif
|
||||
# else
|
||||
# define __f64(x) x##f64
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT32X
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# define __f32x(x) x
|
||||
# else
|
||||
# define __f32x(x) x##f32x
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT64X
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# if __HAVE_FLOAT64X_LONG_DOUBLE
|
||||
# define __f64x(x) x##l
|
||||
# else
|
||||
# define __f64x(x) __f128 (x)
|
||||
# endif
|
||||
# else
|
||||
# define __f64x(x) x##f64x
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT128X
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# error "_Float128X supported but no constant suffix"
|
||||
# else
|
||||
# define __f128x(x) x##f128x
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* Defined to a complex type if __HAVE_<type> is 1. */
|
||||
# if __HAVE_FLOAT16
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef _Complex float __cfloat16 __attribute__ ((__mode__ (__HC__)));
|
||||
# define __CFLOAT16 __cfloat16
|
||||
# else
|
||||
# define __CFLOAT16 _Complex _Float16
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT32
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# define __CFLOAT32 _Complex float
|
||||
# else
|
||||
# define __CFLOAT32 _Complex _Float32
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT64
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# ifdef __NO_LONG_DOUBLE_MATH
|
||||
# define __CFLOAT64 _Complex long double
|
||||
# else
|
||||
# define __CFLOAT64 _Complex double
|
||||
# endif
|
||||
# else
|
||||
# define __CFLOAT64 _Complex _Float64
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT32X
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# define __CFLOAT32X _Complex double
|
||||
# else
|
||||
# define __CFLOAT32X _Complex _Float32x
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT64X
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# if __HAVE_FLOAT64X_LONG_DOUBLE
|
||||
# define __CFLOAT64X _Complex long double
|
||||
# else
|
||||
# define __CFLOAT64X __CFLOAT128
|
||||
# endif
|
||||
# else
|
||||
# define __CFLOAT64X _Complex _Float64x
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT128X
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# error "_Float128X supported but no complex type"
|
||||
# else
|
||||
# define __CFLOAT128X _Complex _Float128x
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* The remaining of this file provides support for older compilers. */
|
||||
# if __HAVE_FLOAT16
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef float _Float16 __attribute__ ((__mode__ (__HF__)));
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf16() ((_Float16) __builtin_huge_val ())
|
||||
# define __builtin_inff16() ((_Float16) __builtin_inf ())
|
||||
# define __builtin_nanf16(x) ((_Float16) __builtin_nan (x))
|
||||
# define __builtin_nansf16(x) ((_Float16) __builtin_nans (x))
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT32
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef float _Float32;
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf32() (__builtin_huge_valf ())
|
||||
# define __builtin_inff32() (__builtin_inff ())
|
||||
# define __builtin_nanf32(x) (__builtin_nanf (x))
|
||||
# define __builtin_nansf32(x) (__builtin_nansf (x))
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT64
|
||||
|
||||
/* 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. */
|
||||
|
||||
# ifdef __NO_LONG_DOUBLE_MATH
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef long double _Float64;
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf64() (__builtin_huge_vall ())
|
||||
# define __builtin_inff64() (__builtin_infl ())
|
||||
# define __builtin_nanf64(x) (__builtin_nanl (x))
|
||||
# define __builtin_nansf64(x) (__builtin_nansl (x))
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef double _Float64;
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf64() (__builtin_huge_val ())
|
||||
# define __builtin_inff64() (__builtin_inf ())
|
||||
# define __builtin_nanf64(x) (__builtin_nan (x))
|
||||
# define __builtin_nansf64(x) (__builtin_nans (x))
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT32X
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef double _Float32x;
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf32x() (__builtin_huge_val ())
|
||||
# define __builtin_inff32x() (__builtin_inf ())
|
||||
# define __builtin_nanf32x(x) (__builtin_nan (x))
|
||||
# define __builtin_nansf32x(x) (__builtin_nans (x))
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT64X
|
||||
|
||||
# if __HAVE_FLOAT64X_LONG_DOUBLE
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef long double _Float64x;
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf64x() (__builtin_huge_vall ())
|
||||
# define __builtin_inff64x() (__builtin_infl ())
|
||||
# define __builtin_nanf64x(x) (__builtin_nanl (x))
|
||||
# define __builtin_nansf64x(x) (__builtin_nansl (x))
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef _Float128 _Float64x;
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf64x() (__builtin_huge_valf128 ())
|
||||
# define __builtin_inff64x() (__builtin_inff128 ())
|
||||
# define __builtin_nanf64x(x) (__builtin_nanf128 (x))
|
||||
# define __builtin_nansf64x(x) (__builtin_nansf128 (x))
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# if __HAVE_FLOAT128X
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
# error "_Float128x supported but no type"
|
||||
# endif
|
||||
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf128x() ((_Float128x) __builtin_huge_val ())
|
||||
# define __builtin_inff128x() ((_Float128x) __builtin_inf ())
|
||||
# define __builtin_nanf128x(x) ((_Float128x) __builtin_nan (x))
|
||||
# define __builtin_nansf128x(x) ((_Float128x) __builtin_nans (x))
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#endif /* !__ASSEMBLER__. */
|
||||
|
||||
#endif /* _BITS_FLOATN_COMMON_H */
|
Binary file not shown.
|
@ -1,121 +0,0 @@
|
|||
/* Macros to control TS 18661-3 glibc features on x86.
|
||||
Copyright (C) 2017-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_FLOATN_H
|
||||
#define _BITS_FLOATN_H
|
||||
|
||||
#include <features.h>
|
||||
|
||||
/* 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. The required
|
||||
libgcc support was added some time after the basic compiler
|
||||
support, for x86_64 and x86. */
|
||||
#if (defined __x86_64__ \
|
||||
? __GNUC_PREREQ (4, 3) \
|
||||
: (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
|
||||
# define __HAVE_FLOAT128 1
|
||||
#else
|
||||
# define __HAVE_FLOAT128 0
|
||||
#endif
|
||||
|
||||
/* 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. */
|
||||
#if __HAVE_FLOAT128
|
||||
# define __HAVE_DISTINCT_FLOAT128 1
|
||||
#else
|
||||
# define __HAVE_DISTINCT_FLOAT128 0
|
||||
#endif
|
||||
|
||||
/* 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. */
|
||||
#define __HAVE_FLOAT64X 1
|
||||
|
||||
/* 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. */
|
||||
#define __HAVE_FLOAT64X_LONG_DOUBLE 1
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
/* Defined to concatenate the literal suffix to be used with _Float128
|
||||
types, if __HAVE_FLOAT128 is 1. */
|
||||
# if __HAVE_FLOAT128
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
/* The literal suffix f128 exists only since GCC 7.0. */
|
||||
# define __f128(x) x##q
|
||||
# else
|
||||
# define __f128(x) x##f128
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */
|
||||
# if __HAVE_FLOAT128
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
/* Add a typedef for older GCC compilers which don't natively support
|
||||
_Complex _Float128. */
|
||||
typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
|
||||
# define __CFLOAT128 __cfloat128
|
||||
# else
|
||||
# define __CFLOAT128 _Complex _Float128
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* The remaining of this file provides support for older compilers. */
|
||||
# if __HAVE_FLOAT128
|
||||
|
||||
/* The type _Float128 exists only since GCC 7.0. */
|
||||
# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
|
||||
typedef __float128 _Float128;
|
||||
# endif
|
||||
|
||||
/* __builtin_huge_valf128 doesn't exist before GCC 7.0. */
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ())
|
||||
# endif
|
||||
|
||||
/* Older GCC has only a subset of built-in functions for _Float128 on
|
||||
x86, and __builtin_infq is not usable in static initializers.
|
||||
Converting a narrower sNaN to _Float128 produces a quiet NaN, so
|
||||
attempts to use _Float128 sNaNs will not work properly with older
|
||||
compilers. */
|
||||
# if !__GNUC_PREREQ (7, 0)
|
||||
# define __builtin_copysignf128 __builtin_copysignq
|
||||
# define __builtin_fabsf128 __builtin_fabsq
|
||||
# define __builtin_inff128() ((_Float128) __builtin_inf ())
|
||||
# define __builtin_nanf128(x) ((_Float128) __builtin_nan (x))
|
||||
# define __builtin_nansf128(x) ((_Float128) __builtin_nans (x))
|
||||
# endif
|
||||
|
||||
/* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*,
|
||||
e.g.: __builtin_signbitf128, before GCC 6. However, there has never
|
||||
been a __builtin_signbitf128 in GCC and the type-generic builtin is
|
||||
only available since GCC 6. */
|
||||
# if !__GNUC_PREREQ (6, 0)
|
||||
# define __builtin_signbitf128 __signbitf128
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#endif /* !__ASSEMBLER__. */
|
||||
|
||||
#include <bits/floatn-common.h>
|
||||
|
||||
#endif /* _BITS_FLOATN_H */
|
Binary file not shown.
|
@ -1,70 +0,0 @@
|
|||
/* Handle feature test macros at the start of a header.
|
||||
Copyright (C) 2016-2019 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/>. */
|
||||
|
||||
/* This header is internal to glibc and should not be included outside
|
||||
of glibc headers. Headers including it must define
|
||||
__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header
|
||||
cannot have multiple include guards because ISO C feature test
|
||||
macros depend on the definition of the macro when an affected
|
||||
header is included, not when the first system header is
|
||||
included. */
|
||||
|
||||
#ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
|
||||
# error "Never include <bits/libc-header-start.h> directly."
|
||||
#endif
|
||||
|
||||
#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
|
||||
|
||||
#include <features.h>
|
||||
|
||||
/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
|
||||
macro. */
|
||||
#undef __GLIBC_USE_LIB_EXT2
|
||||
#if (defined __USE_GNU \
|
||||
|| (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0))
|
||||
# define __GLIBC_USE_LIB_EXT2 1
|
||||
#else
|
||||
# define __GLIBC_USE_LIB_EXT2 0
|
||||
#endif
|
||||
|
||||
/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
macro. */
|
||||
#undef __GLIBC_USE_IEC_60559_BFP_EXT
|
||||
#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
# define __GLIBC_USE_IEC_60559_BFP_EXT 1
|
||||
#else
|
||||
# define __GLIBC_USE_IEC_60559_BFP_EXT 0
|
||||
#endif
|
||||
|
||||
/* ISO/IEC TS 18661-4:2015 defines the
|
||||
__STDC_WANT_IEC_60559_FUNCS_EXT__ macro. */
|
||||
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT
|
||||
#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
# define __GLIBC_USE_IEC_60559_FUNCS_EXT 1
|
||||
#else
|
||||
# define __GLIBC_USE_IEC_60559_FUNCS_EXT 0
|
||||
#endif
|
||||
|
||||
/* ISO/IEC TS 18661-3:2015 defines the
|
||||
__STDC_WANT_IEC_60559_TYPES_EXT__ macro. */
|
||||
#undef __GLIBC_USE_IEC_60559_TYPES_EXT
|
||||
#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
# define __GLIBC_USE_IEC_60559_TYPES_EXT 1
|
||||
#else
|
||||
# define __GLIBC_USE_IEC_60559_TYPES_EXT 0
|
||||
#endif
|
Binary file not shown.
|
@ -1,20 +0,0 @@
|
|||
/* Properties of long double type. ldbl-96 version.
|
||||
Copyright (C) 2016-2019 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
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* long double is distinct from double, so there is nothing to
|
||||
define here. */
|
Binary file not shown.
|
@ -1,106 +0,0 @@
|
|||
/* Copyright (C) 2002-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_PTHREADTYPES_ARCH_H
|
||||
#define _BITS_PTHREADTYPES_ARCH_H 1
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#ifdef __x86_64__
|
||||
# if __WORDSIZE == 64
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 40
|
||||
# define __SIZEOF_PTHREAD_ATTR_T 56
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 40
|
||||
# define __SIZEOF_PTHREAD_RWLOCK_T 56
|
||||
# define __SIZEOF_PTHREAD_BARRIER_T 32
|
||||
# else
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 32
|
||||
# define __SIZEOF_PTHREAD_ATTR_T 32
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 32
|
||||
# define __SIZEOF_PTHREAD_RWLOCK_T 44
|
||||
# define __SIZEOF_PTHREAD_BARRIER_T 20
|
||||
# endif
|
||||
#else
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 24
|
||||
# define __SIZEOF_PTHREAD_ATTR_T 36
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 24
|
||||
# define __SIZEOF_PTHREAD_RWLOCK_T 32
|
||||
# define __SIZEOF_PTHREAD_BARRIER_T 20
|
||||
#endif
|
||||
#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_COND_T 48
|
||||
#define __SIZEOF_PTHREAD_CONDATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
|
||||
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
|
||||
|
||||
/* Definitions for internal mutex struct. */
|
||||
#define __PTHREAD_COMPAT_PADDING_MID
|
||||
#define __PTHREAD_COMPAT_PADDING_END
|
||||
#define __PTHREAD_MUTEX_LOCK_ELISION 1
|
||||
#ifdef __x86_64__
|
||||
# define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
|
||||
# define __PTHREAD_MUTEX_USE_UNION 0
|
||||
#else
|
||||
# define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
|
||||
# define __PTHREAD_MUTEX_USE_UNION 1
|
||||
#endif
|
||||
|
||||
#define __LOCK_ALIGNMENT
|
||||
#define __ONCE_ALIGNMENT
|
||||
|
||||
struct __pthread_rwlock_arch_t
|
||||
{
|
||||
unsigned int __readers;
|
||||
unsigned int __writers;
|
||||
unsigned int __wrphase_futex;
|
||||
unsigned int __writers_futex;
|
||||
unsigned int __pad3;
|
||||
unsigned int __pad4;
|
||||
#ifdef __x86_64__
|
||||
int __cur_writer;
|
||||
int __shared;
|
||||
signed char __rwelision;
|
||||
# ifdef __ILP32__
|
||||
unsigned char __pad1[3];
|
||||
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 }
|
||||
# else
|
||||
unsigned char __pad1[7];
|
||||
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }
|
||||
# endif
|
||||
unsigned long int __pad2;
|
||||
/* FLAGS must stay at this position in the structure to maintain
|
||||
binary compatibility. */
|
||||
unsigned int __flags;
|
||||
# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
|
||||
#else
|
||||
/* FLAGS must stay at this position in the structure to maintain
|
||||
binary compatibility. */
|
||||
unsigned char __flags;
|
||||
unsigned char __shared;
|
||||
signed char __rwelision;
|
||||
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0
|
||||
unsigned char __pad2;
|
||||
int __cur_writer;
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifndef __x86_64__
|
||||
/* Extra attributes for the cleanup functions. */
|
||||
# define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
|
||||
#endif
|
||||
|
||||
#endif /* bits/pthreadtypes.h */
|
Binary file not shown.
|
@ -1,121 +0,0 @@
|
|||
/* Declaration of common pthread types for all architectures.
|
||||
Copyright (C) 2017-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_PTHREADTYPES_COMMON_H
|
||||
# define _BITS_PTHREADTYPES_COMMON_H 1
|
||||
|
||||
/* For internal mutex and condition variable definitions. */
|
||||
#include <bits/thread-shared-types.h>
|
||||
|
||||
/* Thread identifiers. The structure of the attribute type is not
|
||||
exposed on purpose. */
|
||||
typedef unsigned long int pthread_t;
|
||||
|
||||
|
||||
/* Data structures for mutex handling. The structure of the attribute
|
||||
type is not exposed on purpose. */
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
|
||||
int __align;
|
||||
} pthread_mutexattr_t;
|
||||
|
||||
|
||||
/* Data structure for condition variable handling. The structure of
|
||||
the attribute type is not exposed on purpose. */
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_CONDATTR_T];
|
||||
int __align;
|
||||
} pthread_condattr_t;
|
||||
|
||||
|
||||
/* Keys for thread-specific data */
|
||||
typedef unsigned int pthread_key_t;
|
||||
|
||||
|
||||
/* Once-only execution */
|
||||
typedef int __ONCE_ALIGNMENT pthread_once_t;
|
||||
|
||||
|
||||
union pthread_attr_t
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_ATTR_T];
|
||||
long int __align;
|
||||
};
|
||||
#ifndef __have_pthread_attr_t
|
||||
typedef union pthread_attr_t pthread_attr_t;
|
||||
# define __have_pthread_attr_t 1
|
||||
#endif
|
||||
|
||||
|
||||
typedef union
|
||||
{
|
||||
struct __pthread_mutex_s __data;
|
||||
char __size[__SIZEOF_PTHREAD_MUTEX_T];
|
||||
long int __align;
|
||||
} pthread_mutex_t;
|
||||
|
||||
|
||||
typedef union
|
||||
{
|
||||
struct __pthread_cond_s __data;
|
||||
char __size[__SIZEOF_PTHREAD_COND_T];
|
||||
__extension__ long long int __align;
|
||||
} pthread_cond_t;
|
||||
|
||||
|
||||
#if defined __USE_UNIX98 || defined __USE_XOPEN2K
|
||||
/* Data structure for reader-writer lock variable handling. The
|
||||
structure of the attribute type is deliberately not exposed. */
|
||||
typedef union
|
||||
{
|
||||
struct __pthread_rwlock_arch_t __data;
|
||||
char __size[__SIZEOF_PTHREAD_RWLOCK_T];
|
||||
long int __align;
|
||||
} pthread_rwlock_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
|
||||
long int __align;
|
||||
} pthread_rwlockattr_t;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __USE_XOPEN2K
|
||||
/* POSIX spinlock data type. */
|
||||
typedef volatile int pthread_spinlock_t;
|
||||
|
||||
|
||||
/* POSIX barriers data type. The structure of the type is
|
||||
deliberately not exposed. */
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_BARRIER_T];
|
||||
long int __align;
|
||||
} pthread_barrier_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
|
||||
int __align;
|
||||
} pthread_barrierattr_t;
|
||||
#endif
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,63 +0,0 @@
|
|||
/* Copyright (C) 1997-2019 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/>. */
|
||||
|
||||
#ifndef _SYS_SELECT_H
|
||||
# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
|
||||
# if __WORDSIZE == 64
|
||||
# define __FD_ZERO_STOS "stosq"
|
||||
# else
|
||||
# define __FD_ZERO_STOS "stosl"
|
||||
# endif
|
||||
|
||||
# define __FD_ZERO(fdsp) \
|
||||
do { \
|
||||
int __d0, __d1; \
|
||||
__asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS \
|
||||
: "=c" (__d0), "=D" (__d1) \
|
||||
: "a" (0), "0" (sizeof (fd_set) \
|
||||
/ sizeof (__fd_mask)), \
|
||||
"1" (&__FDS_BITS (fdsp)[0]) \
|
||||
: "memory"); \
|
||||
} while (0)
|
||||
|
||||
#else /* ! GNU CC */
|
||||
|
||||
/* We don't use `memset' because this would require a prototype and
|
||||
the array isn't too big. */
|
||||
# define __FD_ZERO(set) \
|
||||
do { \
|
||||
unsigned int __i; \
|
||||
fd_set *__arr = (set); \
|
||||
for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
|
||||
__FDS_BITS (__arr)[__i] = 0; \
|
||||
} while (0)
|
||||
|
||||
#endif /* GNU CC */
|
||||
|
||||
#define __FD_SET(d, set) \
|
||||
((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d)))
|
||||
#define __FD_CLR(d, set) \
|
||||
((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d)))
|
||||
#define __FD_ISSET(d, set) \
|
||||
((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0)
|
Binary file not shown.
|
@ -1,29 +0,0 @@
|
|||
/* Define intN_t types.
|
||||
Copyright (C) 2017-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_STDINT_INTN_H
|
||||
#define _BITS_STDINT_INTN_H 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
typedef __int8_t int8_t;
|
||||
typedef __int16_t int16_t;
|
||||
typedef __int32_t int32_t;
|
||||
typedef __int64_t int64_t;
|
||||
|
||||
#endif /* bits/stdint-intn.h */
|
Binary file not shown.
|
@ -1,39 +0,0 @@
|
|||
/* Copyright (C) 1994-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_STDIO_LIM_H
|
||||
#define _BITS_STDIO_LIM_H 1
|
||||
|
||||
#ifndef _STDIO_H
|
||||
# error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
|
||||
#endif
|
||||
|
||||
#define L_tmpnam 20
|
||||
#define TMP_MAX 238328
|
||||
#define FILENAME_MAX 4096
|
||||
|
||||
#ifdef __USE_POSIX
|
||||
# define L_ctermid 9
|
||||
# if !defined __USE_XOPEN2K || defined __USE_GNU
|
||||
# define L_cuserid 9
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#undef FOPEN_MAX
|
||||
#define FOPEN_MAX 16
|
||||
|
||||
#endif /* bits/stdio_lim.h */
|
Binary file not shown.
|
@ -1,29 +0,0 @@
|
|||
/* Floating-point inline functions for stdlib.h.
|
||||
Copyright (C) 2012-2019 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/>. */
|
||||
|
||||
#ifndef _STDLIB_H
|
||||
# error "Never use <bits/stdlib-float.h> directly; include <stdlib.h> instead."
|
||||
#endif
|
||||
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
__extern_inline double
|
||||
__NTH (atof (const char *__nptr))
|
||||
{
|
||||
return strtod (__nptr, (char **) NULL);
|
||||
}
|
||||
#endif /* Optimizing and Inlining. */
|
Binary file not shown.
|
@ -1,32 +0,0 @@
|
|||
/* Declare sys_errlist and sys_nerr, or don't. Compatibility (do) version.
|
||||
Copyright (C) 2002-2019 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/>. */
|
||||
|
||||
#ifndef _STDIO_H
|
||||
# error "Never include <bits/sys_errlist.h> directly; use <stdio.h> instead."
|
||||
#endif
|
||||
|
||||
/* sys_errlist and sys_nerr are deprecated. Use strerror instead. */
|
||||
|
||||
#ifdef __USE_MISC
|
||||
extern int sys_nerr;
|
||||
extern const char *const sys_errlist[];
|
||||
#endif
|
||||
#ifdef __USE_GNU
|
||||
extern int _sys_nerr;
|
||||
extern const char *const _sys_errlist[];
|
||||
#endif
|
Binary file not shown.
|
@ -1,198 +0,0 @@
|
|||
/* Common threading primitives definitions for both POSIX and C11.
|
||||
Copyright (C) 2017-2019 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/>. */
|
||||
|
||||
#ifndef _THREAD_SHARED_TYPES_H
|
||||
#define _THREAD_SHARED_TYPES_H 1
|
||||
|
||||
/* 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.
|
||||
|
||||
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:
|
||||
|
||||
__LOCK_ALIGNMENT - for internal lock/futex usage.
|
||||
|
||||
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.
|
||||
*/
|
||||
#include <bits/pthreadtypes-arch.h>
|
||||
|
||||
/* Common definition of pthread_mutex_t. */
|
||||
|
||||
#if !__PTHREAD_MUTEX_USE_UNION
|
||||
typedef struct __pthread_internal_list
|
||||
{
|
||||
struct __pthread_internal_list *__prev;
|
||||
struct __pthread_internal_list *__next;
|
||||
} __pthread_list_t;
|
||||
#else
|
||||
typedef struct __pthread_internal_slist
|
||||
{
|
||||
struct __pthread_internal_slist *__next;
|
||||
} __pthread_slist_t;
|
||||
#endif
|
||||
|
||||
/* Lock elision support. */
|
||||
#if __PTHREAD_MUTEX_LOCK_ELISION
|
||||
# if !__PTHREAD_MUTEX_USE_UNION
|
||||
# define __PTHREAD_SPINS_DATA \
|
||||
short __spins; \
|
||||
short __elision
|
||||
# define __PTHREAD_SPINS 0, 0
|
||||
# else
|
||||
# define __PTHREAD_SPINS_DATA \
|
||||
struct \
|
||||
{ \
|
||||
short __espins; \
|
||||
short __eelision; \
|
||||
} __elision_data
|
||||
# define __PTHREAD_SPINS { 0, 0 }
|
||||
# define __spins __elision_data.__espins
|
||||
# define __elision __elision_data.__eelision
|
||||
# endif
|
||||
#else
|
||||
# define __PTHREAD_SPINS_DATA int __spins
|
||||
/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */
|
||||
# define __PTHREAD_SPINS 0
|
||||
#endif
|
||||
|
||||
struct __pthread_mutex_s
|
||||
{
|
||||
int __lock __LOCK_ALIGNMENT;
|
||||
unsigned int __count;
|
||||
int __owner;
|
||||
#if !__PTHREAD_MUTEX_NUSERS_AFTER_KIND
|
||||
unsigned int __nusers;
|
||||
#endif
|
||||
/* KIND must stay at this position in the structure to maintain
|
||||
binary compatibility with static initializers.
|
||||
|
||||
Concurrency notes:
|
||||
The __kind of a mutex is initialized either by the static
|
||||
PTHREAD_MUTEX_INITIALIZER or by a call to pthread_mutex_init.
|
||||
|
||||
After a mutex has been initialized, the __kind of a mutex is usually not
|
||||
changed. BUT it can be set to -1 in pthread_mutex_destroy or elision can
|
||||
be enabled. This is done concurrently in the pthread_mutex_*lock functions
|
||||
by using the macro FORCE_ELISION. This macro is only defined for
|
||||
architectures which supports lock elision.
|
||||
|
||||
For elision, there are the flags PTHREAD_MUTEX_ELISION_NP and
|
||||
PTHREAD_MUTEX_NO_ELISION_NP which can be set in addition to the already set
|
||||
type of a mutex.
|
||||
Before a mutex is initialized, only PTHREAD_MUTEX_NO_ELISION_NP can be set
|
||||
with pthread_mutexattr_settype.
|
||||
After a mutex has been initialized, the functions pthread_mutex_*lock can
|
||||
enable elision - if the mutex-type and the machine supports it - by setting
|
||||
the flag PTHREAD_MUTEX_ELISION_NP. This is done concurrently. Afterwards
|
||||
the lock / unlock functions are using specific elision code-paths. */
|
||||
int __kind;
|
||||
__PTHREAD_COMPAT_PADDING_MID
|
||||
#if __PTHREAD_MUTEX_NUSERS_AFTER_KIND
|
||||
unsigned int __nusers;
|
||||
#endif
|
||||
#if !__PTHREAD_MUTEX_USE_UNION
|
||||
__PTHREAD_SPINS_DATA;
|
||||
__pthread_list_t __list;
|
||||
# define __PTHREAD_MUTEX_HAVE_PREV 1
|
||||
#else
|
||||
__extension__ union
|
||||
{
|
||||
__PTHREAD_SPINS_DATA;
|
||||
__pthread_slist_t __list;
|
||||
};
|
||||
# define __PTHREAD_MUTEX_HAVE_PREV 0
|
||||
#endif
|
||||
__PTHREAD_COMPAT_PADDING_END
|
||||
};
|
||||
|
||||
|
||||
/* Common definition of pthread_cond_t. */
|
||||
|
||||
struct __pthread_cond_s
|
||||
{
|
||||
__extension__ union
|
||||
{
|
||||
__extension__ unsigned long long int __wseq;
|
||||
struct
|
||||
{
|
||||
unsigned int __low;
|
||||
unsigned int __high;
|
||||
} __wseq32;
|
||||
};
|
||||
__extension__ union
|
||||
{
|
||||
__extension__ unsigned long long int __g1_start;
|
||||
struct
|
||||
{
|
||||
unsigned int __low;
|
||||
unsigned int __high;
|
||||
} __g1_start32;
|
||||
};
|
||||
unsigned int __g_refs[2] __LOCK_ALIGNMENT;
|
||||
unsigned int __g_size[2];
|
||||
unsigned int __g1_orig_size;
|
||||
unsigned int __wrefs;
|
||||
unsigned int __g_signals[2];
|
||||
};
|
||||
|
||||
#endif /* _THREAD_SHARED_TYPES_H */
|
Binary file not shown.
|
@ -1,36 +0,0 @@
|
|||
/* bits/time64.h -- underlying types for __time64_t. Generic version.
|
||||
Copyright (C) 2018-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
# error "Never include <bits/time64.h> directly; use <sys/types.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_TIME64_H
|
||||
#define _BITS_TIME64_H 1
|
||||
|
||||
/* Define __TIME64_T_TYPE so that it is always a 64-bit type. */
|
||||
|
||||
#if __TIMESIZE == 64
|
||||
/* If we already have 64-bit time type then use it. */
|
||||
# define __TIME64_T_TYPE __TIME_T_TYPE
|
||||
#else
|
||||
/* Define a 64-bit time type alongsize the 32-bit one. */
|
||||
# define __TIME64_T_TYPE __SQUAD_TYPE
|
||||
#endif
|
||||
|
||||
#endif /* bits/time64.h */
|
Binary file not shown.
|
@ -1,25 +0,0 @@
|
|||
/* Bit size of the time_t type at glibc build time, x86-64 and x32 case.
|
||||
Copyright (C) 2018-2019 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/>. */
|
||||
|
||||
#if defined __x86_64__ && defined __ILP32__
|
||||
/* For x32, time is 64-bit even though word size is 32-bit. */
|
||||
# define __TIMESIZE 64
|
||||
#else
|
||||
/* For others, time size is word size. */
|
||||
# define __TIMESIZE __WORDSIZE
|
||||
#endif
|
Binary file not shown.
|
@ -1,224 +0,0 @@
|
|||
/* bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
Copyright (C) 2002-2019 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/>. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <sys/types.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
#define _BITS_TYPES_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <bits/wordsize.h>
|
||||
#include <bits/timesize.h>
|
||||
|
||||
/* Convenience types. */
|
||||
typedef unsigned char __u_char;
|
||||
typedef unsigned short int __u_short;
|
||||
typedef unsigned int __u_int;
|
||||
typedef unsigned long int __u_long;
|
||||
|
||||
/* Fixed-size types, underlying types depend on word size and compiler. */
|
||||
typedef signed char __int8_t;
|
||||
typedef unsigned char __uint8_t;
|
||||
typedef signed short int __int16_t;
|
||||
typedef unsigned short int __uint16_t;
|
||||
typedef signed int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#if __WORDSIZE == 64
|
||||
typedef signed long int __int64_t;
|
||||
typedef unsigned long int __uint64_t;
|
||||
#else
|
||||
__extension__ typedef signed long long int __int64_t;
|
||||
__extension__ typedef unsigned long long int __uint64_t;
|
||||
#endif
|
||||
|
||||
/* Smallest types with at least a given width. */
|
||||
typedef __int8_t __int_least8_t;
|
||||
typedef __uint8_t __uint_least8_t;
|
||||
typedef __int16_t __int_least16_t;
|
||||
typedef __uint16_t __uint_least16_t;
|
||||
typedef __int32_t __int_least32_t;
|
||||
typedef __uint32_t __uint_least32_t;
|
||||
typedef __int64_t __int_least64_t;
|
||||
typedef __uint64_t __uint_least64_t;
|
||||
|
||||
/* quad_t is also 64 bits. */
|
||||
#if __WORDSIZE == 64
|
||||
typedef long int __quad_t;
|
||||
typedef unsigned long int __u_quad_t;
|
||||
#else
|
||||
__extension__ typedef long long int __quad_t;
|
||||
__extension__ typedef unsigned long long int __u_quad_t;
|
||||
#endif
|
||||
|
||||
/* Largest integral types. */
|
||||
#if __WORDSIZE == 64
|
||||
typedef long int __intmax_t;
|
||||
typedef unsigned long int __uintmax_t;
|
||||
#else
|
||||
__extension__ typedef long long int __intmax_t;
|
||||
__extension__ typedef unsigned long long int __uintmax_t;
|
||||
#endif
|
||||
|
||||
|
||||
/* 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. */
|
||||
|
||||
#define __S16_TYPE short int
|
||||
#define __U16_TYPE unsigned short int
|
||||
#define __S32_TYPE int
|
||||
#define __U32_TYPE unsigned int
|
||||
#define __SLONGWORD_TYPE long int
|
||||
#define __ULONGWORD_TYPE unsigned long int
|
||||
#if __WORDSIZE == 32
|
||||
# define __SQUAD_TYPE __int64_t
|
||||
# define __UQUAD_TYPE __uint64_t
|
||||
# define __SWORD_TYPE int
|
||||
# define __UWORD_TYPE unsigned int
|
||||
# define __SLONG32_TYPE long int
|
||||
# define __ULONG32_TYPE unsigned long int
|
||||
# define __S64_TYPE __int64_t
|
||||
# define __U64_TYPE __uint64_t
|
||||
/* We want __extension__ before typedef's that use nonstandard base types
|
||||
such as `long long' in C89 mode. */
|
||||
# define __STD_TYPE __extension__ typedef
|
||||
#elif __WORDSIZE == 64
|
||||
# define __SQUAD_TYPE long int
|
||||
# define __UQUAD_TYPE unsigned long int
|
||||
# define __SWORD_TYPE long int
|
||||
# define __UWORD_TYPE unsigned long int
|
||||
# define __SLONG32_TYPE int
|
||||
# define __ULONG32_TYPE unsigned int
|
||||
# define __S64_TYPE long int
|
||||
# define __U64_TYPE unsigned long int
|
||||
/* No need to mark the typedef with __extension__. */
|
||||
# define __STD_TYPE typedef
|
||||
#else
|
||||
# error
|
||||
#endif
|
||||
#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
|
||||
#include <bits/time64.h> /* Defines __TIME*_T_TYPE macros. */
|
||||
|
||||
|
||||
__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
|
||||
__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
|
||||
__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */
|
||||
__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
|
||||
__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/
|
||||
__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
|
||||
__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
|
||||
__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
|
||||
__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
|
||||
__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
|
||||
__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
|
||||
__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
|
||||
__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
|
||||
__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
|
||||
__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */
|
||||
__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
|
||||
__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
|
||||
__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
|
||||
|
||||
__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
|
||||
__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */
|
||||
|
||||
/* Clock ID used in clock and timer functions. */
|
||||
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
|
||||
|
||||
/* Timer ID returned by `timer_create'. */
|
||||
__STD_TYPE __TIMER_T_TYPE __timer_t;
|
||||
|
||||
/* Type to represent block size. */
|
||||
__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;
|
||||
|
||||
/* Types from the Large File Support interface. */
|
||||
|
||||
/* Type to count number of disk blocks. */
|
||||
__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
|
||||
__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;
|
||||
|
||||
/* Type to count file system blocks. */
|
||||
__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
|
||||
__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
|
||||
|
||||
/* Type to count file system nodes. */
|
||||
__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
|
||||
__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
|
||||
|
||||
/* Type of miscellaneous file system fields. */
|
||||
__STD_TYPE __FSWORD_T_TYPE __fsword_t;
|
||||
|
||||
__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */
|
||||
|
||||
/* Signed long type used in system calls. */
|
||||
__STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t;
|
||||
/* Unsigned long type used in system calls. */
|
||||
__STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t;
|
||||
|
||||
/* These few don't really vary by system, they always correspond
|
||||
to one of the other defined types. */
|
||||
typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
|
||||
typedef char *__caddr_t;
|
||||
|
||||
/* Duplicates info from stdint.h but this is used in unistd.h. */
|
||||
__STD_TYPE __SWORD_TYPE __intptr_t;
|
||||
|
||||
/* Duplicate info from sys/socket.h. */
|
||||
__STD_TYPE __U32_TYPE __socklen_t;
|
||||
|
||||
/* 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. */
|
||||
typedef int __sig_atomic_t;
|
||||
|
||||
#if __TIMESIZE == 64
|
||||
# define __time64_t __time_t
|
||||
#else
|
||||
__STD_TYPE __TIME64_T_TYPE __time64_t; /* Seconds since the Epoch. */
|
||||
#endif
|
||||
|
||||
#undef __STD_TYPE
|
||||
|
||||
#endif /* bits/types.h */
|
Binary file not shown.
|
@ -1,9 +0,0 @@
|
|||
#ifndef __FILE_defined
|
||||
#define __FILE_defined 1
|
||||
|
||||
struct _IO_FILE;
|
||||
|
||||
/* The opaque type of streams. This is the definition used elsewhere. */
|
||||
typedef struct _IO_FILE FILE;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,7 +0,0 @@
|
|||
#ifndef ____FILE_defined
|
||||
#define ____FILE_defined 1
|
||||
|
||||
struct _IO_FILE;
|
||||
typedef struct _IO_FILE __FILE;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,16 +0,0 @@
|
|||
#ifndef _____fpos64_t_defined
|
||||
#define _____fpos64_t_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
#include <bits/types/__mbstate_t.h>
|
||||
|
||||
/* The tag name of this struct is _G_fpos64_t to preserve historic
|
||||
C++ mangled names for functions taking fpos_t and/or fpos64_t
|
||||
arguments. That name should not be used in new code. */
|
||||
typedef struct _G_fpos64_t
|
||||
{
|
||||
__off64_t __pos;
|
||||
__mbstate_t __state;
|
||||
} __fpos64_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,16 +0,0 @@
|
|||
#ifndef _____fpos_t_defined
|
||||
#define _____fpos_t_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
#include <bits/types/__mbstate_t.h>
|
||||
|
||||
/* The tag name of this struct is _G_fpos_t to preserve historic
|
||||
C++ mangled names for functions taking fpos_t arguments.
|
||||
That name should not be used in new code. */
|
||||
typedef struct _G_fpos_t
|
||||
{
|
||||
__off_t __pos;
|
||||
__mbstate_t __state;
|
||||
} __fpos_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,44 +0,0 @@
|
|||
/* Definition of struct __locale_struct and __locale_t.
|
||||
Copyright (C) 1997-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
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/>. */
|
||||
|
||||
#ifndef _BITS_TYPES___LOCALE_T_H
|
||||
#define _BITS_TYPES___LOCALE_T_H 1
|
||||
|
||||
/* POSIX.1-2008: the locale_t type, representing a locale context
|
||||
(implementation-namespace version). This type should be treated
|
||||
as opaque by applications; some details are exposed for the sake of
|
||||
efficiency in e.g. ctype functions. */
|
||||
|
||||
struct __locale_struct
|
||||
{
|
||||
/* Note: LC_ALL is not a valid index into this array. */
|
||||
struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */
|
||||
|
||||
/* To increase the speed of this solution we add some special members. */
|
||||
const unsigned short int *__ctype_b;
|
||||
const int *__ctype_tolower;
|
||||
const int *__ctype_toupper;
|
||||
|
||||
/* Note: LC_ALL is not a valid index into this array. */
|
||||
const char *__names[13];
|
||||
};
|
||||
|
||||
typedef struct __locale_struct *__locale_t;
|
||||
|
||||
#endif /* bits/types/__locale_t.h */
|
Binary file not shown.
|
@ -1,23 +0,0 @@
|
|||
#ifndef ____mbstate_t_defined
|
||||
#define ____mbstate_t_defined 1
|
||||
|
||||
/* Integral type unchanged by default argument promotions that can
|
||||
hold any value corresponding to members of the extended character
|
||||
set, as well as at least one value that does not correspond to any
|
||||
member of the extended character set. */
|
||||
#ifndef __WINT_TYPE__
|
||||
# define __WINT_TYPE__ unsigned int
|
||||
#endif
|
||||
|
||||
/* Conversion state information. */
|
||||
typedef struct
|
||||
{
|
||||
int __count;
|
||||
union
|
||||
{
|
||||
__WINT_TYPE__ __wch;
|
||||
char __wchb[4];
|
||||
} __value; /* Value so far. */
|
||||
} __mbstate_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,10 +0,0 @@
|
|||
#ifndef ____sigset_t_defined
|
||||
#define ____sigset_t_defined
|
||||
|
||||
#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
|
||||
typedef struct
|
||||
{
|
||||
unsigned long int __val[_SIGSET_NWORDS];
|
||||
} __sigset_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,9 +0,0 @@
|
|||
#ifndef __clock_t_defined
|
||||
#define __clock_t_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Returned by `clock'. */
|
||||
typedef __clock_t clock_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,9 +0,0 @@
|
|||
#ifndef __clockid_t_defined
|
||||
#define __clockid_t_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Clock ID used in clock and timer functions. */
|
||||
typedef __clockid_t clockid_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,63 +0,0 @@
|
|||
/* Copyright (C) 1991-2019 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/>. */
|
||||
|
||||
#ifndef __cookie_io_functions_t_defined
|
||||
#define __cookie_io_functions_t_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Functions to do I/O and file management for a stream. */
|
||||
|
||||
/* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF.
|
||||
Return number of bytes read. */
|
||||
typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf,
|
||||
size_t __nbytes);
|
||||
|
||||
/* Write NBYTES bytes pointed to by BUF to COOKIE. Write all NBYTES bytes
|
||||
unless there is an error. Return number of bytes written. If
|
||||
there is an error, return 0 and do not write anything. If the file
|
||||
has been opened for append (__mode.__append set), then set the file
|
||||
pointer to the end of the file and then do the write; if not, just
|
||||
write at the current file pointer. */
|
||||
typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf,
|
||||
size_t __nbytes);
|
||||
|
||||
/* Move COOKIE's file position to *POS bytes from the
|
||||
beginning of the file (if W is SEEK_SET),
|
||||
the current position (if W is SEEK_CUR),
|
||||
or the end of the file (if W is SEEK_END).
|
||||
Set *POS to the new file position.
|
||||
Returns zero if successful, nonzero if not. */
|
||||
typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w);
|
||||
|
||||
/* Close COOKIE. */
|
||||
typedef int cookie_close_function_t (void *__cookie);
|
||||
|
||||
/* The structure with the cookie function pointers.
|
||||
The tag name of this struct is _IO_cookie_io_functions_t to
|
||||
preserve historic C++ mangled names for functions taking
|
||||
cookie_io_functions_t arguments. That name should not be used in
|
||||
new code. */
|
||||
typedef struct _IO_cookie_io_functions_t
|
||||
{
|
||||
cookie_read_function_t *read; /* Read bytes. */
|
||||
cookie_write_function_t *write; /* Write bytes. */
|
||||
cookie_seek_function_t *seek; /* Seek/tell file position. */
|
||||
cookie_close_function_t *close; /* Close file. */
|
||||
} cookie_io_functions_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,26 +0,0 @@
|
|||
/* Definition of locale_t.
|
||||
Copyright (C) 2017-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_TYPES_LOCALE_T_H
|
||||
#define _BITS_TYPES_LOCALE_T_H 1
|
||||
|
||||
#include <bits/types/__locale_t.h>
|
||||
|
||||
typedef __locale_t locale_t;
|
||||
|
||||
#endif /* bits/types/locale_t.h */
|
Binary file not shown.
|
@ -1,9 +0,0 @@
|
|||
#ifndef __sigset_t_defined
|
||||
#define __sigset_t_defined 1
|
||||
|
||||
#include <bits/types/__sigset_t.h>
|
||||
|
||||
/* A set of signals to be blocked, unblocked, or waited for. */
|
||||
typedef __sigset_t sigset_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,120 +0,0 @@
|
|||
/* Copyright (C) 1991-2019 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/>. */
|
||||
|
||||
#ifndef __struct_FILE_defined
|
||||
#define __struct_FILE_defined 1
|
||||
|
||||
/* Caution: The contents of this file are not part of the official
|
||||
stdio.h API. However, much of it is part of the official *binary*
|
||||
interface, and therefore cannot be changed. */
|
||||
|
||||
#if defined _IO_USE_OLD_IO_FILE && !defined _LIBC
|
||||
# error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself"
|
||||
#endif
|
||||
|
||||
#if defined _IO_lock_t_defined && !defined _LIBC
|
||||
# error "_IO_lock_t_defined should only be defined when building libc itself"
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
struct _IO_FILE;
|
||||
struct _IO_marker;
|
||||
struct _IO_codecvt;
|
||||
struct _IO_wide_data;
|
||||
|
||||
/* During the build of glibc itself, _IO_lock_t will already have been
|
||||
defined by internal headers. */
|
||||
#ifndef _IO_lock_t_defined
|
||||
typedef void _IO_lock_t;
|
||||
#endif
|
||||
|
||||
/* The tag name of this struct is _IO_FILE to preserve historic
|
||||
C++ mangled names for functions taking FILE* arguments.
|
||||
That name should not be used in new code. */
|
||||
struct _IO_FILE
|
||||
{
|
||||
int _flags; /* High-order word is _IO_MAGIC; rest is flags. */
|
||||
|
||||
/* The following pointers correspond to the C++ streambuf protocol. */
|
||||
char *_IO_read_ptr; /* Current read pointer */
|
||||
char *_IO_read_end; /* End of get area. */
|
||||
char *_IO_read_base; /* Start of putback+get area. */
|
||||
char *_IO_write_base; /* Start of put area. */
|
||||
char *_IO_write_ptr; /* Current put pointer. */
|
||||
char *_IO_write_end; /* End of put area. */
|
||||
char *_IO_buf_base; /* Start of reserve area. */
|
||||
char *_IO_buf_end; /* End of reserve area. */
|
||||
|
||||
/* The following fields are used to support backing up and undo. */
|
||||
char *_IO_save_base; /* Pointer to start of non-current get area. */
|
||||
char *_IO_backup_base; /* Pointer to first valid character of backup area */
|
||||
char *_IO_save_end; /* Pointer to end of non-current get area. */
|
||||
|
||||
struct _IO_marker *_markers;
|
||||
|
||||
struct _IO_FILE *_chain;
|
||||
|
||||
int _fileno;
|
||||
int _flags2;
|
||||
__off_t _old_offset; /* This used to be _offset but it's too small. */
|
||||
|
||||
/* 1+column number of pbase(); 0 is unknown. */
|
||||
unsigned short _cur_column;
|
||||
signed char _vtable_offset;
|
||||
char _shortbuf[1];
|
||||
|
||||
_IO_lock_t *_lock;
|
||||
#ifdef _IO_USE_OLD_IO_FILE
|
||||
};
|
||||
|
||||
struct _IO_FILE_complete
|
||||
{
|
||||
struct _IO_FILE _file;
|
||||
#endif
|
||||
__off64_t _offset;
|
||||
/* Wide character stream stuff. */
|
||||
struct _IO_codecvt *_codecvt;
|
||||
struct _IO_wide_data *_wide_data;
|
||||
struct _IO_FILE *_freeres_list;
|
||||
void *_freeres_buf;
|
||||
size_t __pad5;
|
||||
int _mode;
|
||||
/* Make sure we don't get into trouble again. */
|
||||
char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
|
||||
};
|
||||
|
||||
/* These macros are used by bits/stdio.h and internal headers. */
|
||||
#define __getc_unlocked_body(_fp) \
|
||||
(__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \
|
||||
? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)
|
||||
|
||||
#define __putc_unlocked_body(_ch, _fp) \
|
||||
(__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \
|
||||
? __overflow (_fp, (unsigned char) (_ch)) \
|
||||
: (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))
|
||||
|
||||
#define _IO_EOF_SEEN 0x0010
|
||||
#define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0)
|
||||
|
||||
#define _IO_ERR_SEEN 0x0020
|
||||
#define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0)
|
||||
|
||||
#define _IO_USER_LOCK 0x8000
|
||||
/* Many more flag bits are defined internally. */
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,15 +0,0 @@
|
|||
/* NB: Include guard matches what <linux/time.h> uses. */
|
||||
#ifndef _STRUCT_TIMESPEC
|
||||
#define _STRUCT_TIMESPEC 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* POSIX.1b structure for a time value. This is like a `struct timeval' but
|
||||
has nanoseconds instead of microseconds. */
|
||||
struct timespec
|
||||
{
|
||||
__time_t tv_sec; /* Seconds. */
|
||||
__syscall_slong_t tv_nsec; /* Nanoseconds. */
|
||||
};
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,13 +0,0 @@
|
|||
#ifndef __timeval_defined
|
||||
#define __timeval_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* A time value that is accurate to the nearest
|
||||
microsecond but also has a range of years. */
|
||||
struct timeval
|
||||
{
|
||||
__time_t tv_sec; /* Seconds. */
|
||||
__suseconds_t tv_usec; /* Microseconds. */
|
||||
};
|
||||
#endif
|
Binary file not shown.
|
@ -1,9 +0,0 @@
|
|||
#ifndef __time_t_defined
|
||||
#define __time_t_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Returned by `time'. */
|
||||
typedef __time_t time_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,9 +0,0 @@
|
|||
#ifndef __timer_t_defined
|
||||
#define __timer_t_defined 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Timer ID returned by `timer_create'. */
|
||||
typedef __timer_t timer_t;
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,95 +0,0 @@
|
|||
/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
|
||||
Copyright (C) 2012-2019 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/>. */
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_TYPESIZES_H
|
||||
#define _BITS_TYPESIZES_H 1
|
||||
|
||||
/* 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. */
|
||||
|
||||
/* X32 kernel interface is 64-bit. */
|
||||
#if defined __x86_64__ && defined __ILP32__
|
||||
# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE
|
||||
# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE
|
||||
#else
|
||||
# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
|
||||
# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
|
||||
#endif
|
||||
|
||||
#define __DEV_T_TYPE __UQUAD_TYPE
|
||||
#define __UID_T_TYPE __U32_TYPE
|
||||
#define __GID_T_TYPE __U32_TYPE
|
||||
#define __INO_T_TYPE __SYSCALL_ULONG_TYPE
|
||||
#define __INO64_T_TYPE __UQUAD_TYPE
|
||||
#define __MODE_T_TYPE __U32_TYPE
|
||||
#ifdef __x86_64__
|
||||
# define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE
|
||||
# define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE
|
||||
#else
|
||||
# define __NLINK_T_TYPE __UWORD_TYPE
|
||||
# define __FSWORD_T_TYPE __SWORD_TYPE
|
||||
#endif
|
||||
#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE
|
||||
#define __OFF64_T_TYPE __SQUAD_TYPE
|
||||
#define __PID_T_TYPE __S32_TYPE
|
||||
#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE
|
||||
#define __RLIM64_T_TYPE __UQUAD_TYPE
|
||||
#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE
|
||||
#define __BLKCNT64_T_TYPE __SQUAD_TYPE
|
||||
#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE
|
||||
#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
|
||||
#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE
|
||||
#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
|
||||
#define __ID_T_TYPE __U32_TYPE
|
||||
#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE
|
||||
#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE
|
||||
#define __USECONDS_T_TYPE __U32_TYPE
|
||||
#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE
|
||||
#define __DADDR_T_TYPE __S32_TYPE
|
||||
#define __KEY_T_TYPE __S32_TYPE
|
||||
#define __CLOCKID_T_TYPE __S32_TYPE
|
||||
#define __TIMER_T_TYPE void *
|
||||
#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE
|
||||
#define __FSID_T_TYPE struct { int __val[2]; }
|
||||
#define __SSIZE_T_TYPE __SWORD_TYPE
|
||||
#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE
|
||||
|
||||
#ifdef __x86_64__
|
||||
/* 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. */
|
||||
# define __OFF_T_MATCHES_OFF64_T 1
|
||||
|
||||
/* Same for ino_t and ino64_t. */
|
||||
# define __INO_T_MATCHES_INO64_T 1
|
||||
|
||||
/* And for __rlim_t and __rlim64_t. */
|
||||
# define __RLIM_T_MATCHES_RLIM64_T 1
|
||||
#else
|
||||
# define __RLIM_T_MATCHES_RLIM64_T 0
|
||||
#endif
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
#define __FD_SETSIZE 1024
|
||||
|
||||
|
||||
#endif /* bits/typesizes.h */
|
Binary file not shown.
|
@ -1,50 +0,0 @@
|
|||
/* Inline functions to return unsigned integer values unchanged.
|
||||
Copyright (C) 2017-2019 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/>. */
|
||||
|
||||
#if !defined _NETINET_IN_H && !defined _ENDIAN_H
|
||||
# error "Never use <bits/uintn-identity.h> directly; include <netinet/in.h> or <endian.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_UINTN_IDENTITY_H
|
||||
#define _BITS_UINTN_IDENTITY_H 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* These inline functions are to ensure the appropriate type
|
||||
conversions and associated diagnostics from macros that convert to
|
||||
a given endianness. */
|
||||
|
||||
static __inline __uint16_t
|
||||
__uint16_identity (__uint16_t __x)
|
||||
{
|
||||
return __x;
|
||||
}
|
||||
|
||||
static __inline __uint32_t
|
||||
__uint32_identity (__uint32_t __x)
|
||||
{
|
||||
return __x;
|
||||
}
|
||||
|
||||
static __inline __uint64_t
|
||||
__uint64_identity (__uint64_t __x)
|
||||
{
|
||||
return __x;
|
||||
}
|
||||
|
||||
#endif /* _BITS_UINTN_IDENTITY_H. */
|
Binary file not shown.
|
@ -1,39 +0,0 @@
|
|||
/* Definitions of flag bits for `waitpid' et al.
|
||||
Copyright (C) 1992-2019 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/>. */
|
||||
|
||||
#if !defined _SYS_WAIT_H && !defined _STDLIB_H
|
||||
# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Bits in the third argument to `waitpid'. */
|
||||
#define WNOHANG 1 /* Don't block waiting. */
|
||||
#define WUNTRACED 2 /* Report status of stopped children. */
|
||||
|
||||
/* Bits in the fourth argument to `waitid'. */
|
||||
#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
|
||||
# define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */
|
||||
# define WEXITED 4 /* Report dead child. */
|
||||
# define WCONTINUED 8 /* Report continued child. */
|
||||
# define WNOWAIT 0x01000000 /* Don't reap, just poll status. */
|
||||
#endif
|
||||
|
||||
#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads
|
||||
in this group */
|
||||
#define __WALL 0x40000000 /* Wait for any child. */
|
||||
#define __WCLONE 0x80000000 /* Wait for cloned process. */
|
Binary file not shown.
|
@ -1,59 +0,0 @@
|
|||
/* Definitions of status bits for `wait' et al.
|
||||
Copyright (C) 1992-2019 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/>. */
|
||||
|
||||
#if !defined _SYS_WAIT_H && !defined _STDLIB_H
|
||||
# error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Everything extant so far uses these same bits. */
|
||||
|
||||
|
||||
/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
|
||||
#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
|
||||
|
||||
/* If WIFSIGNALED(STATUS), the terminating signal. */
|
||||
#define __WTERMSIG(status) ((status) & 0x7f)
|
||||
|
||||
/* If WIFSTOPPED(STATUS), the signal that stopped the child. */
|
||||
#define __WSTOPSIG(status) __WEXITSTATUS(status)
|
||||
|
||||
/* Nonzero if STATUS indicates normal termination. */
|
||||
#define __WIFEXITED(status) (__WTERMSIG(status) == 0)
|
||||
|
||||
/* Nonzero if STATUS indicates termination by a signal. */
|
||||
#define __WIFSIGNALED(status) \
|
||||
(((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
|
||||
|
||||
/* Nonzero if STATUS indicates the child is stopped. */
|
||||
#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
|
||||
|
||||
/* Nonzero if STATUS indicates the child continued after a stop. We only
|
||||
define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
|
||||
#ifdef WCONTINUED
|
||||
# define __WIFCONTINUED(status) ((status) == __W_CONTINUED)
|
||||
#endif
|
||||
|
||||
/* Nonzero if STATUS indicates the child dumped core. */
|
||||
#define __WCOREDUMP(status) ((status) & __WCOREFLAG)
|
||||
|
||||
/* Macros for constructing status values. */
|
||||
#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
|
||||
#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
|
||||
#define __W_CONTINUED 0xffff
|
||||
#define __WCOREFLAG 0x80
|
Binary file not shown.
|
@ -1,17 +0,0 @@
|
|||
/* Determine the wordsize from the preprocessor defines. */
|
||||
|
||||
#if defined __x86_64__ && !defined __ILP32__
|
||||
# define __WORDSIZE 64
|
||||
#else
|
||||
# define __WORDSIZE 32
|
||||
#define __WORDSIZE32_SIZE_ULONG 0
|
||||
#define __WORDSIZE32_PTRDIFF_LONG 0
|
||||
#endif
|
||||
|
||||
#ifdef __x86_64__
|
||||
# define __WORDSIZE_TIME64_COMPAT32 1
|
||||
/* Both x86-64 and x32 use the 64-bit system call interface. */
|
||||
# define __SYSCALL_WORDSIZE 64
|
||||
#else
|
||||
# define __WORDSIZE_TIME64_COMPAT32 0
|
||||
#endif
|
Binary file not shown.
|
@ -1,111 +0,0 @@
|
|||
// -*- C++ -*- C library enhancements header.
|
||||
|
||||
// Copyright (C) 2016-2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This 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 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/>.
|
||||
|
||||
/** @file include/bits/std_abs.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* Do not attempt to use it directly. @headername{cmath, cstdlib}
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_BITS_STD_ABS_H
|
||||
#define _GLIBCXX_BITS_STD_ABS_H
|
||||
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <bits/c++config.h>
|
||||
|
||||
#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
|
||||
#include_next <stdlib.h>
|
||||
#ifdef __CORRECT_ISO_CPP_MATH_H_PROTO
|
||||
# include_next <math.h>
|
||||
#endif
|
||||
#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
|
||||
|
||||
#undef abs
|
||||
|
||||
extern "C++"
|
||||
{
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
|
||||
using ::abs;
|
||||
|
||||
#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO
|
||||
inline long
|
||||
abs(long __i) { return __builtin_labs(__i); }
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_USE_LONG_LONG
|
||||
inline long long
|
||||
abs(long long __x) { return __builtin_llabs (__x); }
|
||||
#endif
|
||||
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// 2192. Validity and return type of std::abs(0u) is unclear
|
||||
// 2294. <cstdlib> should declare abs(double)
|
||||
// 2735. std::abs(short), std::abs(signed char) and others should return int
|
||||
|
||||
#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
|
||||
inline _GLIBCXX_CONSTEXPR double
|
||||
abs(double __x)
|
||||
{ return __builtin_fabs(__x); }
|
||||
|
||||
inline _GLIBCXX_CONSTEXPR float
|
||||
abs(float __x)
|
||||
{ return __builtin_fabsf(__x); }
|
||||
|
||||
inline _GLIBCXX_CONSTEXPR long double
|
||||
abs(long double __x)
|
||||
{ return __builtin_fabsl(__x); }
|
||||
#endif
|
||||
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_0)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0
|
||||
abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_1)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1
|
||||
abs(__GLIBCXX_TYPE_INT_N_1 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_2)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2
|
||||
abs(__GLIBCXX_TYPE_INT_N_2 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
#if defined(__GLIBCXX_TYPE_INT_N_3)
|
||||
inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3
|
||||
abs(__GLIBCXX_TYPE_INT_N_3 __x) { return __x >= 0 ? __x : -__x; }
|
||||
#endif
|
||||
|
||||
#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
|
||||
inline _GLIBCXX_CONSTEXPR
|
||||
__float128
|
||||
abs(__float128 __x)
|
||||
{ return __x < 0 ? -__x : __x; }
|
||||
#endif
|
||||
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
} // extern "C"++"
|
||||
|
||||
#endif // _GLIBCXX_BITS_STD_ABS_H
|
Binary file not shown.
|
@ -1,261 +0,0 @@
|
|||
// -*- C++ -*- forwarding header.
|
||||
|
||||
// Copyright (C) 1997-2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This 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 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/>.
|
||||
|
||||
/** @file include/cstdlib
|
||||
* This is a Standard C++ Library file. You should @c \#include this file
|
||||
* in your programs, rather than any of the @a *.h implementation files.
|
||||
*
|
||||
* This is the C++ version of the Standard C Library header @c stdlib.h,
|
||||
* and its contents are (mostly) the same as that header, but are all
|
||||
* contained in the namespace @c std (except for names which are defined
|
||||
* as macros in C).
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 20.4.6 C library
|
||||
//
|
||||
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <bits/c++config.h>
|
||||
|
||||
#ifndef _GLIBCXX_CSTDLIB
|
||||
#define _GLIBCXX_CSTDLIB 1
|
||||
|
||||
#if !_GLIBCXX_HOSTED
|
||||
// The C standard does not require a freestanding implementation to
|
||||
// provide <stdlib.h>. However, the C++ standard does still require
|
||||
// <cstdlib> -- but only the functionality mentioned in
|
||||
// [lib.support.start.term].
|
||||
|
||||
#define EXIT_SUCCESS 0
|
||||
#define EXIT_FAILURE 1
|
||||
|
||||
namespace std
|
||||
{
|
||||
extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
|
||||
extern "C" int atexit(void (*)(void)) throw ();
|
||||
extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
|
||||
#if __cplusplus >= 201103L
|
||||
# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
|
||||
extern "C" int at_quick_exit(void (*)(void)) throw ();
|
||||
# endif
|
||||
# ifdef _GLIBCXX_HAVE_QUICK_EXIT
|
||||
extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
|
||||
# endif
|
||||
#endif
|
||||
} // namespace std
|
||||
|
||||
#else
|
||||
|
||||
// Need to ensure this finds the C library's <stdlib.h> not a libstdc++
|
||||
// wrapper that might already be installed later in the include search path.
|
||||
#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
|
||||
#include_next <stdlib.h>
|
||||
#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
|
||||
#include <bits/std_abs.h>
|
||||
|
||||
// Get rid of those macros defined in <stdlib.h> in lieu of real functions.
|
||||
#undef abort
|
||||
#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)
|
||||
# undef aligned_alloc
|
||||
#endif
|
||||
#undef atexit
|
||||
#if __cplusplus >= 201103L
|
||||
# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
|
||||
# undef at_quick_exit
|
||||
# endif
|
||||
#endif
|
||||
#undef atof
|
||||
#undef atoi
|
||||
#undef atol
|
||||
#undef bsearch
|
||||
#undef calloc
|
||||
#undef div
|
||||
#undef exit
|
||||
#undef free
|
||||
#undef getenv
|
||||
#undef labs
|
||||
#undef ldiv
|
||||
#undef malloc
|
||||
#undef mblen
|
||||
#undef mbstowcs
|
||||
#undef mbtowc
|
||||
#undef qsort
|
||||
#if __cplusplus >= 201103L
|
||||
# ifdef _GLIBCXX_HAVE_QUICK_EXIT
|
||||
# undef quick_exit
|
||||
# endif
|
||||
#endif
|
||||
#undef rand
|
||||
#undef realloc
|
||||
#undef srand
|
||||
#undef strtod
|
||||
#undef strtol
|
||||
#undef strtoul
|
||||
#undef system
|
||||
#undef wcstombs
|
||||
#undef wctomb
|
||||
|
||||
extern "C++"
|
||||
{
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
|
||||
using ::div_t;
|
||||
using ::ldiv_t;
|
||||
|
||||
using ::abort;
|
||||
#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)
|
||||
using ::aligned_alloc;
|
||||
#endif
|
||||
using ::atexit;
|
||||
#if __cplusplus >= 201103L
|
||||
# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
|
||||
using ::at_quick_exit;
|
||||
# endif
|
||||
#endif
|
||||
using ::atof;
|
||||
using ::atoi;
|
||||
using ::atol;
|
||||
using ::bsearch;
|
||||
using ::calloc;
|
||||
using ::div;
|
||||
using ::exit;
|
||||
using ::free;
|
||||
using ::getenv;
|
||||
using ::labs;
|
||||
using ::ldiv;
|
||||
using ::malloc;
|
||||
#ifdef _GLIBCXX_HAVE_MBSTATE_T
|
||||
using ::mblen;
|
||||
using ::mbstowcs;
|
||||
using ::mbtowc;
|
||||
#endif // _GLIBCXX_HAVE_MBSTATE_T
|
||||
using ::qsort;
|
||||
#if __cplusplus >= 201103L
|
||||
# ifdef _GLIBCXX_HAVE_QUICK_EXIT
|
||||
using ::quick_exit;
|
||||
# endif
|
||||
#endif
|
||||
using ::rand;
|
||||
using ::realloc;
|
||||
using ::srand;
|
||||
using ::strtod;
|
||||
using ::strtol;
|
||||
using ::strtoul;
|
||||
using ::system;
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
using ::wcstombs;
|
||||
using ::wctomb;
|
||||
#endif // _GLIBCXX_USE_WCHAR_T
|
||||
|
||||
#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO
|
||||
inline ldiv_t
|
||||
div(long __i, long __j) { return ldiv(__i, __j); }
|
||||
#endif
|
||||
|
||||
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace
|
||||
|
||||
#if _GLIBCXX_USE_C99_STDLIB
|
||||
|
||||
#undef _Exit
|
||||
#undef llabs
|
||||
#undef lldiv
|
||||
#undef atoll
|
||||
#undef strtoll
|
||||
#undef strtoull
|
||||
#undef strtof
|
||||
#undef strtold
|
||||
|
||||
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
|
||||
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::lldiv_t;
|
||||
#endif
|
||||
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
|
||||
extern "C" void (_Exit)(int) throw () _GLIBCXX_NORETURN;
|
||||
#endif
|
||||
#if !_GLIBCXX_USE_C99_DYNAMIC
|
||||
using ::_Exit;
|
||||
#endif
|
||||
|
||||
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::llabs;
|
||||
|
||||
inline lldiv_t
|
||||
div(long long __n, long long __d)
|
||||
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
|
||||
|
||||
using ::lldiv;
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
|
||||
extern "C" long long int (atoll)(const char *) throw ();
|
||||
extern "C" long long int
|
||||
(strtoll)(const char * __restrict, char ** __restrict, int) throw ();
|
||||
extern "C" unsigned long long int
|
||||
(strtoull)(const char * __restrict, char ** __restrict, int) throw ();
|
||||
#endif
|
||||
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::atoll;
|
||||
using ::strtoll;
|
||||
using ::strtoull;
|
||||
#endif
|
||||
using ::strtof;
|
||||
using ::strtold;
|
||||
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace __gnu_cxx
|
||||
|
||||
namespace std
|
||||
{
|
||||
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::__gnu_cxx::lldiv_t;
|
||||
#endif
|
||||
using ::__gnu_cxx::_Exit;
|
||||
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::__gnu_cxx::llabs;
|
||||
using ::__gnu_cxx::div;
|
||||
using ::__gnu_cxx::lldiv;
|
||||
#endif
|
||||
using ::__gnu_cxx::atoll;
|
||||
using ::__gnu_cxx::strtof;
|
||||
using ::__gnu_cxx::strtoll;
|
||||
using ::__gnu_cxx::strtoull;
|
||||
using ::__gnu_cxx::strtold;
|
||||
} // namespace std
|
||||
|
||||
#endif // _GLIBCXX_USE_C99_STDLIB
|
||||
|
||||
} // extern "C++"
|
||||
|
||||
#endif // !_GLIBCXX_HOSTED
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,86 +0,0 @@
|
|||
// -*- C++ -*- compatibility header.
|
||||
|
||||
// Copyright (C) 2002-2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This 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 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/>.
|
||||
|
||||
/** @file stdlib.h
|
||||
* This is a Standard C++ Library header.
|
||||
*/
|
||||
|
||||
#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
|
||||
# include_next <stdlib.h>
|
||||
#else
|
||||
|
||||
#ifndef _GLIBCXX_STDLIB_H
|
||||
#define _GLIBCXX_STDLIB_H 1
|
||||
|
||||
# include <cstdlib>
|
||||
|
||||
using std::abort;
|
||||
using std::atexit;
|
||||
using std::exit;
|
||||
#if __cplusplus >= 201103L
|
||||
# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
|
||||
using std::at_quick_exit;
|
||||
# endif
|
||||
# ifdef _GLIBCXX_HAVE_QUICK_EXIT
|
||||
using std::quick_exit;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HOSTED
|
||||
using std::div_t;
|
||||
using std::ldiv_t;
|
||||
|
||||
using std::abs;
|
||||
using std::atof;
|
||||
using std::atoi;
|
||||
using std::atol;
|
||||
using std::bsearch;
|
||||
using std::calloc;
|
||||
using std::div;
|
||||
using std::free;
|
||||
using std::getenv;
|
||||
using std::labs;
|
||||
using std::ldiv;
|
||||
using std::malloc;
|
||||
#ifdef _GLIBCXX_HAVE_MBSTATE_T
|
||||
using std::mblen;
|
||||
using std::mbstowcs;
|
||||
using std::mbtowc;
|
||||
#endif // _GLIBCXX_HAVE_MBSTATE_T
|
||||
using std::qsort;
|
||||
using std::rand;
|
||||
using std::realloc;
|
||||
using std::srand;
|
||||
using std::strtod;
|
||||
using std::strtol;
|
||||
using std::strtoul;
|
||||
using std::system;
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
using std::wcstombs;
|
||||
using std::wctomb;
|
||||
#endif // _GLIBCXX_USE_WCHAR_T
|
||||
#endif
|
||||
|
||||
#endif // _GLIBCXX_STDLIB_H
|
||||
#endif // __cplusplus
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -1,33 +0,0 @@
|
|||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005-2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This 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 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/>.
|
||||
|
||||
/** @file bits/cpu_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* Do not attempt to use it directly. @headername{iosfwd}
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CPU_DEFINES
|
||||
#define _GLIBCXX_CPU_DEFINES 1
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,52 +0,0 @@
|
|||
// Specific definitions for GNU/Linux -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000-2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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.
|
||||
|
||||
// This 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 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/>.
|
||||
|
||||
/** @file bits/os_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* Do not attempt to use it directly. @headername{iosfwd}
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_OS_DEFINES
|
||||
#define _GLIBCXX_OS_DEFINES 1
|
||||
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
// This keeps isanum, et al from being propagated as macros.
|
||||
#define __NO_CTYPE 1
|
||||
|
||||
#include <features.h>
|
||||
|
||||
// Provide a declaration for the possibly deprecated gets function, as
|
||||
// glibc 2.15 and later does not declare gets for ISO C11 when
|
||||
// __GNU_SOURCE is defined.
|
||||
#if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)
|
||||
# undef _GLIBCXX_HAVE_GETS
|
||||
#endif
|
||||
|
||||
// Glibc 2.23 removed the obsolete isinf and isnan declarations. Check the
|
||||
// version dynamically in case it has changed since libstdc++ was configured.
|
||||
#define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -1,97 +0,0 @@
|
|||
/* Copyright (C) 1992-2019 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/>. */
|
||||
|
||||
#ifndef _ENDIAN_H
|
||||
#define _ENDIAN_H 1
|
||||
|
||||
#include <features.h>
|
||||
|
||||
/* 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. */
|
||||
|
||||
#define __LITTLE_ENDIAN 1234
|
||||
#define __BIG_ENDIAN 4321
|
||||
#define __PDP_ENDIAN 3412
|
||||
|
||||
/* This file defines `__BYTE_ORDER' for the particular machine. */
|
||||
#include <bits/endian.h>
|
||||
|
||||
/* Some machines may need to use a different endianness for floating point
|
||||
values. */
|
||||
#ifndef __FLOAT_WORD_ORDER
|
||||
# define __FLOAT_WORD_ORDER __BYTE_ORDER
|
||||
#endif
|
||||
|
||||
#ifdef __USE_MISC
|
||||
# define LITTLE_ENDIAN __LITTLE_ENDIAN
|
||||
# define BIG_ENDIAN __BIG_ENDIAN
|
||||
# define PDP_ENDIAN __PDP_ENDIAN
|
||||
# define BYTE_ORDER __BYTE_ORDER
|
||||
#endif
|
||||
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
# define __LONG_LONG_PAIR(HI, LO) LO, HI
|
||||
#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||
# define __LONG_LONG_PAIR(HI, LO) HI, LO
|
||||
#endif
|
||||
|
||||
|
||||
#if defined __USE_MISC && !defined __ASSEMBLER__
|
||||
/* Conversion interfaces. */
|
||||
# include <bits/byteswap.h>
|
||||
# include <bits/uintn-identity.h>
|
||||
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
# define htobe16(x) __bswap_16 (x)
|
||||
# define htole16(x) __uint16_identity (x)
|
||||
# define be16toh(x) __bswap_16 (x)
|
||||
# define le16toh(x) __uint16_identity (x)
|
||||
|
||||
# define htobe32(x) __bswap_32 (x)
|
||||
# define htole32(x) __uint32_identity (x)
|
||||
# define be32toh(x) __bswap_32 (x)
|
||||
# define le32toh(x) __uint32_identity (x)
|
||||
|
||||
# define htobe64(x) __bswap_64 (x)
|
||||
# define htole64(x) __uint64_identity (x)
|
||||
# define be64toh(x) __bswap_64 (x)
|
||||
# define le64toh(x) __uint64_identity (x)
|
||||
|
||||
# else
|
||||
# define htobe16(x) __uint16_identity (x)
|
||||
# define htole16(x) __bswap_16 (x)
|
||||
# define be16toh(x) __uint16_identity (x)
|
||||
# define le16toh(x) __bswap_16 (x)
|
||||
|
||||
# define htobe32(x) __uint32_identity (x)
|
||||
# define htole32(x) __bswap_32 (x)
|
||||
# define be32toh(x) __uint32_identity (x)
|
||||
# define le32toh(x) __bswap_32 (x)
|
||||
|
||||
# define htobe64(x) __uint64_identity (x)
|
||||
# define htole64(x) __bswap_64 (x)
|
||||
# define be64toh(x) __uint64_identity (x)
|
||||
# define le64toh(x) __bswap_64 (x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif /* endian.h */
|
Binary file not shown.
|
@ -1,477 +0,0 @@
|
|||
/* Copyright (C) 1991-2019 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/>. */
|
||||
|
||||
#ifndef _FEATURES_H
|
||||
#define _FEATURES_H 1
|
||||
|
||||
/* These are defined by the user (or the compiler)
|
||||
to specify the desired environment:
|
||||
|
||||
__STRICT_ANSI__ ISO Standard C.
|
||||
_ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
|
||||
_ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
|
||||
__STDC_WANT_LIB_EXT2__
|
||||
Extensions to ISO C99 from TR 27431-2:2010.
|
||||
__STDC_WANT_IEC_60559_BFP_EXT__
|
||||
Extensions to ISO C11 from TS 18661-1:2014.
|
||||
__STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
Extensions to ISO C11 from TS 18661-4:2015.
|
||||
__STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
Extensions to ISO C11 from TS 18661-3:2015.
|
||||
|
||||
_POSIX_SOURCE IEEE Std 1003.1.
|
||||
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
||||
if >=199309L, add IEEE Std 1003.1b-1993;
|
||||
if >=199506L, add IEEE Std 1003.1c-1995;
|
||||
if >=200112L, all of IEEE 1003.1-2004
|
||||
if >=200809L, all of IEEE 1003.1-2008
|
||||
_XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
||||
Single Unix conformance is wanted, to 600 for the
|
||||
sixth revision, to 700 for the seventh revision.
|
||||
_XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
|
||||
_LARGEFILE_SOURCE Some more functions for correct standard I/O.
|
||||
_LARGEFILE64_SOURCE Additional functionality from LFS for large files.
|
||||
_FILE_OFFSET_BITS=N Select default filesystem interface.
|
||||
_ATFILE_SOURCE Additional *at interfaces.
|
||||
_GNU_SOURCE All of the above, plus GNU extensions.
|
||||
_DEFAULT_SOURCE The default set of features (taking precedence over
|
||||
__STRICT_ANSI__).
|
||||
|
||||
_FORTIFY_SOURCE Add security hardening to many library functions.
|
||||
Set to 1 or 2; 2 performs stricter checks than 1.
|
||||
|
||||
_REENTRANT, _THREAD_SAFE
|
||||
Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
|
||||
|
||||
The `-ansi' switch to the GNU C compiler, and standards conformance
|
||||
options such as `-std=c99', define __STRICT_ANSI__. If none of
|
||||
these are defined, or if _DEFAULT_SOURCE is defined, the default is
|
||||
to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
|
||||
200809L, as well as enabling miscellaneous functions from BSD and
|
||||
SVID. If more than one of these are defined, they accumulate. For
|
||||
example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
|
||||
give you ISO C, 1003.1, and 1003.2, but nothing else.
|
||||
|
||||
These are defined by this file and are used by the
|
||||
header files to decide what to declare or define:
|
||||
|
||||
__GLIBC_USE (F) Define things from feature set F. This is defined
|
||||
to 1 or 0; the subsequent macros are either defined
|
||||
or undefined, and those tests should be moved to
|
||||
__GLIBC_USE.
|
||||
__USE_ISOC11 Define ISO C11 things.
|
||||
__USE_ISOC99 Define ISO C99 things.
|
||||
__USE_ISOC95 Define ISO C90 AMD1 (C95) things.
|
||||
__USE_ISOCXX11 Define ISO C++11 things.
|
||||
__USE_POSIX Define IEEE Std 1003.1 things.
|
||||
__USE_POSIX2 Define IEEE Std 1003.2 things.
|
||||
__USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
|
||||
__USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
|
||||
__USE_XOPEN Define XPG things.
|
||||
__USE_XOPEN_EXTENDED Define X/Open Unix things.
|
||||
__USE_UNIX98 Define Single Unix V2 things.
|
||||
__USE_XOPEN2K Define XPG6 things.
|
||||
__USE_XOPEN2KXSI Define XPG6 XSI things.
|
||||
__USE_XOPEN2K8 Define XPG7 things.
|
||||
__USE_XOPEN2K8XSI Define XPG7 XSI things.
|
||||
__USE_LARGEFILE Define correct standard I/O things.
|
||||
__USE_LARGEFILE64 Define LFS things with separate names.
|
||||
__USE_FILE_OFFSET64 Define 64bit interface as default.
|
||||
__USE_MISC Define things from 4.3BSD or System V Unix.
|
||||
__USE_ATFILE Define *at interfaces and AT_* constants for them.
|
||||
__USE_GNU Define GNU extensions.
|
||||
__USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
||||
|
||||
The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
|
||||
defined by this file unconditionally. `__GNU_LIBRARY__' is provided
|
||||
only for compatibility. All new code should use the other symbols
|
||||
to test for features.
|
||||
|
||||
All macros listed above as possibly being defined by this file are
|
||||
explicitly undefined if they are not explicitly defined.
|
||||
Feature-test macros that are not defined by the user or compiler
|
||||
but are implied by the other feature-test macros defined (or by the
|
||||
lack of any definitions) are defined by the file.
|
||||
|
||||
ISO C feature test macros depend on the definition of the macro
|
||||
when an affected header is included, not when the first system
|
||||
header is included, and so they are handled in
|
||||
<bits/libc-header-start.h>, which does not have a multiple include
|
||||
guard. Feature test macros that can be handled from the first
|
||||
system header included are handled here. */
|
||||
|
||||
|
||||
/* Undefine everything, so we get a clean slate. */
|
||||
#undef __USE_ISOC11
|
||||
#undef __USE_ISOC99
|
||||
#undef __USE_ISOC95
|
||||
#undef __USE_ISOCXX11
|
||||
#undef __USE_POSIX
|
||||
#undef __USE_POSIX2
|
||||
#undef __USE_POSIX199309
|
||||
#undef __USE_POSIX199506
|
||||
#undef __USE_XOPEN
|
||||
#undef __USE_XOPEN_EXTENDED
|
||||
#undef __USE_UNIX98
|
||||
#undef __USE_XOPEN2K
|
||||
#undef __USE_XOPEN2KXSI
|
||||
#undef __USE_XOPEN2K8
|
||||
#undef __USE_XOPEN2K8XSI
|
||||
#undef __USE_LARGEFILE
|
||||
#undef __USE_LARGEFILE64
|
||||
#undef __USE_FILE_OFFSET64
|
||||
#undef __USE_MISC
|
||||
#undef __USE_ATFILE
|
||||
#undef __USE_GNU
|
||||
#undef __USE_FORTIFY_LEVEL
|
||||
#undef __KERNEL_STRICT_NAMES
|
||||
#undef __GLIBC_USE_DEPRECATED_GETS
|
||||
#undef __GLIBC_USE_DEPRECATED_SCANF
|
||||
|
||||
/* Suppress kernel-name space pollution unless user expressedly asks
|
||||
for it. */
|
||||
#ifndef _LOOSE_KERNEL_NAMES
|
||||
# define __KERNEL_STRICT_NAMES
|
||||
#endif
|
||||
|
||||
/* Convenience macro to test the version of gcc.
|
||||
Use like this:
|
||||
#if __GNUC_PREREQ (2,8)
|
||||
... code requiring gcc 2.8 or later ...
|
||||
#endif
|
||||
Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
|
||||
added in 2.0. */
|
||||
#if defined __GNUC__ && defined __GNUC_MINOR__
|
||||
# define __GNUC_PREREQ(maj, min) \
|
||||
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
||||
#else
|
||||
# define __GNUC_PREREQ(maj, min) 0
|
||||
#endif
|
||||
|
||||
/* Similarly for clang. Features added to GCC after version 4.2 may
|
||||
or may not also be available in clang, and clang's definitions of
|
||||
__GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
|
||||
features can be queried via __has_extension/__has_feature. */
|
||||
#if defined __clang_major__ && defined __clang_minor__
|
||||
# define __glibc_clang_prereq(maj, min) \
|
||||
((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
|
||||
#else
|
||||
# define __glibc_clang_prereq(maj, min) 0
|
||||
#endif
|
||||
|
||||
/* Whether to use feature set F. */
|
||||
#define __GLIBC_USE(F) __GLIBC_USE_ ## F
|
||||
|
||||
/* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
|
||||
_DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
|
||||
issue a warning; the expectation is that the source is being
|
||||
transitioned to use the new macro. */
|
||||
#if (defined _BSD_SOURCE || defined _SVID_SOURCE) \
|
||||
&& !defined _DEFAULT_SOURCE
|
||||
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
|
||||
# undef _DEFAULT_SOURCE
|
||||
# define _DEFAULT_SOURCE 1
|
||||
#endif
|
||||
|
||||
/* If _GNU_SOURCE was defined by the user, turn on all the other features. */
|
||||
#ifdef _GNU_SOURCE
|
||||
# undef _ISOC95_SOURCE
|
||||
# define _ISOC95_SOURCE 1
|
||||
# undef _ISOC99_SOURCE
|
||||
# define _ISOC99_SOURCE 1
|
||||
# undef _ISOC11_SOURCE
|
||||
# define _ISOC11_SOURCE 1
|
||||
# undef _POSIX_SOURCE
|
||||
# define _POSIX_SOURCE 1
|
||||
# undef _POSIX_C_SOURCE
|
||||
# define _POSIX_C_SOURCE 200809L
|
||||
# undef _XOPEN_SOURCE
|
||||
# define _XOPEN_SOURCE 700
|
||||
# undef _XOPEN_SOURCE_EXTENDED
|
||||
# define _XOPEN_SOURCE_EXTENDED 1
|
||||
# undef _LARGEFILE64_SOURCE
|
||||
# define _LARGEFILE64_SOURCE 1
|
||||
# undef _DEFAULT_SOURCE
|
||||
# define _DEFAULT_SOURCE 1
|
||||
# undef _ATFILE_SOURCE
|
||||
# define _ATFILE_SOURCE 1
|
||||
#endif
|
||||
|
||||
/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
|
||||
define _DEFAULT_SOURCE. */
|
||||
#if (defined _DEFAULT_SOURCE \
|
||||
|| (!defined __STRICT_ANSI__ \
|
||||
&& !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \
|
||||
&& !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \
|
||||
&& !defined _XOPEN_SOURCE))
|
||||
# undef _DEFAULT_SOURCE
|
||||
# define _DEFAULT_SOURCE 1
|
||||
#endif
|
||||
|
||||
/* This is to enable the ISO C11 extension. */
|
||||
#if (defined _ISOC11_SOURCE \
|
||||
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L))
|
||||
# define __USE_ISOC11 1
|
||||
#endif
|
||||
|
||||
/* This is to enable the ISO C99 extension. */
|
||||
#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
|
||||
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
|
||||
# define __USE_ISOC99 1
|
||||
#endif
|
||||
|
||||
/* This is to enable the ISO C90 Amendment 1:1995 extension. */
|
||||
#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
|
||||
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L))
|
||||
# define __USE_ISOC95 1
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
/* This is to enable compatibility for ISO C++17. */
|
||||
# if __cplusplus >= 201703L
|
||||
# define __USE_ISOC11 1
|
||||
# endif
|
||||
/* This is to enable compatibility for ISO C++11.
|
||||
Check the temporary macro for now, too. */
|
||||
# if __cplusplus >= 201103L || defined __GXX_EXPERIMENTAL_CXX0X__
|
||||
# define __USE_ISOCXX11 1
|
||||
# define __USE_ISOC99 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
|
||||
is defined, use POSIX.1-2008 (or another version depending on
|
||||
_XOPEN_SOURCE). */
|
||||
#ifdef _DEFAULT_SOURCE
|
||||
# if !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE
|
||||
# define __USE_POSIX_IMPLICITLY 1
|
||||
# endif
|
||||
# undef _POSIX_SOURCE
|
||||
# define _POSIX_SOURCE 1
|
||||
# undef _POSIX_C_SOURCE
|
||||
# define _POSIX_C_SOURCE 200809L
|
||||
#endif
|
||||
|
||||
#if ((!defined __STRICT_ANSI__ \
|
||||
|| (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)) \
|
||||
&& !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
|
||||
# define _POSIX_SOURCE 1
|
||||
# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
|
||||
# define _POSIX_C_SOURCE 2
|
||||
# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600
|
||||
# define _POSIX_C_SOURCE 199506L
|
||||
# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700
|
||||
# define _POSIX_C_SOURCE 200112L
|
||||
# else
|
||||
# define _POSIX_C_SOURCE 200809L
|
||||
# endif
|
||||
# define __USE_POSIX_IMPLICITLY 1
|
||||
#endif
|
||||
|
||||
/* Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
|
||||
defined in all multithreaded code. GNU libc has not required this
|
||||
for many years. We now treat them as compatibility synonyms for
|
||||
_POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
|
||||
comprehensive support for multithreaded code. Using them never
|
||||
lowers the selected level of POSIX conformance, only raises it. */
|
||||
#if ((!defined _POSIX_C_SOURCE || (_POSIX_C_SOURCE - 0) < 199506L) \
|
||||
&& (defined _REENTRANT || defined _THREAD_SAFE))
|
||||
# define _POSIX_SOURCE 1
|
||||
# undef _POSIX_C_SOURCE
|
||||
# define _POSIX_C_SOURCE 199506L
|
||||
#endif
|
||||
|
||||
#if (defined _POSIX_SOURCE \
|
||||
|| (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1) \
|
||||
|| defined _XOPEN_SOURCE)
|
||||
# define __USE_POSIX 1
|
||||
#endif
|
||||
|
||||
#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
|
||||
# define __USE_POSIX2 1
|
||||
#endif
|
||||
|
||||
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L
|
||||
# define __USE_POSIX199309 1
|
||||
#endif
|
||||
|
||||
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L
|
||||
# define __USE_POSIX199506 1
|
||||
#endif
|
||||
|
||||
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L
|
||||
# define __USE_XOPEN2K 1
|
||||
# undef __USE_ISOC95
|
||||
# define __USE_ISOC95 1
|
||||
# undef __USE_ISOC99
|
||||
# define __USE_ISOC99 1
|
||||
#endif
|
||||
|
||||
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L
|
||||
# define __USE_XOPEN2K8 1
|
||||
# undef _ATFILE_SOURCE
|
||||
# define _ATFILE_SOURCE 1
|
||||
#endif
|
||||
|
||||
#ifdef _XOPEN_SOURCE
|
||||
# define __USE_XOPEN 1
|
||||
# if (_XOPEN_SOURCE - 0) >= 500
|
||||
# define __USE_XOPEN_EXTENDED 1
|
||||
# define __USE_UNIX98 1
|
||||
# undef _LARGEFILE_SOURCE
|
||||
# define _LARGEFILE_SOURCE 1
|
||||
# if (_XOPEN_SOURCE - 0) >= 600
|
||||
# if (_XOPEN_SOURCE - 0) >= 700
|
||||
# define __USE_XOPEN2K8 1
|
||||
# define __USE_XOPEN2K8XSI 1
|
||||
# endif
|
||||
# define __USE_XOPEN2K 1
|
||||
# define __USE_XOPEN2KXSI 1
|
||||
# undef __USE_ISOC95
|
||||
# define __USE_ISOC95 1
|
||||
# undef __USE_ISOC99
|
||||
# define __USE_ISOC99 1
|
||||
# endif
|
||||
# else
|
||||
# ifdef _XOPEN_SOURCE_EXTENDED
|
||||
# define __USE_XOPEN_EXTENDED 1
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _LARGEFILE_SOURCE
|
||||
# define __USE_LARGEFILE 1
|
||||
#endif
|
||||
|
||||
#ifdef _LARGEFILE64_SOURCE
|
||||
# define __USE_LARGEFILE64 1
|
||||
#endif
|
||||
|
||||
#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
|
||||
# define __USE_FILE_OFFSET64 1
|
||||
#endif
|
||||
|
||||
#if defined _DEFAULT_SOURCE
|
||||
# define __USE_MISC 1
|
||||
#endif
|
||||
|
||||
#ifdef _ATFILE_SOURCE
|
||||
# define __USE_ATFILE 1
|
||||
#endif
|
||||
|
||||
#ifdef _GNU_SOURCE
|
||||
# define __USE_GNU 1
|
||||
#endif
|
||||
|
||||
#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0
|
||||
# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0
|
||||
# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
|
||||
# elif !__GNUC_PREREQ (4, 1)
|
||||
# warning _FORTIFY_SOURCE requires GCC 4.1 or later
|
||||
# elif _FORTIFY_SOURCE > 1
|
||||
# define __USE_FORTIFY_LEVEL 2
|
||||
# else
|
||||
# define __USE_FORTIFY_LEVEL 1
|
||||
# endif
|
||||
#endif
|
||||
#ifndef __USE_FORTIFY_LEVEL
|
||||
# define __USE_FORTIFY_LEVEL 0
|
||||
#endif
|
||||
|
||||
/* The function 'gets' existed in C89, but is impossible to use
|
||||
safely. It has been removed from ISO C11 and ISO C++14. Note: for
|
||||
compatibility with various implementations of <cstdio>, this test
|
||||
must consider only the value of __cplusplus when compiling C++. */
|
||||
#if defined __cplusplus ? __cplusplus >= 201402L : defined __USE_ISOC11
|
||||
# define __GLIBC_USE_DEPRECATED_GETS 0
|
||||
#else
|
||||
# define __GLIBC_USE_DEPRECATED_GETS 1
|
||||
#endif
|
||||
|
||||
/* 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. */
|
||||
#if defined __USE_GNU && \
|
||||
(defined __cplusplus \
|
||||
? (__cplusplus < 201103L && !defined __GXX_EXPERIMENTAL_CXX0X__) \
|
||||
: (!defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L))
|
||||
# define __GLIBC_USE_DEPRECATED_SCANF 1
|
||||
#else
|
||||
# define __GLIBC_USE_DEPRECATED_SCANF 0
|
||||
#endif
|
||||
|
||||
/* Get definitions of __STDC_* predefined macros, if the compiler has
|
||||
not preincluded this header automatically. */
|
||||
#include <stdc-predef.h>
|
||||
|
||||
/* 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
|
||||
on. The use of this variable is deprecated. Use __GLIBC__ and
|
||||
__GLIBC_MINOR__ now (see below) when you want to test for a specific
|
||||
GNU C library version and use the values in <gnu/lib-names.h> to get
|
||||
the sonames of the shared libraries. */
|
||||
#undef __GNU_LIBRARY__
|
||||
#define __GNU_LIBRARY__ 6
|
||||
|
||||
/* Major and minor version number of the GNU C library package. Use
|
||||
these macros to test for features in specific releases. */
|
||||
#define __GLIBC__ 2
|
||||
#define __GLIBC_MINOR__ 29
|
||||
|
||||
#define __GLIBC_PREREQ(maj, min) \
|
||||
((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
|
||||
|
||||
/* This is here only because every header file already includes this one. */
|
||||
#ifndef __ASSEMBLER__
|
||||
# ifndef _SYS_CDEFS_H
|
||||
# include <sys/cdefs.h>
|
||||
# endif
|
||||
|
||||
/* If we don't have __REDIRECT, prototypes will be missing if
|
||||
__USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
|
||||
# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
|
||||
# define __USE_LARGEFILE 1
|
||||
# define __USE_LARGEFILE64 1
|
||||
# endif
|
||||
|
||||
#endif /* !ASSEMBLER */
|
||||
|
||||
/* Decide whether we can define 'extern inline' functions in headers. */
|
||||
#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
|
||||
&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
|
||||
&& defined __extern_inline
|
||||
# define __USE_EXTERN_INLINES 1
|
||||
#endif
|
||||
|
||||
|
||||
/* This is here only because every header file already includes this one.
|
||||
Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
|
||||
<gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
|
||||
that will always return failure (and set errno to ENOSYS). */
|
||||
#include <gnu/stubs.h>
|
||||
|
||||
|
||||
#endif /* features.h */
|
Binary file not shown.
|
@ -1,23 +0,0 @@
|
|||
/* This file is automatically generated.
|
||||
It defines a symbol `__stub_FUNCTION' for each function
|
||||
in the C library which is a stub, meaning it will fail
|
||||
every time called, usually setting errno to ENOSYS. */
|
||||
|
||||
#ifdef _LIBC
|
||||
#error Applications may not define the macro _LIBC
|
||||
#endif
|
||||
|
||||
#define __stub___compat_bdflush
|
||||
#define __stub_chflags
|
||||
#define __stub_fattach
|
||||
#define __stub_fchflags
|
||||
#define __stub_fdetach
|
||||
#define __stub_getmsg
|
||||
#define __stub_gtty
|
||||
#define __stub_lchmod
|
||||
#define __stub_putmsg
|
||||
#define __stub_revoke
|
||||
#define __stub_setlogin
|
||||
#define __stub_sigreturn
|
||||
#define __stub_sstk
|
||||
#define __stub_stty
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue