| author | |
| committer | |
| log | 986b7ce5b27d5aa5fb2f31d70fd2cd863926bcba |
| tree | f6e3c52c3ef9b80466e4094a6913283d783b25ab |
| parent | f5f1f8c66625237e4eceb3cd40597a687e9a58ac |
74 files changed, 2635 insertions(+), 2635 deletions(-)
lib/libc/include/i386-linux-gnu/bits/a.out.h deleted-11| ... | @@ -1,11 +0,0 @@ | ||
| 1 | #ifndef __A_OUT_GNU_H__ | ||
| 2 | # error "Never use <bits/a.out.h> directly; include <a.out.h> instead." | ||
| 3 | #endif | ||
| 4 | |||
| 5 | #ifdef __x86_64__ | ||
| 6 | |||
| 7 | /* Signal to users of this header that this architecture really doesn't | ||
| 8 | support a.out binary format. */ | ||
| 9 | #define __NO_A_OUT_SUPPORT 1 | ||
| 10 | |||
| 11 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/endianness.h deleted-11| ... | @@ -1,11 +0,0 @@ | ||
| 1 | #ifndef _BITS_ENDIANNESS_H | ||
| 2 | #define _BITS_ENDIANNESS_H 1 | ||
| 3 | |||
| 4 | #ifndef _BITS_ENDIAN_H | ||
| 5 | # error "Never use <bits/endianness.h> directly; include <endian.h> instead." | ||
| 6 | #endif | ||
| 7 | |||
| 8 | /* i386/x86_64 are little-endian. */ | ||
| 9 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
| 10 | |||
| 11 | #endif /* bits/endianness.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/environments.h deleted-105| ... | @@ -1,105 +0,0 @@ | ||
| 1 | /* Copyright (C) 1999-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _UNISTD_H | ||
| 19 | # error "Never include this file directly. Use <unistd.h> instead" | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #include <bits/wordsize.h> | ||
| 23 | |||
| 24 | /* This header should define the following symbols under the described | ||
| 25 | situations. A value `1' means that the model is always supported, | ||
| 26 | `-1' means it is never supported. Undefined means it cannot be | ||
| 27 | statically decided. | ||
| 28 | |||
| 29 | _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type | ||
| 30 | _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type | ||
| 31 | |||
| 32 | _POSIX_V7_LP64_OFF32	 64bit long and pointers and 32bit off_t type | ||
| 33 | _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type | ||
| 34 | |||
| 35 | The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, | ||
| 36 | _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, | ||
| 37 | _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were | ||
| 38 | used in previous versions of the Unix standard and are available | ||
| 39 | only for compatibility. | ||
| 40 | */ | ||
| 41 | |||
| 42 | #if __WORDSIZE == 64 | ||
| 43 | |||
| 44 | /* Environments with 32-bit wide pointers are optionally provided. | ||
| 45 | Therefore following macros aren't defined: | ||
| 46 | # undef _POSIX_V7_ILP32_OFF32 | ||
| 47 | # undef _POSIX_V7_ILP32_OFFBIG | ||
| 48 | # undef _POSIX_V6_ILP32_OFF32 | ||
| 49 | # undef _POSIX_V6_ILP32_OFFBIG | ||
| 50 | # undef _XBS5_ILP32_OFF32 | ||
| 51 | # undef _XBS5_ILP32_OFFBIG | ||
| 52 | and users need to check at runtime. */ | ||
| 53 | |||
| 54 | /* We also have no use (for now) for an environment with bigger pointers | ||
| 55 | and offsets. */ | ||
| 56 | # define _POSIX_V7_LPBIG_OFFBIG	-1 | ||
| 57 | # define _POSIX_V6_LPBIG_OFFBIG	-1 | ||
| 58 | # define _XBS5_LPBIG_OFFBIG	-1 | ||
| 59 | |||
| 60 | /* By default we have 64-bit wide `long int', pointers and `off_t'. */ | ||
| 61 | # define _POSIX_V7_LP64_OFF64	1 | ||
| 62 | # define _POSIX_V6_LP64_OFF64	1 | ||
| 63 | # define _XBS5_LP64_OFF64	1 | ||
| 64 | |||
| 65 | #else /* __WORDSIZE == 32 */ | ||
| 66 | |||
| 67 | /* We have 32-bit wide `int', `long int' and pointers and all platforms | ||
| 68 | support LFS. -mx32 has 64-bit wide `off_t'. */ | ||
| 69 | # define _POSIX_V7_ILP32_OFFBIG	1 | ||
| 70 | # define _POSIX_V6_ILP32_OFFBIG 1 | ||
| 71 | # define _XBS5_ILP32_OFFBIG	1 | ||
| 72 | |||
| 73 | # ifndef __x86_64__ | ||
| 74 | /* -m32 has 32-bit wide `off_t'. */ | ||
| 75 | # define _POSIX_V7_ILP32_OFF32	1 | ||
| 76 | # define _POSIX_V6_ILP32_OFF32	1 | ||
| 77 | # define _XBS5_ILP32_OFF32	1 | ||
| 78 | # endif | ||
| 79 | |||
| 80 | /* We optionally provide an environment with the above size but an 64-bit | ||
| 81 | side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ | ||
| 82 | |||
| 83 | /* Environments with 64-bit wide pointers can be provided, | ||
| 84 | so these macros aren't defined: | ||
| 85 | # undef _POSIX_V7_LP64_OFF64 | ||
| 86 | # undef _POSIX_V7_LPBIG_OFFBIG | ||
| 87 | # undef _POSIX_V6_LP64_OFF64 | ||
| 88 | # undef _POSIX_V6_LPBIG_OFFBIG | ||
| 89 | # undef _XBS5_LP64_OFF64 | ||
| 90 | # undef _XBS5_LPBIG_OFFBIG | ||
| 91 | and sysconf tests for it at runtime. */ | ||
| 92 | |||
| 93 | #endif /* __WORDSIZE == 32 */ | ||
| 94 | |||
| 95 | #define __ILP32_OFF32_CFLAGS	"-m32" | ||
| 96 | #define __ILP32_OFF32_LDFLAGS	"-m32" | ||
| 97 | #if defined __x86_64__ && defined __ILP32__ | ||
| 98 | # define __ILP32_OFFBIG_CFLAGS	"-mx32" | ||
| 99 | # define __ILP32_OFFBIG_LDFLAGS	"-mx32" | ||
| 100 | #else | ||
| 101 | # define __ILP32_OFFBIG_CFLAGS	"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" | ||
| 102 | # define __ILP32_OFFBIG_LDFLAGS	"-m32" | ||
| 103 | #endif | ||
| 104 | #define __LP64_OFF64_CFLAGS	"-m64" | ||
| 105 | #define __LP64_OFF64_LDFLAGS	"-m64" | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/epoll.h deleted-29| ... | @@ -1,29 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef	_SYS_EPOLL_H | ||
| 19 | # error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | /* Flags to be passed to epoll_create1. */ | ||
| 23 | enum | ||
| 24 | { | ||
| 25 | EPOLL_CLOEXEC = 02000000 | ||
| 26 | #define EPOLL_CLOEXEC EPOLL_CLOEXEC | ||
| 27 | }; | ||
| 28 | |||
| 29 | #define __EPOLL_PACKED __attribute__ ((__packed__)) | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/fcntl.h deleted-61| ... | @@ -1,61 +0,0 @@ | ||
| 1 | /* O_*, F_*, FD_* bit values for Linux/x86. | ||
| 2 | Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _FCNTL_H | ||
| 20 | # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifdef __x86_64__ | ||
| 24 | # define __O_LARGEFILE	0 | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #ifdef __x86_64__ | ||
| 28 | /* Not necessary, we always have 64-bit offsets. */ | ||
| 29 | # define F_GETLK64	5	/* Get record locking info. */ | ||
| 30 | # define F_SETLK64	6	/* Set record locking info (non-blocking). */ | ||
| 31 | # define F_SETLKW64	7	/* Set record locking info (blocking).	*/ | ||
| 32 | #endif | ||
| 33 | |||
| 34 | |||
| 35 | struct flock | ||
| 36 | { | ||
| 37 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | ||
| 38 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | ||
| 39 | #ifndef __USE_FILE_OFFSET64 | ||
| 40 | __off_t l_start;	/* Offset where the lock begins. */ | ||
| 41 | __off_t l_len;	/* Size of the locked area; zero means until EOF. */ | ||
| 42 | #else | ||
| 43 | __off64_t l_start;	/* Offset where the lock begins. */ | ||
| 44 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | ||
| 45 | #endif | ||
| 46 | __pid_t l_pid;	/* Process holding the lock. */ | ||
| 47 | }; | ||
| 48 | |||
| 49 | #ifdef __USE_LARGEFILE64 | ||
| 50 | struct flock64 | ||
| 51 | { | ||
| 52 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | ||
| 53 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | ||
| 54 | __off64_t l_start;	/* Offset where the lock begins. */ | ||
| 55 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | ||
| 56 | __pid_t l_pid;	/* Process holding the lock. */ | ||
| 57 | }; | ||
| 58 | #endif | ||
| 59 | |||
| 60 | /* Include generic Linux declarations. */ | ||
| 61 | #include <bits/fcntl-linux.h> | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/fenv.h deleted-116| ... | @@ -1,116 +0,0 @@ | ||
| 1 | /* Copyright (C) 1997-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _FENV_H | ||
| 19 | # error "Never use <bits/fenv.h> directly; include <fenv.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | /* Define bits representing the exception. We use the bit positions | ||
| 23 | of the appropriate bits in the FPU control word. */ | ||
| 24 | enum | ||
| 25 | { | ||
| 26 | FE_INVALID = | ||
| 27 | #define FE_INVALID	0x01 | ||
| 28 | FE_INVALID, | ||
| 29 | __FE_DENORM = 0x02, | ||
| 30 | FE_DIVBYZERO = | ||
| 31 | #define FE_DIVBYZERO	0x04 | ||
| 32 | FE_DIVBYZERO, | ||
| 33 | FE_OVERFLOW = | ||
| 34 | #define FE_OVERFLOW	0x08 | ||
| 35 | FE_OVERFLOW, | ||
| 36 | FE_UNDERFLOW = | ||
| 37 | #define FE_UNDERFLOW	0x10 | ||
| 38 | FE_UNDERFLOW, | ||
| 39 | FE_INEXACT = | ||
| 40 | #define FE_INEXACT	0x20 | ||
| 41 | FE_INEXACT | ||
| 42 | }; | ||
| 43 | |||
| 44 | #define FE_ALL_EXCEPT \ | ||
| 45 | 	(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) | ||
| 46 | |||
| 47 | /* The ix87 FPU supports all of the four defined rounding modes. We | ||
| 48 | use again the bit positions in the FPU control word as the values | ||
| 49 | for the appropriate macros. */ | ||
| 50 | enum | ||
| 51 | { | ||
| 52 | FE_TONEAREST = | ||
| 53 | #define FE_TONEAREST	0 | ||
| 54 | FE_TONEAREST, | ||
| 55 | FE_DOWNWARD = | ||
| 56 | #define FE_DOWNWARD	0x400 | ||
| 57 | FE_DOWNWARD, | ||
| 58 | FE_UPWARD = | ||
| 59 | #define FE_UPWARD	0x800 | ||
| 60 | FE_UPWARD, | ||
| 61 | FE_TOWARDZERO = | ||
| 62 | #define FE_TOWARDZERO	0xc00 | ||
| 63 | FE_TOWARDZERO | ||
| 64 | }; | ||
| 65 | |||
| 66 | |||
| 67 | /* Type representing exception flags. */ | ||
| 68 | typedef unsigned short int fexcept_t; | ||
| 69 | |||
| 70 | |||
| 71 | /* Type representing floating-point environment. This structure | ||
| 72 | corresponds to the layout of the block written by the `fstenv' | ||
| 73 | instruction and has additional fields for the contents of the MXCSR | ||
| 74 | register as written by the `stmxcsr' instruction. */ | ||
| 75 | typedef struct | ||
| 76 | { | ||
| 77 | unsigned short int __control_word; | ||
| 78 | unsigned short int __glibc_reserved1; | ||
| 79 | unsigned short int __status_word; | ||
| 80 | unsigned short int __glibc_reserved2; | ||
| 81 | unsigned short int __tags; | ||
| 82 | unsigned short int __glibc_reserved3; | ||
| 83 | unsigned int __eip; | ||
| 84 | unsigned short int __cs_selector; | ||
| 85 | unsigned int __opcode:11; | ||
| 86 | unsigned int __glibc_reserved4:5; | ||
| 87 | unsigned int __data_offset; | ||
| 88 | unsigned short int __data_selector; | ||
| 89 | unsigned short int __glibc_reserved5; | ||
| 90 | #ifdef __x86_64__ | ||
| 91 | unsigned int __mxcsr; | ||
| 92 | #endif | ||
| 93 | } | ||
| 94 | fenv_t; | ||
| 95 | |||
| 96 | /* If the default argument is used we use this value. */ | ||
| 97 | #define FE_DFL_ENV	((const fenv_t *) -1) | ||
| 98 | |||
| 99 | #ifdef __USE_GNU | ||
| 100 | /* Floating-point environment where none of the exception is masked. */ | ||
| 101 | # define FE_NOMASK_ENV	((const fenv_t *) -2) | ||
| 102 | #endif | ||
| 103 | |||
| 104 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | ||
| 105 | /* Type representing floating-point control modes. */ | ||
| 106 | typedef struct | ||
| 107 | { | ||
| 108 | unsigned short int __control_word; | ||
| 109 | unsigned short int __glibc_reserved; | ||
| 110 | unsigned int __mxcsr; | ||
| 111 | } | ||
| 112 | femode_t; | ||
| 113 | |||
| 114 | /* Default floating-point control modes. */ | ||
| 115 | # define FE_DFL_MODE	((const femode_t *) -1L) | ||
| 116 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/floatn.h deleted-121| ... | @@ -1,121 +0,0 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on x86. | ||
| 2 | Copyright (C) 2017-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | |||
| 24 | /* Defined to 1 if the current compiler invocation provides a | ||
| 25 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 26 | glibc includes corresponding *f128 interfaces for it. The required | ||
| 27 | libgcc support was added some time after the basic compiler | ||
| 28 | support, for x86_64 and x86. */ | ||
| 29 | #if (defined __x86_64__							\ | ||
| 30 | ? __GNUC_PREREQ (4, 3)						\ | ||
| 31 | : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) | ||
| 32 | # define __HAVE_FLOAT128 1 | ||
| 33 | #else | ||
| 34 | # define __HAVE_FLOAT128 0 | ||
| 35 | #endif | ||
| 36 | |||
| 37 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 38 | from the default float, double and long double types in this glibc. */ | ||
| 39 | #if __HAVE_FLOAT128 | ||
| 40 | # define __HAVE_DISTINCT_FLOAT128 1 | ||
| 41 | #else | ||
| 42 | # define __HAVE_DISTINCT_FLOAT128 0 | ||
| 43 | #endif | ||
| 44 | |||
| 45 | /* Defined to 1 if the current compiler invocation provides a | ||
| 46 | floating-point type with the right format for _Float64x, and this | ||
| 47 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 48 | #define __HAVE_FLOAT64X 1 | ||
| 49 | |||
| 50 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 51 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 52 | the format of _Float128, which must be different from that of long | ||
| 53 | double. */ | ||
| 54 | #define __HAVE_FLOAT64X_LONG_DOUBLE 1 | ||
| 55 | |||
| 56 | #ifndef __ASSEMBLER__ | ||
| 57 | |||
| 58 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 59 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 60 | # if __HAVE_FLOAT128 | ||
| 61 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 62 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 63 | # define __f128(x) x##q | ||
| 64 | # else | ||
| 65 | # define __f128(x) x##f128 | ||
| 66 | # endif | ||
| 67 | # endif | ||
| 68 | |||
| 69 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 70 | # if __HAVE_FLOAT128 | ||
| 71 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 72 | /* Add a typedef for older GCC compilers which don't natively support | ||
| 73 | _Complex _Float128. */ | ||
| 74 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); | ||
| 75 | # define __CFLOAT128 __cfloat128 | ||
| 76 | # else | ||
| 77 | # define __CFLOAT128 _Complex _Float128 | ||
| 78 | # endif | ||
| 79 | # endif | ||
| 80 | |||
| 81 | /* The remaining of this file provides support for older compilers. */ | ||
| 82 | # if __HAVE_FLOAT128 | ||
| 83 | |||
| 84 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 85 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 86 | typedef __float128 _Float128; | ||
| 87 | # endif | ||
| 88 | |||
| 89 | /* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ | ||
| 90 | # if !__GNUC_PREREQ (7, 0) | ||
| 91 | # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) | ||
| 92 | # endif | ||
| 93 | |||
| 94 | /* Older GCC has only a subset of built-in functions for _Float128 on | ||
| 95 | x86, and __builtin_infq is not usable in static initializers. | ||
| 96 | Converting a narrower sNaN to _Float128 produces a quiet NaN, so | ||
| 97 | attempts to use _Float128 sNaNs will not work properly with older | ||
| 98 | compilers. */ | ||
| 99 | # if !__GNUC_PREREQ (7, 0) | ||
| 100 | # define __builtin_copysignf128 __builtin_copysignq | ||
| 101 | # define __builtin_fabsf128 __builtin_fabsq | ||
| 102 | # define __builtin_inff128() ((_Float128) __builtin_inf ()) | ||
| 103 | # define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) | ||
| 104 | # define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) | ||
| 105 | # endif | ||
| 106 | |||
| 107 | /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, | ||
| 108 | e.g.: __builtin_signbitf128, before GCC 6. However, there has never | ||
| 109 | been a __builtin_signbitf128 in GCC and the type-generic builtin is | ||
| 110 | only available since GCC 6. */ | ||
| 111 | # if !__GNUC_PREREQ (6, 0) | ||
| 112 | # define __builtin_signbitf128 __signbitf128 | ||
| 113 | # endif | ||
| 114 | |||
| 115 | # endif | ||
| 116 | |||
| 117 | #endif /* !__ASSEMBLER__. */ | ||
| 118 | |||
| 119 | #include <bits/floatn-common.h> | ||
| 120 | |||
| 121 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/flt-eval-method.h deleted-33| ... | @@ -1,33 +0,0 @@ | ||
| 1 | /* Define __GLIBC_FLT_EVAL_METHOD. x86 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifdef __FLT_EVAL_METHOD__ | ||
| 24 | # if __FLT_EVAL_METHOD__ == -1 | ||
| 25 | # define __GLIBC_FLT_EVAL_METHOD	2 | ||
| 26 | # else | ||
| 27 | # define __GLIBC_FLT_EVAL_METHOD	__FLT_EVAL_METHOD__ | ||
| 28 | # endif | ||
| 29 | #elif defined __x86_64__ | ||
| 30 | # define __GLIBC_FLT_EVAL_METHOD	0 | ||
| 31 | #else | ||
| 32 | # define __GLIBC_FLT_EVAL_METHOD	2 | ||
| 33 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/fp-logb.h deleted-24| ... | @@ -1,24 +0,0 @@ | ||
| 1 | /* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. x86 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never use <bits/fp-logb.h> directly; include <math.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __FP_LOGB0_IS_MIN	1 | ||
| 24 | #define __FP_LOGBNAN_IS_MIN	1 | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/indirect-return.h deleted-37| ... | @@ -1,37 +0,0 @@ | ||
| 1 | /* Definition of __INDIRECT_RETURN. x86 version. | ||
| 2 | Copyright (C) 2018-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _UCONTEXT_H | ||
| 20 | # error "Never include <bits/indirect-return.h> directly; use <ucontext.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* On x86, swapcontext returns via indirect branch when the shadow stack | ||
| 24 | is enabled. Define __INDIRECT_RETURN to indicate whether swapcontext | ||
| 25 | returns via indirect branch. */ | ||
| 26 | #if defined __CET__ && (__CET__ & 2) != 0 | ||
| 27 | # if __glibc_has_attribute (__indirect_return__) | ||
| 28 | # define __INDIRECT_RETURN __attribute__ ((__indirect_return__)) | ||
| 29 | # else | ||
| 30 | /* Newer compilers provide the indirect_return attribute, but without | ||
| 31 | it we can use returns_twice to affect the optimizer in the same | ||
| 32 | way and avoid unsafe optimizations. */ | ||
| 33 | # define __INDIRECT_RETURN __attribute__ ((__returns_twice__)) | ||
| 34 | # endif | ||
| 35 | #else | ||
| 36 | # define __INDIRECT_RETURN | ||
| 37 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/ipctypes.h deleted-33| ... | @@ -1,33 +0,0 @@ | ||
| 1 | /* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. | ||
| 2 | Copyright (C) 2012-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_IPC_H | ||
| 20 | # error "Never use <bits/ipctypes.h> directly; include <sys/ipc.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifndef _BITS_IPCTYPES_H | ||
| 24 | #define _BITS_IPCTYPES_H	1 | ||
| 25 | |||
| 26 | /* Used in `struct shmid_ds'. */ | ||
| 27 | # ifdef __x86_64__ | ||
| 28 | typedef int __ipc_pid_t; | ||
| 29 | # else | ||
| 30 | typedef unsigned short int __ipc_pid_t; | ||
| 31 | # endif | ||
| 32 | |||
| 33 | #endif /* bits/ipctypes.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/iscanonical.h deleted-54| ... | @@ -1,54 +0,0 @@ | ||
| 1 | /* Define iscanonical macro. ldbl-96 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | extern int __iscanonicall (long double __x) | ||
| 24 | __THROW __attribute__ ((__const__)); | ||
| 25 | #define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) | ||
| 26 | #define __iscanonical(x) ((void) (__typeof (x)) (x), 1) | ||
| 27 | #if __HAVE_DISTINCT_FLOAT128 | ||
| 28 | # define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1) | ||
| 29 | #endif | ||
| 30 | |||
| 31 | /* Return nonzero value if X is canonical. In IEEE interchange binary | ||
| 32 | formats, all values are canonical, but the argument must still be | ||
| 33 | converted to its semantic type for any exceptions arising from the | ||
| 34 | conversion, before being discarded; in extended precision, there | ||
| 35 | are encodings that are not consistently handled as corresponding to | ||
| 36 | any particular value of the type, and we return 0 for those. */ | ||
| 37 | #ifndef __cplusplus | ||
| 38 | # define iscanonical(x) __MATH_TG ((x), __iscanonical, (x)) | ||
| 39 | #else | ||
| 40 | /* In C++ mode, __MATH_TG cannot be used, because it relies on | ||
| 41 | __builtin_types_compatible_p, which is a C-only builtin. On the | ||
| 42 | other hand, overloading provides the means to distinguish between | ||
| 43 | the floating-point types. The overloading resolution will match | ||
| 44 | the correct parameter (regardless of type qualifiers (i.e.: const | ||
| 45 | and volatile)). */ | ||
| 46 | extern "C++" { | ||
| 47 | inline int iscanonical (float __val) { return __iscanonicalf (__val); } | ||
| 48 | inline int iscanonical (double __val) { return __iscanonical (__val); } | ||
| 49 | inline int iscanonical (long double __val) { return __iscanonicall (__val); } | ||
| 50 | # if __HAVE_DISTINCT_FLOAT128 | ||
| 51 | inline int iscanonical (_Float128 __val) { return __iscanonicalf128 (__val); } | ||
| 52 | # endif | ||
| 53 | } | ||
| 54 | #endif /* __cplusplus */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/link.h deleted-159| ... | @@ -1,159 +0,0 @@ | ||
| 1 | /* Copyright (C) 2004-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef	_LINK_H | ||
| 19 | # error "Never include <bits/link.h> directly; use <link.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | |||
| 23 | #ifndef __x86_64__ | ||
| 24 | /* Registers for entry into PLT on IA-32. */ | ||
| 25 | typedef struct La_i86_regs | ||
| 26 | { | ||
| 27 | uint32_t lr_edx; | ||
| 28 | uint32_t lr_ecx; | ||
| 29 | uint32_t lr_eax; | ||
| 30 | uint32_t lr_ebp; | ||
| 31 | uint32_t lr_esp; | ||
| 32 | } La_i86_regs; | ||
| 33 | |||
| 34 | /* Return values for calls from PLT on IA-32. */ | ||
| 35 | typedef struct La_i86_retval | ||
| 36 | { | ||
| 37 | uint32_t lrv_eax; | ||
| 38 | uint32_t lrv_edx; | ||
| 39 | long double lrv_st0; | ||
| 40 | long double lrv_st1; | ||
| 41 | uint64_t lrv_bnd0; | ||
| 42 | uint64_t lrv_bnd1; | ||
| 43 | } La_i86_retval; | ||
| 44 | |||
| 45 | |||
| 46 | __BEGIN_DECLS | ||
| 47 | |||
| 48 | extern Elf32_Addr la_i86_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx, | ||
| 49 | 				 uintptr_t *__refcook, | ||
| 50 | 				 uintptr_t *__defcook, | ||
| 51 | 				 La_i86_regs *__regs, | ||
| 52 | 				 unsigned int *__flags, | ||
| 53 | 				 const char *__symname, | ||
| 54 | 				 long int *__framesizep); | ||
| 55 | extern unsigned int la_i86_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx, | ||
| 56 | 					uintptr_t *__refcook, | ||
| 57 | 					uintptr_t *__defcook, | ||
| 58 | 					const La_i86_regs *__inregs, | ||
| 59 | 					La_i86_retval *__outregs, | ||
| 60 | 					const char *symname); | ||
| 61 | |||
| 62 | __END_DECLS | ||
| 63 | |||
| 64 | #else | ||
| 65 | |||
| 66 | /* Registers for entry into PLT on x86-64. */ | ||
| 67 | # if __GNUC_PREREQ (4,0) | ||
| 68 | typedef float La_x86_64_xmm __attribute__ ((__vector_size__ (16))); | ||
| 69 | typedef float La_x86_64_ymm | ||
| 70 | __attribute__ ((__vector_size__ (32), __aligned__ (16))); | ||
| 71 | typedef double La_x86_64_zmm | ||
| 72 | __attribute__ ((__vector_size__ (64), __aligned__ (16))); | ||
| 73 | # else | ||
| 74 | typedef float La_x86_64_xmm __attribute__ ((__mode__ (__V4SF__))); | ||
| 75 | # endif | ||
| 76 | |||
| 77 | typedef union | ||
| 78 | { | ||
| 79 | # if __GNUC_PREREQ (4,0) | ||
| 80 | La_x86_64_ymm ymm[2]; | ||
| 81 | La_x86_64_zmm zmm[1]; | ||
| 82 | # endif | ||
| 83 | La_x86_64_xmm xmm[4]; | ||
| 84 | } La_x86_64_vector __attribute__ ((__aligned__ (16))); | ||
| 85 | |||
| 86 | typedef struct La_x86_64_regs | ||
| 87 | { | ||
| 88 | uint64_t lr_rdx; | ||
| 89 | uint64_t lr_r8; | ||
| 90 | uint64_t lr_r9; | ||
| 91 | uint64_t lr_rcx; | ||
| 92 | uint64_t lr_rsi; | ||
| 93 | uint64_t lr_rdi; | ||
| 94 | uint64_t lr_rbp; | ||
| 95 | uint64_t lr_rsp; | ||
| 96 | La_x86_64_xmm lr_xmm[8]; | ||
| 97 | La_x86_64_vector lr_vector[8]; | ||
| 98 | #ifndef __ILP32__ | ||
| 99 | __int128_t lr_bnd[4]; | ||
| 100 | #endif | ||
| 101 | } La_x86_64_regs; | ||
| 102 | |||
| 103 | /* Return values for calls from PLT on x86-64. */ | ||
| 104 | typedef struct La_x86_64_retval | ||
| 105 | { | ||
| 106 | uint64_t lrv_rax; | ||
| 107 | uint64_t lrv_rdx; | ||
| 108 | La_x86_64_xmm lrv_xmm0; | ||
| 109 | La_x86_64_xmm lrv_xmm1; | ||
| 110 | long double lrv_st0; | ||
| 111 | long double lrv_st1; | ||
| 112 | La_x86_64_vector lrv_vector0; | ||
| 113 | La_x86_64_vector lrv_vector1; | ||
| 114 | #ifndef __ILP32__ | ||
| 115 | __int128_t lrv_bnd0; | ||
| 116 | __int128_t lrv_bnd1; | ||
| 117 | #endif | ||
| 118 | } La_x86_64_retval; | ||
| 119 | |||
| 120 | #define La_x32_regs La_x86_64_regs | ||
| 121 | #define La_x32_retval La_x86_64_retval | ||
| 122 | |||
| 123 | __BEGIN_DECLS | ||
| 124 | |||
| 125 | extern Elf64_Addr la_x86_64_gnu_pltenter (Elf64_Sym *__sym, | ||
| 126 | 					 unsigned int __ndx, | ||
| 127 | 					 uintptr_t *__refcook, | ||
| 128 | 					 uintptr_t *__defcook, | ||
| 129 | 					 La_x86_64_regs *__regs, | ||
| 130 | 					 unsigned int *__flags, | ||
| 131 | 					 const char *__symname, | ||
| 132 | 					 long int *__framesizep); | ||
| 133 | extern unsigned int la_x86_64_gnu_pltexit (Elf64_Sym *__sym, | ||
| 134 | 					 unsigned int __ndx, | ||
| 135 | 					 uintptr_t *__refcook, | ||
| 136 | 					 uintptr_t *__defcook, | ||
| 137 | 					 const La_x86_64_regs *__inregs, | ||
| 138 | 					 La_x86_64_retval *__outregs, | ||
| 139 | 					 const char *__symname); | ||
| 140 | |||
| 141 | extern Elf32_Addr la_x32_gnu_pltenter (Elf32_Sym *__sym, | ||
| 142 | 				 unsigned int __ndx, | ||
| 143 | 				 uintptr_t *__refcook, | ||
| 144 | 				 uintptr_t *__defcook, | ||
| 145 | 				 La_x32_regs *__regs, | ||
| 146 | 				 unsigned int *__flags, | ||
| 147 | 				 const char *__symname, | ||
| 148 | 				 long int *__framesizep); | ||
| 149 | extern unsigned int la_x32_gnu_pltexit (Elf32_Sym *__sym, | ||
| 150 | 					unsigned int __ndx, | ||
| 151 | 					uintptr_t *__refcook, | ||
| 152 | 					uintptr_t *__defcook, | ||
| 153 | 					const La_x32_regs *__inregs, | ||
| 154 | 					La_x32_retval *__outregs, | ||
| 155 | 					const char *__symname); | ||
| 156 | |||
| 157 | __END_DECLS | ||
| 158 | |||
| 159 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/long-double.h deleted-21| ... | @@ -1,21 +0,0 @@ | ||
| 1 | /* Properties of long double type. ldbl-96 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | /* long double is distinct from double, so there is nothing to | ||
| 20 | define here. */ | ||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/math-vector.h deleted-63| ... | @@ -1,63 +0,0 @@ | ||
| 1 | /* Platform-specific SIMD declarations of math functions. | ||
| 2 | Copyright (C) 2014-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never include <bits/math-vector.h> directly;\ | ||
| 21 | include <math.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | /* Get default empty definitions for simd declarations. */ | ||
| 25 | #include <bits/libm-simd-decl-stubs.h> | ||
| 26 | |||
| 27 | #if defined __x86_64__ && defined __FAST_MATH__ | ||
| 28 | # if defined _OPENMP && _OPENMP >= 201307 | ||
| 29 | /* OpenMP case. */ | ||
| 30 | # define __DECL_SIMD_x86_64 _Pragma ("omp declare simd notinbranch") | ||
| 31 | # elif __GNUC_PREREQ (6,0) | ||
| 32 | /* W/o OpenMP use GCC 6.* __attribute__ ((__simd__)). */ | ||
| 33 | # define __DECL_SIMD_x86_64 __attribute__ ((__simd__ ("notinbranch"))) | ||
| 34 | # endif | ||
| 35 | |||
| 36 | # ifdef __DECL_SIMD_x86_64 | ||
| 37 | # undef __DECL_SIMD_cos | ||
| 38 | # define __DECL_SIMD_cos __DECL_SIMD_x86_64 | ||
| 39 | # undef __DECL_SIMD_cosf | ||
| 40 | # define __DECL_SIMD_cosf __DECL_SIMD_x86_64 | ||
| 41 | # undef __DECL_SIMD_sin | ||
| 42 | # define __DECL_SIMD_sin __DECL_SIMD_x86_64 | ||
| 43 | # undef __DECL_SIMD_sinf | ||
| 44 | # define __DECL_SIMD_sinf __DECL_SIMD_x86_64 | ||
| 45 | # undef __DECL_SIMD_sincos | ||
| 46 | # define __DECL_SIMD_sincos __DECL_SIMD_x86_64 | ||
| 47 | # undef __DECL_SIMD_sincosf | ||
| 48 | # define __DECL_SIMD_sincosf __DECL_SIMD_x86_64 | ||
| 49 | # undef __DECL_SIMD_log | ||
| 50 | # define __DECL_SIMD_log __DECL_SIMD_x86_64 | ||
| 51 | # undef __DECL_SIMD_logf | ||
| 52 | # define __DECL_SIMD_logf __DECL_SIMD_x86_64 | ||
| 53 | # undef __DECL_SIMD_exp | ||
| 54 | # define __DECL_SIMD_exp __DECL_SIMD_x86_64 | ||
| 55 | # undef __DECL_SIMD_expf | ||
| 56 | # define __DECL_SIMD_expf __DECL_SIMD_x86_64 | ||
| 57 | # undef __DECL_SIMD_pow | ||
| 58 | # define __DECL_SIMD_pow __DECL_SIMD_x86_64 | ||
| 59 | # undef __DECL_SIMD_powf | ||
| 60 | # define __DECL_SIMD_powf __DECL_SIMD_x86_64 | ||
| 61 | |||
| 62 | # endif | ||
| 63 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/mman.h deleted-34| ... | @@ -1,34 +0,0 @@ | ||
| 1 | /* Definitions for POSIX memory map interface. Linux/x86_64 version. | ||
| 2 | Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MMAN_H | ||
| 20 | # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* The following definitions basically come from the kernel headers. | ||
| 24 | But the kernel header is not namespace clean. */ | ||
| 25 | |||
| 26 | /* Other flags. */ | ||
| 27 | #ifdef __USE_MISC | ||
| 28 | # define MAP_32BIT	0x40		/* Only give out 32-bit addresses. */ | ||
| 29 | #endif | ||
| 30 | |||
| 31 | #include <bits/mman-map-flags-generic.h> | ||
| 32 | |||
| 33 | /* Include generic Linux declarations. */ | ||
| 34 | #include <bits/mman-linux.h> | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/procfs-id.h deleted-30| ... | @@ -1,30 +0,0 @@ | ||
| 1 | /* Types of pr_uid and pr_gid in struct elf_prpsinfo. x86 version. | ||
| 2 | Copyright (C) 2018-2021 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of the GNU C Library. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SYS_PROCFS_H | ||
| 21 | # error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | #if __WORDSIZE == 32 | ||
| 25 | typedef unsigned short int __pr_uid_t; | ||
| 26 | typedef unsigned short int __pr_gid_t; | ||
| 27 | #else | ||
| 28 | typedef unsigned int __pr_uid_t; | ||
| 29 | typedef unsigned int __pr_gid_t; | ||
| 30 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/procfs.h deleted-50| ... | @@ -1,50 +0,0 @@ | ||
| 1 | /* Types for registers for sys/procfs.h. x86 version. | ||
| 2 | Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_PROCFS_H | ||
| 20 | # error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Type for a general-purpose register. */ | ||
| 24 | #ifdef __x86_64__ | ||
| 25 | __extension__ typedef unsigned long long elf_greg_t; | ||
| 26 | #else | ||
| 27 | typedef unsigned long elf_greg_t; | ||
| 28 | #endif | ||
| 29 | |||
| 30 | /* And the whole bunch of them. We could have used `struct | ||
| 31 | user_regs_struct' directly in the typedef, but tradition says that | ||
| 32 | the register set is an array, which does have some peculiar | ||
| 33 | semantics, so leave it that way. */ | ||
| 34 | #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t)) | ||
| 35 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||
| 36 | |||
| 37 | #ifndef __x86_64__ | ||
| 38 | /* Register set for the floating-point registers. */ | ||
| 39 | typedef struct user_fpregs_struct elf_fpregset_t; | ||
| 40 | |||
| 41 | /* Register set for the extended floating-point registers. Includes | ||
| 42 | the Pentium III SSE registers in addition to the classic | ||
| 43 | floating-point stuff. */ | ||
| 44 | typedef struct user_fpxregs_struct elf_fpxregset_t; | ||
| 45 | #else | ||
| 46 | /* Register set for the extended floating-point registers. Includes | ||
| 47 | the Pentium III SSE registers in addition to the classic | ||
| 48 | floating-point stuff. */ | ||
| 49 | typedef struct user_fpregs_struct elf_fpregset_t; | ||
| 50 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/pthreadtypes-arch.h deleted-55| ... | @@ -1,55 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _BITS_PTHREADTYPES_ARCH_H | ||
| 19 | #define _BITS_PTHREADTYPES_ARCH_H	1 | ||
| 20 | |||
| 21 | #include <bits/wordsize.h> | ||
| 22 | |||
| 23 | #ifdef __x86_64__ | ||
| 24 | # if __WORDSIZE == 64 | ||
| 25 | # define __SIZEOF_PTHREAD_MUTEX_T 40 | ||
| 26 | # define __SIZEOF_PTHREAD_ATTR_T 56 | ||
| 27 | # define __SIZEOF_PTHREAD_RWLOCK_T 56 | ||
| 28 | # define __SIZEOF_PTHREAD_BARRIER_T 32 | ||
| 29 | # else | ||
| 30 | # define __SIZEOF_PTHREAD_MUTEX_T 32 | ||
| 31 | # define __SIZEOF_PTHREAD_ATTR_T 32 | ||
| 32 | # define __SIZEOF_PTHREAD_RWLOCK_T 44 | ||
| 33 | # define __SIZEOF_PTHREAD_BARRIER_T 20 | ||
| 34 | # endif | ||
| 35 | #else | ||
| 36 | # define __SIZEOF_PTHREAD_MUTEX_T 24 | ||
| 37 | # define __SIZEOF_PTHREAD_ATTR_T 36 | ||
| 38 | # define __SIZEOF_PTHREAD_RWLOCK_T 32 | ||
| 39 | # define __SIZEOF_PTHREAD_BARRIER_T 20 | ||
| 40 | #endif | ||
| 41 | #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 | ||
| 42 | #define __SIZEOF_PTHREAD_COND_T 48 | ||
| 43 | #define __SIZEOF_PTHREAD_CONDATTR_T 4 | ||
| 44 | #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 | ||
| 45 | #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 | ||
| 46 | |||
| 47 | #define __LOCK_ALIGNMENT | ||
| 48 | #define __ONCE_ALIGNMENT | ||
| 49 | |||
| 50 | #ifndef __x86_64__ | ||
| 51 | /* Extra attributes for the cleanup functions. */ | ||
| 52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) | ||
| 53 | #endif | ||
| 54 | |||
| 55 | #endif	/* bits/pthreadtypes.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/setjmp.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | /* Define the machine-dependent type `jmp_buf'. x86-64 version. */ | ||
| 19 | #ifndef _BITS_SETJMP_H | ||
| 20 | #define _BITS_SETJMP_H 1 | ||
| 21 | |||
| 22 | #if !defined _SETJMP_H && !defined _PTHREAD_H | ||
| 23 | # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/wordsize.h> | ||
| 27 | |||
| 28 | #ifndef _ASM | ||
| 29 | |||
| 30 | # if __WORDSIZE == 64 | ||
| 31 | typedef long int __jmp_buf[8]; | ||
| 32 | # elif defined __x86_64__ | ||
| 33 | __extension__ typedef long long int __jmp_buf[8]; | ||
| 34 | # else | ||
| 35 | typedef int __jmp_buf[6]; | ||
| 36 | # endif | ||
| 37 | |||
| 38 | #endif | ||
| 39 | |||
| 40 | #endif /* bits/setjmp.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/sigcontext.h deleted-196| ... | @@ -1,196 +0,0 @@ | ||
| 1 | /* Copyright (C) 2002-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _BITS_SIGCONTEXT_H | ||
| 19 | #define _BITS_SIGCONTEXT_H 1 | ||
| 20 | |||
| 21 | #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H | ||
| 22 | # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." | ||
| 23 | #endif | ||
| 24 | |||
| 25 | #include <bits/types.h> | ||
| 26 | |||
| 27 | #define FP_XSTATE_MAGIC1	0x46505853U | ||
| 28 | #define FP_XSTATE_MAGIC2	0x46505845U | ||
| 29 | #define FP_XSTATE_MAGIC2_SIZE	sizeof (FP_XSTATE_MAGIC2) | ||
| 30 | |||
| 31 | struct _fpx_sw_bytes | ||
| 32 | { | ||
| 33 | __uint32_t magic1; | ||
| 34 | __uint32_t extended_size; | ||
| 35 | __uint64_t xstate_bv; | ||
| 36 | __uint32_t xstate_size; | ||
| 37 | __uint32_t __glibc_reserved1[7]; | ||
| 38 | }; | ||
| 39 | |||
| 40 | struct _fpreg | ||
| 41 | { | ||
| 42 | unsigned short significand[4]; | ||
| 43 | unsigned short exponent; | ||
| 44 | }; | ||
| 45 | |||
| 46 | struct _fpxreg | ||
| 47 | { | ||
| 48 | unsigned short significand[4]; | ||
| 49 | unsigned short exponent; | ||
| 50 | unsigned short __glibc_reserved1[3]; | ||
| 51 | }; | ||
| 52 | |||
| 53 | struct _xmmreg | ||
| 54 | { | ||
| 55 | __uint32_t	element[4]; | ||
| 56 | }; | ||
| 57 | |||
| 58 | |||
| 59 | |||
| 60 | #ifndef __x86_64__ | ||
| 61 | |||
| 62 | struct _fpstate | ||
| 63 | { | ||
| 64 | /* Regular FPU environment. */ | ||
| 65 | __uint32_t	cw; | ||
| 66 | __uint32_t		sw; | ||
| 67 | __uint32_t		tag; | ||
| 68 | __uint32_t		ipoff; | ||
| 69 | __uint32_t		cssel; | ||
| 70 | __uint32_t		dataoff; | ||
| 71 | __uint32_t		datasel; | ||
| 72 | struct _fpreg	_st[8]; | ||
| 73 | unsigned short status; | ||
| 74 | unsigned short magic; | ||
| 75 | |||
| 76 | /* FXSR FPU environment. */ | ||
| 77 | __uint32_t		_fxsr_env[6]; | ||
| 78 | __uint32_t		mxcsr; | ||
| 79 | __uint32_t		__glibc_reserved1; | ||
| 80 | struct _fpxreg	_fxsr_st[8]; | ||
| 81 | struct _xmmreg	_xmm[8]; | ||
| 82 | __uint32_t		__glibc_reserved2[56]; | ||
| 83 | }; | ||
| 84 | |||
| 85 | #ifndef sigcontext_struct | ||
| 86 | /* Kernel headers before 2.1.1 define a struct sigcontext_struct, but | ||
| 87 | we need sigcontext. Some packages have come to rely on | ||
| 88 | sigcontext_struct being defined on 32-bit x86, so define this for | ||
| 89 | their benefit. */ | ||
| 90 | # define sigcontext_struct sigcontext | ||
| 91 | #endif | ||
| 92 | |||
| 93 | #define X86_FXSR_MAGIC		0x0000 | ||
| 94 | |||
| 95 | struct sigcontext | ||
| 96 | { | ||
| 97 | unsigned short gs, __gsh; | ||
| 98 | unsigned short fs, __fsh; | ||
| 99 | unsigned short es, __esh; | ||
| 100 | unsigned short ds, __dsh; | ||
| 101 | unsigned long edi; | ||
| 102 | unsigned long esi; | ||
| 103 | unsigned long ebp; | ||
| 104 | unsigned long esp; | ||
| 105 | unsigned long ebx; | ||
| 106 | unsigned long edx; | ||
| 107 | unsigned long ecx; | ||
| 108 | unsigned long eax; | ||
| 109 | unsigned long trapno; | ||
| 110 | unsigned long err; | ||
| 111 | unsigned long eip; | ||
| 112 | unsigned short cs, __csh; | ||
| 113 | unsigned long eflags; | ||
| 114 | unsigned long esp_at_signal; | ||
| 115 | unsigned short ss, __ssh; | ||
| 116 | struct _fpstate * fpstate; | ||
| 117 | unsigned long oldmask; | ||
| 118 | unsigned long cr2; | ||
| 119 | }; | ||
| 120 | |||
| 121 | #else /* __x86_64__ */ | ||
| 122 | |||
| 123 | struct _fpstate | ||
| 124 | { | ||
| 125 | /* FPU environment matching the 64-bit FXSAVE layout. */ | ||
| 126 | __uint16_t		cwd; | ||
| 127 | __uint16_t		swd; | ||
| 128 | __uint16_t		ftw; | ||
| 129 | __uint16_t		fop; | ||
| 130 | __uint64_t		rip; | ||
| 131 | __uint64_t		rdp; | ||
| 132 | __uint32_t		mxcsr; | ||
| 133 | __uint32_t		mxcr_mask; | ||
| 134 | struct _fpxreg	_st[8]; | ||
| 135 | struct _xmmreg	_xmm[16]; | ||
| 136 | __uint32_t		__glibc_reserved1[24]; | ||
| 137 | }; | ||
| 138 | |||
| 139 | struct sigcontext | ||
| 140 | { | ||
| 141 | __uint64_t r8; | ||
| 142 | __uint64_t r9; | ||
| 143 | __uint64_t r10; | ||
| 144 | __uint64_t r11; | ||
| 145 | __uint64_t r12; | ||
| 146 | __uint64_t r13; | ||
| 147 | __uint64_t r14; | ||
| 148 | __uint64_t r15; | ||
| 149 | __uint64_t rdi; | ||
| 150 | __uint64_t rsi; | ||
| 151 | __uint64_t rbp; | ||
| 152 | __uint64_t rbx; | ||
| 153 | __uint64_t rdx; | ||
| 154 | __uint64_t rax; | ||
| 155 | __uint64_t rcx; | ||
| 156 | __uint64_t rsp; | ||
| 157 | __uint64_t rip; | ||
| 158 | __uint64_t eflags; | ||
| 159 | unsigned short cs; | ||
| 160 | unsigned short gs; | ||
| 161 | unsigned short fs; | ||
| 162 | unsigned short __pad0; | ||
| 163 | __uint64_t err; | ||
| 164 | __uint64_t trapno; | ||
| 165 | __uint64_t oldmask; | ||
| 166 | __uint64_t cr2; | ||
| 167 | __extension__ union | ||
| 168 | { | ||
| 169 | struct _fpstate * fpstate; | ||
| 170 | __uint64_t __fpstate_word; | ||
| 171 | }; | ||
| 172 | __uint64_t __reserved1 [8]; | ||
| 173 | }; | ||
| 174 | |||
| 175 | #endif /* __x86_64__ */ | ||
| 176 | |||
| 177 | struct _xsave_hdr | ||
| 178 | { | ||
| 179 | __uint64_t xstate_bv; | ||
| 180 | __uint64_t __glibc_reserved1[2]; | ||
| 181 | __uint64_t __glibc_reserved2[5]; | ||
| 182 | }; | ||
| 183 | |||
| 184 | struct _ymmh_state | ||
| 185 | { | ||
| 186 | __uint32_t ymmh_space[64]; | ||
| 187 | }; | ||
| 188 | |||
| 189 | struct _xstate | ||
| 190 | { | ||
| 191 | struct _fpstate fpstate; | ||
| 192 | struct _xsave_hdr xstate_hdr; | ||
| 193 | struct _ymmh_state ymmh; | ||
| 194 | }; | ||
| 195 | |||
| 196 | #endif /* _BITS_SIGCONTEXT_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/siginfo-arch.h deleted-17| ... | @@ -1,17 +0,0 @@ | ||
| 1 | /* Architecture-specific adjustments to siginfo_t. x86 version. */ | ||
| 2 | #ifndef _BITS_SIGINFO_ARCH_H | ||
| 3 | #define _BITS_SIGINFO_ARCH_H 1 | ||
| 4 | |||
| 5 | #if defined __x86_64__ && __WORDSIZE == 32 | ||
| 6 | /* si_utime and si_stime must be 4 byte aligned for x32 to match the | ||
| 7 | kernel. We align siginfo_t to 8 bytes so that si_utime and | ||
| 8 | si_stime are actually aligned to 8 bytes since their offsets are | ||
| 9 | multiple of 8 bytes. Note: with some compilers, the alignment | ||
| 10 | attribute would be ignored if it were put in __SI_CLOCK_T instead | ||
| 11 | of encapsulated in a typedef. */ | ||
| 12 | typedef __clock_t __attribute__ ((__aligned__ (4))) __sigchld_clock_t; | ||
| 13 | # define __SI_ALIGNMENT __attribute__ ((__aligned__ (8))) | ||
| 14 | # define __SI_CLOCK_T __sigchld_clock_t | ||
| 15 | #endif | ||
| 16 | |||
| 17 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/struct_mutex.h deleted-63| ... | @@ -1,63 +0,0 @@ | ||
| 1 | /* x86 internal mutex struct definitions. | ||
| 2 | Copyright (C) 2019-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <http://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _THREAD_MUTEX_INTERNAL_H | ||
| 20 | #define _THREAD_MUTEX_INTERNAL_H 1 | ||
| 21 | |||
| 22 | struct __pthread_mutex_s | ||
| 23 | { | ||
| 24 | int __lock; | ||
| 25 | unsigned int __count; | ||
| 26 | int __owner; | ||
| 27 | #ifdef __x86_64__ | ||
| 28 | unsigned int __nusers; | ||
| 29 | #endif | ||
| 30 | /* KIND must stay at this position in the structure to maintain | ||
| 31 | binary compatibility with static initializers. */ | ||
| 32 | int __kind; | ||
| 33 | #ifdef __x86_64__ | ||
| 34 | short __spins; | ||
| 35 | short __elision; | ||
| 36 | __pthread_list_t __list; | ||
| 37 | # define __PTHREAD_MUTEX_HAVE_PREV 1 | ||
| 38 | #else | ||
| 39 | unsigned int __nusers; | ||
| 40 | __extension__ union | ||
| 41 | { | ||
| 42 | struct | ||
| 43 | { | ||
| 44 | short __espins; | ||
| 45 | short __eelision; | ||
| 46 | # define __spins __elision_data.__espins | ||
| 47 | # define __elision __elision_data.__eelision | ||
| 48 | } __elision_data; | ||
| 49 | __pthread_slist_t __list; | ||
| 50 | }; | ||
| 51 | # define __PTHREAD_MUTEX_HAVE_PREV 0 | ||
| 52 | #endif | ||
| 53 | }; | ||
| 54 | |||
| 55 | #ifdef __x86_64__ | ||
| 56 | # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ | ||
| 57 | 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } | ||
| 58 | #else | ||
| 59 | # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ | ||
| 60 | 0, 0, 0, __kind, 0, { { 0, 0 } } | ||
| 61 | #endif | ||
| 62 | |||
| 63 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/struct_rwlock.h deleted-65| ... | @@ -1,65 +0,0 @@ | ||
| 1 | /* x86 internal rwlock struct definitions. | ||
| 2 | Copyright (C) 2019-2021 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of the GNU C Library. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <http://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _RWLOCK_INTERNAL_H | ||
| 21 | #define _RWLOCK_INTERNAL_H | ||
| 22 | |||
| 23 | struct __pthread_rwlock_arch_t | ||
| 24 | { | ||
| 25 | unsigned int __readers; | ||
| 26 | unsigned int __writers; | ||
| 27 | unsigned int __wrphase_futex; | ||
| 28 | unsigned int __writers_futex; | ||
| 29 | unsigned int __pad3; | ||
| 30 | unsigned int __pad4; | ||
| 31 | #ifdef __x86_64__ | ||
| 32 | int __cur_writer; | ||
| 33 | int __shared; | ||
| 34 | signed char __rwelision; | ||
| 35 | # ifdef __ILP32__ | ||
| 36 | unsigned char __pad1[3]; | ||
| 37 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 } | ||
| 38 | # else | ||
| 39 | unsigned char __pad1[7]; | ||
| 40 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } | ||
| 41 | # endif | ||
| 42 | unsigned long int __pad2; | ||
| 43 | /* FLAGS must stay at this position in the structure to maintain | ||
| 44 | binary compatibility. */ | ||
| 45 | unsigned int __flags; | ||
| 46 | #else /* __x86_64__ */ | ||
| 47 | /* FLAGS must stay at this position in the structure to maintain | ||
| 48 | binary compatibility. */ | ||
| 49 | unsigned char __flags; | ||
| 50 | unsigned char __shared; | ||
| 51 | signed char __rwelision; | ||
| 52 | unsigned char __pad2; | ||
| 53 | int __cur_writer; | ||
| 54 | #endif | ||
| 55 | }; | ||
| 56 | |||
| 57 | #ifdef __x86_64__ | ||
| 58 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | ||
| 59 | 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags | ||
| 60 | #else | ||
| 61 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | ||
| 62 | 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0 | ||
| 63 | #endif | ||
| 64 | |||
| 65 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/struct_stat.h deleted-165| ... | @@ -1,165 +0,0 @@ | ||
| 1 | /* Definition for struct stat. | ||
| 2 | Copyright (C) 2020-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #if !defined _SYS_STAT_H && !defined _FCNTL_H | ||
| 20 | # error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifndef _BITS_STRUCT_STAT_H | ||
| 24 | #define _BITS_STRUCT_STAT_H	1 | ||
| 25 | |||
| 26 | struct stat | ||
| 27 | { | ||
| 28 | #ifdef __USE_TIME_BITS64 | ||
| 29 | # include <bits/struct_stat_time64_helper.h> | ||
| 30 | #else | ||
| 31 | __dev_t st_dev;		/* Device. */ | ||
| 32 | # ifndef __x86_64__ | ||
| 33 | unsigned short int __pad1; | ||
| 34 | # endif | ||
| 35 | # if defined __x86_64__ || !defined __USE_FILE_OFFSET64 | ||
| 36 | __ino_t st_ino;		/* File serial number.	*/ | ||
| 37 | # else | ||
| 38 | __ino_t __st_ino;			/* 32bit file serial number.	*/ | ||
| 39 | # endif | ||
| 40 | # ifndef __x86_64__ | ||
| 41 | __mode_t st_mode;			/* File mode. */ | ||
| 42 | __nlink_t st_nlink;			/* Link count. */ | ||
| 43 | # else | ||
| 44 | __nlink_t st_nlink;		/* Link count. */ | ||
| 45 | __mode_t st_mode;		/* File mode. */ | ||
| 46 | # endif | ||
| 47 | __uid_t st_uid;		/* User ID of the file's owner.	*/ | ||
| 48 | __gid_t st_gid;		/* Group ID of the file's group.*/ | ||
| 49 | # ifdef __x86_64__ | ||
| 50 | int __pad0; | ||
| 51 | # endif | ||
| 52 | __dev_t st_rdev;		/* Device number, if device. */ | ||
| 53 | # ifndef __x86_64__ | ||
| 54 | unsigned short int __pad2; | ||
| 55 | # endif | ||
| 56 | # if defined __x86_64__ || !defined __USE_FILE_OFFSET64 | ||
| 57 | __off_t st_size;			/* Size of file, in bytes. */ | ||
| 58 | # else | ||
| 59 | __off64_t st_size;			/* Size of file, in bytes. */ | ||
| 60 | # endif | ||
| 61 | __blksize_t st_blksize;	/* Optimal block size for I/O. */ | ||
| 62 | # if defined __x86_64__ || !defined __USE_FILE_OFFSET64 | ||
| 63 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | ||
| 64 | # else | ||
| 65 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | ||
| 66 | # endif | ||
| 67 | # ifdef __USE_XOPEN2K8 | ||
| 68 | /* Nanosecond resolution timestamps are stored in a format | ||
| 69 | equivalent to 'struct timespec'. This is the type used | ||
| 70 | whenever possible but the Unix namespace rules do not allow the | ||
| 71 | identifier 'timespec' to appear in the <sys/stat.h> header. | ||
| 72 | Therefore we have to handle the use of this header in strictly | ||
| 73 | standard-compliant sources special. */ | ||
| 74 | struct timespec st_atim;		/* Time of last access. */ | ||
| 75 | struct timespec st_mtim;		/* Time of last modification. */ | ||
| 76 | struct timespec st_ctim;		/* Time of last status change. */ | ||
| 77 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | ||
| 78 | # define st_mtime st_mtim.tv_sec | ||
| 79 | # define st_ctime st_ctim.tv_sec | ||
| 80 | # else | ||
| 81 | __time_t st_atime;			/* Time of last access. */ | ||
| 82 | __syscall_ulong_t st_atimensec;	/* Nscecs of last access. */ | ||
| 83 | __time_t st_mtime;			/* Time of last modification. */ | ||
| 84 | __syscall_ulong_t st_mtimensec;	/* Nsecs of last modification. */ | ||
| 85 | __time_t st_ctime;			/* Time of last status change. */ | ||
| 86 | __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change. */ | ||
| 87 | # endif | ||
| 88 | # ifdef __x86_64__ | ||
| 89 | __syscall_slong_t __glibc_reserved[3]; | ||
| 90 | # else | ||
| 91 | # ifndef __USE_FILE_OFFSET64 | ||
| 92 | unsigned long int __glibc_reserved4; | ||
| 93 | unsigned long int __glibc_reserved5; | ||
| 94 | # else | ||
| 95 | __ino64_t st_ino;			/* File serial number.	*/ | ||
| 96 | # endif | ||
| 97 | # endif | ||
| 98 | #endif /* __USE_TIME_BITS64 */ | ||
| 99 | }; | ||
| 100 | |||
| 101 | #ifdef __USE_LARGEFILE64 | ||
| 102 | /* Note stat64 has the same shape as stat for x86-64. */ | ||
| 103 | struct stat64 | ||
| 104 | { | ||
| 105 | # ifdef __USE_TIME_BITS64 | ||
| 106 | # include <bits/struct_stat_time64_helper.h> | ||
| 107 | # else | ||
| 108 | __dev_t st_dev;		/* Device. */ | ||
| 109 | # ifdef __x86_64__ | ||
| 110 | __ino64_t st_ino;		/* File serial number. */ | ||
| 111 | __nlink_t st_nlink;		/* Link count. */ | ||
| 112 | __mode_t st_mode;		/* File mode. */ | ||
| 113 | # else | ||
| 114 | unsigned int __pad1; | ||
| 115 | __ino_t __st_ino;			/* 32bit file serial number.	*/ | ||
| 116 | __mode_t st_mode;			/* File mode. */ | ||
| 117 | __nlink_t st_nlink;			/* Link count. */ | ||
| 118 | # endif | ||
| 119 | __uid_t st_uid;		/* User ID of the file's owner.	*/ | ||
| 120 | __gid_t st_gid;		/* Group ID of the file's group.*/ | ||
| 121 | # ifdef __x86_64__ | ||
| 122 | int __pad0; | ||
| 123 | __dev_t st_rdev;		/* Device number, if device. */ | ||
| 124 | __off_t st_size;		/* Size of file, in bytes. */ | ||
| 125 | # else | ||
| 126 | __dev_t st_rdev;			/* Device number, if device. */ | ||
| 127 | unsigned int __pad2; | ||
| 128 | __off64_t st_size;			/* Size of file, in bytes. */ | ||
| 129 | # endif | ||
| 130 | __blksize_t st_blksize;	/* Optimal block size for I/O. */ | ||
| 131 | __blkcnt64_t st_blocks;	/* Nr. 512-byte blocks allocated. */ | ||
| 132 | # ifdef __USE_XOPEN2K8 | ||
| 133 | /* Nanosecond resolution timestamps are stored in a format | ||
| 134 | equivalent to 'struct timespec'. This is the type used | ||
| 135 | whenever possible but the Unix namespace rules do not allow the | ||
| 136 | identifier 'timespec' to appear in the <sys/stat.h> header. | ||
| 137 | Therefore we have to handle the use of this header in strictly | ||
| 138 | standard-compliant sources special. */ | ||
| 139 | struct timespec st_atim;		/* Time of last access. */ | ||
| 140 | struct timespec st_mtim;		/* Time of last modification. */ | ||
| 141 | struct timespec st_ctim;		/* Time of last status change. */ | ||
| 142 | # else | ||
| 143 | __time_t st_atime;			/* Time of last access. */ | ||
| 144 | __syscall_ulong_t st_atimensec;	/* Nscecs of last access. */ | ||
| 145 | __time_t st_mtime;			/* Time of last modification. */ | ||
| 146 | __syscall_ulong_t st_mtimensec;	/* Nsecs of last modification. */ | ||
| 147 | __time_t st_ctime;			/* Time of last status change. */ | ||
| 148 | __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change. */ | ||
| 149 | # endif | ||
| 150 | # ifdef __x86_64__ | ||
| 151 | __syscall_slong_t __glibc_reserved[3]; | ||
| 152 | # else | ||
| 153 | __ino64_t st_ino;			/* File serial number.		*/ | ||
| 154 | # endif | ||
| 155 | # endif /* __USE_TIME_BITS64 */ | ||
| 156 | }; | ||
| 157 | #endif | ||
| 158 | |||
| 159 | /* Tell code we have these members. */ | ||
| 160 | #define	_STATBUF_ST_BLKSIZE | ||
| 161 | #define _STATBUF_ST_RDEV | ||
| 162 | /* Nanosecond resolution time values are supported. */ | ||
| 163 | #define _STATBUF_ST_NSEC | ||
| 164 | |||
| 165 | #endif /* _BITS_STRUCT_STAT_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/timesize.h deleted-25| ... | @@ -1,25 +0,0 @@ | ||
| 1 | /* Bit size of the time_t type at glibc build time, x86-64 and x32 case. | ||
| 2 | Copyright (C) 2018-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #if defined __x86_64__ && defined __ILP32__ | ||
| 20 | /* For x32, time is 64-bit even though word size is 32-bit. */ | ||
| 21 | # define __TIMESIZE	64 | ||
| 22 | #else | ||
| 23 | /* For others, time size is word size. */ | ||
| 24 | # define __TIMESIZE	__WORDSIZE | ||
| 25 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/types/struct_semid_ds.h deleted-38| ... | @@ -1,38 +0,0 @@ | ||
| 1 | /* x86 implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | #ifdef __USE_TIME_BITS64 | ||
| 27 | # include <bits/types/struct_semid64_ds_helper.h> | ||
| 28 | #else | ||
| 29 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 30 | __time_t sem_otime; /* last semop() time */ | ||
| 31 | __syscall_ulong_t __sem_otime_high; | ||
| 32 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 33 | __syscall_ulong_t __sem_ctime_high; | ||
| 34 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 35 | __syscall_ulong_t __glibc_reserved3; | ||
| 36 | __syscall_ulong_t __glibc_reserved4; | ||
| 37 | #endif | ||
| 38 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/typesizes.h deleted-106| ... | @@ -1,106 +0,0 @@ | ||
| 1 | /* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. | ||
| 2 | Copyright (C) 2012-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_TYPES_H | ||
| 20 | # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifndef	_BITS_TYPESIZES_H | ||
| 24 | #define	_BITS_TYPESIZES_H	1 | ||
| 25 | |||
| 26 | /* See <bits/types.h> for the meaning of these macros. This file exists so | ||
| 27 | that <bits/types.h> need not vary across different GNU platforms. */ | ||
| 28 | |||
| 29 | /* X32 kernel interface is 64-bit. */ | ||
| 30 | #if defined __x86_64__ && defined __ILP32__ | ||
| 31 | # define __SYSCALL_SLONG_TYPE	__SQUAD_TYPE | ||
| 32 | # define __SYSCALL_ULONG_TYPE	__UQUAD_TYPE | ||
| 33 | #else | ||
| 34 | # define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE | ||
| 35 | # define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #define __DEV_T_TYPE		__UQUAD_TYPE | ||
| 39 | #define __UID_T_TYPE		__U32_TYPE | ||
| 40 | #define __GID_T_TYPE		__U32_TYPE | ||
| 41 | #define __INO_T_TYPE		__SYSCALL_ULONG_TYPE | ||
| 42 | #define __INO64_T_TYPE		__UQUAD_TYPE | ||
| 43 | #define __MODE_T_TYPE		__U32_TYPE | ||
| 44 | #ifdef __x86_64__ | ||
| 45 | # define __NLINK_T_TYPE		__SYSCALL_ULONG_TYPE | ||
| 46 | # define __FSWORD_T_TYPE	__SYSCALL_SLONG_TYPE | ||
| 47 | #else | ||
| 48 | # define __NLINK_T_TYPE		__UWORD_TYPE | ||
| 49 | # define __FSWORD_T_TYPE	__SWORD_TYPE | ||
| 50 | #endif | ||
| 51 | #define __OFF_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 52 | #define __OFF64_T_TYPE		__SQUAD_TYPE | ||
| 53 | #define __PID_T_TYPE		__S32_TYPE | ||
| 54 | #define __RLIM_T_TYPE		__SYSCALL_ULONG_TYPE | ||
| 55 | #define __RLIM64_T_TYPE		__UQUAD_TYPE | ||
| 56 | #define __BLKCNT_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 57 | #define __BLKCNT64_T_TYPE	__SQUAD_TYPE | ||
| 58 | #define __FSBLKCNT_T_TYPE	__SYSCALL_ULONG_TYPE | ||
| 59 | #define __FSBLKCNT64_T_TYPE	__UQUAD_TYPE | ||
| 60 | #define __FSFILCNT_T_TYPE	__SYSCALL_ULONG_TYPE | ||
| 61 | #define __FSFILCNT64_T_TYPE	__UQUAD_TYPE | ||
| 62 | #define __ID_T_TYPE		__U32_TYPE | ||
| 63 | #define __CLOCK_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 65 | #define __USECONDS_T_TYPE	__U32_TYPE | ||
| 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE | ||
| 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 68 | #define __DADDR_T_TYPE		__S32_TYPE | ||
| 69 | #define __KEY_T_TYPE		__S32_TYPE | ||
| 70 | #define __CLOCKID_T_TYPE	__S32_TYPE | ||
| 71 | #define __TIMER_T_TYPE		void * | ||
| 72 | #define __BLKSIZE_T_TYPE	__SYSCALL_SLONG_TYPE | ||
| 73 | #define __FSID_T_TYPE		struct { int __val[2]; } | ||
| 74 | #define __SSIZE_T_TYPE		__SWORD_TYPE | ||
| 75 | #define __CPU_MASK_TYPE 	__SYSCALL_ULONG_TYPE | ||
| 76 | |||
| 77 | #ifdef __x86_64__ | ||
| 78 | /* Tell the libc code that off_t and off64_t are actually the same type | ||
| 79 | for all ABI purposes, even if possibly expressed as different base types | ||
| 80 | for C type-checking purposes. */ | ||
| 81 | # define __OFF_T_MATCHES_OFF64_T	1 | ||
| 82 | |||
| 83 | /* Same for ino_t and ino64_t. */ | ||
| 84 | # define __INO_T_MATCHES_INO64_T	1 | ||
| 85 | |||
| 86 | /* And for __rlim_t and __rlim64_t. */ | ||
| 87 | # define __RLIM_T_MATCHES_RLIM64_T	1 | ||
| 88 | |||
| 89 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | ||
| 90 | # define __STATFS_MATCHES_STATFS64 1 | ||
| 91 | |||
| 92 | /* And for getitimer, setitimer and rusage */ | ||
| 93 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 94 | #else | ||
| 95 | # define __RLIM_T_MATCHES_RLIM64_T	0 | ||
| 96 | |||
| 97 | # define __STATFS_MATCHES_STATFS64 0 | ||
| 98 | |||
| 99 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 100 | #endif | ||
| 101 | |||
| 102 | /* Number of descriptors that can fit in an `fd_set'. */ | ||
| 103 | #define __FD_SETSIZE		1024 | ||
| 104 | |||
| 105 | |||
| 106 | #endif /* bits/typesizes.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/bits/wordsize.h deleted-17| ... | @@ -1,17 +0,0 @@ | ||
| 1 | /* Determine the wordsize from the preprocessor defines. */ | ||
| 2 | |||
| 3 | #if defined __x86_64__ && !defined __ILP32__ | ||
| 4 | # define __WORDSIZE	64 | ||
| 5 | #else | ||
| 6 | # define __WORDSIZE	32 | ||
| 7 | #define __WORDSIZE32_SIZE_ULONG		0 | ||
| 8 | #define __WORDSIZE32_PTRDIFF_LONG	0 | ||
| 9 | #endif | ||
| 10 | |||
| 11 | #ifdef __x86_64__ | ||
| 12 | # define __WORDSIZE_TIME64_COMPAT32	1 | ||
| 13 | /* Both x86-64 and x32 use the 64-bit system call interface. */ | ||
| 14 | # define __SYSCALL_WORDSIZE		64 | ||
| 15 | #else | ||
| 16 | # define __WORDSIZE_TIME64_COMPAT32	0 | ||
| 17 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/finclude/math-vector-fortran.h deleted-43| ... | @@ -1,43 +0,0 @@ | ||
| 1 | ! Platform-specific declarations of SIMD math functions for Fortran. -*- f90 -*- | ||
| 2 | ! Copyright (C) 2019-2021 Free Software Foundation, Inc. | ||
| 3 | ! This file is part of the GNU C Library. | ||
| 4 | ! | ||
| 5 | ! The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | ! modify it under the terms of the GNU Lesser General Public | ||
| 7 | ! License as published by the Free Software Foundation; either | ||
| 8 | ! version 2.1 of the License, or (at your option) any later version. | ||
| 9 | ! | ||
| 10 | ! The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | ! Lesser General Public License for more details. | ||
| 14 | ! | ||
| 15 | ! You should have received a copy of the GNU Lesser General Public | ||
| 16 | ! License along with the GNU C Library; if not, see | ||
| 17 | ! <https://www.gnu.org/licenses/>. | ||
| 18 | |||
| 19 | !GCC$ builtin (cos) attributes simd (notinbranch) if('x86_64') | ||
| 20 | !GCC$ builtin (cosf) attributes simd (notinbranch) if('x86_64') | ||
| 21 | !GCC$ builtin (sin) attributes simd (notinbranch) if('x86_64') | ||
| 22 | !GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64') | ||
| 23 | !GCC$ builtin (sincos) attributes simd (notinbranch) if('x86_64') | ||
| 24 | !GCC$ builtin (sincosf) attributes simd (notinbranch) if('x86_64') | ||
| 25 | !GCC$ builtin (log) attributes simd (notinbranch) if('x86_64') | ||
| 26 | !GCC$ builtin (logf) attributes simd (notinbranch) if('x86_64') | ||
| 27 | !GCC$ builtin (exp) attributes simd (notinbranch) if('x86_64') | ||
| 28 | !GCC$ builtin (expf) attributes simd (notinbranch) if('x86_64') | ||
| 29 | !GCC$ builtin (pow) attributes simd (notinbranch) if('x86_64') | ||
| 30 | !GCC$ builtin (powf) attributes simd (notinbranch) if('x86_64') | ||
| 31 | |||
| 32 | !GCC$ builtin (cos) attributes simd (notinbranch) if('x32') | ||
| 33 | !GCC$ builtin (cosf) attributes simd (notinbranch) if('x32') | ||
| 34 | !GCC$ builtin (sin) attributes simd (notinbranch) if('x32') | ||
| 35 | !GCC$ builtin (sinf) attributes simd (notinbranch) if('x32') | ||
| 36 | !GCC$ builtin (sincos) attributes simd (notinbranch) if('x32') | ||
| 37 | !GCC$ builtin (sincosf) attributes simd (notinbranch) if('x32') | ||
| 38 | !GCC$ builtin (log) attributes simd (notinbranch) if('x32') | ||
| 39 | !GCC$ builtin (logf) attributes simd (notinbranch) if('x32') | ||
| 40 | !GCC$ builtin (exp) attributes simd (notinbranch) if('x32') | ||
| 41 | !GCC$ builtin (expf) attributes simd (notinbranch) if('x32') | ||
| 42 | !GCC$ builtin (pow) attributes simd (notinbranch) if('x32') | ||
| 43 | !GCC$ builtin (powf) attributes simd (notinbranch) if('x32') | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/fpu_control.h deleted-109| ... | @@ -1,109 +0,0 @@ | ||
| 1 | /* FPU control word bits. x86 version. | ||
| 2 | Copyright (C) 1993-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | Contributed by Olaf Flebbe. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _FPU_CONTROL_H | ||
| 21 | #define _FPU_CONTROL_H	1 | ||
| 22 | |||
| 23 | /* Note that this file sets on x86-64 only the x87 FPU, it does not | ||
| 24 | touch the SSE unit. */ | ||
| 25 | |||
| 26 | /* Here is the dirty part. Set up your 387 through the control word | ||
| 27 | * (cw) register. | ||
| 28 | * | ||
| 29 | * 15-13 12 11-10 9-8 7-6 5 4 3 2 1 0 | ||
| 30 | * | reserved | IC | RC | PC | reserved | PM | UM | OM | ZM | DM | IM | ||
| 31 | * | ||
| 32 | * IM: Invalid operation mask | ||
| 33 | * DM: Denormalized operand mask | ||
| 34 | * ZM: Zero-divide mask | ||
| 35 | * OM: Overflow mask | ||
| 36 | * UM: Underflow mask | ||
| 37 | * PM: Precision (inexact result) mask | ||
| 38 | * | ||
| 39 | * Mask bit is 1 means no interrupt. | ||
| 40 | * | ||
| 41 | * PC: Precision control | ||
| 42 | * 11 - round to extended precision | ||
| 43 | * 10 - round to double precision | ||
| 44 | * 00 - round to single precision | ||
| 45 | * | ||
| 46 | * RC: Rounding control | ||
| 47 | * 00 - rounding to nearest | ||
| 48 | * 01 - rounding down (toward - infinity) | ||
| 49 | * 10 - rounding up (toward + infinity) | ||
| 50 | * 11 - rounding toward zero | ||
| 51 | * | ||
| 52 | * IC: Infinity control | ||
| 53 | * That is for 8087 and 80287 only. | ||
| 54 | * | ||
| 55 | * The hardware default is 0x037f which we use. | ||
| 56 | */ | ||
| 57 | |||
| 58 | #include <features.h> | ||
| 59 | |||
| 60 | /* masking of interrupts */ | ||
| 61 | #define _FPU_MASK_IM 0x01 | ||
| 62 | #define _FPU_MASK_DM 0x02 | ||
| 63 | #define _FPU_MASK_ZM 0x04 | ||
| 64 | #define _FPU_MASK_OM 0x08 | ||
| 65 | #define _FPU_MASK_UM 0x10 | ||
| 66 | #define _FPU_MASK_PM 0x20 | ||
| 67 | |||
| 68 | /* precision control */ | ||
| 69 | #define _FPU_EXTENDED 0x300	/* libm requires double extended precision. */ | ||
| 70 | #define _FPU_DOUBLE 0x200 | ||
| 71 | #define _FPU_SINGLE 0x0 | ||
| 72 | |||
| 73 | /* rounding control */ | ||
| 74 | #define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */ | ||
| 75 | #define _FPU_RC_DOWN 0x400 | ||
| 76 | #define _FPU_RC_UP 0x800 | ||
| 77 | #define _FPU_RC_ZERO 0xC00 | ||
| 78 | |||
| 79 | #define _FPU_RESERVED 0xF0C0 /* Reserved bits in cw */ | ||
| 80 | |||
| 81 | |||
| 82 | /* The fdlibm code requires strict IEEE double precision arithmetic, | ||
| 83 | and no interrupts for exceptions, rounding to nearest. */ | ||
| 84 | |||
| 85 | #define _FPU_DEFAULT 0x037f | ||
| 86 | |||
| 87 | /* IEEE: same as above. */ | ||
| 88 | #define _FPU_IEEE 0x037f | ||
| 89 | |||
| 90 | /* Type of the control word. */ | ||
| 91 | typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__HI__))); | ||
| 92 | |||
| 93 | /* Macros for accessing the hardware control word. "*&" is used to | ||
| 94 | work around a bug in older versions of GCC. __volatile__ is used | ||
| 95 | to support combination of writing the control register and reading | ||
| 96 | it back. Without __volatile__, the old value may be used for reading | ||
| 97 | back under compiler optimization. | ||
| 98 | |||
| 99 | Note that the use of these macros is not sufficient anymore with | ||
| 100 | recent hardware nor on x86-64. Some floating point operations are | ||
| 101 | executed in the SSE/SSE2 engines which have their own control and | ||
| 102 | status register. */ | ||
| 103 | #define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw)) | ||
| 104 | #define _FPU_SETCW(cw) __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw)) | ||
| 105 | |||
| 106 | /* Default control word set at startup. */ | ||
| 107 | extern fpu_control_t __fpu_control; | ||
| 108 | |||
| 109 | #endif	/* fpu_control.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/gnu/lib-names.h deleted-17| ... | @@ -1,17 +0,0 @@ | ||
| 1 | /* This file is automatically generated. | ||
| 2 | It defines macros to allow user program to find the shared | ||
| 3 | library files which come as part of GNU libc. */ | ||
| 4 | #ifndef __GNU_LIB_NAMES_H | ||
| 5 | #define __GNU_LIB_NAMES_H	1 | ||
| 6 | |||
| 7 | #if !defined __x86_64__ | ||
| 8 | # include <gnu/lib-names-32.h> | ||
| 9 | #endif | ||
| 10 | #if defined __x86_64__ && defined __LP64__ | ||
| 11 | # include <gnu/lib-names-64.h> | ||
| 12 | #endif | ||
| 13 | #if defined __x86_64__ && defined __ILP32__ | ||
| 14 | # include <gnu/lib-names-x32.h> | ||
| 15 | #endif | ||
| 16 | |||
| 17 | #endif	/* gnu/lib-names.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/gnu/stubs.h deleted-14| ... | @@ -1,14 +0,0 @@ | ||
| 1 | /* This file is automatically generated. | ||
| 2 | This file selects the right generated file of `__stub_FUNCTION' macros | ||
| 3 | based on the architecture being compiled for. */ | ||
| 4 | |||
| 5 | |||
| 6 | #if !defined __x86_64__ | ||
| 7 | # include <gnu/stubs-32.h> | ||
| 8 | #endif | ||
| 9 | #if defined __x86_64__ && defined __LP64__ | ||
| 10 | # include <gnu/stubs-64.h> | ||
| 11 | #endif | ||
| 12 | #if defined __x86_64__ && defined __ILP32__ | ||
| 13 | # include <gnu/stubs-x32.h> | ||
| 14 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/sys/elf.h deleted-29| ... | @@ -1,29 +0,0 @@ | ||
| 1 | /* Copyright (C) 1998-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_ELF_H | ||
| 19 | #define _SYS_ELF_H	1 | ||
| 20 | |||
| 21 | #ifdef __x86_64__ | ||
| 22 | # error This header is unsupported on x86-64. | ||
| 23 | #else | ||
| 24 | # warning "This header is obsolete; use <sys/procfs.h> instead." | ||
| 25 | |||
| 26 | # include <sys/procfs.h> | ||
| 27 | #endif | ||
| 28 | |||
| 29 | #endif	/* _SYS_ELF_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/sys/ptrace.h deleted-202| ... | @@ -1,202 +0,0 @@ | ||
| 1 | /* `ptrace' debugger support interface. Linux/x86 version. | ||
| 2 | Copyright (C) 1996-2021 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of the GNU C Library. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SYS_PTRACE_H | ||
| 21 | #define _SYS_PTRACE_H	1 | ||
| 22 | |||
| 23 | #include <features.h> | ||
| 24 | #include <bits/types.h> | ||
| 25 | |||
| 26 | __BEGIN_DECLS | ||
| 27 | |||
| 28 | /* Type of the REQUEST argument to `ptrace.' */ | ||
| 29 | enum __ptrace_request | ||
| 30 | { | ||
| 31 | /* Indicate that the process making this request should be traced. | ||
| 32 | All signals received by this process can be intercepted by its | ||
| 33 | parent, and its parent can use the other `ptrace' requests. */ | ||
| 34 | PTRACE_TRACEME = 0, | ||
| 35 | #define PT_TRACE_ME PTRACE_TRACEME | ||
| 36 | |||
| 37 | /* Return the word in the process's text space at address ADDR. */ | ||
| 38 | PTRACE_PEEKTEXT = 1, | ||
| 39 | #define PT_READ_I PTRACE_PEEKTEXT | ||
| 40 | |||
| 41 | /* Return the word in the process's data space at address ADDR. */ | ||
| 42 | PTRACE_PEEKDATA = 2, | ||
| 43 | #define PT_READ_D PTRACE_PEEKDATA | ||
| 44 | |||
| 45 | /* Return the word in the process's user area at offset ADDR. */ | ||
| 46 | PTRACE_PEEKUSER = 3, | ||
| 47 | #define PT_READ_U PTRACE_PEEKUSER | ||
| 48 | |||
| 49 | /* Write the word DATA into the process's text space at address ADDR. */ | ||
| 50 | PTRACE_POKETEXT = 4, | ||
| 51 | #define PT_WRITE_I PTRACE_POKETEXT | ||
| 52 | |||
| 53 | /* Write the word DATA into the process's data space at address ADDR. */ | ||
| 54 | PTRACE_POKEDATA = 5, | ||
| 55 | #define PT_WRITE_D PTRACE_POKEDATA | ||
| 56 | |||
| 57 | /* Write the word DATA into the process's user area at offset ADDR. */ | ||
| 58 | PTRACE_POKEUSER = 6, | ||
| 59 | #define PT_WRITE_U PTRACE_POKEUSER | ||
| 60 | |||
| 61 | /* Continue the process. */ | ||
| 62 | PTRACE_CONT = 7, | ||
| 63 | #define PT_CONTINUE PTRACE_CONT | ||
| 64 | |||
| 65 | /* Kill the process. */ | ||
| 66 | PTRACE_KILL = 8, | ||
| 67 | #define PT_KILL PTRACE_KILL | ||
| 68 | |||
| 69 | /* Single step the process. */ | ||
| 70 | PTRACE_SINGLESTEP = 9, | ||
| 71 | #define PT_STEP PTRACE_SINGLESTEP | ||
| 72 | |||
| 73 | /* Get all general purpose registers used by a processes. */ | ||
| 74 | PTRACE_GETREGS = 12, | ||
| 75 | #define PT_GETREGS PTRACE_GETREGS | ||
| 76 | |||
| 77 | /* Set all general purpose registers used by a processes. */ | ||
| 78 | PTRACE_SETREGS = 13, | ||
| 79 | #define PT_SETREGS PTRACE_SETREGS | ||
| 80 | |||
| 81 | /* Get all floating point registers used by a processes. */ | ||
| 82 | PTRACE_GETFPREGS = 14, | ||
| 83 | #define PT_GETFPREGS PTRACE_GETFPREGS | ||
| 84 | |||
| 85 | /* Set all floating point registers used by a processes. */ | ||
| 86 | PTRACE_SETFPREGS = 15, | ||
| 87 | #define PT_SETFPREGS PTRACE_SETFPREGS | ||
| 88 | |||
| 89 | /* Attach to a process that is already running. */ | ||
| 90 | PTRACE_ATTACH = 16, | ||
| 91 | #define PT_ATTACH PTRACE_ATTACH | ||
| 92 | |||
| 93 | /* Detach from a process attached to with PTRACE_ATTACH. */ | ||
| 94 | PTRACE_DETACH = 17, | ||
| 95 | #define PT_DETACH PTRACE_DETACH | ||
| 96 | |||
| 97 | /* Get all extended floating point registers used by a processes. */ | ||
| 98 | PTRACE_GETFPXREGS = 18, | ||
| 99 | #define PT_GETFPXREGS PTRACE_GETFPXREGS | ||
| 100 | |||
| 101 | /* Set all extended floating point registers used by a processes. */ | ||
| 102 | PTRACE_SETFPXREGS = 19, | ||
| 103 | #define PT_SETFPXREGS PTRACE_SETFPXREGS | ||
| 104 | |||
| 105 | /* Continue and stop at the next entry to or return from syscall. */ | ||
| 106 | PTRACE_SYSCALL = 24, | ||
| 107 | #define PT_SYSCALL PTRACE_SYSCALL | ||
| 108 | |||
| 109 | /* Get a TLS entry in the GDT. */ | ||
| 110 | PTRACE_GET_THREAD_AREA = 25, | ||
| 111 | #define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA | ||
| 112 | |||
| 113 | /* Change a TLS entry in the GDT. */ | ||
| 114 | PTRACE_SET_THREAD_AREA = 26, | ||
| 115 | #define PT_SET_THREAD_AREA PTRACE_SET_THREAD_AREA | ||
| 116 | |||
| 117 | #ifdef __x86_64__ | ||
| 118 | /* Access TLS data. */ | ||
| 119 | PTRACE_ARCH_PRCTL = 30, | ||
| 120 | # define PT_ARCH_PRCTL PTRACE_ARCH_PRCTL | ||
| 121 | #endif | ||
| 122 | |||
| 123 | /* Continue and stop at the next syscall, it will not be executed. */ | ||
| 124 | PTRACE_SYSEMU = 31, | ||
| 125 | #define PT_SYSEMU PTRACE_SYSEMU | ||
| 126 | |||
| 127 | /* Single step the process, the next syscall will not be executed. */ | ||
| 128 | PTRACE_SYSEMU_SINGLESTEP = 32, | ||
| 129 | #define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP | ||
| 130 | |||
| 131 | /* Execute process until next taken branch. */ | ||
| 132 | PTRACE_SINGLEBLOCK = 33, | ||
| 133 | #define PT_STEPBLOCK PTRACE_SINGLEBLOCK | ||
| 134 | |||
| 135 | /* Set ptrace filter options. */ | ||
| 136 | PTRACE_SETOPTIONS = 0x4200, | ||
| 137 | #define PT_SETOPTIONS PTRACE_SETOPTIONS | ||
| 138 | |||
| 139 | /* Get last ptrace message. */ | ||
| 140 | PTRACE_GETEVENTMSG = 0x4201, | ||
| 141 | #define PT_GETEVENTMSG PTRACE_GETEVENTMSG | ||
| 142 | |||
| 143 | /* Get siginfo for process. */ | ||
| 144 | PTRACE_GETSIGINFO = 0x4202, | ||
| 145 | #define PT_GETSIGINFO PTRACE_GETSIGINFO | ||
| 146 | |||
| 147 | /* Set new siginfo for process. */ | ||
| 148 | PTRACE_SETSIGINFO = 0x4203, | ||
| 149 | #define PT_SETSIGINFO PTRACE_SETSIGINFO | ||
| 150 | |||
| 151 | /* Get register content. */ | ||
| 152 | PTRACE_GETREGSET = 0x4204, | ||
| 153 | #define PTRACE_GETREGSET PTRACE_GETREGSET | ||
| 154 | |||
| 155 | /* Set register content. */ | ||
| 156 | PTRACE_SETREGSET = 0x4205, | ||
| 157 | #define PTRACE_SETREGSET PTRACE_SETREGSET | ||
| 158 | |||
| 159 | /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect | ||
| 160 | signal or group stop state. */ | ||
| 161 | PTRACE_SEIZE = 0x4206, | ||
| 162 | #define PTRACE_SEIZE PTRACE_SEIZE | ||
| 163 | |||
| 164 | /* Trap seized tracee. */ | ||
| 165 | PTRACE_INTERRUPT = 0x4207, | ||
| 166 | #define PTRACE_INTERRUPT PTRACE_INTERRUPT | ||
| 167 | |||
| 168 | /* Wait for next group event. */ | ||
| 169 | PTRACE_LISTEN = 0x4208, | ||
| 170 | #define PTRACE_LISTEN PTRACE_LISTEN | ||
| 171 | |||
| 172 | /* Retrieve siginfo_t structures without removing signals from a queue. */ | ||
| 173 | PTRACE_PEEKSIGINFO = 0x4209, | ||
| 174 | #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO | ||
| 175 | |||
| 176 | /* Get the mask of blocked signals. */ | ||
| 177 | PTRACE_GETSIGMASK = 0x420a, | ||
| 178 | #define PTRACE_GETSIGMASK PTRACE_GETSIGMASK | ||
| 179 | |||
| 180 | /* Change the mask of blocked signals. */ | ||
| 181 | PTRACE_SETSIGMASK = 0x420b, | ||
| 182 | #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK | ||
| 183 | |||
| 184 | /* Get seccomp BPF filters. */ | ||
| 185 | PTRACE_SECCOMP_GET_FILTER = 0x420c, | ||
| 186 | #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER | ||
| 187 | |||
| 188 | /* Get seccomp BPF filter metadata. */ | ||
| 189 | PTRACE_SECCOMP_GET_METADATA = 0x420d, | ||
| 190 | #define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA | ||
| 191 | |||
| 192 | /* Get information about system call. */ | ||
| 193 | PTRACE_GET_SYSCALL_INFO = 0x420e | ||
| 194 | #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO | ||
| 195 | }; | ||
| 196 | |||
| 197 | |||
| 198 | #include <bits/ptrace-shared.h> | ||
| 199 | |||
| 200 | __END_DECLS | ||
| 201 | |||
| 202 | #endif /* _SYS_PTRACE_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/sys/ucontext.h deleted-262| ... | @@ -1,262 +0,0 @@ | ||
| 1 | /* Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_UCONTEXT_H | ||
| 19 | #define _SYS_UCONTEXT_H	1 | ||
| 20 | |||
| 21 | #include <features.h> | ||
| 22 | |||
| 23 | #include <bits/types.h> | ||
| 24 | #include <bits/types/sigset_t.h> | ||
| 25 | #include <bits/types/stack_t.h> | ||
| 26 | |||
| 27 | |||
| 28 | #ifdef __USE_MISC | ||
| 29 | # define __ctx(fld) fld | ||
| 30 | #else | ||
| 31 | # define __ctx(fld) __ ## fld | ||
| 32 | #endif | ||
| 33 | |||
| 34 | #ifdef __x86_64__ | ||
| 35 | |||
| 36 | /* Type for general register. */ | ||
| 37 | __extension__ typedef long long int greg_t; | ||
| 38 | |||
| 39 | /* Number of general registers. */ | ||
| 40 | #define __NGREG	23 | ||
| 41 | #ifdef __USE_MISC | ||
| 42 | # define NGREG	__NGREG | ||
| 43 | #endif | ||
| 44 | |||
| 45 | /* Container for all general registers. */ | ||
| 46 | typedef greg_t gregset_t[__NGREG]; | ||
| 47 | |||
| 48 | #ifdef __USE_GNU | ||
| 49 | /* Number of each register in the `gregset_t' array. */ | ||
| 50 | enum | ||
| 51 | { | ||
| 52 | REG_R8 = 0, | ||
| 53 | # define REG_R8		REG_R8 | ||
| 54 | REG_R9, | ||
| 55 | # define REG_R9		REG_R9 | ||
| 56 | REG_R10, | ||
| 57 | # define REG_R10	REG_R10 | ||
| 58 | REG_R11, | ||
| 59 | # define REG_R11	REG_R11 | ||
| 60 | REG_R12, | ||
| 61 | # define REG_R12	REG_R12 | ||
| 62 | REG_R13, | ||
| 63 | # define REG_R13	REG_R13 | ||
| 64 | REG_R14, | ||
| 65 | # define REG_R14	REG_R14 | ||
| 66 | REG_R15, | ||
| 67 | # define REG_R15	REG_R15 | ||
| 68 | REG_RDI, | ||
| 69 | # define REG_RDI	REG_RDI | ||
| 70 | REG_RSI, | ||
| 71 | # define REG_RSI	REG_RSI | ||
| 72 | REG_RBP, | ||
| 73 | # define REG_RBP	REG_RBP | ||
| 74 | REG_RBX, | ||
| 75 | # define REG_RBX	REG_RBX | ||
| 76 | REG_RDX, | ||
| 77 | # define REG_RDX	REG_RDX | ||
| 78 | REG_RAX, | ||
| 79 | # define REG_RAX	REG_RAX | ||
| 80 | REG_RCX, | ||
| 81 | # define REG_RCX	REG_RCX | ||
| 82 | REG_RSP, | ||
| 83 | # define REG_RSP	REG_RSP | ||
| 84 | REG_RIP, | ||
| 85 | # define REG_RIP	REG_RIP | ||
| 86 | REG_EFL, | ||
| 87 | # define REG_EFL	REG_EFL | ||
| 88 | REG_CSGSFS,		/* Actually short cs, gs, fs, __pad0. */ | ||
| 89 | # define REG_CSGSFS	REG_CSGSFS | ||
| 90 | REG_ERR, | ||
| 91 | # define REG_ERR	REG_ERR | ||
| 92 | REG_TRAPNO, | ||
| 93 | # define REG_TRAPNO	REG_TRAPNO | ||
| 94 | REG_OLDMASK, | ||
| 95 | # define REG_OLDMASK	REG_OLDMASK | ||
| 96 | REG_CR2 | ||
| 97 | # define REG_CR2	REG_CR2 | ||
| 98 | }; | ||
| 99 | #endif | ||
| 100 | |||
| 101 | struct _libc_fpxreg | ||
| 102 | { | ||
| 103 | unsigned short int __ctx(significand)[4]; | ||
| 104 | unsigned short int __ctx(exponent); | ||
| 105 | unsigned short int __glibc_reserved1[3]; | ||
| 106 | }; | ||
| 107 | |||
| 108 | struct _libc_xmmreg | ||
| 109 | { | ||
| 110 | __uint32_t	__ctx(element)[4]; | ||
| 111 | }; | ||
| 112 | |||
| 113 | struct _libc_fpstate | ||
| 114 | { | ||
| 115 | /* 64-bit FXSAVE format. */ | ||
| 116 | __uint16_t		__ctx(cwd); | ||
| 117 | __uint16_t		__ctx(swd); | ||
| 118 | __uint16_t		__ctx(ftw); | ||
| 119 | __uint16_t		__ctx(fop); | ||
| 120 | __uint64_t		__ctx(rip); | ||
| 121 | __uint64_t		__ctx(rdp); | ||
| 122 | __uint32_t		__ctx(mxcsr); | ||
| 123 | __uint32_t		__ctx(mxcr_mask); | ||
| 124 | struct _libc_fpxreg	_st[8]; | ||
| 125 | struct _libc_xmmreg	_xmm[16]; | ||
| 126 | __uint32_t		__glibc_reserved1[24]; | ||
| 127 | }; | ||
| 128 | |||
| 129 | /* Structure to describe FPU registers. */ | ||
| 130 | typedef struct _libc_fpstate *fpregset_t; | ||
| 131 | |||
| 132 | /* Context to describe whole processor state. */ | ||
| 133 | typedef struct | ||
| 134 | { | ||
| 135 | gregset_t __ctx(gregs); | ||
| 136 | /* Note that fpregs is a pointer. */ | ||
| 137 | fpregset_t __ctx(fpregs); | ||
| 138 | __extension__ unsigned long long __reserved1 [8]; | ||
| 139 | } mcontext_t; | ||
| 140 | |||
| 141 | /* Userlevel context. */ | ||
| 142 | typedef struct ucontext_t | ||
| 143 | { | ||
| 144 | unsigned long int __ctx(uc_flags); | ||
| 145 | struct ucontext_t *uc_link; | ||
| 146 | stack_t uc_stack; | ||
| 147 | mcontext_t uc_mcontext; | ||
| 148 | sigset_t uc_sigmask; | ||
| 149 | struct _libc_fpstate __fpregs_mem; | ||
| 150 | __extension__ unsigned long long int __ssp[4]; | ||
| 151 | } ucontext_t; | ||
| 152 | |||
| 153 | #else /* !__x86_64__ */ | ||
| 154 | |||
| 155 | /* Type for general register. */ | ||
| 156 | typedef int greg_t; | ||
| 157 | |||
| 158 | /* Number of general registers. */ | ||
| 159 | #define __NGREG	19 | ||
| 160 | #ifdef __USE_MISC | ||
| 161 | # define NGREG	__NGREG | ||
| 162 | #endif | ||
| 163 | |||
| 164 | /* Container for all general registers. */ | ||
| 165 | typedef greg_t gregset_t[__NGREG]; | ||
| 166 | |||
| 167 | #ifdef __USE_GNU | ||
| 168 | /* Number of each register is the `gregset_t' array. */ | ||
| 169 | enum | ||
| 170 | { | ||
| 171 | REG_GS = 0, | ||
| 172 | # define REG_GS		REG_GS | ||
| 173 | REG_FS, | ||
| 174 | # define REG_FS		REG_FS | ||
| 175 | REG_ES, | ||
| 176 | # define REG_ES		REG_ES | ||
| 177 | REG_DS, | ||
| 178 | # define REG_DS		REG_DS | ||
| 179 | REG_EDI, | ||
| 180 | # define REG_EDI	REG_EDI | ||
| 181 | REG_ESI, | ||
| 182 | # define REG_ESI	REG_ESI | ||
| 183 | REG_EBP, | ||
| 184 | # define REG_EBP	REG_EBP | ||
| 185 | REG_ESP, | ||
| 186 | # define REG_ESP	REG_ESP | ||
| 187 | REG_EBX, | ||
| 188 | # define REG_EBX	REG_EBX | ||
| 189 | REG_EDX, | ||
| 190 | # define REG_EDX	REG_EDX | ||
| 191 | REG_ECX, | ||
| 192 | # define REG_ECX	REG_ECX | ||
| 193 | REG_EAX, | ||
| 194 | # define REG_EAX	REG_EAX | ||
| 195 | REG_TRAPNO, | ||
| 196 | # define REG_TRAPNO	REG_TRAPNO | ||
| 197 | REG_ERR, | ||
| 198 | # define REG_ERR	REG_ERR | ||
| 199 | REG_EIP, | ||
| 200 | # define REG_EIP	REG_EIP | ||
| 201 | REG_CS, | ||
| 202 | # define REG_CS		REG_CS | ||
| 203 | REG_EFL, | ||
| 204 | # define REG_EFL	REG_EFL | ||
| 205 | REG_UESP, | ||
| 206 | # define REG_UESP	REG_UESP | ||
| 207 | REG_SS | ||
| 208 | # define REG_SS	REG_SS | ||
| 209 | }; | ||
| 210 | #endif | ||
| 211 | |||
| 212 | /* Definitions taken from the kernel headers. */ | ||
| 213 | struct _libc_fpreg | ||
| 214 | { | ||
| 215 | unsigned short int __ctx(significand)[4]; | ||
| 216 | unsigned short int __ctx(exponent); | ||
| 217 | }; | ||
| 218 | |||
| 219 | struct _libc_fpstate | ||
| 220 | { | ||
| 221 | unsigned long int __ctx(cw); | ||
| 222 | unsigned long int __ctx(sw); | ||
| 223 | unsigned long int __ctx(tag); | ||
| 224 | unsigned long int __ctx(ipoff); | ||
| 225 | unsigned long int __ctx(cssel); | ||
| 226 | unsigned long int __ctx(dataoff); | ||
| 227 | unsigned long int __ctx(datasel); | ||
| 228 | struct _libc_fpreg _st[8]; | ||
| 229 | unsigned long int __ctx(status); | ||
| 230 | }; | ||
| 231 | |||
| 232 | /* Structure to describe FPU registers. */ | ||
| 233 | typedef struct _libc_fpstate *fpregset_t; | ||
| 234 | |||
| 235 | /* Context to describe whole processor state. */ | ||
| 236 | typedef struct | ||
| 237 | { | ||
| 238 | gregset_t __ctx(gregs); | ||
| 239 | /* Due to Linux's history we have to use a pointer here. The SysV/i386 | ||
| 240 | ABI requires a struct with the values. */ | ||
| 241 | fpregset_t __ctx(fpregs); | ||
| 242 | unsigned long int __ctx(oldmask); | ||
| 243 | unsigned long int __ctx(cr2); | ||
| 244 | } mcontext_t; | ||
| 245 | |||
| 246 | /* Userlevel context. */ | ||
| 247 | typedef struct ucontext_t | ||
| 248 | { | ||
| 249 | unsigned long int __ctx(uc_flags); | ||
| 250 | struct ucontext_t *uc_link; | ||
| 251 | stack_t uc_stack; | ||
| 252 | mcontext_t uc_mcontext; | ||
| 253 | sigset_t uc_sigmask; | ||
| 254 | struct _libc_fpstate __fpregs_mem; | ||
| 255 | unsigned long int __ssp[4]; | ||
| 256 | } ucontext_t; | ||
| 257 | |||
| 258 | #endif /* !__x86_64__ */ | ||
| 259 | |||
| 260 | #undef __ctx | ||
| 261 | |||
| 262 | #endif /* sys/ucontext.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/i386-linux-gnu/sys/user.h deleted-180| ... | @@ -1,180 +0,0 @@ | ||
| 1 | /* Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_USER_H | ||
| 19 | #define _SYS_USER_H	1 | ||
| 20 | |||
| 21 | /* The whole purpose of this file is for GDB and GDB only. Don't read | ||
| 22 | too much into it. Don't use it for anything other than GDB unless | ||
| 23 | you know what you are doing. */ | ||
| 24 | |||
| 25 | #ifdef __x86_64__ | ||
| 26 | |||
| 27 | struct user_fpregs_struct | ||
| 28 | { | ||
| 29 | unsigned short int	cwd; | ||
| 30 | unsigned short int	swd; | ||
| 31 | unsigned short int	ftw; | ||
| 32 | unsigned short int	fop; | ||
| 33 | __extension__ unsigned long long int rip; | ||
| 34 | __extension__ unsigned long long int rdp; | ||
| 35 | unsigned int		mxcsr; | ||
| 36 | unsigned int		mxcr_mask; | ||
| 37 | unsigned int		st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ | ||
| 38 | unsigned int		xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */ | ||
| 39 | unsigned int		padding[24]; | ||
| 40 | }; | ||
| 41 | |||
| 42 | struct user_regs_struct | ||
| 43 | { | ||
| 44 | __extension__ unsigned long long int r15; | ||
| 45 | __extension__ unsigned long long int r14; | ||
| 46 | __extension__ unsigned long long int r13; | ||
| 47 | __extension__ unsigned long long int r12; | ||
| 48 | __extension__ unsigned long long int rbp; | ||
| 49 | __extension__ unsigned long long int rbx; | ||
| 50 | __extension__ unsigned long long int r11; | ||
| 51 | __extension__ unsigned long long int r10; | ||
| 52 | __extension__ unsigned long long int r9; | ||
| 53 | __extension__ unsigned long long int r8; | ||
| 54 | __extension__ unsigned long long int rax; | ||
| 55 | __extension__ unsigned long long int rcx; | ||
| 56 | __extension__ unsigned long long int rdx; | ||
| 57 | __extension__ unsigned long long int rsi; | ||
| 58 | __extension__ unsigned long long int rdi; | ||
| 59 | __extension__ unsigned long long int orig_rax; | ||
| 60 | __extension__ unsigned long long int rip; | ||
| 61 | __extension__ unsigned long long int cs; | ||
| 62 | __extension__ unsigned long long int eflags; | ||
| 63 | __extension__ unsigned long long int rsp; | ||
| 64 | __extension__ unsigned long long int ss; | ||
| 65 | __extension__ unsigned long long int fs_base; | ||
| 66 | __extension__ unsigned long long int gs_base; | ||
| 67 | __extension__ unsigned long long int ds; | ||
| 68 | __extension__ unsigned long long int es; | ||
| 69 | __extension__ unsigned long long int fs; | ||
| 70 | __extension__ unsigned long long int gs; | ||
| 71 | }; | ||
| 72 | |||
| 73 | struct user | ||
| 74 | { | ||
| 75 | struct user_regs_struct	regs; | ||
| 76 | int				u_fpvalid; | ||
| 77 | struct user_fpregs_struct	i387; | ||
| 78 | __extension__ unsigned long long int	u_tsize; | ||
| 79 | __extension__ unsigned long long int	u_dsize; | ||
| 80 | __extension__ unsigned long long int	u_ssize; | ||
| 81 | __extension__ unsigned long long int	start_code; | ||
| 82 | __extension__ unsigned long long int	start_stack; | ||
| 83 | __extension__ long long int		signal; | ||
| 84 | int				reserved; | ||
| 85 | __extension__ union | ||
| 86 | { | ||
| 87 | struct user_regs_struct*	u_ar0; | ||
| 88 | __extension__ unsigned long long int	__u_ar0_word; | ||
| 89 | }; | ||
| 90 | __extension__ union | ||
| 91 | { | ||
| 92 | struct user_fpregs_struct*	u_fpstate; | ||
| 93 | __extension__ unsigned long long int	__u_fpstate_word; | ||
| 94 | }; | ||
| 95 | __extension__ unsigned long long int	magic; | ||
| 96 | char				u_comm [32]; | ||
| 97 | __extension__ unsigned long long int	u_debugreg [8]; | ||
| 98 | }; | ||
| 99 | |||
| 100 | #else | ||
| 101 | /* These are the 32-bit x86 structures. */ | ||
| 102 | struct user_fpregs_struct | ||
| 103 | { | ||
| 104 | long int cwd; | ||
| 105 | long int swd; | ||
| 106 | long int twd; | ||
| 107 | long int fip; | ||
| 108 | long int fcs; | ||
| 109 | long int foo; | ||
| 110 | long int fos; | ||
| 111 | long int st_space [20]; | ||
| 112 | }; | ||
| 113 | |||
| 114 | struct user_fpxregs_struct | ||
| 115 | { | ||
| 116 | unsigned short int cwd; | ||
| 117 | unsigned short int swd; | ||
| 118 | unsigned short int twd; | ||
| 119 | unsigned short int fop; | ||
| 120 | long int fip; | ||
| 121 | long int fcs; | ||
| 122 | long int foo; | ||
| 123 | long int fos; | ||
| 124 | long int mxcsr; | ||
| 125 | long int reserved; | ||
| 126 | long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ | ||
| 127 | long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ | ||
| 128 | long int padding[56]; | ||
| 129 | }; | ||
| 130 | |||
| 131 | struct user_regs_struct | ||
| 132 | { | ||
| 133 | long int ebx; | ||
| 134 | long int ecx; | ||
| 135 | long int edx; | ||
| 136 | long int esi; | ||
| 137 | long int edi; | ||
| 138 | long int ebp; | ||
| 139 | long int eax; | ||
| 140 | long int xds; | ||
| 141 | long int xes; | ||
| 142 | long int xfs; | ||
| 143 | long int xgs; | ||
| 144 | long int orig_eax; | ||
| 145 | long int eip; | ||
| 146 | long int xcs; | ||
| 147 | long int eflags; | ||
| 148 | long int esp; | ||
| 149 | long int xss; | ||
| 150 | }; | ||
| 151 | |||
| 152 | struct user | ||
| 153 | { | ||
| 154 | struct user_regs_struct	regs; | ||
| 155 | int				u_fpvalid; | ||
| 156 | struct user_fpregs_struct	i387; | ||
| 157 | unsigned long int		u_tsize; | ||
| 158 | unsigned long int		u_dsize; | ||
| 159 | unsigned long int		u_ssize; | ||
| 160 | unsigned long int		start_code; | ||
| 161 | unsigned long int		start_stack; | ||
| 162 | long int			signal; | ||
| 163 | int				reserved; | ||
| 164 | struct user_regs_struct*	u_ar0; | ||
| 165 | struct user_fpregs_struct*	u_fpstate; | ||
| 166 | unsigned long int		magic; | ||
| 167 | char				u_comm [32]; | ||
| 168 | int				u_debugreg [8]; | ||
| 169 | }; | ||
| 170 | #endif /* __x86_64__ */ | ||
| 171 | |||
| 172 | #define PAGE_SHIFT		12 | ||
| 173 | #define PAGE_SIZE		(1UL << PAGE_SHIFT) | ||
| 174 | #define PAGE_MASK		(~(PAGE_SIZE-1)) | ||
| 175 | #define NBPG			PAGE_SIZE | ||
| 176 | #define UPAGES			1 | ||
| 177 | #define HOST_TEXT_START_ADDR	(u.start_code) | ||
| 178 | #define HOST_STACK_END_ADDR	(u.start_stack + u.u_ssize * NBPG) | ||
| 179 | |||
| 180 | #endif	/* _SYS_USER_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/a.out.h created+11| ... | @@ -0,0 +1,11 @@ | ||
| 1 | #ifndef __A_OUT_GNU_H__ | ||
| 2 | # error "Never use <bits/a.out.h> directly; include <a.out.h> instead." | ||
| 3 | #endif | ||
| 4 | |||
| 5 | #ifdef __x86_64__ | ||
| 6 | |||
| 7 | /* Signal to users of this header that this architecture really doesn't | ||
| 8 | support a.out binary format. */ | ||
| 9 | #define __NO_A_OUT_SUPPORT 1 | ||
| 10 | |||
| 11 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/endianness.h created+11| ... | @@ -0,0 +1,11 @@ | ||
| 1 | #ifndef _BITS_ENDIANNESS_H | ||
| 2 | #define _BITS_ENDIANNESS_H 1 | ||
| 3 | |||
| 4 | #ifndef _BITS_ENDIAN_H | ||
| 5 | # error "Never use <bits/endianness.h> directly; include <endian.h> instead." | ||
| 6 | #endif | ||
| 7 | |||
| 8 | /* i386/x86_64 are little-endian. */ | ||
| 9 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
| 10 | |||
| 11 | #endif /* bits/endianness.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/environments.h created+105| ... | @@ -0,0 +1,105 @@ | ||
| 1 | /* Copyright (C) 1999-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _UNISTD_H | ||
| 19 | # error "Never include this file directly. Use <unistd.h> instead" | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #include <bits/wordsize.h> | ||
| 23 | |||
| 24 | /* This header should define the following symbols under the described | ||
| 25 | situations. A value `1' means that the model is always supported, | ||
| 26 | `-1' means it is never supported. Undefined means it cannot be | ||
| 27 | statically decided. | ||
| 28 | |||
| 29 | _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type | ||
| 30 | _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type | ||
| 31 | |||
| 32 | _POSIX_V7_LP64_OFF32	 64bit long and pointers and 32bit off_t type | ||
| 33 | _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type | ||
| 34 | |||
| 35 | The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, | ||
| 36 | _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, | ||
| 37 | _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were | ||
| 38 | used in previous versions of the Unix standard and are available | ||
| 39 | only for compatibility. | ||
| 40 | */ | ||
| 41 | |||
| 42 | #if __WORDSIZE == 64 | ||
| 43 | |||
| 44 | /* Environments with 32-bit wide pointers are optionally provided. | ||
| 45 | Therefore following macros aren't defined: | ||
| 46 | # undef _POSIX_V7_ILP32_OFF32 | ||
| 47 | # undef _POSIX_V7_ILP32_OFFBIG | ||
| 48 | # undef _POSIX_V6_ILP32_OFF32 | ||
| 49 | # undef _POSIX_V6_ILP32_OFFBIG | ||
| 50 | # undef _XBS5_ILP32_OFF32 | ||
| 51 | # undef _XBS5_ILP32_OFFBIG | ||
| 52 | and users need to check at runtime. */ | ||
| 53 | |||
| 54 | /* We also have no use (for now) for an environment with bigger pointers | ||
| 55 | and offsets. */ | ||
| 56 | # define _POSIX_V7_LPBIG_OFFBIG	-1 | ||
| 57 | # define _POSIX_V6_LPBIG_OFFBIG	-1 | ||
| 58 | # define _XBS5_LPBIG_OFFBIG	-1 | ||
| 59 | |||
| 60 | /* By default we have 64-bit wide `long int', pointers and `off_t'. */ | ||
| 61 | # define _POSIX_V7_LP64_OFF64	1 | ||
| 62 | # define _POSIX_V6_LP64_OFF64	1 | ||
| 63 | # define _XBS5_LP64_OFF64	1 | ||
| 64 | |||
| 65 | #else /* __WORDSIZE == 32 */ | ||
| 66 | |||
| 67 | /* We have 32-bit wide `int', `long int' and pointers and all platforms | ||
| 68 | support LFS. -mx32 has 64-bit wide `off_t'. */ | ||
| 69 | # define _POSIX_V7_ILP32_OFFBIG	1 | ||
| 70 | # define _POSIX_V6_ILP32_OFFBIG 1 | ||
| 71 | # define _XBS5_ILP32_OFFBIG	1 | ||
| 72 | |||
| 73 | # ifndef __x86_64__ | ||
| 74 | /* -m32 has 32-bit wide `off_t'. */ | ||
| 75 | # define _POSIX_V7_ILP32_OFF32	1 | ||
| 76 | # define _POSIX_V6_ILP32_OFF32	1 | ||
| 77 | # define _XBS5_ILP32_OFF32	1 | ||
| 78 | # endif | ||
| 79 | |||
| 80 | /* We optionally provide an environment with the above size but an 64-bit | ||
| 81 | side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ | ||
| 82 | |||
| 83 | /* Environments with 64-bit wide pointers can be provided, | ||
| 84 | so these macros aren't defined: | ||
| 85 | # undef _POSIX_V7_LP64_OFF64 | ||
| 86 | # undef _POSIX_V7_LPBIG_OFFBIG | ||
| 87 | # undef _POSIX_V6_LP64_OFF64 | ||
| 88 | # undef _POSIX_V6_LPBIG_OFFBIG | ||
| 89 | # undef _XBS5_LP64_OFF64 | ||
| 90 | # undef _XBS5_LPBIG_OFFBIG | ||
| 91 | and sysconf tests for it at runtime. */ | ||
| 92 | |||
| 93 | #endif /* __WORDSIZE == 32 */ | ||
| 94 | |||
| 95 | #define __ILP32_OFF32_CFLAGS	"-m32" | ||
| 96 | #define __ILP32_OFF32_LDFLAGS	"-m32" | ||
| 97 | #if defined __x86_64__ && defined __ILP32__ | ||
| 98 | # define __ILP32_OFFBIG_CFLAGS	"-mx32" | ||
| 99 | # define __ILP32_OFFBIG_LDFLAGS	"-mx32" | ||
| 100 | #else | ||
| 101 | # define __ILP32_OFFBIG_CFLAGS	"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" | ||
| 102 | # define __ILP32_OFFBIG_LDFLAGS	"-m32" | ||
| 103 | #endif | ||
| 104 | #define __LP64_OFF64_CFLAGS	"-m64" | ||
| 105 | #define __LP64_OFF64_LDFLAGS	"-m64" | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/epoll.h created+29| ... | @@ -0,0 +1,29 @@ | ||
| 1 | /* Copyright (C) 2002-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef	_SYS_EPOLL_H | ||
| 19 | # error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | /* Flags to be passed to epoll_create1. */ | ||
| 23 | enum | ||
| 24 | { | ||
| 25 | EPOLL_CLOEXEC = 02000000 | ||
| 26 | #define EPOLL_CLOEXEC EPOLL_CLOEXEC | ||
| 27 | }; | ||
| 28 | |||
| 29 | #define __EPOLL_PACKED __attribute__ ((__packed__)) | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/fcntl.h created+61| ... | @@ -0,0 +1,61 @@ | ||
| 1 | /* O_*, F_*, FD_* bit values for Linux/x86. | ||
| 2 | Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _FCNTL_H | ||
| 20 | # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifdef __x86_64__ | ||
| 24 | # define __O_LARGEFILE	0 | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #ifdef __x86_64__ | ||
| 28 | /* Not necessary, we always have 64-bit offsets. */ | ||
| 29 | # define F_GETLK64	5	/* Get record locking info. */ | ||
| 30 | # define F_SETLK64	6	/* Set record locking info (non-blocking). */ | ||
| 31 | # define F_SETLKW64	7	/* Set record locking info (blocking).	*/ | ||
| 32 | #endif | ||
| 33 | |||
| 34 | |||
| 35 | struct flock | ||
| 36 | { | ||
| 37 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | ||
| 38 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | ||
| 39 | #ifndef __USE_FILE_OFFSET64 | ||
| 40 | __off_t l_start;	/* Offset where the lock begins. */ | ||
| 41 | __off_t l_len;	/* Size of the locked area; zero means until EOF. */ | ||
| 42 | #else | ||
| 43 | __off64_t l_start;	/* Offset where the lock begins. */ | ||
| 44 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | ||
| 45 | #endif | ||
| 46 | __pid_t l_pid;	/* Process holding the lock. */ | ||
| 47 | }; | ||
| 48 | |||
| 49 | #ifdef __USE_LARGEFILE64 | ||
| 50 | struct flock64 | ||
| 51 | { | ||
| 52 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | ||
| 53 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | ||
| 54 | __off64_t l_start;	/* Offset where the lock begins. */ | ||
| 55 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | ||
| 56 | __pid_t l_pid;	/* Process holding the lock. */ | ||
| 57 | }; | ||
| 58 | #endif | ||
| 59 | |||
| 60 | /* Include generic Linux declarations. */ | ||
| 61 | #include <bits/fcntl-linux.h> | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/fenv.h created+116| ... | @@ -0,0 +1,116 @@ | ||
| 1 | /* Copyright (C) 1997-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _FENV_H | ||
| 19 | # error "Never use <bits/fenv.h> directly; include <fenv.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | /* Define bits representing the exception. We use the bit positions | ||
| 23 | of the appropriate bits in the FPU control word. */ | ||
| 24 | enum | ||
| 25 | { | ||
| 26 | FE_INVALID = | ||
| 27 | #define FE_INVALID	0x01 | ||
| 28 | FE_INVALID, | ||
| 29 | __FE_DENORM = 0x02, | ||
| 30 | FE_DIVBYZERO = | ||
| 31 | #define FE_DIVBYZERO	0x04 | ||
| 32 | FE_DIVBYZERO, | ||
| 33 | FE_OVERFLOW = | ||
| 34 | #define FE_OVERFLOW	0x08 | ||
| 35 | FE_OVERFLOW, | ||
| 36 | FE_UNDERFLOW = | ||
| 37 | #define FE_UNDERFLOW	0x10 | ||
| 38 | FE_UNDERFLOW, | ||
| 39 | FE_INEXACT = | ||
| 40 | #define FE_INEXACT	0x20 | ||
| 41 | FE_INEXACT | ||
| 42 | }; | ||
| 43 | |||
| 44 | #define FE_ALL_EXCEPT \ | ||
| 45 | 	(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) | ||
| 46 | |||
| 47 | /* The ix87 FPU supports all of the four defined rounding modes. We | ||
| 48 | use again the bit positions in the FPU control word as the values | ||
| 49 | for the appropriate macros. */ | ||
| 50 | enum | ||
| 51 | { | ||
| 52 | FE_TONEAREST = | ||
| 53 | #define FE_TONEAREST	0 | ||
| 54 | FE_TONEAREST, | ||
| 55 | FE_DOWNWARD = | ||
| 56 | #define FE_DOWNWARD	0x400 | ||
| 57 | FE_DOWNWARD, | ||
| 58 | FE_UPWARD = | ||
| 59 | #define FE_UPWARD	0x800 | ||
| 60 | FE_UPWARD, | ||
| 61 | FE_TOWARDZERO = | ||
| 62 | #define FE_TOWARDZERO	0xc00 | ||
| 63 | FE_TOWARDZERO | ||
| 64 | }; | ||
| 65 | |||
| 66 | |||
| 67 | /* Type representing exception flags. */ | ||
| 68 | typedef unsigned short int fexcept_t; | ||
| 69 | |||
| 70 | |||
| 71 | /* Type representing floating-point environment. This structure | ||
| 72 | corresponds to the layout of the block written by the `fstenv' | ||
| 73 | instruction and has additional fields for the contents of the MXCSR | ||
| 74 | register as written by the `stmxcsr' instruction. */ | ||
| 75 | typedef struct | ||
| 76 | { | ||
| 77 | unsigned short int __control_word; | ||
| 78 | unsigned short int __glibc_reserved1; | ||
| 79 | unsigned short int __status_word; | ||
| 80 | unsigned short int __glibc_reserved2; | ||
| 81 | unsigned short int __tags; | ||
| 82 | unsigned short int __glibc_reserved3; | ||
| 83 | unsigned int __eip; | ||
| 84 | unsigned short int __cs_selector; | ||
| 85 | unsigned int __opcode:11; | ||
| 86 | unsigned int __glibc_reserved4:5; | ||
| 87 | unsigned int __data_offset; | ||
| 88 | unsigned short int __data_selector; | ||
| 89 | unsigned short int __glibc_reserved5; | ||
| 90 | #ifdef __x86_64__ | ||
| 91 | unsigned int __mxcsr; | ||
| 92 | #endif | ||
| 93 | } | ||
| 94 | fenv_t; | ||
| 95 | |||
| 96 | /* If the default argument is used we use this value. */ | ||
| 97 | #define FE_DFL_ENV	((const fenv_t *) -1) | ||
| 98 | |||
| 99 | #ifdef __USE_GNU | ||
| 100 | /* Floating-point environment where none of the exception is masked. */ | ||
| 101 | # define FE_NOMASK_ENV	((const fenv_t *) -2) | ||
| 102 | #endif | ||
| 103 | |||
| 104 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | ||
| 105 | /* Type representing floating-point control modes. */ | ||
| 106 | typedef struct | ||
| 107 | { | ||
| 108 | unsigned short int __control_word; | ||
| 109 | unsigned short int __glibc_reserved; | ||
| 110 | unsigned int __mxcsr; | ||
| 111 | } | ||
| 112 | femode_t; | ||
| 113 | |||
| 114 | /* Default floating-point control modes. */ | ||
| 115 | # define FE_DFL_MODE	((const femode_t *) -1L) | ||
| 116 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/floatn.h created+121| ... | @@ -0,0 +1,121 @@ | ||
| 1 | /* Macros to control TS 18661-3 glibc features on x86. | ||
| 2 | Copyright (C) 2017-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_FLOATN_H | ||
| 20 | #define _BITS_FLOATN_H | ||
| 21 | |||
| 22 | #include <features.h> | ||
| 23 | |||
| 24 | /* Defined to 1 if the current compiler invocation provides a | ||
| 25 | floating-point type with the IEEE 754 binary128 format, and this | ||
| 26 | glibc includes corresponding *f128 interfaces for it. The required | ||
| 27 | libgcc support was added some time after the basic compiler | ||
| 28 | support, for x86_64 and x86. */ | ||
| 29 | #if (defined __x86_64__							\ | ||
| 30 | ? __GNUC_PREREQ (4, 3)						\ | ||
| 31 | : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) | ||
| 32 | # define __HAVE_FLOAT128 1 | ||
| 33 | #else | ||
| 34 | # define __HAVE_FLOAT128 0 | ||
| 35 | #endif | ||
| 36 | |||
| 37 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | ||
| 38 | from the default float, double and long double types in this glibc. */ | ||
| 39 | #if __HAVE_FLOAT128 | ||
| 40 | # define __HAVE_DISTINCT_FLOAT128 1 | ||
| 41 | #else | ||
| 42 | # define __HAVE_DISTINCT_FLOAT128 0 | ||
| 43 | #endif | ||
| 44 | |||
| 45 | /* Defined to 1 if the current compiler invocation provides a | ||
| 46 | floating-point type with the right format for _Float64x, and this | ||
| 47 | glibc includes corresponding *f64x interfaces for it. */ | ||
| 48 | #define __HAVE_FLOAT64X 1 | ||
| 49 | |||
| 50 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | ||
| 51 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | ||
| 52 | the format of _Float128, which must be different from that of long | ||
| 53 | double. */ | ||
| 54 | #define __HAVE_FLOAT64X_LONG_DOUBLE 1 | ||
| 55 | |||
| 56 | #ifndef __ASSEMBLER__ | ||
| 57 | |||
| 58 | /* Defined to concatenate the literal suffix to be used with _Float128 | ||
| 59 | types, if __HAVE_FLOAT128 is 1. */ | ||
| 60 | # if __HAVE_FLOAT128 | ||
| 61 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 62 | /* The literal suffix f128 exists only since GCC 7.0. */ | ||
| 63 | # define __f128(x) x##q | ||
| 64 | # else | ||
| 65 | # define __f128(x) x##f128 | ||
| 66 | # endif | ||
| 67 | # endif | ||
| 68 | |||
| 69 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | ||
| 70 | # if __HAVE_FLOAT128 | ||
| 71 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 72 | /* Add a typedef for older GCC compilers which don't natively support | ||
| 73 | _Complex _Float128. */ | ||
| 74 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); | ||
| 75 | # define __CFLOAT128 __cfloat128 | ||
| 76 | # else | ||
| 77 | # define __CFLOAT128 _Complex _Float128 | ||
| 78 | # endif | ||
| 79 | # endif | ||
| 80 | |||
| 81 | /* The remaining of this file provides support for older compilers. */ | ||
| 82 | # if __HAVE_FLOAT128 | ||
| 83 | |||
| 84 | /* The type _Float128 exists only since GCC 7.0. */ | ||
| 85 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | ||
| 86 | typedef __float128 _Float128; | ||
| 87 | # endif | ||
| 88 | |||
| 89 | /* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ | ||
| 90 | # if !__GNUC_PREREQ (7, 0) | ||
| 91 | # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) | ||
| 92 | # endif | ||
| 93 | |||
| 94 | /* Older GCC has only a subset of built-in functions for _Float128 on | ||
| 95 | x86, and __builtin_infq is not usable in static initializers. | ||
| 96 | Converting a narrower sNaN to _Float128 produces a quiet NaN, so | ||
| 97 | attempts to use _Float128 sNaNs will not work properly with older | ||
| 98 | compilers. */ | ||
| 99 | # if !__GNUC_PREREQ (7, 0) | ||
| 100 | # define __builtin_copysignf128 __builtin_copysignq | ||
| 101 | # define __builtin_fabsf128 __builtin_fabsq | ||
| 102 | # define __builtin_inff128() ((_Float128) __builtin_inf ()) | ||
| 103 | # define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) | ||
| 104 | # define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) | ||
| 105 | # endif | ||
| 106 | |||
| 107 | /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, | ||
| 108 | e.g.: __builtin_signbitf128, before GCC 6. However, there has never | ||
| 109 | been a __builtin_signbitf128 in GCC and the type-generic builtin is | ||
| 110 | only available since GCC 6. */ | ||
| 111 | # if !__GNUC_PREREQ (6, 0) | ||
| 112 | # define __builtin_signbitf128 __signbitf128 | ||
| 113 | # endif | ||
| 114 | |||
| 115 | # endif | ||
| 116 | |||
| 117 | #endif /* !__ASSEMBLER__. */ | ||
| 118 | |||
| 119 | #include <bits/floatn-common.h> | ||
| 120 | |||
| 121 | #endif /* _BITS_FLOATN_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/flt-eval-method.h created+33| ... | @@ -0,0 +1,33 @@ | ||
| 1 | /* Define __GLIBC_FLT_EVAL_METHOD. x86 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifdef __FLT_EVAL_METHOD__ | ||
| 24 | # if __FLT_EVAL_METHOD__ == -1 | ||
| 25 | # define __GLIBC_FLT_EVAL_METHOD	2 | ||
| 26 | # else | ||
| 27 | # define __GLIBC_FLT_EVAL_METHOD	__FLT_EVAL_METHOD__ | ||
| 28 | # endif | ||
| 29 | #elif defined __x86_64__ | ||
| 30 | # define __GLIBC_FLT_EVAL_METHOD	0 | ||
| 31 | #else | ||
| 32 | # define __GLIBC_FLT_EVAL_METHOD	2 | ||
| 33 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/fp-logb.h created+24| ... | @@ -0,0 +1,24 @@ | ||
| 1 | /* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. x86 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never use <bits/fp-logb.h> directly; include <math.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #define __FP_LOGB0_IS_MIN	1 | ||
| 24 | #define __FP_LOGBNAN_IS_MIN	1 | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/indirect-return.h created+37| ... | @@ -0,0 +1,37 @@ | ||
| 1 | /* Definition of __INDIRECT_RETURN. x86 version. | ||
| 2 | Copyright (C) 2018-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _UCONTEXT_H | ||
| 20 | # error "Never include <bits/indirect-return.h> directly; use <ucontext.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* On x86, swapcontext returns via indirect branch when the shadow stack | ||
| 24 | is enabled. Define __INDIRECT_RETURN to indicate whether swapcontext | ||
| 25 | returns via indirect branch. */ | ||
| 26 | #if defined __CET__ && (__CET__ & 2) != 0 | ||
| 27 | # if __glibc_has_attribute (__indirect_return__) | ||
| 28 | # define __INDIRECT_RETURN __attribute__ ((__indirect_return__)) | ||
| 29 | # else | ||
| 30 | /* Newer compilers provide the indirect_return attribute, but without | ||
| 31 | it we can use returns_twice to affect the optimizer in the same | ||
| 32 | way and avoid unsafe optimizations. */ | ||
| 33 | # define __INDIRECT_RETURN __attribute__ ((__returns_twice__)) | ||
| 34 | # endif | ||
| 35 | #else | ||
| 36 | # define __INDIRECT_RETURN | ||
| 37 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/ipctypes.h created+33| ... | @@ -0,0 +1,33 @@ | ||
| 1 | /* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. | ||
| 2 | Copyright (C) 2012-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_IPC_H | ||
| 20 | # error "Never use <bits/ipctypes.h> directly; include <sys/ipc.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifndef _BITS_IPCTYPES_H | ||
| 24 | #define _BITS_IPCTYPES_H	1 | ||
| 25 | |||
| 26 | /* Used in `struct shmid_ds'. */ | ||
| 27 | # ifdef __x86_64__ | ||
| 28 | typedef int __ipc_pid_t; | ||
| 29 | # else | ||
| 30 | typedef unsigned short int __ipc_pid_t; | ||
| 31 | # endif | ||
| 32 | |||
| 33 | #endif /* bits/ipctypes.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/iscanonical.h created+54| ... | @@ -0,0 +1,54 @@ | ||
| 1 | /* Define iscanonical macro. ldbl-96 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never use <bits/iscanonical.h> directly; include <math.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | extern int __iscanonicall (long double __x) | ||
| 24 | __THROW __attribute__ ((__const__)); | ||
| 25 | #define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) | ||
| 26 | #define __iscanonical(x) ((void) (__typeof (x)) (x), 1) | ||
| 27 | #if __HAVE_DISTINCT_FLOAT128 | ||
| 28 | # define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1) | ||
| 29 | #endif | ||
| 30 | |||
| 31 | /* Return nonzero value if X is canonical. In IEEE interchange binary | ||
| 32 | formats, all values are canonical, but the argument must still be | ||
| 33 | converted to its semantic type for any exceptions arising from the | ||
| 34 | conversion, before being discarded; in extended precision, there | ||
| 35 | are encodings that are not consistently handled as corresponding to | ||
| 36 | any particular value of the type, and we return 0 for those. */ | ||
| 37 | #ifndef __cplusplus | ||
| 38 | # define iscanonical(x) __MATH_TG ((x), __iscanonical, (x)) | ||
| 39 | #else | ||
| 40 | /* In C++ mode, __MATH_TG cannot be used, because it relies on | ||
| 41 | __builtin_types_compatible_p, which is a C-only builtin. On the | ||
| 42 | other hand, overloading provides the means to distinguish between | ||
| 43 | the floating-point types. The overloading resolution will match | ||
| 44 | the correct parameter (regardless of type qualifiers (i.e.: const | ||
| 45 | and volatile)). */ | ||
| 46 | extern "C++" { | ||
| 47 | inline int iscanonical (float __val) { return __iscanonicalf (__val); } | ||
| 48 | inline int iscanonical (double __val) { return __iscanonical (__val); } | ||
| 49 | inline int iscanonical (long double __val) { return __iscanonicall (__val); } | ||
| 50 | # if __HAVE_DISTINCT_FLOAT128 | ||
| 51 | inline int iscanonical (_Float128 __val) { return __iscanonicalf128 (__val); } | ||
| 52 | # endif | ||
| 53 | } | ||
| 54 | #endif /* __cplusplus */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/link.h created+159| ... | @@ -0,0 +1,159 @@ | ||
| 1 | /* Copyright (C) 2004-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef	_LINK_H | ||
| 19 | # error "Never include <bits/link.h> directly; use <link.h> instead." | ||
| 20 | #endif | ||
| 21 | |||
| 22 | |||
| 23 | #ifndef __x86_64__ | ||
| 24 | /* Registers for entry into PLT on IA-32. */ | ||
| 25 | typedef struct La_i86_regs | ||
| 26 | { | ||
| 27 | uint32_t lr_edx; | ||
| 28 | uint32_t lr_ecx; | ||
| 29 | uint32_t lr_eax; | ||
| 30 | uint32_t lr_ebp; | ||
| 31 | uint32_t lr_esp; | ||
| 32 | } La_i86_regs; | ||
| 33 | |||
| 34 | /* Return values for calls from PLT on IA-32. */ | ||
| 35 | typedef struct La_i86_retval | ||
| 36 | { | ||
| 37 | uint32_t lrv_eax; | ||
| 38 | uint32_t lrv_edx; | ||
| 39 | long double lrv_st0; | ||
| 40 | long double lrv_st1; | ||
| 41 | uint64_t lrv_bnd0; | ||
| 42 | uint64_t lrv_bnd1; | ||
| 43 | } La_i86_retval; | ||
| 44 | |||
| 45 | |||
| 46 | __BEGIN_DECLS | ||
| 47 | |||
| 48 | extern Elf32_Addr la_i86_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx, | ||
| 49 | 				 uintptr_t *__refcook, | ||
| 50 | 				 uintptr_t *__defcook, | ||
| 51 | 				 La_i86_regs *__regs, | ||
| 52 | 				 unsigned int *__flags, | ||
| 53 | 				 const char *__symname, | ||
| 54 | 				 long int *__framesizep); | ||
| 55 | extern unsigned int la_i86_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx, | ||
| 56 | 					uintptr_t *__refcook, | ||
| 57 | 					uintptr_t *__defcook, | ||
| 58 | 					const La_i86_regs *__inregs, | ||
| 59 | 					La_i86_retval *__outregs, | ||
| 60 | 					const char *symname); | ||
| 61 | |||
| 62 | __END_DECLS | ||
| 63 | |||
| 64 | #else | ||
| 65 | |||
| 66 | /* Registers for entry into PLT on x86-64. */ | ||
| 67 | # if __GNUC_PREREQ (4,0) | ||
| 68 | typedef float La_x86_64_xmm __attribute__ ((__vector_size__ (16))); | ||
| 69 | typedef float La_x86_64_ymm | ||
| 70 | __attribute__ ((__vector_size__ (32), __aligned__ (16))); | ||
| 71 | typedef double La_x86_64_zmm | ||
| 72 | __attribute__ ((__vector_size__ (64), __aligned__ (16))); | ||
| 73 | # else | ||
| 74 | typedef float La_x86_64_xmm __attribute__ ((__mode__ (__V4SF__))); | ||
| 75 | # endif | ||
| 76 | |||
| 77 | typedef union | ||
| 78 | { | ||
| 79 | # if __GNUC_PREREQ (4,0) | ||
| 80 | La_x86_64_ymm ymm[2]; | ||
| 81 | La_x86_64_zmm zmm[1]; | ||
| 82 | # endif | ||
| 83 | La_x86_64_xmm xmm[4]; | ||
| 84 | } La_x86_64_vector __attribute__ ((__aligned__ (16))); | ||
| 85 | |||
| 86 | typedef struct La_x86_64_regs | ||
| 87 | { | ||
| 88 | uint64_t lr_rdx; | ||
| 89 | uint64_t lr_r8; | ||
| 90 | uint64_t lr_r9; | ||
| 91 | uint64_t lr_rcx; | ||
| 92 | uint64_t lr_rsi; | ||
| 93 | uint64_t lr_rdi; | ||
| 94 | uint64_t lr_rbp; | ||
| 95 | uint64_t lr_rsp; | ||
| 96 | La_x86_64_xmm lr_xmm[8]; | ||
| 97 | La_x86_64_vector lr_vector[8]; | ||
| 98 | #ifndef __ILP32__ | ||
| 99 | __int128_t lr_bnd[4]; | ||
| 100 | #endif | ||
| 101 | } La_x86_64_regs; | ||
| 102 | |||
| 103 | /* Return values for calls from PLT on x86-64. */ | ||
| 104 | typedef struct La_x86_64_retval | ||
| 105 | { | ||
| 106 | uint64_t lrv_rax; | ||
| 107 | uint64_t lrv_rdx; | ||
| 108 | La_x86_64_xmm lrv_xmm0; | ||
| 109 | La_x86_64_xmm lrv_xmm1; | ||
| 110 | long double lrv_st0; | ||
| 111 | long double lrv_st1; | ||
| 112 | La_x86_64_vector lrv_vector0; | ||
| 113 | La_x86_64_vector lrv_vector1; | ||
| 114 | #ifndef __ILP32__ | ||
| 115 | __int128_t lrv_bnd0; | ||
| 116 | __int128_t lrv_bnd1; | ||
| 117 | #endif | ||
| 118 | } La_x86_64_retval; | ||
| 119 | |||
| 120 | #define La_x32_regs La_x86_64_regs | ||
| 121 | #define La_x32_retval La_x86_64_retval | ||
| 122 | |||
| 123 | __BEGIN_DECLS | ||
| 124 | |||
| 125 | extern Elf64_Addr la_x86_64_gnu_pltenter (Elf64_Sym *__sym, | ||
| 126 | 					 unsigned int __ndx, | ||
| 127 | 					 uintptr_t *__refcook, | ||
| 128 | 					 uintptr_t *__defcook, | ||
| 129 | 					 La_x86_64_regs *__regs, | ||
| 130 | 					 unsigned int *__flags, | ||
| 131 | 					 const char *__symname, | ||
| 132 | 					 long int *__framesizep); | ||
| 133 | extern unsigned int la_x86_64_gnu_pltexit (Elf64_Sym *__sym, | ||
| 134 | 					 unsigned int __ndx, | ||
| 135 | 					 uintptr_t *__refcook, | ||
| 136 | 					 uintptr_t *__defcook, | ||
| 137 | 					 const La_x86_64_regs *__inregs, | ||
| 138 | 					 La_x86_64_retval *__outregs, | ||
| 139 | 					 const char *__symname); | ||
| 140 | |||
| 141 | extern Elf32_Addr la_x32_gnu_pltenter (Elf32_Sym *__sym, | ||
| 142 | 				 unsigned int __ndx, | ||
| 143 | 				 uintptr_t *__refcook, | ||
| 144 | 				 uintptr_t *__defcook, | ||
| 145 | 				 La_x32_regs *__regs, | ||
| 146 | 				 unsigned int *__flags, | ||
| 147 | 				 const char *__symname, | ||
| 148 | 				 long int *__framesizep); | ||
| 149 | extern unsigned int la_x32_gnu_pltexit (Elf32_Sym *__sym, | ||
| 150 | 					unsigned int __ndx, | ||
| 151 | 					uintptr_t *__refcook, | ||
| 152 | 					uintptr_t *__defcook, | ||
| 153 | 					const La_x32_regs *__inregs, | ||
| 154 | 					La_x32_retval *__outregs, | ||
| 155 | 					const char *__symname); | ||
| 156 | |||
| 157 | __END_DECLS | ||
| 158 | |||
| 159 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/long-double.h created+21| ... | @@ -0,0 +1,21 @@ | ||
| 1 | /* Properties of long double type. ldbl-96 version. | ||
| 2 | Copyright (C) 2016-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | /* long double is distinct from double, so there is nothing to | ||
| 20 | define here. */ | ||
| 21 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/math-vector.h created+63| ... | @@ -0,0 +1,63 @@ | ||
| 1 | /* Platform-specific SIMD declarations of math functions. | ||
| 2 | Copyright (C) 2014-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _MATH_H | ||
| 20 | # error "Never include <bits/math-vector.h> directly;\ | ||
| 21 | include <math.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | /* Get default empty definitions for simd declarations. */ | ||
| 25 | #include <bits/libm-simd-decl-stubs.h> | ||
| 26 | |||
| 27 | #if defined __x86_64__ && defined __FAST_MATH__ | ||
| 28 | # if defined _OPENMP && _OPENMP >= 201307 | ||
| 29 | /* OpenMP case. */ | ||
| 30 | # define __DECL_SIMD_x86_64 _Pragma ("omp declare simd notinbranch") | ||
| 31 | # elif __GNUC_PREREQ (6,0) | ||
| 32 | /* W/o OpenMP use GCC 6.* __attribute__ ((__simd__)). */ | ||
| 33 | # define __DECL_SIMD_x86_64 __attribute__ ((__simd__ ("notinbranch"))) | ||
| 34 | # endif | ||
| 35 | |||
| 36 | # ifdef __DECL_SIMD_x86_64 | ||
| 37 | # undef __DECL_SIMD_cos | ||
| 38 | # define __DECL_SIMD_cos __DECL_SIMD_x86_64 | ||
| 39 | # undef __DECL_SIMD_cosf | ||
| 40 | # define __DECL_SIMD_cosf __DECL_SIMD_x86_64 | ||
| 41 | # undef __DECL_SIMD_sin | ||
| 42 | # define __DECL_SIMD_sin __DECL_SIMD_x86_64 | ||
| 43 | # undef __DECL_SIMD_sinf | ||
| 44 | # define __DECL_SIMD_sinf __DECL_SIMD_x86_64 | ||
| 45 | # undef __DECL_SIMD_sincos | ||
| 46 | # define __DECL_SIMD_sincos __DECL_SIMD_x86_64 | ||
| 47 | # undef __DECL_SIMD_sincosf | ||
| 48 | # define __DECL_SIMD_sincosf __DECL_SIMD_x86_64 | ||
| 49 | # undef __DECL_SIMD_log | ||
| 50 | # define __DECL_SIMD_log __DECL_SIMD_x86_64 | ||
| 51 | # undef __DECL_SIMD_logf | ||
| 52 | # define __DECL_SIMD_logf __DECL_SIMD_x86_64 | ||
| 53 | # undef __DECL_SIMD_exp | ||
| 54 | # define __DECL_SIMD_exp __DECL_SIMD_x86_64 | ||
| 55 | # undef __DECL_SIMD_expf | ||
| 56 | # define __DECL_SIMD_expf __DECL_SIMD_x86_64 | ||
| 57 | # undef __DECL_SIMD_pow | ||
| 58 | # define __DECL_SIMD_pow __DECL_SIMD_x86_64 | ||
| 59 | # undef __DECL_SIMD_powf | ||
| 60 | # define __DECL_SIMD_powf __DECL_SIMD_x86_64 | ||
| 61 | |||
| 62 | # endif | ||
| 63 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/mman.h created+34| ... | @@ -0,0 +1,34 @@ | ||
| 1 | /* Definitions for POSIX memory map interface. Linux/x86_64 version. | ||
| 2 | Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_MMAN_H | ||
| 20 | # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* The following definitions basically come from the kernel headers. | ||
| 24 | But the kernel header is not namespace clean. */ | ||
| 25 | |||
| 26 | /* Other flags. */ | ||
| 27 | #ifdef __USE_MISC | ||
| 28 | # define MAP_32BIT	0x40		/* Only give out 32-bit addresses. */ | ||
| 29 | #endif | ||
| 30 | |||
| 31 | #include <bits/mman-map-flags-generic.h> | ||
| 32 | |||
| 33 | /* Include generic Linux declarations. */ | ||
| 34 | #include <bits/mman-linux.h> | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/procfs-id.h created+30| ... | @@ -0,0 +1,30 @@ | ||
| 1 | /* Types of pr_uid and pr_gid in struct elf_prpsinfo. x86 version. | ||
| 2 | Copyright (C) 2018-2021 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of the GNU C Library. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SYS_PROCFS_H | ||
| 21 | # error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead." | ||
| 22 | #endif | ||
| 23 | |||
| 24 | #if __WORDSIZE == 32 | ||
| 25 | typedef unsigned short int __pr_uid_t; | ||
| 26 | typedef unsigned short int __pr_gid_t; | ||
| 27 | #else | ||
| 28 | typedef unsigned int __pr_uid_t; | ||
| 29 | typedef unsigned int __pr_gid_t; | ||
| 30 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/procfs.h created+50| ... | @@ -0,0 +1,50 @@ | ||
| 1 | /* Types for registers for sys/procfs.h. x86 version. | ||
| 2 | Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_PROCFS_H | ||
| 20 | # error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Type for a general-purpose register. */ | ||
| 24 | #ifdef __x86_64__ | ||
| 25 | __extension__ typedef unsigned long long elf_greg_t; | ||
| 26 | #else | ||
| 27 | typedef unsigned long elf_greg_t; | ||
| 28 | #endif | ||
| 29 | |||
| 30 | /* And the whole bunch of them. We could have used `struct | ||
| 31 | user_regs_struct' directly in the typedef, but tradition says that | ||
| 32 | the register set is an array, which does have some peculiar | ||
| 33 | semantics, so leave it that way. */ | ||
| 34 | #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t)) | ||
| 35 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||
| 36 | |||
| 37 | #ifndef __x86_64__ | ||
| 38 | /* Register set for the floating-point registers. */ | ||
| 39 | typedef struct user_fpregs_struct elf_fpregset_t; | ||
| 40 | |||
| 41 | /* Register set for the extended floating-point registers. Includes | ||
| 42 | the Pentium III SSE registers in addition to the classic | ||
| 43 | floating-point stuff. */ | ||
| 44 | typedef struct user_fpxregs_struct elf_fpxregset_t; | ||
| 45 | #else | ||
| 46 | /* Register set for the extended floating-point registers. Includes | ||
| 47 | the Pentium III SSE registers in addition to the classic | ||
| 48 | floating-point stuff. */ | ||
| 49 | typedef struct user_fpregs_struct elf_fpregset_t; | ||
| 50 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/pthreadtypes-arch.h created+55| ... | @@ -0,0 +1,55 @@ | ||
| 1 | /* Copyright (C) 2002-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _BITS_PTHREADTYPES_ARCH_H | ||
| 19 | #define _BITS_PTHREADTYPES_ARCH_H	1 | ||
| 20 | |||
| 21 | #include <bits/wordsize.h> | ||
| 22 | |||
| 23 | #ifdef __x86_64__ | ||
| 24 | # if __WORDSIZE == 64 | ||
| 25 | # define __SIZEOF_PTHREAD_MUTEX_T 40 | ||
| 26 | # define __SIZEOF_PTHREAD_ATTR_T 56 | ||
| 27 | # define __SIZEOF_PTHREAD_RWLOCK_T 56 | ||
| 28 | # define __SIZEOF_PTHREAD_BARRIER_T 32 | ||
| 29 | # else | ||
| 30 | # define __SIZEOF_PTHREAD_MUTEX_T 32 | ||
| 31 | # define __SIZEOF_PTHREAD_ATTR_T 32 | ||
| 32 | # define __SIZEOF_PTHREAD_RWLOCK_T 44 | ||
| 33 | # define __SIZEOF_PTHREAD_BARRIER_T 20 | ||
| 34 | # endif | ||
| 35 | #else | ||
| 36 | # define __SIZEOF_PTHREAD_MUTEX_T 24 | ||
| 37 | # define __SIZEOF_PTHREAD_ATTR_T 36 | ||
| 38 | # define __SIZEOF_PTHREAD_RWLOCK_T 32 | ||
| 39 | # define __SIZEOF_PTHREAD_BARRIER_T 20 | ||
| 40 | #endif | ||
| 41 | #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 | ||
| 42 | #define __SIZEOF_PTHREAD_COND_T 48 | ||
| 43 | #define __SIZEOF_PTHREAD_CONDATTR_T 4 | ||
| 44 | #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 | ||
| 45 | #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 | ||
| 46 | |||
| 47 | #define __LOCK_ALIGNMENT | ||
| 48 | #define __ONCE_ALIGNMENT | ||
| 49 | |||
| 50 | #ifndef __x86_64__ | ||
| 51 | /* Extra attributes for the cleanup functions. */ | ||
| 52 | # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) | ||
| 53 | #endif | ||
| 54 | |||
| 55 | #endif	/* bits/pthreadtypes.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/setjmp.h created+40| ... | @@ -0,0 +1,40 @@ | ||
| 1 | /* Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | /* Define the machine-dependent type `jmp_buf'. x86-64 version. */ | ||
| 19 | #ifndef _BITS_SETJMP_H | ||
| 20 | #define _BITS_SETJMP_H 1 | ||
| 21 | |||
| 22 | #if !defined _SETJMP_H && !defined _PTHREAD_H | ||
| 23 | # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include <bits/wordsize.h> | ||
| 27 | |||
| 28 | #ifndef _ASM | ||
| 29 | |||
| 30 | # if __WORDSIZE == 64 | ||
| 31 | typedef long int __jmp_buf[8]; | ||
| 32 | # elif defined __x86_64__ | ||
| 33 | __extension__ typedef long long int __jmp_buf[8]; | ||
| 34 | # else | ||
| 35 | typedef int __jmp_buf[6]; | ||
| 36 | # endif | ||
| 37 | |||
| 38 | #endif | ||
| 39 | |||
| 40 | #endif /* bits/setjmp.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/sigcontext.h created+196| ... | @@ -0,0 +1,196 @@ | ||
| 1 | /* Copyright (C) 2002-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _BITS_SIGCONTEXT_H | ||
| 19 | #define _BITS_SIGCONTEXT_H 1 | ||
| 20 | |||
| 21 | #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H | ||
| 22 | # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." | ||
| 23 | #endif | ||
| 24 | |||
| 25 | #include <bits/types.h> | ||
| 26 | |||
| 27 | #define FP_XSTATE_MAGIC1	0x46505853U | ||
| 28 | #define FP_XSTATE_MAGIC2	0x46505845U | ||
| 29 | #define FP_XSTATE_MAGIC2_SIZE	sizeof (FP_XSTATE_MAGIC2) | ||
| 30 | |||
| 31 | struct _fpx_sw_bytes | ||
| 32 | { | ||
| 33 | __uint32_t magic1; | ||
| 34 | __uint32_t extended_size; | ||
| 35 | __uint64_t xstate_bv; | ||
| 36 | __uint32_t xstate_size; | ||
| 37 | __uint32_t __glibc_reserved1[7]; | ||
| 38 | }; | ||
| 39 | |||
| 40 | struct _fpreg | ||
| 41 | { | ||
| 42 | unsigned short significand[4]; | ||
| 43 | unsigned short exponent; | ||
| 44 | }; | ||
| 45 | |||
| 46 | struct _fpxreg | ||
| 47 | { | ||
| 48 | unsigned short significand[4]; | ||
| 49 | unsigned short exponent; | ||
| 50 | unsigned short __glibc_reserved1[3]; | ||
| 51 | }; | ||
| 52 | |||
| 53 | struct _xmmreg | ||
| 54 | { | ||
| 55 | __uint32_t	element[4]; | ||
| 56 | }; | ||
| 57 | |||
| 58 | |||
| 59 | |||
| 60 | #ifndef __x86_64__ | ||
| 61 | |||
| 62 | struct _fpstate | ||
| 63 | { | ||
| 64 | /* Regular FPU environment. */ | ||
| 65 | __uint32_t	cw; | ||
| 66 | __uint32_t		sw; | ||
| 67 | __uint32_t		tag; | ||
| 68 | __uint32_t		ipoff; | ||
| 69 | __uint32_t		cssel; | ||
| 70 | __uint32_t		dataoff; | ||
| 71 | __uint32_t		datasel; | ||
| 72 | struct _fpreg	_st[8]; | ||
| 73 | unsigned short status; | ||
| 74 | unsigned short magic; | ||
| 75 | |||
| 76 | /* FXSR FPU environment. */ | ||
| 77 | __uint32_t		_fxsr_env[6]; | ||
| 78 | __uint32_t		mxcsr; | ||
| 79 | __uint32_t		__glibc_reserved1; | ||
| 80 | struct _fpxreg	_fxsr_st[8]; | ||
| 81 | struct _xmmreg	_xmm[8]; | ||
| 82 | __uint32_t		__glibc_reserved2[56]; | ||
| 83 | }; | ||
| 84 | |||
| 85 | #ifndef sigcontext_struct | ||
| 86 | /* Kernel headers before 2.1.1 define a struct sigcontext_struct, but | ||
| 87 | we need sigcontext. Some packages have come to rely on | ||
| 88 | sigcontext_struct being defined on 32-bit x86, so define this for | ||
| 89 | their benefit. */ | ||
| 90 | # define sigcontext_struct sigcontext | ||
| 91 | #endif | ||
| 92 | |||
| 93 | #define X86_FXSR_MAGIC		0x0000 | ||
| 94 | |||
| 95 | struct sigcontext | ||
| 96 | { | ||
| 97 | unsigned short gs, __gsh; | ||
| 98 | unsigned short fs, __fsh; | ||
| 99 | unsigned short es, __esh; | ||
| 100 | unsigned short ds, __dsh; | ||
| 101 | unsigned long edi; | ||
| 102 | unsigned long esi; | ||
| 103 | unsigned long ebp; | ||
| 104 | unsigned long esp; | ||
| 105 | unsigned long ebx; | ||
| 106 | unsigned long edx; | ||
| 107 | unsigned long ecx; | ||
| 108 | unsigned long eax; | ||
| 109 | unsigned long trapno; | ||
| 110 | unsigned long err; | ||
| 111 | unsigned long eip; | ||
| 112 | unsigned short cs, __csh; | ||
| 113 | unsigned long eflags; | ||
| 114 | unsigned long esp_at_signal; | ||
| 115 | unsigned short ss, __ssh; | ||
| 116 | struct _fpstate * fpstate; | ||
| 117 | unsigned long oldmask; | ||
| 118 | unsigned long cr2; | ||
| 119 | }; | ||
| 120 | |||
| 121 | #else /* __x86_64__ */ | ||
| 122 | |||
| 123 | struct _fpstate | ||
| 124 | { | ||
| 125 | /* FPU environment matching the 64-bit FXSAVE layout. */ | ||
| 126 | __uint16_t		cwd; | ||
| 127 | __uint16_t		swd; | ||
| 128 | __uint16_t		ftw; | ||
| 129 | __uint16_t		fop; | ||
| 130 | __uint64_t		rip; | ||
| 131 | __uint64_t		rdp; | ||
| 132 | __uint32_t		mxcsr; | ||
| 133 | __uint32_t		mxcr_mask; | ||
| 134 | struct _fpxreg	_st[8]; | ||
| 135 | struct _xmmreg	_xmm[16]; | ||
| 136 | __uint32_t		__glibc_reserved1[24]; | ||
| 137 | }; | ||
| 138 | |||
| 139 | struct sigcontext | ||
| 140 | { | ||
| 141 | __uint64_t r8; | ||
| 142 | __uint64_t r9; | ||
| 143 | __uint64_t r10; | ||
| 144 | __uint64_t r11; | ||
| 145 | __uint64_t r12; | ||
| 146 | __uint64_t r13; | ||
| 147 | __uint64_t r14; | ||
| 148 | __uint64_t r15; | ||
| 149 | __uint64_t rdi; | ||
| 150 | __uint64_t rsi; | ||
| 151 | __uint64_t rbp; | ||
| 152 | __uint64_t rbx; | ||
| 153 | __uint64_t rdx; | ||
| 154 | __uint64_t rax; | ||
| 155 | __uint64_t rcx; | ||
| 156 | __uint64_t rsp; | ||
| 157 | __uint64_t rip; | ||
| 158 | __uint64_t eflags; | ||
| 159 | unsigned short cs; | ||
| 160 | unsigned short gs; | ||
| 161 | unsigned short fs; | ||
| 162 | unsigned short __pad0; | ||
| 163 | __uint64_t err; | ||
| 164 | __uint64_t trapno; | ||
| 165 | __uint64_t oldmask; | ||
| 166 | __uint64_t cr2; | ||
| 167 | __extension__ union | ||
| 168 | { | ||
| 169 | struct _fpstate * fpstate; | ||
| 170 | __uint64_t __fpstate_word; | ||
| 171 | }; | ||
| 172 | __uint64_t __reserved1 [8]; | ||
| 173 | }; | ||
| 174 | |||
| 175 | #endif /* __x86_64__ */ | ||
| 176 | |||
| 177 | struct _xsave_hdr | ||
| 178 | { | ||
| 179 | __uint64_t xstate_bv; | ||
| 180 | __uint64_t __glibc_reserved1[2]; | ||
| 181 | __uint64_t __glibc_reserved2[5]; | ||
| 182 | }; | ||
| 183 | |||
| 184 | struct _ymmh_state | ||
| 185 | { | ||
| 186 | __uint32_t ymmh_space[64]; | ||
| 187 | }; | ||
| 188 | |||
| 189 | struct _xstate | ||
| 190 | { | ||
| 191 | struct _fpstate fpstate; | ||
| 192 | struct _xsave_hdr xstate_hdr; | ||
| 193 | struct _ymmh_state ymmh; | ||
| 194 | }; | ||
| 195 | |||
| 196 | #endif /* _BITS_SIGCONTEXT_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/siginfo-arch.h created+17| ... | @@ -0,0 +1,17 @@ | ||
| 1 | /* Architecture-specific adjustments to siginfo_t. x86 version. */ | ||
| 2 | #ifndef _BITS_SIGINFO_ARCH_H | ||
| 3 | #define _BITS_SIGINFO_ARCH_H 1 | ||
| 4 | |||
| 5 | #if defined __x86_64__ && __WORDSIZE == 32 | ||
| 6 | /* si_utime and si_stime must be 4 byte aligned for x32 to match the | ||
| 7 | kernel. We align siginfo_t to 8 bytes so that si_utime and | ||
| 8 | si_stime are actually aligned to 8 bytes since their offsets are | ||
| 9 | multiple of 8 bytes. Note: with some compilers, the alignment | ||
| 10 | attribute would be ignored if it were put in __SI_CLOCK_T instead | ||
| 11 | of encapsulated in a typedef. */ | ||
| 12 | typedef __clock_t __attribute__ ((__aligned__ (4))) __sigchld_clock_t; | ||
| 13 | # define __SI_ALIGNMENT __attribute__ ((__aligned__ (8))) | ||
| 14 | # define __SI_CLOCK_T __sigchld_clock_t | ||
| 15 | #endif | ||
| 16 | |||
| 17 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/struct_mutex.h created+63| ... | @@ -0,0 +1,63 @@ | ||
| 1 | /* x86 internal mutex struct definitions. | ||
| 2 | Copyright (C) 2019-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <http://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _THREAD_MUTEX_INTERNAL_H | ||
| 20 | #define _THREAD_MUTEX_INTERNAL_H 1 | ||
| 21 | |||
| 22 | struct __pthread_mutex_s | ||
| 23 | { | ||
| 24 | int __lock; | ||
| 25 | unsigned int __count; | ||
| 26 | int __owner; | ||
| 27 | #ifdef __x86_64__ | ||
| 28 | unsigned int __nusers; | ||
| 29 | #endif | ||
| 30 | /* KIND must stay at this position in the structure to maintain | ||
| 31 | binary compatibility with static initializers. */ | ||
| 32 | int __kind; | ||
| 33 | #ifdef __x86_64__ | ||
| 34 | short __spins; | ||
| 35 | short __elision; | ||
| 36 | __pthread_list_t __list; | ||
| 37 | # define __PTHREAD_MUTEX_HAVE_PREV 1 | ||
| 38 | #else | ||
| 39 | unsigned int __nusers; | ||
| 40 | __extension__ union | ||
| 41 | { | ||
| 42 | struct | ||
| 43 | { | ||
| 44 | short __espins; | ||
| 45 | short __eelision; | ||
| 46 | # define __spins __elision_data.__espins | ||
| 47 | # define __elision __elision_data.__eelision | ||
| 48 | } __elision_data; | ||
| 49 | __pthread_slist_t __list; | ||
| 50 | }; | ||
| 51 | # define __PTHREAD_MUTEX_HAVE_PREV 0 | ||
| 52 | #endif | ||
| 53 | }; | ||
| 54 | |||
| 55 | #ifdef __x86_64__ | ||
| 56 | # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ | ||
| 57 | 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } | ||
| 58 | #else | ||
| 59 | # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ | ||
| 60 | 0, 0, 0, __kind, 0, { { 0, 0 } } | ||
| 61 | #endif | ||
| 62 | |||
| 63 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/struct_rwlock.h created+65| ... | @@ -0,0 +1,65 @@ | ||
| 1 | /* x86 internal rwlock struct definitions. | ||
| 2 | Copyright (C) 2019-2021 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of the GNU C Library. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <http://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _RWLOCK_INTERNAL_H | ||
| 21 | #define _RWLOCK_INTERNAL_H | ||
| 22 | |||
| 23 | struct __pthread_rwlock_arch_t | ||
| 24 | { | ||
| 25 | unsigned int __readers; | ||
| 26 | unsigned int __writers; | ||
| 27 | unsigned int __wrphase_futex; | ||
| 28 | unsigned int __writers_futex; | ||
| 29 | unsigned int __pad3; | ||
| 30 | unsigned int __pad4; | ||
| 31 | #ifdef __x86_64__ | ||
| 32 | int __cur_writer; | ||
| 33 | int __shared; | ||
| 34 | signed char __rwelision; | ||
| 35 | # ifdef __ILP32__ | ||
| 36 | unsigned char __pad1[3]; | ||
| 37 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 } | ||
| 38 | # else | ||
| 39 | unsigned char __pad1[7]; | ||
| 40 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } | ||
| 41 | # endif | ||
| 42 | unsigned long int __pad2; | ||
| 43 | /* FLAGS must stay at this position in the structure to maintain | ||
| 44 | binary compatibility. */ | ||
| 45 | unsigned int __flags; | ||
| 46 | #else /* __x86_64__ */ | ||
| 47 | /* FLAGS must stay at this position in the structure to maintain | ||
| 48 | binary compatibility. */ | ||
| 49 | unsigned char __flags; | ||
| 50 | unsigned char __shared; | ||
| 51 | signed char __rwelision; | ||
| 52 | unsigned char __pad2; | ||
| 53 | int __cur_writer; | ||
| 54 | #endif | ||
| 55 | }; | ||
| 56 | |||
| 57 | #ifdef __x86_64__ | ||
| 58 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | ||
| 59 | 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags | ||
| 60 | #else | ||
| 61 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | ||
| 62 | 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0 | ||
| 63 | #endif | ||
| 64 | |||
| 65 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/struct_stat.h created+165| ... | @@ -0,0 +1,165 @@ | ||
| 1 | /* Definition for struct stat. | ||
| 2 | Copyright (C) 2020-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library. If not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #if !defined _SYS_STAT_H && !defined _FCNTL_H | ||
| 20 | # error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifndef _BITS_STRUCT_STAT_H | ||
| 24 | #define _BITS_STRUCT_STAT_H	1 | ||
| 25 | |||
| 26 | struct stat | ||
| 27 | { | ||
| 28 | #ifdef __USE_TIME_BITS64 | ||
| 29 | # include <bits/struct_stat_time64_helper.h> | ||
| 30 | #else | ||
| 31 | __dev_t st_dev;		/* Device. */ | ||
| 32 | # ifndef __x86_64__ | ||
| 33 | unsigned short int __pad1; | ||
| 34 | # endif | ||
| 35 | # if defined __x86_64__ || !defined __USE_FILE_OFFSET64 | ||
| 36 | __ino_t st_ino;		/* File serial number.	*/ | ||
| 37 | # else | ||
| 38 | __ino_t __st_ino;			/* 32bit file serial number.	*/ | ||
| 39 | # endif | ||
| 40 | # ifndef __x86_64__ | ||
| 41 | __mode_t st_mode;			/* File mode. */ | ||
| 42 | __nlink_t st_nlink;			/* Link count. */ | ||
| 43 | # else | ||
| 44 | __nlink_t st_nlink;		/* Link count. */ | ||
| 45 | __mode_t st_mode;		/* File mode. */ | ||
| 46 | # endif | ||
| 47 | __uid_t st_uid;		/* User ID of the file's owner.	*/ | ||
| 48 | __gid_t st_gid;		/* Group ID of the file's group.*/ | ||
| 49 | # ifdef __x86_64__ | ||
| 50 | int __pad0; | ||
| 51 | # endif | ||
| 52 | __dev_t st_rdev;		/* Device number, if device. */ | ||
| 53 | # ifndef __x86_64__ | ||
| 54 | unsigned short int __pad2; | ||
| 55 | # endif | ||
| 56 | # if defined __x86_64__ || !defined __USE_FILE_OFFSET64 | ||
| 57 | __off_t st_size;			/* Size of file, in bytes. */ | ||
| 58 | # else | ||
| 59 | __off64_t st_size;			/* Size of file, in bytes. */ | ||
| 60 | # endif | ||
| 61 | __blksize_t st_blksize;	/* Optimal block size for I/O. */ | ||
| 62 | # if defined __x86_64__ || !defined __USE_FILE_OFFSET64 | ||
| 63 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | ||
| 64 | # else | ||
| 65 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | ||
| 66 | # endif | ||
| 67 | # ifdef __USE_XOPEN2K8 | ||
| 68 | /* Nanosecond resolution timestamps are stored in a format | ||
| 69 | equivalent to 'struct timespec'. This is the type used | ||
| 70 | whenever possible but the Unix namespace rules do not allow the | ||
| 71 | identifier 'timespec' to appear in the <sys/stat.h> header. | ||
| 72 | Therefore we have to handle the use of this header in strictly | ||
| 73 | standard-compliant sources special. */ | ||
| 74 | struct timespec st_atim;		/* Time of last access. */ | ||
| 75 | struct timespec st_mtim;		/* Time of last modification. */ | ||
| 76 | struct timespec st_ctim;		/* Time of last status change. */ | ||
| 77 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | ||
| 78 | # define st_mtime st_mtim.tv_sec | ||
| 79 | # define st_ctime st_ctim.tv_sec | ||
| 80 | # else | ||
| 81 | __time_t st_atime;			/* Time of last access. */ | ||
| 82 | __syscall_ulong_t st_atimensec;	/* Nscecs of last access. */ | ||
| 83 | __time_t st_mtime;			/* Time of last modification. */ | ||
| 84 | __syscall_ulong_t st_mtimensec;	/* Nsecs of last modification. */ | ||
| 85 | __time_t st_ctime;			/* Time of last status change. */ | ||
| 86 | __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change. */ | ||
| 87 | # endif | ||
| 88 | # ifdef __x86_64__ | ||
| 89 | __syscall_slong_t __glibc_reserved[3]; | ||
| 90 | # else | ||
| 91 | # ifndef __USE_FILE_OFFSET64 | ||
| 92 | unsigned long int __glibc_reserved4; | ||
| 93 | unsigned long int __glibc_reserved5; | ||
| 94 | # else | ||
| 95 | __ino64_t st_ino;			/* File serial number.	*/ | ||
| 96 | # endif | ||
| 97 | # endif | ||
| 98 | #endif /* __USE_TIME_BITS64 */ | ||
| 99 | }; | ||
| 100 | |||
| 101 | #ifdef __USE_LARGEFILE64 | ||
| 102 | /* Note stat64 has the same shape as stat for x86-64. */ | ||
| 103 | struct stat64 | ||
| 104 | { | ||
| 105 | # ifdef __USE_TIME_BITS64 | ||
| 106 | # include <bits/struct_stat_time64_helper.h> | ||
| 107 | # else | ||
| 108 | __dev_t st_dev;		/* Device. */ | ||
| 109 | # ifdef __x86_64__ | ||
| 110 | __ino64_t st_ino;		/* File serial number. */ | ||
| 111 | __nlink_t st_nlink;		/* Link count. */ | ||
| 112 | __mode_t st_mode;		/* File mode. */ | ||
| 113 | # else | ||
| 114 | unsigned int __pad1; | ||
| 115 | __ino_t __st_ino;			/* 32bit file serial number.	*/ | ||
| 116 | __mode_t st_mode;			/* File mode. */ | ||
| 117 | __nlink_t st_nlink;			/* Link count. */ | ||
| 118 | # endif | ||
| 119 | __uid_t st_uid;		/* User ID of the file's owner.	*/ | ||
| 120 | __gid_t st_gid;		/* Group ID of the file's group.*/ | ||
| 121 | # ifdef __x86_64__ | ||
| 122 | int __pad0; | ||
| 123 | __dev_t st_rdev;		/* Device number, if device. */ | ||
| 124 | __off_t st_size;		/* Size of file, in bytes. */ | ||
| 125 | # else | ||
| 126 | __dev_t st_rdev;			/* Device number, if device. */ | ||
| 127 | unsigned int __pad2; | ||
| 128 | __off64_t st_size;			/* Size of file, in bytes. */ | ||
| 129 | # endif | ||
| 130 | __blksize_t st_blksize;	/* Optimal block size for I/O. */ | ||
| 131 | __blkcnt64_t st_blocks;	/* Nr. 512-byte blocks allocated. */ | ||
| 132 | # ifdef __USE_XOPEN2K8 | ||
| 133 | /* Nanosecond resolution timestamps are stored in a format | ||
| 134 | equivalent to 'struct timespec'. This is the type used | ||
| 135 | whenever possible but the Unix namespace rules do not allow the | ||
| 136 | identifier 'timespec' to appear in the <sys/stat.h> header. | ||
| 137 | Therefore we have to handle the use of this header in strictly | ||
| 138 | standard-compliant sources special. */ | ||
| 139 | struct timespec st_atim;		/* Time of last access. */ | ||
| 140 | struct timespec st_mtim;		/* Time of last modification. */ | ||
| 141 | struct timespec st_ctim;		/* Time of last status change. */ | ||
| 142 | # else | ||
| 143 | __time_t st_atime;			/* Time of last access. */ | ||
| 144 | __syscall_ulong_t st_atimensec;	/* Nscecs of last access. */ | ||
| 145 | __time_t st_mtime;			/* Time of last modification. */ | ||
| 146 | __syscall_ulong_t st_mtimensec;	/* Nsecs of last modification. */ | ||
| 147 | __time_t st_ctime;			/* Time of last status change. */ | ||
| 148 | __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change. */ | ||
| 149 | # endif | ||
| 150 | # ifdef __x86_64__ | ||
| 151 | __syscall_slong_t __glibc_reserved[3]; | ||
| 152 | # else | ||
| 153 | __ino64_t st_ino;			/* File serial number.		*/ | ||
| 154 | # endif | ||
| 155 | # endif /* __USE_TIME_BITS64 */ | ||
| 156 | }; | ||
| 157 | #endif | ||
| 158 | |||
| 159 | /* Tell code we have these members. */ | ||
| 160 | #define	_STATBUF_ST_BLKSIZE | ||
| 161 | #define _STATBUF_ST_RDEV | ||
| 162 | /* Nanosecond resolution time values are supported. */ | ||
| 163 | #define _STATBUF_ST_NSEC | ||
| 164 | |||
| 165 | #endif /* _BITS_STRUCT_STAT_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/timesize.h created+25| ... | @@ -0,0 +1,25 @@ | ||
| 1 | /* Bit size of the time_t type at glibc build time, x86-64 and x32 case. | ||
| 2 | Copyright (C) 2018-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #if defined __x86_64__ && defined __ILP32__ | ||
| 20 | /* For x32, time is 64-bit even though word size is 32-bit. */ | ||
| 21 | # define __TIMESIZE	64 | ||
| 22 | #else | ||
| 23 | /* For others, time size is word size. */ | ||
| 24 | # define __TIMESIZE	__WORDSIZE | ||
| 25 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/types/struct_semid_ds.h created+38| ... | @@ -0,0 +1,38 @@ | ||
| 1 | /* x86 implementation of the semaphore struct semid_ds. | ||
| 2 | Copyright (C) 1995-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _SYS_SEM_H | ||
| 20 | # error "Never include <bits/types/struct_semid_ds.h> directly; use <sys/sem.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* Data structure describing a set of semaphores. */ | ||
| 24 | struct semid_ds | ||
| 25 | { | ||
| 26 | #ifdef __USE_TIME_BITS64 | ||
| 27 | # include <bits/types/struct_semid64_ds_helper.h> | ||
| 28 | #else | ||
| 29 | struct ipc_perm sem_perm; /* operation permission struct */ | ||
| 30 | __time_t sem_otime; /* last semop() time */ | ||
| 31 | __syscall_ulong_t __sem_otime_high; | ||
| 32 | __time_t sem_ctime; /* last time changed by semctl() */ | ||
| 33 | __syscall_ulong_t __sem_ctime_high; | ||
| 34 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | ||
| 35 | __syscall_ulong_t __glibc_reserved3; | ||
| 36 | __syscall_ulong_t __glibc_reserved4; | ||
| 37 | #endif | ||
| 38 | }; | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/typesizes.h created+106| ... | @@ -0,0 +1,106 @@ | ||
| 1 | /* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. | ||
| 2 | Copyright (C) 2012-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | |||
| 5 | The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | modify it under the terms of the GNU Lesser General Public | ||
| 7 | License as published by the Free Software Foundation; either | ||
| 8 | version 2.1 of the License, or (at your option) any later version. | ||
| 9 | |||
| 10 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | Lesser General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU Lesser General Public | ||
| 16 | License along with the GNU C Library; if not, see | ||
| 17 | <https://www.gnu.org/licenses/>. */ | ||
| 18 | |||
| 19 | #ifndef _BITS_TYPES_H | ||
| 20 | # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifndef	_BITS_TYPESIZES_H | ||
| 24 | #define	_BITS_TYPESIZES_H	1 | ||
| 25 | |||
| 26 | /* See <bits/types.h> for the meaning of these macros. This file exists so | ||
| 27 | that <bits/types.h> need not vary across different GNU platforms. */ | ||
| 28 | |||
| 29 | /* X32 kernel interface is 64-bit. */ | ||
| 30 | #if defined __x86_64__ && defined __ILP32__ | ||
| 31 | # define __SYSCALL_SLONG_TYPE	__SQUAD_TYPE | ||
| 32 | # define __SYSCALL_ULONG_TYPE	__UQUAD_TYPE | ||
| 33 | #else | ||
| 34 | # define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE | ||
| 35 | # define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #define __DEV_T_TYPE		__UQUAD_TYPE | ||
| 39 | #define __UID_T_TYPE		__U32_TYPE | ||
| 40 | #define __GID_T_TYPE		__U32_TYPE | ||
| 41 | #define __INO_T_TYPE		__SYSCALL_ULONG_TYPE | ||
| 42 | #define __INO64_T_TYPE		__UQUAD_TYPE | ||
| 43 | #define __MODE_T_TYPE		__U32_TYPE | ||
| 44 | #ifdef __x86_64__ | ||
| 45 | # define __NLINK_T_TYPE		__SYSCALL_ULONG_TYPE | ||
| 46 | # define __FSWORD_T_TYPE	__SYSCALL_SLONG_TYPE | ||
| 47 | #else | ||
| 48 | # define __NLINK_T_TYPE		__UWORD_TYPE | ||
| 49 | # define __FSWORD_T_TYPE	__SWORD_TYPE | ||
| 50 | #endif | ||
| 51 | #define __OFF_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 52 | #define __OFF64_T_TYPE		__SQUAD_TYPE | ||
| 53 | #define __PID_T_TYPE		__S32_TYPE | ||
| 54 | #define __RLIM_T_TYPE		__SYSCALL_ULONG_TYPE | ||
| 55 | #define __RLIM64_T_TYPE		__UQUAD_TYPE | ||
| 56 | #define __BLKCNT_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 57 | #define __BLKCNT64_T_TYPE	__SQUAD_TYPE | ||
| 58 | #define __FSBLKCNT_T_TYPE	__SYSCALL_ULONG_TYPE | ||
| 59 | #define __FSBLKCNT64_T_TYPE	__UQUAD_TYPE | ||
| 60 | #define __FSFILCNT_T_TYPE	__SYSCALL_ULONG_TYPE | ||
| 61 | #define __FSFILCNT64_T_TYPE	__UQUAD_TYPE | ||
| 62 | #define __ID_T_TYPE		__U32_TYPE | ||
| 63 | #define __CLOCK_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 64 | #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE | ||
| 65 | #define __USECONDS_T_TYPE	__U32_TYPE | ||
| 66 | #define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE | ||
| 67 | #define __SUSECONDS64_T_TYPE	__SQUAD_TYPE | ||
| 68 | #define __DADDR_T_TYPE		__S32_TYPE | ||
| 69 | #define __KEY_T_TYPE		__S32_TYPE | ||
| 70 | #define __CLOCKID_T_TYPE	__S32_TYPE | ||
| 71 | #define __TIMER_T_TYPE		void * | ||
| 72 | #define __BLKSIZE_T_TYPE	__SYSCALL_SLONG_TYPE | ||
| 73 | #define __FSID_T_TYPE		struct { int __val[2]; } | ||
| 74 | #define __SSIZE_T_TYPE		__SWORD_TYPE | ||
| 75 | #define __CPU_MASK_TYPE 	__SYSCALL_ULONG_TYPE | ||
| 76 | |||
| 77 | #ifdef __x86_64__ | ||
| 78 | /* Tell the libc code that off_t and off64_t are actually the same type | ||
| 79 | for all ABI purposes, even if possibly expressed as different base types | ||
| 80 | for C type-checking purposes. */ | ||
| 81 | # define __OFF_T_MATCHES_OFF64_T	1 | ||
| 82 | |||
| 83 | /* Same for ino_t and ino64_t. */ | ||
| 84 | # define __INO_T_MATCHES_INO64_T	1 | ||
| 85 | |||
| 86 | /* And for __rlim_t and __rlim64_t. */ | ||
| 87 | # define __RLIM_T_MATCHES_RLIM64_T	1 | ||
| 88 | |||
| 89 | /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ | ||
| 90 | # define __STATFS_MATCHES_STATFS64 1 | ||
| 91 | |||
| 92 | /* And for getitimer, setitimer and rusage */ | ||
| 93 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 | ||
| 94 | #else | ||
| 95 | # define __RLIM_T_MATCHES_RLIM64_T	0 | ||
| 96 | |||
| 97 | # define __STATFS_MATCHES_STATFS64 0 | ||
| 98 | |||
| 99 | # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 | ||
| 100 | #endif | ||
| 101 | |||
| 102 | /* Number of descriptors that can fit in an `fd_set'. */ | ||
| 103 | #define __FD_SETSIZE		1024 | ||
| 104 | |||
| 105 | |||
| 106 | #endif /* bits/typesizes.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/bits/wordsize.h created+17| ... | @@ -0,0 +1,17 @@ | ||
| 1 | /* Determine the wordsize from the preprocessor defines. */ | ||
| 2 | |||
| 3 | #if defined __x86_64__ && !defined __ILP32__ | ||
| 4 | # define __WORDSIZE	64 | ||
| 5 | #else | ||
| 6 | # define __WORDSIZE	32 | ||
| 7 | #define __WORDSIZE32_SIZE_ULONG		0 | ||
| 8 | #define __WORDSIZE32_PTRDIFF_LONG	0 | ||
| 9 | #endif | ||
| 10 | |||
| 11 | #ifdef __x86_64__ | ||
| 12 | # define __WORDSIZE_TIME64_COMPAT32	1 | ||
| 13 | /* Both x86-64 and x32 use the 64-bit system call interface. */ | ||
| 14 | # define __SYSCALL_WORDSIZE		64 | ||
| 15 | #else | ||
| 16 | # define __WORDSIZE_TIME64_COMPAT32	0 | ||
| 17 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/finclude/math-vector-fortran.h created+43| ... | @@ -0,0 +1,43 @@ | ||
| 1 | ! Platform-specific declarations of SIMD math functions for Fortran. -*- f90 -*- | ||
| 2 | ! Copyright (C) 2019-2021 Free Software Foundation, Inc. | ||
| 3 | ! This file is part of the GNU C Library. | ||
| 4 | ! | ||
| 5 | ! The GNU C Library is free software; you can redistribute it and/or | ||
| 6 | ! modify it under the terms of the GNU Lesser General Public | ||
| 7 | ! License as published by the Free Software Foundation; either | ||
| 8 | ! version 2.1 of the License, or (at your option) any later version. | ||
| 9 | ! | ||
| 10 | ! The GNU C Library is distributed in the hope that it will be useful, | ||
| 11 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | ! Lesser General Public License for more details. | ||
| 14 | ! | ||
| 15 | ! You should have received a copy of the GNU Lesser General Public | ||
| 16 | ! License along with the GNU C Library; if not, see | ||
| 17 | ! <https://www.gnu.org/licenses/>. | ||
| 18 | |||
| 19 | !GCC$ builtin (cos) attributes simd (notinbranch) if('x86_64') | ||
| 20 | !GCC$ builtin (cosf) attributes simd (notinbranch) if('x86_64') | ||
| 21 | !GCC$ builtin (sin) attributes simd (notinbranch) if('x86_64') | ||
| 22 | !GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64') | ||
| 23 | !GCC$ builtin (sincos) attributes simd (notinbranch) if('x86_64') | ||
| 24 | !GCC$ builtin (sincosf) attributes simd (notinbranch) if('x86_64') | ||
| 25 | !GCC$ builtin (log) attributes simd (notinbranch) if('x86_64') | ||
| 26 | !GCC$ builtin (logf) attributes simd (notinbranch) if('x86_64') | ||
| 27 | !GCC$ builtin (exp) attributes simd (notinbranch) if('x86_64') | ||
| 28 | !GCC$ builtin (expf) attributes simd (notinbranch) if('x86_64') | ||
| 29 | !GCC$ builtin (pow) attributes simd (notinbranch) if('x86_64') | ||
| 30 | !GCC$ builtin (powf) attributes simd (notinbranch) if('x86_64') | ||
| 31 | |||
| 32 | !GCC$ builtin (cos) attributes simd (notinbranch) if('x32') | ||
| 33 | !GCC$ builtin (cosf) attributes simd (notinbranch) if('x32') | ||
| 34 | !GCC$ builtin (sin) attributes simd (notinbranch) if('x32') | ||
| 35 | !GCC$ builtin (sinf) attributes simd (notinbranch) if('x32') | ||
| 36 | !GCC$ builtin (sincos) attributes simd (notinbranch) if('x32') | ||
| 37 | !GCC$ builtin (sincosf) attributes simd (notinbranch) if('x32') | ||
| 38 | !GCC$ builtin (log) attributes simd (notinbranch) if('x32') | ||
| 39 | !GCC$ builtin (logf) attributes simd (notinbranch) if('x32') | ||
| 40 | !GCC$ builtin (exp) attributes simd (notinbranch) if('x32') | ||
| 41 | !GCC$ builtin (expf) attributes simd (notinbranch) if('x32') | ||
| 42 | !GCC$ builtin (pow) attributes simd (notinbranch) if('x32') | ||
| 43 | !GCC$ builtin (powf) attributes simd (notinbranch) if('x32') | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/fpu_control.h created+109| ... | @@ -0,0 +1,109 @@ | ||
| 1 | /* FPU control word bits. x86 version. | ||
| 2 | Copyright (C) 1993-2021 Free Software Foundation, Inc. | ||
| 3 | This file is part of the GNU C Library. | ||
| 4 | Contributed by Olaf Flebbe. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _FPU_CONTROL_H | ||
| 21 | #define _FPU_CONTROL_H	1 | ||
| 22 | |||
| 23 | /* Note that this file sets on x86-64 only the x87 FPU, it does not | ||
| 24 | touch the SSE unit. */ | ||
| 25 | |||
| 26 | /* Here is the dirty part. Set up your 387 through the control word | ||
| 27 | * (cw) register. | ||
| 28 | * | ||
| 29 | * 15-13 12 11-10 9-8 7-6 5 4 3 2 1 0 | ||
| 30 | * | reserved | IC | RC | PC | reserved | PM | UM | OM | ZM | DM | IM | ||
| 31 | * | ||
| 32 | * IM: Invalid operation mask | ||
| 33 | * DM: Denormalized operand mask | ||
| 34 | * ZM: Zero-divide mask | ||
| 35 | * OM: Overflow mask | ||
| 36 | * UM: Underflow mask | ||
| 37 | * PM: Precision (inexact result) mask | ||
| 38 | * | ||
| 39 | * Mask bit is 1 means no interrupt. | ||
| 40 | * | ||
| 41 | * PC: Precision control | ||
| 42 | * 11 - round to extended precision | ||
| 43 | * 10 - round to double precision | ||
| 44 | * 00 - round to single precision | ||
| 45 | * | ||
| 46 | * RC: Rounding control | ||
| 47 | * 00 - rounding to nearest | ||
| 48 | * 01 - rounding down (toward - infinity) | ||
| 49 | * 10 - rounding up (toward + infinity) | ||
| 50 | * 11 - rounding toward zero | ||
| 51 | * | ||
| 52 | * IC: Infinity control | ||
| 53 | * That is for 8087 and 80287 only. | ||
| 54 | * | ||
| 55 | * The hardware default is 0x037f which we use. | ||
| 56 | */ | ||
| 57 | |||
| 58 | #include <features.h> | ||
| 59 | |||
| 60 | /* masking of interrupts */ | ||
| 61 | #define _FPU_MASK_IM 0x01 | ||
| 62 | #define _FPU_MASK_DM 0x02 | ||
| 63 | #define _FPU_MASK_ZM 0x04 | ||
| 64 | #define _FPU_MASK_OM 0x08 | ||
| 65 | #define _FPU_MASK_UM 0x10 | ||
| 66 | #define _FPU_MASK_PM 0x20 | ||
| 67 | |||
| 68 | /* precision control */ | ||
| 69 | #define _FPU_EXTENDED 0x300	/* libm requires double extended precision. */ | ||
| 70 | #define _FPU_DOUBLE 0x200 | ||
| 71 | #define _FPU_SINGLE 0x0 | ||
| 72 | |||
| 73 | /* rounding control */ | ||
| 74 | #define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */ | ||
| 75 | #define _FPU_RC_DOWN 0x400 | ||
| 76 | #define _FPU_RC_UP 0x800 | ||
| 77 | #define _FPU_RC_ZERO 0xC00 | ||
| 78 | |||
| 79 | #define _FPU_RESERVED 0xF0C0 /* Reserved bits in cw */ | ||
| 80 | |||
| 81 | |||
| 82 | /* The fdlibm code requires strict IEEE double precision arithmetic, | ||
| 83 | and no interrupts for exceptions, rounding to nearest. */ | ||
| 84 | |||
| 85 | #define _FPU_DEFAULT 0x037f | ||
| 86 | |||
| 87 | /* IEEE: same as above. */ | ||
| 88 | #define _FPU_IEEE 0x037f | ||
| 89 | |||
| 90 | /* Type of the control word. */ | ||
| 91 | typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__HI__))); | ||
| 92 | |||
| 93 | /* Macros for accessing the hardware control word. "*&" is used to | ||
| 94 | work around a bug in older versions of GCC. __volatile__ is used | ||
| 95 | to support combination of writing the control register and reading | ||
| 96 | it back. Without __volatile__, the old value may be used for reading | ||
| 97 | back under compiler optimization. | ||
| 98 | |||
| 99 | Note that the use of these macros is not sufficient anymore with | ||
| 100 | recent hardware nor on x86-64. Some floating point operations are | ||
| 101 | executed in the SSE/SSE2 engines which have their own control and | ||
| 102 | status register. */ | ||
| 103 | #define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw)) | ||
| 104 | #define _FPU_SETCW(cw) __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw)) | ||
| 105 | |||
| 106 | /* Default control word set at startup. */ | ||
| 107 | extern fpu_control_t __fpu_control; | ||
| 108 | |||
| 109 | #endif	/* fpu_control.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/gnu/lib-names.h created+17| ... | @@ -0,0 +1,17 @@ | ||
| 1 | /* This file is automatically generated. | ||
| 2 | It defines macros to allow user program to find the shared | ||
| 3 | library files which come as part of GNU libc. */ | ||
| 4 | #ifndef __GNU_LIB_NAMES_H | ||
| 5 | #define __GNU_LIB_NAMES_H	1 | ||
| 6 | |||
| 7 | #if !defined __x86_64__ | ||
| 8 | # include <gnu/lib-names-32.h> | ||
| 9 | #endif | ||
| 10 | #if defined __x86_64__ && defined __LP64__ | ||
| 11 | # include <gnu/lib-names-64.h> | ||
| 12 | #endif | ||
| 13 | #if defined __x86_64__ && defined __ILP32__ | ||
| 14 | # include <gnu/lib-names-x32.h> | ||
| 15 | #endif | ||
| 16 | |||
| 17 | #endif	/* gnu/lib-names.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/gnu/stubs.h created+14| ... | @@ -0,0 +1,14 @@ | ||
| 1 | /* This file is automatically generated. | ||
| 2 | This file selects the right generated file of `__stub_FUNCTION' macros | ||
| 3 | based on the architecture being compiled for. */ | ||
| 4 | |||
| 5 | |||
| 6 | #if !defined __x86_64__ | ||
| 7 | # include <gnu/stubs-32.h> | ||
| 8 | #endif | ||
| 9 | #if defined __x86_64__ && defined __LP64__ | ||
| 10 | # include <gnu/stubs-64.h> | ||
| 11 | #endif | ||
| 12 | #if defined __x86_64__ && defined __ILP32__ | ||
| 13 | # include <gnu/stubs-x32.h> | ||
| 14 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/sys/elf.h created+29| ... | @@ -0,0 +1,29 @@ | ||
| 1 | /* Copyright (C) 1998-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_ELF_H | ||
| 19 | #define _SYS_ELF_H	1 | ||
| 20 | |||
| 21 | #ifdef __x86_64__ | ||
| 22 | # error This header is unsupported on x86-64. | ||
| 23 | #else | ||
| 24 | # warning "This header is obsolete; use <sys/procfs.h> instead." | ||
| 25 | |||
| 26 | # include <sys/procfs.h> | ||
| 27 | #endif | ||
| 28 | |||
| 29 | #endif	/* _SYS_ELF_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/sys/ptrace.h created+202| ... | @@ -0,0 +1,202 @@ | ||
| 1 | /* `ptrace' debugger support interface. Linux/x86 version. | ||
| 2 | Copyright (C) 1996-2021 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of the GNU C Library. | ||
| 5 | |||
| 6 | The GNU C Library is free software; you can redistribute it and/or | ||
| 7 | modify it under the terms of the GNU Lesser General Public | ||
| 8 | License as published by the Free Software Foundation; either | ||
| 9 | version 2.1 of the License, or (at your option) any later version. | ||
| 10 | |||
| 11 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 14 | Lesser General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public | ||
| 17 | License along with the GNU C Library; if not, see | ||
| 18 | <https://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | #ifndef _SYS_PTRACE_H | ||
| 21 | #define _SYS_PTRACE_H	1 | ||
| 22 | |||
| 23 | #include <features.h> | ||
| 24 | #include <bits/types.h> | ||
| 25 | |||
| 26 | __BEGIN_DECLS | ||
| 27 | |||
| 28 | /* Type of the REQUEST argument to `ptrace.' */ | ||
| 29 | enum __ptrace_request | ||
| 30 | { | ||
| 31 | /* Indicate that the process making this request should be traced. | ||
| 32 | All signals received by this process can be intercepted by its | ||
| 33 | parent, and its parent can use the other `ptrace' requests. */ | ||
| 34 | PTRACE_TRACEME = 0, | ||
| 35 | #define PT_TRACE_ME PTRACE_TRACEME | ||
| 36 | |||
| 37 | /* Return the word in the process's text space at address ADDR. */ | ||
| 38 | PTRACE_PEEKTEXT = 1, | ||
| 39 | #define PT_READ_I PTRACE_PEEKTEXT | ||
| 40 | |||
| 41 | /* Return the word in the process's data space at address ADDR. */ | ||
| 42 | PTRACE_PEEKDATA = 2, | ||
| 43 | #define PT_READ_D PTRACE_PEEKDATA | ||
| 44 | |||
| 45 | /* Return the word in the process's user area at offset ADDR. */ | ||
| 46 | PTRACE_PEEKUSER = 3, | ||
| 47 | #define PT_READ_U PTRACE_PEEKUSER | ||
| 48 | |||
| 49 | /* Write the word DATA into the process's text space at address ADDR. */ | ||
| 50 | PTRACE_POKETEXT = 4, | ||
| 51 | #define PT_WRITE_I PTRACE_POKETEXT | ||
| 52 | |||
| 53 | /* Write the word DATA into the process's data space at address ADDR. */ | ||
| 54 | PTRACE_POKEDATA = 5, | ||
| 55 | #define PT_WRITE_D PTRACE_POKEDATA | ||
| 56 | |||
| 57 | /* Write the word DATA into the process's user area at offset ADDR. */ | ||
| 58 | PTRACE_POKEUSER = 6, | ||
| 59 | #define PT_WRITE_U PTRACE_POKEUSER | ||
| 60 | |||
| 61 | /* Continue the process. */ | ||
| 62 | PTRACE_CONT = 7, | ||
| 63 | #define PT_CONTINUE PTRACE_CONT | ||
| 64 | |||
| 65 | /* Kill the process. */ | ||
| 66 | PTRACE_KILL = 8, | ||
| 67 | #define PT_KILL PTRACE_KILL | ||
| 68 | |||
| 69 | /* Single step the process. */ | ||
| 70 | PTRACE_SINGLESTEP = 9, | ||
| 71 | #define PT_STEP PTRACE_SINGLESTEP | ||
| 72 | |||
| 73 | /* Get all general purpose registers used by a processes. */ | ||
| 74 | PTRACE_GETREGS = 12, | ||
| 75 | #define PT_GETREGS PTRACE_GETREGS | ||
| 76 | |||
| 77 | /* Set all general purpose registers used by a processes. */ | ||
| 78 | PTRACE_SETREGS = 13, | ||
| 79 | #define PT_SETREGS PTRACE_SETREGS | ||
| 80 | |||
| 81 | /* Get all floating point registers used by a processes. */ | ||
| 82 | PTRACE_GETFPREGS = 14, | ||
| 83 | #define PT_GETFPREGS PTRACE_GETFPREGS | ||
| 84 | |||
| 85 | /* Set all floating point registers used by a processes. */ | ||
| 86 | PTRACE_SETFPREGS = 15, | ||
| 87 | #define PT_SETFPREGS PTRACE_SETFPREGS | ||
| 88 | |||
| 89 | /* Attach to a process that is already running. */ | ||
| 90 | PTRACE_ATTACH = 16, | ||
| 91 | #define PT_ATTACH PTRACE_ATTACH | ||
| 92 | |||
| 93 | /* Detach from a process attached to with PTRACE_ATTACH. */ | ||
| 94 | PTRACE_DETACH = 17, | ||
| 95 | #define PT_DETACH PTRACE_DETACH | ||
| 96 | |||
| 97 | /* Get all extended floating point registers used by a processes. */ | ||
| 98 | PTRACE_GETFPXREGS = 18, | ||
| 99 | #define PT_GETFPXREGS PTRACE_GETFPXREGS | ||
| 100 | |||
| 101 | /* Set all extended floating point registers used by a processes. */ | ||
| 102 | PTRACE_SETFPXREGS = 19, | ||
| 103 | #define PT_SETFPXREGS PTRACE_SETFPXREGS | ||
| 104 | |||
| 105 | /* Continue and stop at the next entry to or return from syscall. */ | ||
| 106 | PTRACE_SYSCALL = 24, | ||
| 107 | #define PT_SYSCALL PTRACE_SYSCALL | ||
| 108 | |||
| 109 | /* Get a TLS entry in the GDT. */ | ||
| 110 | PTRACE_GET_THREAD_AREA = 25, | ||
| 111 | #define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA | ||
| 112 | |||
| 113 | /* Change a TLS entry in the GDT. */ | ||
| 114 | PTRACE_SET_THREAD_AREA = 26, | ||
| 115 | #define PT_SET_THREAD_AREA PTRACE_SET_THREAD_AREA | ||
| 116 | |||
| 117 | #ifdef __x86_64__ | ||
| 118 | /* Access TLS data. */ | ||
| 119 | PTRACE_ARCH_PRCTL = 30, | ||
| 120 | # define PT_ARCH_PRCTL PTRACE_ARCH_PRCTL | ||
| 121 | #endif | ||
| 122 | |||
| 123 | /* Continue and stop at the next syscall, it will not be executed. */ | ||
| 124 | PTRACE_SYSEMU = 31, | ||
| 125 | #define PT_SYSEMU PTRACE_SYSEMU | ||
| 126 | |||
| 127 | /* Single step the process, the next syscall will not be executed. */ | ||
| 128 | PTRACE_SYSEMU_SINGLESTEP = 32, | ||
| 129 | #define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP | ||
| 130 | |||
| 131 | /* Execute process until next taken branch. */ | ||
| 132 | PTRACE_SINGLEBLOCK = 33, | ||
| 133 | #define PT_STEPBLOCK PTRACE_SINGLEBLOCK | ||
| 134 | |||
| 135 | /* Set ptrace filter options. */ | ||
| 136 | PTRACE_SETOPTIONS = 0x4200, | ||
| 137 | #define PT_SETOPTIONS PTRACE_SETOPTIONS | ||
| 138 | |||
| 139 | /* Get last ptrace message. */ | ||
| 140 | PTRACE_GETEVENTMSG = 0x4201, | ||
| 141 | #define PT_GETEVENTMSG PTRACE_GETEVENTMSG | ||
| 142 | |||
| 143 | /* Get siginfo for process. */ | ||
| 144 | PTRACE_GETSIGINFO = 0x4202, | ||
| 145 | #define PT_GETSIGINFO PTRACE_GETSIGINFO | ||
| 146 | |||
| 147 | /* Set new siginfo for process. */ | ||
| 148 | PTRACE_SETSIGINFO = 0x4203, | ||
| 149 | #define PT_SETSIGINFO PTRACE_SETSIGINFO | ||
| 150 | |||
| 151 | /* Get register content. */ | ||
| 152 | PTRACE_GETREGSET = 0x4204, | ||
| 153 | #define PTRACE_GETREGSET PTRACE_GETREGSET | ||
| 154 | |||
| 155 | /* Set register content. */ | ||
| 156 | PTRACE_SETREGSET = 0x4205, | ||
| 157 | #define PTRACE_SETREGSET PTRACE_SETREGSET | ||
| 158 | |||
| 159 | /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect | ||
| 160 | signal or group stop state. */ | ||
| 161 | PTRACE_SEIZE = 0x4206, | ||
| 162 | #define PTRACE_SEIZE PTRACE_SEIZE | ||
| 163 | |||
| 164 | /* Trap seized tracee. */ | ||
| 165 | PTRACE_INTERRUPT = 0x4207, | ||
| 166 | #define PTRACE_INTERRUPT PTRACE_INTERRUPT | ||
| 167 | |||
| 168 | /* Wait for next group event. */ | ||
| 169 | PTRACE_LISTEN = 0x4208, | ||
| 170 | #define PTRACE_LISTEN PTRACE_LISTEN | ||
| 171 | |||
| 172 | /* Retrieve siginfo_t structures without removing signals from a queue. */ | ||
| 173 | PTRACE_PEEKSIGINFO = 0x4209, | ||
| 174 | #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO | ||
| 175 | |||
| 176 | /* Get the mask of blocked signals. */ | ||
| 177 | PTRACE_GETSIGMASK = 0x420a, | ||
| 178 | #define PTRACE_GETSIGMASK PTRACE_GETSIGMASK | ||
| 179 | |||
| 180 | /* Change the mask of blocked signals. */ | ||
| 181 | PTRACE_SETSIGMASK = 0x420b, | ||
| 182 | #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK | ||
| 183 | |||
| 184 | /* Get seccomp BPF filters. */ | ||
| 185 | PTRACE_SECCOMP_GET_FILTER = 0x420c, | ||
| 186 | #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER | ||
| 187 | |||
| 188 | /* Get seccomp BPF filter metadata. */ | ||
| 189 | PTRACE_SECCOMP_GET_METADATA = 0x420d, | ||
| 190 | #define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA | ||
| 191 | |||
| 192 | /* Get information about system call. */ | ||
| 193 | PTRACE_GET_SYSCALL_INFO = 0x420e | ||
| 194 | #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO | ||
| 195 | }; | ||
| 196 | |||
| 197 | |||
| 198 | #include <bits/ptrace-shared.h> | ||
| 199 | |||
| 200 | __END_DECLS | ||
| 201 | |||
| 202 | #endif /* _SYS_PTRACE_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/sys/ucontext.h created+262| ... | @@ -0,0 +1,262 @@ | ||
| 1 | /* Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_UCONTEXT_H | ||
| 19 | #define _SYS_UCONTEXT_H	1 | ||
| 20 | |||
| 21 | #include <features.h> | ||
| 22 | |||
| 23 | #include <bits/types.h> | ||
| 24 | #include <bits/types/sigset_t.h> | ||
| 25 | #include <bits/types/stack_t.h> | ||
| 26 | |||
| 27 | |||
| 28 | #ifdef __USE_MISC | ||
| 29 | # define __ctx(fld) fld | ||
| 30 | #else | ||
| 31 | # define __ctx(fld) __ ## fld | ||
| 32 | #endif | ||
| 33 | |||
| 34 | #ifdef __x86_64__ | ||
| 35 | |||
| 36 | /* Type for general register. */ | ||
| 37 | __extension__ typedef long long int greg_t; | ||
| 38 | |||
| 39 | /* Number of general registers. */ | ||
| 40 | #define __NGREG	23 | ||
| 41 | #ifdef __USE_MISC | ||
| 42 | # define NGREG	__NGREG | ||
| 43 | #endif | ||
| 44 | |||
| 45 | /* Container for all general registers. */ | ||
| 46 | typedef greg_t gregset_t[__NGREG]; | ||
| 47 | |||
| 48 | #ifdef __USE_GNU | ||
| 49 | /* Number of each register in the `gregset_t' array. */ | ||
| 50 | enum | ||
| 51 | { | ||
| 52 | REG_R8 = 0, | ||
| 53 | # define REG_R8		REG_R8 | ||
| 54 | REG_R9, | ||
| 55 | # define REG_R9		REG_R9 | ||
| 56 | REG_R10, | ||
| 57 | # define REG_R10	REG_R10 | ||
| 58 | REG_R11, | ||
| 59 | # define REG_R11	REG_R11 | ||
| 60 | REG_R12, | ||
| 61 | # define REG_R12	REG_R12 | ||
| 62 | REG_R13, | ||
| 63 | # define REG_R13	REG_R13 | ||
| 64 | REG_R14, | ||
| 65 | # define REG_R14	REG_R14 | ||
| 66 | REG_R15, | ||
| 67 | # define REG_R15	REG_R15 | ||
| 68 | REG_RDI, | ||
| 69 | # define REG_RDI	REG_RDI | ||
| 70 | REG_RSI, | ||
| 71 | # define REG_RSI	REG_RSI | ||
| 72 | REG_RBP, | ||
| 73 | # define REG_RBP	REG_RBP | ||
| 74 | REG_RBX, | ||
| 75 | # define REG_RBX	REG_RBX | ||
| 76 | REG_RDX, | ||
| 77 | # define REG_RDX	REG_RDX | ||
| 78 | REG_RAX, | ||
| 79 | # define REG_RAX	REG_RAX | ||
| 80 | REG_RCX, | ||
| 81 | # define REG_RCX	REG_RCX | ||
| 82 | REG_RSP, | ||
| 83 | # define REG_RSP	REG_RSP | ||
| 84 | REG_RIP, | ||
| 85 | # define REG_RIP	REG_RIP | ||
| 86 | REG_EFL, | ||
| 87 | # define REG_EFL	REG_EFL | ||
| 88 | REG_CSGSFS,		/* Actually short cs, gs, fs, __pad0. */ | ||
| 89 | # define REG_CSGSFS	REG_CSGSFS | ||
| 90 | REG_ERR, | ||
| 91 | # define REG_ERR	REG_ERR | ||
| 92 | REG_TRAPNO, | ||
| 93 | # define REG_TRAPNO	REG_TRAPNO | ||
| 94 | REG_OLDMASK, | ||
| 95 | # define REG_OLDMASK	REG_OLDMASK | ||
| 96 | REG_CR2 | ||
| 97 | # define REG_CR2	REG_CR2 | ||
| 98 | }; | ||
| 99 | #endif | ||
| 100 | |||
| 101 | struct _libc_fpxreg | ||
| 102 | { | ||
| 103 | unsigned short int __ctx(significand)[4]; | ||
| 104 | unsigned short int __ctx(exponent); | ||
| 105 | unsigned short int __glibc_reserved1[3]; | ||
| 106 | }; | ||
| 107 | |||
| 108 | struct _libc_xmmreg | ||
| 109 | { | ||
| 110 | __uint32_t	__ctx(element)[4]; | ||
| 111 | }; | ||
| 112 | |||
| 113 | struct _libc_fpstate | ||
| 114 | { | ||
| 115 | /* 64-bit FXSAVE format. */ | ||
| 116 | __uint16_t		__ctx(cwd); | ||
| 117 | __uint16_t		__ctx(swd); | ||
| 118 | __uint16_t		__ctx(ftw); | ||
| 119 | __uint16_t		__ctx(fop); | ||
| 120 | __uint64_t		__ctx(rip); | ||
| 121 | __uint64_t		__ctx(rdp); | ||
| 122 | __uint32_t		__ctx(mxcsr); | ||
| 123 | __uint32_t		__ctx(mxcr_mask); | ||
| 124 | struct _libc_fpxreg	_st[8]; | ||
| 125 | struct _libc_xmmreg	_xmm[16]; | ||
| 126 | __uint32_t		__glibc_reserved1[24]; | ||
| 127 | }; | ||
| 128 | |||
| 129 | /* Structure to describe FPU registers. */ | ||
| 130 | typedef struct _libc_fpstate *fpregset_t; | ||
| 131 | |||
| 132 | /* Context to describe whole processor state. */ | ||
| 133 | typedef struct | ||
| 134 | { | ||
| 135 | gregset_t __ctx(gregs); | ||
| 136 | /* Note that fpregs is a pointer. */ | ||
| 137 | fpregset_t __ctx(fpregs); | ||
| 138 | __extension__ unsigned long long __reserved1 [8]; | ||
| 139 | } mcontext_t; | ||
| 140 | |||
| 141 | /* Userlevel context. */ | ||
| 142 | typedef struct ucontext_t | ||
| 143 | { | ||
| 144 | unsigned long int __ctx(uc_flags); | ||
| 145 | struct ucontext_t *uc_link; | ||
| 146 | stack_t uc_stack; | ||
| 147 | mcontext_t uc_mcontext; | ||
| 148 | sigset_t uc_sigmask; | ||
| 149 | struct _libc_fpstate __fpregs_mem; | ||
| 150 | __extension__ unsigned long long int __ssp[4]; | ||
| 151 | } ucontext_t; | ||
| 152 | |||
| 153 | #else /* !__x86_64__ */ | ||
| 154 | |||
| 155 | /* Type for general register. */ | ||
| 156 | typedef int greg_t; | ||
| 157 | |||
| 158 | /* Number of general registers. */ | ||
| 159 | #define __NGREG	19 | ||
| 160 | #ifdef __USE_MISC | ||
| 161 | # define NGREG	__NGREG | ||
| 162 | #endif | ||
| 163 | |||
| 164 | /* Container for all general registers. */ | ||
| 165 | typedef greg_t gregset_t[__NGREG]; | ||
| 166 | |||
| 167 | #ifdef __USE_GNU | ||
| 168 | /* Number of each register is the `gregset_t' array. */ | ||
| 169 | enum | ||
| 170 | { | ||
| 171 | REG_GS = 0, | ||
| 172 | # define REG_GS		REG_GS | ||
| 173 | REG_FS, | ||
| 174 | # define REG_FS		REG_FS | ||
| 175 | REG_ES, | ||
| 176 | # define REG_ES		REG_ES | ||
| 177 | REG_DS, | ||
| 178 | # define REG_DS		REG_DS | ||
| 179 | REG_EDI, | ||
| 180 | # define REG_EDI	REG_EDI | ||
| 181 | REG_ESI, | ||
| 182 | # define REG_ESI	REG_ESI | ||
| 183 | REG_EBP, | ||
| 184 | # define REG_EBP	REG_EBP | ||
| 185 | REG_ESP, | ||
| 186 | # define REG_ESP	REG_ESP | ||
| 187 | REG_EBX, | ||
| 188 | # define REG_EBX	REG_EBX | ||
| 189 | REG_EDX, | ||
| 190 | # define REG_EDX	REG_EDX | ||
| 191 | REG_ECX, | ||
| 192 | # define REG_ECX	REG_ECX | ||
| 193 | REG_EAX, | ||
| 194 | # define REG_EAX	REG_EAX | ||
| 195 | REG_TRAPNO, | ||
| 196 | # define REG_TRAPNO	REG_TRAPNO | ||
| 197 | REG_ERR, | ||
| 198 | # define REG_ERR	REG_ERR | ||
| 199 | REG_EIP, | ||
| 200 | # define REG_EIP	REG_EIP | ||
| 201 | REG_CS, | ||
| 202 | # define REG_CS		REG_CS | ||
| 203 | REG_EFL, | ||
| 204 | # define REG_EFL	REG_EFL | ||
| 205 | REG_UESP, | ||
| 206 | # define REG_UESP	REG_UESP | ||
| 207 | REG_SS | ||
| 208 | # define REG_SS	REG_SS | ||
| 209 | }; | ||
| 210 | #endif | ||
| 211 | |||
| 212 | /* Definitions taken from the kernel headers. */ | ||
| 213 | struct _libc_fpreg | ||
| 214 | { | ||
| 215 | unsigned short int __ctx(significand)[4]; | ||
| 216 | unsigned short int __ctx(exponent); | ||
| 217 | }; | ||
| 218 | |||
| 219 | struct _libc_fpstate | ||
| 220 | { | ||
| 221 | unsigned long int __ctx(cw); | ||
| 222 | unsigned long int __ctx(sw); | ||
| 223 | unsigned long int __ctx(tag); | ||
| 224 | unsigned long int __ctx(ipoff); | ||
| 225 | unsigned long int __ctx(cssel); | ||
| 226 | unsigned long int __ctx(dataoff); | ||
| 227 | unsigned long int __ctx(datasel); | ||
| 228 | struct _libc_fpreg _st[8]; | ||
| 229 | unsigned long int __ctx(status); | ||
| 230 | }; | ||
| 231 | |||
| 232 | /* Structure to describe FPU registers. */ | ||
| 233 | typedef struct _libc_fpstate *fpregset_t; | ||
| 234 | |||
| 235 | /* Context to describe whole processor state. */ | ||
| 236 | typedef struct | ||
| 237 | { | ||
| 238 | gregset_t __ctx(gregs); | ||
| 239 | /* Due to Linux's history we have to use a pointer here. The SysV/i386 | ||
| 240 | ABI requires a struct with the values. */ | ||
| 241 | fpregset_t __ctx(fpregs); | ||
| 242 | unsigned long int __ctx(oldmask); | ||
| 243 | unsigned long int __ctx(cr2); | ||
| 244 | } mcontext_t; | ||
| 245 | |||
| 246 | /* Userlevel context. */ | ||
| 247 | typedef struct ucontext_t | ||
| 248 | { | ||
| 249 | unsigned long int __ctx(uc_flags); | ||
| 250 | struct ucontext_t *uc_link; | ||
| 251 | stack_t uc_stack; | ||
| 252 | mcontext_t uc_mcontext; | ||
| 253 | sigset_t uc_sigmask; | ||
| 254 | struct _libc_fpstate __fpregs_mem; | ||
| 255 | unsigned long int __ssp[4]; | ||
| 256 | } ucontext_t; | ||
| 257 | |||
| 258 | #endif /* !__x86_64__ */ | ||
| 259 | |||
| 260 | #undef __ctx | ||
| 261 | |||
| 262 | #endif /* sys/ucontext.h */ | ||
| \ No newline at end of file | |||
lib/libc/include/x86-linux-gnu/sys/user.h created+180| ... | @@ -0,0 +1,180 @@ | ||
| 1 | /* Copyright (C) 2001-2021 Free Software Foundation, Inc. | ||
| 2 | This file is part of the GNU C Library. | ||
| 3 | |||
| 4 | The GNU C Library is free software; you can redistribute it and/or | ||
| 5 | modify it under the terms of the GNU Lesser General Public | ||
| 6 | License as published by the Free Software Foundation; either | ||
| 7 | version 2.1 of the License, or (at your option) any later version. | ||
| 8 | |||
| 9 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 12 | Lesser General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU Lesser General Public | ||
| 15 | License along with the GNU C Library; if not, see | ||
| 16 | <https://www.gnu.org/licenses/>. */ | ||
| 17 | |||
| 18 | #ifndef _SYS_USER_H | ||
| 19 | #define _SYS_USER_H	1 | ||
| 20 | |||
| 21 | /* The whole purpose of this file is for GDB and GDB only. Don't read | ||
| 22 | too much into it. Don't use it for anything other than GDB unless | ||
| 23 | you know what you are doing. */ | ||
| 24 | |||
| 25 | #ifdef __x86_64__ | ||
| 26 | |||
| 27 | struct user_fpregs_struct | ||
| 28 | { | ||
| 29 | unsigned short int	cwd; | ||
| 30 | unsigned short int	swd; | ||
| 31 | unsigned short int	ftw; | ||
| 32 | unsigned short int	fop; | ||
| 33 | __extension__ unsigned long long int rip; | ||
| 34 | __extension__ unsigned long long int rdp; | ||
| 35 | unsigned int		mxcsr; | ||
| 36 | unsigned int		mxcr_mask; | ||
| 37 | unsigned int		st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ | ||
| 38 | unsigned int		xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */ | ||
| 39 | unsigned int		padding[24]; | ||
| 40 | }; | ||
| 41 | |||
| 42 | struct user_regs_struct | ||
| 43 | { | ||
| 44 | __extension__ unsigned long long int r15; | ||
| 45 | __extension__ unsigned long long int r14; | ||
| 46 | __extension__ unsigned long long int r13; | ||
| 47 | __extension__ unsigned long long int r12; | ||
| 48 | __extension__ unsigned long long int rbp; | ||
| 49 | __extension__ unsigned long long int rbx; | ||
| 50 | __extension__ unsigned long long int r11; | ||
| 51 | __extension__ unsigned long long int r10; | ||
| 52 | __extension__ unsigned long long int r9; | ||
| 53 | __extension__ unsigned long long int r8; | ||
| 54 | __extension__ unsigned long long int rax; | ||
| 55 | __extension__ unsigned long long int rcx; | ||
| 56 | __extension__ unsigned long long int rdx; | ||
| 57 | __extension__ unsigned long long int rsi; | ||
| 58 | __extension__ unsigned long long int rdi; | ||
| 59 | __extension__ unsigned long long int orig_rax; | ||
| 60 | __extension__ unsigned long long int rip; | ||
| 61 | __extension__ unsigned long long int cs; | ||
| 62 | __extension__ unsigned long long int eflags; | ||
| 63 | __extension__ unsigned long long int rsp; | ||
| 64 | __extension__ unsigned long long int ss; | ||
| 65 | __extension__ unsigned long long int fs_base; | ||
| 66 | __extension__ unsigned long long int gs_base; | ||
| 67 | __extension__ unsigned long long int ds; | ||
| 68 | __extension__ unsigned long long int es; | ||
| 69 | __extension__ unsigned long long int fs; | ||
| 70 | __extension__ unsigned long long int gs; | ||
| 71 | }; | ||
| 72 | |||
| 73 | struct user | ||
| 74 | { | ||
| 75 | struct user_regs_struct	regs; | ||
| 76 | int				u_fpvalid; | ||
| 77 | struct user_fpregs_struct	i387; | ||
| 78 | __extension__ unsigned long long int	u_tsize; | ||
| 79 | __extension__ unsigned long long int	u_dsize; | ||
| 80 | __extension__ unsigned long long int	u_ssize; | ||
| 81 | __extension__ unsigned long long int	start_code; | ||
| 82 | __extension__ unsigned long long int	start_stack; | ||
| 83 | __extension__ long long int		signal; | ||
| 84 | int				reserved; | ||
| 85 | __extension__ union | ||
| 86 | { | ||
| 87 | struct user_regs_struct*	u_ar0; | ||
| 88 | __extension__ unsigned long long int	__u_ar0_word; | ||
| 89 | }; | ||
| 90 | __extension__ union | ||
| 91 | { | ||
| 92 | struct user_fpregs_struct*	u_fpstate; | ||
| 93 | __extension__ unsigned long long int	__u_fpstate_word; | ||
| 94 | }; | ||
| 95 | __extension__ unsigned long long int	magic; | ||
| 96 | char				u_comm [32]; | ||
| 97 | __extension__ unsigned long long int	u_debugreg [8]; | ||
| 98 | }; | ||
| 99 | |||
| 100 | #else | ||
| 101 | /* These are the 32-bit x86 structures. */ | ||
| 102 | struct user_fpregs_struct | ||
| 103 | { | ||
| 104 | long int cwd; | ||
| 105 | long int swd; | ||
| 106 | long int twd; | ||
| 107 | long int fip; | ||
| 108 | long int fcs; | ||
| 109 | long int foo; | ||
| 110 | long int fos; | ||
| 111 | long int st_space [20]; | ||
| 112 | }; | ||
| 113 | |||
| 114 | struct user_fpxregs_struct | ||
| 115 | { | ||
| 116 | unsigned short int cwd; | ||
| 117 | unsigned short int swd; | ||
| 118 | unsigned short int twd; | ||
| 119 | unsigned short int fop; | ||
| 120 | long int fip; | ||
| 121 | long int fcs; | ||
| 122 | long int foo; | ||
| 123 | long int fos; | ||
| 124 | long int mxcsr; | ||
| 125 | long int reserved; | ||
| 126 | long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ | ||
| 127 | long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ | ||
| 128 | long int padding[56]; | ||
| 129 | }; | ||
| 130 | |||
| 131 | struct user_regs_struct | ||
| 132 | { | ||
| 133 | long int ebx; | ||
| 134 | long int ecx; | ||
| 135 | long int edx; | ||
| 136 | long int esi; | ||
| 137 | long int edi; | ||
| 138 | long int ebp; | ||
| 139 | long int eax; | ||
| 140 | long int xds; | ||
| 141 | long int xes; | ||
| 142 | long int xfs; | ||
| 143 | long int xgs; | ||
| 144 | long int orig_eax; | ||
| 145 | long int eip; | ||
| 146 | long int xcs; | ||
| 147 | long int eflags; | ||
| 148 | long int esp; | ||
| 149 | long int xss; | ||
| 150 | }; | ||
| 151 | |||
| 152 | struct user | ||
| 153 | { | ||
| 154 | struct user_regs_struct	regs; | ||
| 155 | int				u_fpvalid; | ||
| 156 | struct user_fpregs_struct	i387; | ||
| 157 | unsigned long int		u_tsize; | ||
| 158 | unsigned long int		u_dsize; | ||
| 159 | unsigned long int		u_ssize; | ||
| 160 | unsigned long int		start_code; | ||
| 161 | unsigned long int		start_stack; | ||
| 162 | long int			signal; | ||
| 163 | int				reserved; | ||
| 164 | struct user_regs_struct*	u_ar0; | ||
| 165 | struct user_fpregs_struct*	u_fpstate; | ||
| 166 | unsigned long int		magic; | ||
| 167 | char				u_comm [32]; | ||
| 168 | int				u_debugreg [8]; | ||
| 169 | }; | ||
| 170 | #endif /* __x86_64__ */ | ||
| 171 | |||
| 172 | #define PAGE_SHIFT		12 | ||
| 173 | #define PAGE_SIZE		(1UL << PAGE_SHIFT) | ||
| 174 | #define PAGE_MASK		(~(PAGE_SIZE-1)) | ||
| 175 | #define NBPG			PAGE_SIZE | ||
| 176 | #define UPAGES			1 | ||
| 177 | #define HOST_TEXT_START_ADDR	(u.start_code) | ||
| 178 | #define HOST_STACK_END_ADDR	(u.start_stack + u.u_ssize * NBPG) | ||
| 179 | |||
| 180 | #endif	/* _SYS_USER_H */ | ||
| \ No newline at end of file | |||