| author | |
| committer | |
| log | c8af00c66e8b6f62e4dd6ac4d86a3de03e9ea354 |
| tree | e0df38be78d663f802c6622f509d4d399ae133c4 |
| parent | 5aeffab693a878679674f9a2f8bb2e6825da705d |
See the commit message of 5b6d26e97bb97d79782f3c77b02a997e361a1497 for
an explanation. This is the same thing but for powerpc instead of mips.125 files changed, 5937 insertions(+), 2993 deletions(-)
lib/libc/include/generic-glibc/features.h+2-2| ... | ... | @@ -477,7 +477,7 @@ |
| 477 | 477 | /* Major and minor version number of the GNU C library package. Use |
| 478 | 478 | these macros to test for features in specific releases. */ |
| 479 | 479 | #define	__GLIBC__	2 |
| 480 | /* Zig patch: we pass `-D__GLIBC_MINOR__=XX` depending on the target. */ | |
| 480 | #define	__GLIBC_MINOR__	34 | |
| 481 | 481 | |
| 482 | 482 | #define __GLIBC_PREREQ(maj, min) \ |
| 483 | 483 | 	((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) |
| ... | ... | @@ -512,4 +512,4 @@ |
| 512 | 512 | #include <gnu/stubs.h> |
| 513 | 513 | |
| 514 | 514 | |
| 515 | #endif	/* features.h */ | |
| 515 | #endif	/* features.h */ | |
| \ No newline at end of file |
lib/libc/include/generic-glibc/gnu/lib-names-ilp32.h deleted-30| ... | ... | @@ -1,30 +0,0 @@ |
| 1 | /* This file is automatically generated. */ | |
| 2 | #ifndef __GNU_LIB_NAMES_H | |
| 3 | # error "Never use <gnu/lib-names-ilp32.h> directly; include <gnu/lib-names.h> instead." | |
| 4 | #endif | |
| 5 | ||
| 6 | #define LD_LINUX_RISCV32_ILP32_SO "ld-linux-riscv32-ilp32.so.1" | |
| 7 | #define LD_SO "ld-linux-riscv32-ilp32.so.1" | |
| 8 | #define LIBANL_SO "libanl.so.1" | |
| 9 | #define LIBBROKENLOCALE_SO "libBrokenLocale.so.1" | |
| 10 | #define LIBCRYPT_SO "libcrypt.so.1" | |
| 11 | #define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0" | |
| 12 | #define LIBC_SO "libc.so.6" | |
| 13 | #define LIBDL_SO "libdl.so.2" | |
| 14 | #define LIBGCC_S_SO "libgcc_s.so.1" | |
| 15 | #define LIBMVEC_SO "libmvec.so.1" | |
| 16 | #define LIBM_SO "libm.so.6" | |
| 17 | #define LIBNSL_SO "libnsl.so.1" | |
| 18 | #define LIBNSS_COMPAT_SO "libnss_compat.so.2" | |
| 19 | #define LIBNSS_DB_SO "libnss_db.so.2" | |
| 20 | #define LIBNSS_DNS_SO "libnss_dns.so.2" | |
| 21 | #define LIBNSS_FILES_SO "libnss_files.so.2" | |
| 22 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | |
| 23 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | |
| 24 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | |
| 25 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | |
| 26 | #define LIBPTHREAD_SO "libpthread.so.0" | |
| 27 | #define LIBRESOLV_SO "libresolv.so.2" | |
| 28 | #define LIBRT_SO "librt.so.1" | |
| 29 | #define LIBTHREAD_DB_SO "libthread_db.so.1" | |
| 30 | #define LIBUTIL_SO "libutil.so.1" |
lib/libc/include/powerpc-linux-gnu/bits/endianness.h deleted-16| ... | ... | @@ -1,16 +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 | /* PowerPC has selectable endianness. */ | |
| 9 | #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN | |
| 10 | # define __BYTE_ORDER __BIG_ENDIAN | |
| 11 | #endif | |
| 12 | #if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN | |
| 13 | # define __BYTE_ORDER __LITTLE_ENDIAN | |
| 14 | #endif | |
| 15 | ||
| 16 | #endif /* bits/endianness.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/environments.h deleted-96| ... | ... | @@ -1,96 +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 | /* By default we have 32-bit wide `int', `long int', pointers and `off_t' | |
| 68 | and all platforms support LFS. */ | |
| 69 | # define _POSIX_V7_ILP32_OFF32	1 | |
| 70 | # define _POSIX_V7_ILP32_OFFBIG	1 | |
| 71 | # define _POSIX_V6_ILP32_OFF32	1 | |
| 72 | # define _POSIX_V6_ILP32_OFFBIG	1 | |
| 73 | # define _XBS5_ILP32_OFF32	1 | |
| 74 | # define _XBS5_ILP32_OFFBIG	1 | |
| 75 | ||
| 76 | /* We optionally provide an environment with the above size but an 64-bit | |
| 77 | side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ | |
| 78 | ||
| 79 | /* Environments with 64-bit wide pointers can be provided, | |
| 80 | so these macros aren't defined: | |
| 81 | # undef _POSIX_V7_LP64_OFF64 | |
| 82 | # undef _POSIX_V7_LPBIG_OFFBIG | |
| 83 | # undef _POSIX_V6_LP64_OFF64 | |
| 84 | # undef _POSIX_V6_LPBIG_OFFBIG | |
| 85 | # undef _XBS5_LP64_OFF64 | |
| 86 | # undef _XBS5_LPBIG_OFFBIG | |
| 87 | and sysconf tests for it at runtime. */ | |
| 88 | ||
| 89 | #endif /* __WORDSIZE == 32 */ | |
| 90 | ||
| 91 | #define __ILP32_OFF32_CFLAGS	"-m32" | |
| 92 | #define __ILP32_OFFBIG_CFLAGS	"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" | |
| 93 | #define __ILP32_OFF32_LDFLAGS	"-m32" | |
| 94 | #define __ILP32_OFFBIG_LDFLAGS	"-m32" | |
| 95 | #define __LP64_OFF64_CFLAGS	"-m64" | |
| 96 | #define __LP64_OFF64_LDFLAGS	"-m64" | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/fcntl.h deleted-62| ... | ... | @@ -1,62 +0,0 @@ |
| 1 | /* O_*, F_*, FD_* bit values for Linux/PowerPC. | |
| 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	_FCNTL_H | |
| 20 | # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #include <bits/wordsize.h> | |
| 24 | ||
| 25 | #define __O_DIRECTORY	 040000	/* Must be a directory.	 */ | |
| 26 | #define __O_NOFOLLOW	0100000	/* Do not follow links.	 */ | |
| 27 | #define __O_DIRECT	0400000	/* Direct disk access.	*/ | |
| 28 | ||
| 29 | #if __WORDSIZE == 64 | |
| 30 | /* Not necessary, files are always with 64bit off_t. */ | |
| 31 | # define __O_LARGEFILE 0 | |
| 32 | #else | |
| 33 | # define __O_LARGEFILE	0200000 | |
| 34 | #endif | |
| 35 | ||
| 36 | struct flock | |
| 37 | { | |
| 38 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | |
| 39 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | |
| 40 | #ifndef __USE_FILE_OFFSET64 | |
| 41 | __off_t l_start;	/* Offset where the lock begins. */ | |
| 42 | __off_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 43 | #else | |
| 44 | __off64_t l_start;	/* Offset where the lock begins. */ | |
| 45 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 46 | #endif | |
| 47 | __pid_t l_pid;	/* Process holding the lock. */ | |
| 48 | }; | |
| 49 | ||
| 50 | #ifdef __USE_LARGEFILE64 | |
| 51 | struct flock64 | |
| 52 | { | |
| 53 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | |
| 54 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | |
| 55 | __off64_t l_start;	/* Offset where the lock begins. */ | |
| 56 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 57 | __pid_t l_pid;	/* Process holding the lock. */ | |
| 58 | }; | |
| 59 | #endif | |
| 60 | ||
| 61 | /* Include generic Linux declarations. */ | |
| 62 | #include <bits/fcntl-linux.h> | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/fenv.h deleted-180| ... | ... | @@ -1,180 +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 | ||
| 23 | /* Define bits representing the exception. We use the bit positions of | |
| 24 | the appropriate bits in the FPSCR... */ | |
| 25 | enum | |
| 26 | { | |
| 27 | FE_INEXACT = | |
| 28 | #define FE_INEXACT	(1 << (31 - 6)) | |
| 29 | FE_INEXACT, | |
| 30 | FE_DIVBYZERO = | |
| 31 | #define FE_DIVBYZERO	(1 << (31 - 5)) | |
| 32 | FE_DIVBYZERO, | |
| 33 | FE_UNDERFLOW = | |
| 34 | #define FE_UNDERFLOW	(1 << (31 - 4)) | |
| 35 | FE_UNDERFLOW, | |
| 36 | FE_OVERFLOW = | |
| 37 | #define FE_OVERFLOW	(1 << (31 - 3)) | |
| 38 | FE_OVERFLOW, | |
| 39 | ||
| 40 | /* ... except for FE_INVALID, for which we use bit 31. FE_INVALID | |
| 41 | actually corresponds to bits 7 through 12 and 21 through 23 | |
| 42 | in the FPSCR, but we can't use that because the current draft | |
| 43 | says that it must be a power of 2. Instead we use bit 2 which | |
| 44 | is the summary bit for all the FE_INVALID exceptions, which | |
| 45 | kind of makes sense. */ | |
| 46 | FE_INVALID = | |
| 47 | #define FE_INVALID	(1 << (31 - 2)) | |
| 48 | FE_INVALID, | |
| 49 | ||
| 50 | #ifdef __USE_GNU | |
| 51 | /* Breakdown of the FE_INVALID bits. Setting FE_INVALID on an | |
| 52 | input to a routine is equivalent to setting all of these bits; | |
| 53 | FE_INVALID will be set on output from a routine iff one of | |
| 54 | these bits is set. Note, though, that you can't disable or | |
| 55 | enable these exceptions individually. */ | |
| 56 | ||
| 57 | /* Operation with a sNaN. */ | |
| 58 | FE_INVALID_SNAN = | |
| 59 | # define FE_INVALID_SNAN	(1 << (31 - 7)) | |
| 60 | FE_INVALID_SNAN, | |
| 61 | ||
| 62 | /* Inf - Inf */ | |
| 63 | FE_INVALID_ISI = | |
| 64 | # define FE_INVALID_ISI	(1 << (31 - 8)) | |
| 65 | FE_INVALID_ISI, | |
| 66 | ||
| 67 | /* Inf / Inf */ | |
| 68 | FE_INVALID_IDI = | |
| 69 | # define FE_INVALID_IDI	(1 << (31 - 9)) | |
| 70 | FE_INVALID_IDI, | |
| 71 | ||
| 72 | /* 0 / 0 */ | |
| 73 | FE_INVALID_ZDZ = | |
| 74 | # define FE_INVALID_ZDZ	(1 << (31 - 10)) | |
| 75 | FE_INVALID_ZDZ, | |
| 76 | ||
| 77 | /* Inf * 0 */ | |
| 78 | FE_INVALID_IMZ = | |
| 79 | # define FE_INVALID_IMZ	(1 << (31 - 11)) | |
| 80 | FE_INVALID_IMZ, | |
| 81 | ||
| 82 | /* Comparison with a NaN. */ | |
| 83 | FE_INVALID_COMPARE = | |
| 84 | # define FE_INVALID_COMPARE	(1 << (31 - 12)) | |
| 85 | FE_INVALID_COMPARE, | |
| 86 | ||
| 87 | /* Invalid operation flag for software (not set by hardware). */ | |
| 88 | /* Note that some chips don't have this implemented, presumably | |
| 89 | because no-one expected anyone to write software for them %-). */ | |
| 90 | FE_INVALID_SOFTWARE = | |
| 91 | # define FE_INVALID_SOFTWARE	(1 << (31 - 21)) | |
| 92 | FE_INVALID_SOFTWARE, | |
| 93 | ||
| 94 | /* Square root of negative number (including -Inf). */ | |
| 95 | /* Note that some chips don't have this implemented. */ | |
| 96 | FE_INVALID_SQRT = | |
| 97 | # define FE_INVALID_SQRT	(1 << (31 - 22)) | |
| 98 | FE_INVALID_SQRT, | |
| 99 | ||
| 100 | /* Conversion-to-integer of a NaN or a number too large or too small. */ | |
| 101 | FE_INVALID_INTEGER_CONVERSION = | |
| 102 | # define FE_INVALID_INTEGER_CONVERSION	(1 << (31 - 23)) | |
| 103 | FE_INVALID_INTEGER_CONVERSION | |
| 104 | ||
| 105 | # define FE_ALL_INVALID \ | |
| 106 | (FE_INVALID_SNAN | FE_INVALID_ISI | FE_INVALID_IDI | FE_INVALID_ZDZ \ | |
| 107 | 	 | FE_INVALID_IMZ | FE_INVALID_COMPARE | FE_INVALID_SOFTWARE \ | |
| 108 | 	 | FE_INVALID_SQRT | FE_INVALID_INTEGER_CONVERSION) | |
| 109 | #endif | |
| 110 | }; | |
| 111 | ||
| 112 | #define FE_ALL_EXCEPT \ | |
| 113 | 	(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) | |
| 114 | ||
| 115 | /* PowerPC chips support all of the four defined rounding modes. We | |
| 116 | use the bit pattern in the FPSCR as the values for the | |
| 117 | appropriate macros. */ | |
| 118 | enum | |
| 119 | { | |
| 120 | FE_TONEAREST = | |
| 121 | #define FE_TONEAREST	0 | |
| 122 | FE_TONEAREST, | |
| 123 | FE_TOWARDZERO = | |
| 124 | #define FE_TOWARDZERO	1 | |
| 125 | FE_TOWARDZERO, | |
| 126 | FE_UPWARD = | |
| 127 | #define FE_UPWARD	2 | |
| 128 | FE_UPWARD, | |
| 129 | FE_DOWNWARD = | |
| 130 | #define FE_DOWNWARD	3 | |
| 131 | FE_DOWNWARD | |
| 132 | }; | |
| 133 | ||
| 134 | /* Type representing exception flags. */ | |
| 135 | typedef unsigned int fexcept_t; | |
| 136 | ||
| 137 | /* Type representing floating-point environment. We leave it as 'double' | |
| 138 | for efficiency reasons (rather than writing it to a 32-bit integer). */ | |
| 139 | typedef double fenv_t; | |
| 140 | ||
| 141 | /* If the default argument is used we use this value. */ | |
| 142 | extern const fenv_t __fe_dfl_env; | |
| 143 | #define FE_DFL_ENV	(&__fe_dfl_env) | |
| 144 | ||
| 145 | #ifdef __USE_GNU | |
| 146 | /* Floating-point environment where all exceptions are enabled. Note that | |
| 147 | this is not sufficient to give you SIGFPE. */ | |
| 148 | extern const fenv_t __fe_enabled_env; | |
| 149 | # define FE_ENABLED_ENV	(&__fe_enabled_env) | |
| 150 | ||
| 151 | /* Floating-point environment with (processor-dependent) non-IEEE floating | |
| 152 | point. */ | |
| 153 | extern const fenv_t __fe_nonieee_env; | |
| 154 | # define FE_NONIEEE_ENV	(&__fe_nonieee_env) | |
| 155 | ||
| 156 | /* Floating-point environment with all exceptions enabled. Note that | |
| 157 | just evaluating this value does not change the processor exception mode. | |
| 158 | Passing this mask to fesetenv will result in a prctl syscall to change | |
| 159 | the MSR FE0/FE1 bits to "Precise Mode". On some processors this will | |
| 160 | result in slower floating point execution. This will last until an | |
| 161 | fenv or exception mask is installed that disables all FP exceptions. */ | |
| 162 | # define FE_NOMASK_ENV	FE_ENABLED_ENV | |
| 163 | ||
| 164 | /* Floating-point environment with all exceptions disabled. Note that | |
| 165 | just evaluating this value does not change the processor exception mode. | |
| 166 | Passing this mask to fesetenv will result in a prctl syscall to change | |
| 167 | the MSR FE0/FE1 bits to "Ignore Exceptions Mode". On most processors | |
| 168 | this allows the fastest possible floating point execution.*/ | |
| 169 | # define FE_MASK_ENV	FE_DFL_ENV | |
| 170 | ||
| 171 | #endif | |
| 172 | ||
| 173 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | |
| 174 | /* Type representing floating-point control modes. */ | |
| 175 | typedef double femode_t; | |
| 176 | ||
| 177 | /* Default floating-point control modes. */ | |
| 178 | extern const femode_t __fe_dfl_mode; | |
| 179 | # define FE_DFL_MODE	(&__fe_dfl_mode) | |
| 180 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/floatn.h deleted-122| ... | ... | @@ -1,122 +0,0 @@ |
| 1 | /* Macros to control TS 18661-3 glibc features on powerpc. | |
| 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 | #include <bits/long-double.h> | |
| 24 | ||
| 25 | /* Defined to 1 if the current compiler invocation provides a | |
| 26 | floating-point type with the IEEE 754 binary128 format, and this glibc | |
| 27 | includes corresponding *f128 interfaces for it. */ | |
| 28 | #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \ | |
| 29 | && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH | |
| 30 | # define __HAVE_FLOAT128 1 | |
| 31 | #else | |
| 32 | # define __HAVE_FLOAT128 0 | |
| 33 | #endif | |
| 34 | ||
| 35 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | |
| 36 | from the default float, double and long double types in this glibc, i.e. | |
| 37 | calls to the binary128 functions go to *f128 symbols instead of *l. */ | |
| 38 | #if __HAVE_FLOAT128 | |
| 39 | # define __HAVE_DISTINCT_FLOAT128 1 | |
| 40 | #else | |
| 41 | # define __HAVE_DISTINCT_FLOAT128 0 | |
| 42 | #endif | |
| 43 | ||
| 44 | /* Defined to 1 if the current compiler invocation provides a | |
| 45 | floating-point type with the right format for _Float64x, and this | |
| 46 | glibc includes corresponding *f64x interfaces for it. */ | |
| 47 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | |
| 48 | ||
| 49 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | |
| 50 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | |
| 51 | the format of _Float128, which must be different from that of long | |
| 52 | double. */ | |
| 53 | #define __HAVE_FLOAT64X_LONG_DOUBLE 0 | |
| 54 | ||
| 55 | #ifndef __ASSEMBLER__ | |
| 56 | ||
| 57 | /* Defined to concatenate the literal suffix to be used with _Float128 | |
| 58 | types, if __HAVE_FLOAT128 is 1. */ | |
| 59 | # if __HAVE_FLOAT128 | |
| 60 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | |
| 61 | /* The literal suffix (f128) exist for powerpc only since GCC 7.0. */ | |
| 62 | # if __LDBL_MANT_DIG__ == 113 | |
| 63 | # define __f128(x) x##l | |
| 64 | # else | |
| 65 | # define __f128(x) x##q | |
| 66 | # endif | |
| 67 | # else | |
| 68 | # define __f128(x) x##f128 | |
| 69 | # endif | |
| 70 | # endif | |
| 71 | ||
| 72 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | |
| 73 | # if __HAVE_FLOAT128 | |
| 74 | # if __LDBL_MANT_DIG__ == 113 && defined __cplusplus | |
| 75 | typedef long double _Float128; | |
| 76 | # define __CFLOAT128 _Complex long double | |
| 77 | # elif !__GNUC_PREREQ (7, 0) || defined __cplusplus | |
| 78 | /* The type _Float128 exist for powerpc only since GCC 7.0. */ | |
| 79 | typedef __float128 _Float128; | |
| 80 | /* Add a typedef for older GCC and C++ compilers which don't natively support | |
| 81 | _Complex _Float128. */ | |
| 82 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__KC__))); | |
| 83 | # define __CFLOAT128 __cfloat128 | |
| 84 | # else | |
| 85 | # define __CFLOAT128 _Complex _Float128 | |
| 86 | # endif | |
| 87 | # endif | |
| 88 | ||
| 89 | /* The remaining of this file provides support for older compilers. */ | |
| 90 | # if __HAVE_FLOAT128 | |
| 91 | /* Builtin __builtin_huge_valf128 doesn't exist before GCC 7.0. */ | |
| 92 | # if !__GNUC_PREREQ (7, 0) | |
| 93 | # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) | |
| 94 | # endif | |
| 95 | ||
| 96 | /* The following builtins (suffixed with 'q') are available in GCC >= 6.2, | |
| 97 | which is the minimum version required for float128 support on powerpc64le. | |
| 98 | Since GCC 7.0 the builtins suffixed with f128 are also available, then | |
| 99 | there is no need to redefined them. */ | |
| 100 | # if !__GNUC_PREREQ (7, 0) | |
| 101 | # define __builtin_copysignf128 __builtin_copysignq | |
| 102 | # define __builtin_fabsf128 __builtin_fabsq | |
| 103 | # define __builtin_inff128 __builtin_infq | |
| 104 | # define __builtin_nanf128 __builtin_nanq | |
| 105 | # define __builtin_nansf128 __builtin_nansq | |
| 106 | # endif | |
| 107 | ||
| 108 | /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, | |
| 109 | e.g.: __builtin_signbitf128, before GCC 6. However, there has never | |
| 110 | been a __builtin_signbitf128 in GCC and the type-generic builtin is | |
| 111 | only available since GCC 6. */ | |
| 112 | # if !__GNUC_PREREQ (6, 0) | |
| 113 | # define __builtin_signbitf128 __signbitf128 | |
| 114 | # endif | |
| 115 | ||
| 116 | # endif | |
| 117 | ||
| 118 | #endif /* !__ASSEMBLER__. */ | |
| 119 | ||
| 120 | #include <bits/floatn-common.h> | |
| 121 | ||
| 122 | #endif /* _BITS_FLOATN_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/fp-fast.h deleted-39| ... | ... | @@ -1,39 +0,0 @@ |
| 1 | /* Define FP_FAST_* macros. PowerPC 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-fast.h> directly; include <math.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_ISOC99 | |
| 24 | ||
| 25 | /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l} | |
| 26 | builtins are supported. */ | |
| 27 | # if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMA | |
| 28 | # define FP_FAST_FMA 1 | |
| 29 | # endif | |
| 30 | ||
| 31 | # if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMAF | |
| 32 | # define FP_FAST_FMAF 1 | |
| 33 | # endif | |
| 34 | ||
| 35 | # ifdef __FP_FAST_FMAL | |
| 36 | # define FP_FAST_FMAL 1 | |
| 37 | # endif | |
| 38 | ||
| 39 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/hwcap.h deleted-78| ... | ... | @@ -1,78 +0,0 @@ |
| 1 | /* Defines for bits in AT_HWCAP and AT_HWCAP2. | |
| 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 | #if !defined(_SYS_AUXV_H) && !defined(_SYSDEPS_SYSDEP_H) | |
| 20 | # error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* The bit numbers must match those in the kernel's asm/cputable.h. */ | |
| 24 | ||
| 25 | /* Feature definitions in AT_HWCAP. */ | |
| 26 | #define PPC_FEATURE_32		 0x80000000 /* 32-bit mode. */ | |
| 27 | #define PPC_FEATURE_64		 0x40000000 /* 64-bit mode. */ | |
| 28 | #define PPC_FEATURE_601_INSTR	 0x20000000 /* 601 chip, Old POWER ISA. */ | |
| 29 | #define PPC_FEATURE_HAS_ALTIVEC	 0x10000000 /* SIMD/Vector Unit. */ | |
| 30 | #define PPC_FEATURE_HAS_FPU	 0x08000000 /* Floating Point Unit. */ | |
| 31 | #define PPC_FEATURE_HAS_MMU	 0x04000000 /* Memory Management Unit. */ | |
| 32 | #define PPC_FEATURE_HAS_4xxMAC	 0x02000000 /* 4xx Multiply Accumulator. */ | |
| 33 | #define PPC_FEATURE_UNIFIED_CACHE 0x01000000 /* Unified I/D cache. */ | |
| 34 | #define PPC_FEATURE_HAS_SPE	 0x00800000 /* Signal Processing ext. */ | |
| 35 | #define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 /* SPE Float. */ | |
| 36 | #define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 /* SPE Double. */ | |
| 37 | #define PPC_FEATURE_NO_TB	 0x00100000 /* 601/403gx have no timebase */ | |
| 38 | #define PPC_FEATURE_POWER4	 0x00080000 /* POWER4 ISA 2.00 */ | |
| 39 | #define PPC_FEATURE_POWER5	 0x00040000 /* POWER5 ISA 2.02 */ | |
| 40 | #define PPC_FEATURE_POWER5_PLUS	 0x00020000 /* POWER5+ ISA 2.03 */ | |
| 41 | #define PPC_FEATURE_CELL_BE	 0x00010000 /* CELL Broadband Engine */ | |
| 42 | #define PPC_FEATURE_BOOKE	 0x00008000 /* ISA Category Embedded */ | |
| 43 | #define PPC_FEATURE_SMT		 0x00004000 /* Simultaneous | |
| 44 | 						 Multi-Threading */ | |
| 45 | #define PPC_FEATURE_ICACHE_SNOOP 0x00002000 | |
| 46 | #define PPC_FEATURE_ARCH_2_05	 0x00001000 /* ISA 2.05 */ | |
| 47 | #define PPC_FEATURE_PA6T	 0x00000800 /* PA Semi 6T Core */ | |
| 48 | #define PPC_FEATURE_HAS_DFP	 0x00000400 /* Decimal FP Unit */ | |
| 49 | #define PPC_FEATURE_POWER6_EXT	 0x00000200 /* P6 + mffgpr/mftgpr */ | |
| 50 | #define PPC_FEATURE_ARCH_2_06	 0x00000100 /* ISA 2.06 */ | |
| 51 | #define PPC_FEATURE_HAS_VSX	 0x00000080 /* P7 Vector Extension. */ | |
| 52 | #define PPC_FEATURE_PSERIES_PERFMON_COMPAT 0x00000040 | |
| 53 | /* Reserved by the kernel.	 0x00000004 Do not use. */ | |
| 54 | #define PPC_FEATURE_TRUE_LE	 0x00000002 | |
| 55 | #define PPC_FEATURE_PPC_LE	 0x00000001 | |
| 56 | ||
| 57 | /* Feature definitions in AT_HWCAP2. */ | |
| 58 | #define PPC_FEATURE2_ARCH_2_07 0x80000000 /* ISA 2.07 */ | |
| 59 | #define PPC_FEATURE2_HAS_HTM 0x40000000 /* Hardware Transactional | |
| 60 | 						 Memory */ | |
| 61 | #define PPC_FEATURE2_HAS_DSCR 0x20000000 /* Data Stream Control | |
| 62 | 						 Register */ | |
| 63 | #define PPC_FEATURE2_HAS_EBB 0x10000000 /* Event Base Branching */ | |
| 64 | #define PPC_FEATURE2_HAS_ISEL 0x08000000 /* Integer Select */ | |
| 65 | #define PPC_FEATURE2_HAS_TAR 0x04000000 /* Target Address Register */ | |
| 66 | #define PPC_FEATURE2_HAS_VEC_CRYPTO 0x02000000 /* Target supports vector | |
| 67 | 						 instruction. */ | |
| 68 | #define PPC_FEATURE2_HTM_NOSC	 0x01000000 /* Kernel aborts transaction | |
| 69 | 						 when a syscall is made. */ | |
| 70 | #define PPC_FEATURE2_ARCH_3_00	 0x00800000 /* ISA 3.0 */ | |
| 71 | #define PPC_FEATURE2_HAS_IEEE128 0x00400000 /* VSX IEEE Binary Float | |
| 72 | 						 128-bit */ | |
| 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ | |
| 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ | |
| 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended | |
| 76 | 						 state. */ | |
| 77 | #define PPC_FEATURE2_ARCH_3_1	 0x00040000 /* ISA 3.1. */ | |
| 78 | #define PPC_FEATURE2_MMA	 0x00020000 /* Matrix-Multiply Assist. */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/ioctl-types.h deleted-77| ... | ... | @@ -1,77 +0,0 @@ |
| 1 | /* Structure types for pre-termios terminal ioctls. Linux/powerpc version. | |
| 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 _SYS_IOCTL_H | |
| 20 | # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Get definition of constants for use with `ioctl'. */ | |
| 24 | #include <asm/ioctls.h> | |
| 25 | ||
| 26 | ||
| 27 | struct winsize | |
| 28 | { | |
| 29 | unsigned short int ws_row; | |
| 30 | unsigned short int ws_col; | |
| 31 | unsigned short int ws_xpixel; | |
| 32 | unsigned short int ws_ypixel; | |
| 33 | }; | |
| 34 | ||
| 35 | #define NCC 10 | |
| 36 | struct termio | |
| 37 | { | |
| 38 | unsigned short int c_iflag;		/* input mode flags */ | |
| 39 | unsigned short int c_oflag;		/* output mode flags */ | |
| 40 | unsigned short int c_cflag;		/* control mode flags */ | |
| 41 | unsigned short int c_lflag;		/* local mode flags */ | |
| 42 | unsigned char c_line;		/* line discipline */ | |
| 43 | unsigned char c_cc[NCC];		/* control characters */ | |
| 44 | }; | |
| 45 | ||
| 46 | /* modem lines */ | |
| 47 | #define TIOCM_LE	0x001 | |
| 48 | #define TIOCM_DTR	0x002 | |
| 49 | #define TIOCM_RTS	0x004 | |
| 50 | #define TIOCM_ST	0x008 | |
| 51 | #define TIOCM_SR	0x010 | |
| 52 | #define TIOCM_CTS	0x020 | |
| 53 | #define TIOCM_CAR	0x040 | |
| 54 | #define TIOCM_RNG	0x080 | |
| 55 | #define TIOCM_DSR	0x100 | |
| 56 | #define TIOCM_CD	TIOCM_CAR | |
| 57 | #define TIOCM_RI	TIOCM_RNG | |
| 58 | ||
| 59 | /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ | |
| 60 | ||
| 61 | /* line disciplines */ | |
| 62 | #define N_TTY		0 | |
| 63 | #define N_SLIP		1 | |
| 64 | #define N_MOUSE		2 | |
| 65 | #define N_PPP		3 | |
| 66 | #define N_STRIP		4 | |
| 67 | #define N_AX25		5 | |
| 68 | #define N_X25		6	/* X.25 async */ | |
| 69 | #define N_6PACK		7 | |
| 70 | #define N_MASC		8	/* Mobitex module */ | |
| 71 | #define N_R3964		9	/* Simatic R3964 module */ | |
| 72 | #define N_PROFIBUS_FDL	10	/* Profibus */ | |
| 73 | #define N_IRDA		11	/* Linux IR */ | |
| 74 | #define N_SMSBLOCK	12	/* SMS block mode */ | |
| 75 | #define N_HDLC		13	/* synchronous HDLC */ | |
| 76 | #define N_SYNC_PPP	14	/* synchronous PPP */ | |
| 77 | #define	N_HCI		15	/* Bluetooth HCI UART */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/ipc-perm.h deleted-36| ... | ... | @@ -1,36 +0,0 @@ |
| 1 | /* struct ipc_perm definition. Linux/powerpc version. | |
| 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_IPC_H | |
| 20 | # error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Data structure used to pass permission information to IPC operations. */ | |
| 24 | struct ipc_perm | |
| 25 | { | |
| 26 | __key_t __key;		/* Key. */ | |
| 27 | __uid_t uid;		/* Owner's user ID. */ | |
| 28 | __gid_t gid;		/* Owner's group ID. */ | |
| 29 | __uid_t cuid;		/* Creator's user ID. */ | |
| 30 | __gid_t cgid;		/* Creator's group ID. */ | |
| 31 | __mode_t mode;		/* Read/write permission. */ | |
| 32 | __uint32_t __seq;		/* Sequence number. */ | |
| 33 | __uint32_t __pad1; | |
| 34 | __uint64_t __glibc_reserved1; | |
| 35 | __uint64_t __glibc_reserved2; | |
| 36 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/iscanonical.h deleted-58| ... | ... | @@ -1,58 +0,0 @@ |
| 1 | /* Define iscanonical macro. ldbl-128ibm 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 | #if defined (__NO_LONG_DOUBLE_MATH) || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | |
| 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) | |
| 25 | #else | |
| 26 | extern int __iscanonicall (long double __x) | |
| 27 | __THROW __attribute__ ((__const__)); | |
| 28 | # define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) | |
| 29 | # define __iscanonical(x) ((void) (__typeof (x)) (x), 1) | |
| 30 | # if __HAVE_DISTINCT_FLOAT128 | |
| 31 | # define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1) | |
| 32 | # endif | |
| 33 | ||
| 34 | /* Return nonzero value if X is canonical. In IEEE interchange binary | |
| 35 | formats, all values are canonical, but the argument must still be | |
| 36 | converted to its semantic type for any exceptions arising from the | |
| 37 | conversion, before being discarded; in IBM long double, there are | |
| 38 | encodings that are not consistently handled as corresponding to any | |
| 39 | particular value of the type, and we return 0 for those. */ | |
| 40 | # ifndef __cplusplus | |
| 41 | # define iscanonical(x) __MATH_TG ((x), __iscanonical, (x)) | |
| 42 | # else | |
| 43 | /* In C++ mode, __MATH_TG cannot be used, because it relies on | |
| 44 | __builtin_types_compatible_p, which is a C-only builtin. On the | |
| 45 | other hand, overloading provides the means to distinguish between | |
| 46 | the floating-point types. The overloading resolution will match | |
| 47 | the correct parameter (regardless of type qualifiers (i.e.: const | |
| 48 | and volatile)). */ | |
| 49 | extern "C++" { | |
| 50 | inline int iscanonical (float __val) { return __iscanonicalf (__val); } | |
| 51 | inline int iscanonical (double __val) { return __iscanonical (__val); } | |
| 52 | inline int iscanonical (long double __val) { return __iscanonicall (__val); } | |
| 53 | # if __HAVE_DISTINCT_FLOAT128 | |
| 54 | inline int iscanonical (_Float128 __val) { return __iscanonicalf128 (__val); } | |
| 55 | # endif | |
| 56 | } | |
| 57 | # endif /* __cplusplus */ | |
| 58 | #endif /* __NO_LONG_DOUBLE_MATH */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/link.h deleted-156| ... | ... | @@ -1,156 +0,0 @@ |
| 1 | /* Machine-specific declarations for dynamic linker interface. PowerPC version | |
| 2 | Copyright (C) 2004-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	_LINK_H | |
| 20 | # error "Never include <bits/link.h> directly; use <link.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | ||
| 24 | #if __ELF_NATIVE_CLASS == 32 | |
| 25 | ||
| 26 | /* Registers for entry into PLT on PPC32. */ | |
| 27 | typedef struct La_ppc32_regs | |
| 28 | { | |
| 29 | uint32_t lr_reg[8]; | |
| 30 | double lr_fp[8]; | |
| 31 | uint32_t lr_vreg[12][4]; | |
| 32 | uint32_t lr_r1; | |
| 33 | uint32_t lr_lr; | |
| 34 | } La_ppc32_regs; | |
| 35 | ||
| 36 | /* Return values for calls from PLT on PPC32. */ | |
| 37 | typedef struct La_ppc32_retval | |
| 38 | { | |
| 39 | uint32_t lrv_r3; | |
| 40 | uint32_t lrv_r4; | |
| 41 | double lrv_fp[8]; | |
| 42 | uint32_t lrv_v2[4]; | |
| 43 | } La_ppc32_retval; | |
| 44 | ||
| 45 | ||
| 46 | __BEGIN_DECLS | |
| 47 | ||
| 48 | extern Elf32_Addr la_ppc32_gnu_pltenter (Elf32_Sym *__sym, | |
| 49 | 					 unsigned int __ndx, | |
| 50 | 					 uintptr_t *__refcook, | |
| 51 | 					 uintptr_t *__defcook, | |
| 52 | 					 La_ppc32_regs *__regs, | |
| 53 | 					 unsigned int *__flags, | |
| 54 | 					 const char *__symname, | |
| 55 | 					 long int *__framesizep); | |
| 56 | extern unsigned int la_ppc32_gnu_pltexit (Elf32_Sym *__sym, | |
| 57 | 					 unsigned int __ndx, | |
| 58 | 					 uintptr_t *__refcook, | |
| 59 | 					 uintptr_t *__defcook, | |
| 60 | 					 const La_ppc32_regs *__inregs, | |
| 61 | 					 La_ppc32_retval *__outregs, | |
| 62 | 					 const char *__symname); | |
| 63 | ||
| 64 | __END_DECLS | |
| 65 | ||
| 66 | #elif __ELF_NATIVE_CLASS == 64 | |
| 67 | # if _CALL_ELF != 2 | |
| 68 | ||
| 69 | /* Registers for entry into PLT on PPC64. */ | |
| 70 | typedef struct La_ppc64_regs | |
| 71 | { | |
| 72 | uint64_t lr_reg[8]; | |
| 73 | double lr_fp[13]; | |
| 74 | uint32_t __padding; | |
| 75 | uint32_t lr_vrsave; | |
| 76 | uint32_t lr_vreg[12][4]; | |
| 77 | uint64_t lr_r1; | |
| 78 | uint64_t lr_lr; | |
| 79 | } La_ppc64_regs; | |
| 80 | ||
| 81 | /* Return values for calls from PLT on PPC64. */ | |
| 82 | typedef struct La_ppc64_retval | |
| 83 | { | |
| 84 | uint64_t lrv_r3; | |
| 85 | uint64_t lrv_r4; | |
| 86 | double lrv_fp[4];	/* f1-f4, float - complex long double. */ | |
| 87 | uint32_t lrv_v2[4];	/* v2. */ | |
| 88 | } La_ppc64_retval; | |
| 89 | ||
| 90 | ||
| 91 | __BEGIN_DECLS | |
| 92 | ||
| 93 | extern Elf64_Addr la_ppc64_gnu_pltenter (Elf64_Sym *__sym, | |
| 94 | 					 unsigned int __ndx, | |
| 95 | 					 uintptr_t *__refcook, | |
| 96 | 					 uintptr_t *__defcook, | |
| 97 | 					 La_ppc64_regs *__regs, | |
| 98 | 					 unsigned int *__flags, | |
| 99 | 					 const char *__symname, | |
| 100 | 					 long int *__framesizep); | |
| 101 | extern unsigned int la_ppc64_gnu_pltexit (Elf64_Sym *__sym, | |
| 102 | 					 unsigned int __ndx, | |
| 103 | 					 uintptr_t *__refcook, | |
| 104 | 					 uintptr_t *__defcook, | |
| 105 | 					 const La_ppc64_regs *__inregs, | |
| 106 | 					 La_ppc64_retval *__outregs, | |
| 107 | 					 const char *__symname); | |
| 108 | ||
| 109 | __END_DECLS | |
| 110 | ||
| 111 | # else | |
| 112 | ||
| 113 | /* Registers for entry into PLT on PPC64 in the ELFv2 ABI. */ | |
| 114 | typedef struct La_ppc64v2_regs | |
| 115 | { | |
| 116 | uint64_t lr_reg[8]; | |
| 117 | double lr_fp[13]; | |
| 118 | uint32_t __padding; | |
| 119 | uint32_t lr_vrsave; | |
| 120 | uint32_t lr_vreg[12][4] __attribute__ ((aligned (16))); | |
| 121 | uint64_t lr_r1; | |
| 122 | uint64_t lr_lr; | |
| 123 | } La_ppc64v2_regs; | |
| 124 | ||
| 125 | /* Return values for calls from PLT on PPC64 in the ELFv2 ABI. */ | |
| 126 | typedef struct La_ppc64v2_retval | |
| 127 | { | |
| 128 | uint64_t lrv_r3; | |
| 129 | uint64_t lrv_r4; | |
| 130 | double lrv_fp[10]; | |
| 131 | uint32_t lrv_vreg[8][4] __attribute__ ((aligned (16))); | |
| 132 | } La_ppc64v2_retval; | |
| 133 | ||
| 134 | ||
| 135 | __BEGIN_DECLS | |
| 136 | ||
| 137 | extern Elf64_Addr la_ppc64v2_gnu_pltenter (Elf64_Sym *__sym, | |
| 138 | 					 unsigned int __ndx, | |
| 139 | 					 uintptr_t *__refcook, | |
| 140 | 					 uintptr_t *__defcook, | |
| 141 | 					 La_ppc64v2_regs *__regs, | |
| 142 | 					 unsigned int *__flags, | |
| 143 | 					 const char *__symname, | |
| 144 | 					 long int *__framesizep); | |
| 145 | extern unsigned int la_ppc64v2_gnu_pltexit (Elf64_Sym *__sym, | |
| 146 | 					 unsigned int __ndx, | |
| 147 | 					 uintptr_t *__refcook, | |
| 148 | 					 uintptr_t *__defcook, | |
| 149 | 					 const La_ppc64v2_regs *__inregs, | |
| 150 | 					 La_ppc64v2_retval *__outregs, | |
| 151 | 					 const char *__symname); | |
| 152 | ||
| 153 | __END_DECLS | |
| 154 | ||
| 155 | # endif | |
| 156 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/long-double.h deleted-25| ... | ... | @@ -1,25 +0,0 @@ |
| 1 | /* Properties of long double type. ldbl-opt 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 | #ifndef __NO_LONG_DOUBLE_MATH | |
| 20 | # define __LONG_DOUBLE_MATH_OPTIONAL	1 | |
| 21 | # ifndef __LONG_DOUBLE_128__ | |
| 22 | # define __NO_LONG_DOUBLE_MATH		1 | |
| 23 | # endif | |
| 24 | #endif | |
| 25 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/mman.h deleted-53| ... | ... | @@ -1,53 +0,0 @@ |
| 1 | /* Definitions for POSIX memory map interface. Linux/PowerPC version. | |
| 2 | Copyright (C) 1997-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 | #define PROT_SAO	0x10		/* Strong Access Ordering. */ | |
| 27 | ||
| 28 | /* These are Linux-specific. */ | |
| 29 | #ifdef __USE_MISC | |
| 30 | # define MAP_GROWSDOWN	0x00100		/* Stack-like segment. */ | |
| 31 | # define MAP_DENYWRITE	0x00800		/* ETXTBSY */ | |
| 32 | # define MAP_EXECUTABLE	0x01000		/* Mark it as an executable. */ | |
| 33 | # define MAP_LOCKED	0x00080		/* Lock the mapping. */ | |
| 34 | # define MAP_NORESERVE	0x00040		/* Don't check for reservations. */ | |
| 35 | # define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables. */ | |
| 36 | # define MAP_NONBLOCK	0x10000		/* Do not block on IO. */ | |
| 37 | # define MAP_STACK	0x20000		/* Allocation is for a stack. */ | |
| 38 | # define MAP_HUGETLB	0x40000		/* Create huge page mapping. */ | |
| 39 | # define MAP_SYNC	0x80000		/* Perform synchronous page | |
| 40 | 					 faults for the mapping. */ | |
| 41 | # define MAP_FIXED_NOREPLACE 0x100000	/* MAP_FIXED but do not unmap | |
| 42 | 					 underlying mapping. */ | |
| 43 | #endif | |
| 44 | ||
| 45 | /* Flags for `mlockall'. */ | |
| 46 | #define MCL_CURRENT	0x2000		/* Lock all currently mapped pages. */ | |
| 47 | #define MCL_FUTURE	0x4000		/* Lock all additions to address | |
| 48 | 					 space. */ | |
| 49 | #define MCL_ONFAULT	0x8000		/* Lock all pages that are | |
| 50 | 					 faulted in. */ | |
| 51 | ||
| 52 | /* Include generic Linux declarations. */ | |
| 53 | #include <bits/mman-linux.h> | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/procfs.h deleted-49| ... | ... | @@ -1,49 +0,0 @@ |
| 1 | /* Types for registers for sys/procfs.h. PowerPC version. | |
| 2 | Copyright (C) 1996-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 | #include <signal.h> | |
| 24 | #include <sys/ucontext.h> | |
| 25 | ||
| 26 | /* These definitions are normally provided by ucontext.h via | |
| 27 | asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define | |
| 28 | them here. */ | |
| 29 | #if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H | |
| 30 | #define ELF_NGREG 48 /* includes nip, msr, lr, etc. */ | |
| 31 | #define ELF_NFPREG 33 /* includes fpscr */ | |
| 32 | #if __WORDSIZE == 32 | |
| 33 | # define ELF_NVRREG 33 /* includes vscr */ | |
| 34 | #else | |
| 35 | # define ELF_NVRREG 34 /* includes vscr */ | |
| 36 | #endif | |
| 37 | ||
| 38 | typedef unsigned long elf_greg_t; | |
| 39 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | |
| 40 | ||
| 41 | typedef double elf_fpreg_t; | |
| 42 | typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; | |
| 43 | ||
| 44 | /* Altivec registers */ | |
| 45 | typedef struct { | |
| 46 | unsigned int u[4]; | |
| 47 | } __attribute__ ((__aligned__ (16))) elf_vrreg_t; | |
| 48 | typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG]; | |
| 49 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/pthread_stack_min.h deleted-21| ... | ... | @@ -1,21 +0,0 @@ |
| 1 | /* Definition of PTHREAD_STACK_MIN. Linux/PPC version. | |
| 2 | Copyright (C) 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 License as | |
| 7 | published by the Free Software Foundation; either version 2.1 of the | |
| 8 | 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; see the file COPYING.LIB. If | |
| 17 | not, see <https://www.gnu.org/licenses/>. */ | |
| 18 | ||
| 19 | /* Minimum size for a thread. At least two pages for systems with 64k | |
| 20 | pages. */ | |
| 21 | #define PTHREAD_STACK_MIN	131072 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/setjmp.h deleted-50| ... | ... | @@ -1,50 +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 | /* Define the machine-dependent type `jmp_buf'. PowerPC 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 | /* The previous bits/setjmp.h had __jmp_buf defined as a structure. | |
| 27 | We use an array of 'long int' instead, to make writing the | |
| 28 | assembler easier. Naturally, user code should not depend on | |
| 29 | either representation. */ | |
| 30 | ||
| 31 | #include <bits/wordsize.h> | |
| 32 | ||
| 33 | /* The current powerpc 32-bit Altivec ABI specifies for SVR4 ABI and EABI | |
| 34 | the vrsave must be at byte 248 & v20 at byte 256. So we must pad this | |
| 35 | correctly on 32 bit. It also insists that vecregs are only gauranteed | |
| 36 | 4 byte alignment so we need to use vperm in the setjmp/longjmp routines. | |
| 37 | We have to version the code because members like int __mask_was_saved | |
| 38 | in the jmp_buf will move as jmp_buf is now larger than 248 bytes. We | |
| 39 | cannot keep the altivec jmp_buf backward compatible with the jmp_buf. */ | |
| 40 | #ifndef	_ASM | |
| 41 | # if __WORDSIZE == 64 | |
| 42 | typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16))); | |
| 43 | # else | |
| 44 | /* The alignment is not essential, i.e.the buffer can be copied to a 4 byte | |
| 45 | aligned buffer as per the ABI it is just added for performance reasons. */ | |
| 46 | typedef long int __jmp_buf[64 + (12 * 4)] __attribute__ ((__aligned__ (16))); | |
| 47 | # endif | |
| 48 | #endif | |
| 49 | ||
| 50 | #endif /* bits/setjmp.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/sigstack.h deleted-32| ... | ... | @@ -1,32 +0,0 @@ |
| 1 | /* sigstack, sigaltstack definitions. | |
| 2 | Copyright (C) 1998-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_SIGSTACK_H | |
| 20 | #define _BITS_SIGSTACK_H 1 | |
| 21 | ||
| 22 | #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H | |
| 23 | # error "Never include this file directly. Use <signal.h> instead" | |
| 24 | #endif | |
| 25 | ||
| 26 | /* Minimum stack size for a signal handler. */ | |
| 27 | #define MINSIGSTKSZ	4096 | |
| 28 | ||
| 29 | /* System default stack size. */ | |
| 30 | #define SIGSTKSZ	16384 | |
| 31 | ||
| 32 | #endif /* bits/sigstack.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/socket-constants.h deleted-70| ... | ... | @@ -1,70 +0,0 @@ |
| 1 | /* Socket constants which vary among Linux architectures. Version for POWER. | |
| 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 | #ifndef _SYS_SOCKET_H | |
| 20 | # error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #define SOL_SOCKET 1 | |
| 24 | #define SO_ACCEPTCONN 30 | |
| 25 | #define SO_BROADCAST 6 | |
| 26 | #define SO_DONTROUTE 5 | |
| 27 | #define SO_ERROR 4 | |
| 28 | #define SO_KEEPALIVE 9 | |
| 29 | #define SO_LINGER 13 | |
| 30 | #define SO_OOBINLINE 10 | |
| 31 | #define SO_RCVBUF 8 | |
| 32 | #define SO_RCVLOWAT 16 | |
| 33 | #define SO_REUSEADDR 2 | |
| 34 | #define SO_SNDBUF 7 | |
| 35 | #define SO_SNDLOWAT 17 | |
| 36 | #define SO_TYPE 3 | |
| 37 | ||
| 38 | #if __TIMESIZE == 64 | |
| 39 | # define SO_RCVTIMEO 18 | |
| 40 | # define SO_SNDTIMEO 19 | |
| 41 | # define SO_TIMESTAMP 29 | |
| 42 | # define SO_TIMESTAMPNS 35 | |
| 43 | # define SO_TIMESTAMPING 37 | |
| 44 | #else | |
| 45 | # define SO_RCVTIMEO_OLD 18 | |
| 46 | # define SO_SNDTIMEO_OLD 19 | |
| 47 | # define SO_RCVTIMEO_NEW 66 | |
| 48 | # define SO_SNDTIMEO_NEW 67 | |
| 49 | ||
| 50 | # define SO_TIMESTAMP_OLD 29 | |
| 51 | # define SO_TIMESTAMPNS_OLD 35 | |
| 52 | # define SO_TIMESTAMPING_OLD 37 | |
| 53 | # define SO_TIMESTAMP_NEW 63 | |
| 54 | # define SO_TIMESTAMPNS_NEW 64 | |
| 55 | # define SO_TIMESTAMPING_NEW 65 | |
| 56 | ||
| 57 | # ifdef __USE_TIME_BITS64 | |
| 58 | # define SO_RCVTIMEO SO_RCVTIMEO_NEW | |
| 59 | # define SO_SNDTIMEO SO_SNDTIMEO_NEW | |
| 60 | # define SO_TIMESTAMP SO_TIMESTAMP_NEW | |
| 61 | # define SO_TIMESTAMPNS SO_TIMESTAMPNS_NEW | |
| 62 | # define SO_TIMESTAMPING SO_TIMESTAMPING_NEW | |
| 63 | # else | |
| 64 | # define SO_RCVTIMEO SO_RCVTIMEO_OLD | |
| 65 | # define SO_SNDTIMEO SO_SNDTIMEO_OLD | |
| 66 | # define SO_TIMESTAMP SO_TIMESTAMP_OLD | |
| 67 | # define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD | |
| 68 | # define SO_TIMESTAMPING SO_TIMESTAMPING_OLD | |
| 69 | # endif | |
| 70 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h deleted-63| ... | ... | @@ -1,63 +0,0 @@ |
| 1 | /* PowerPC 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 | #if __WORDSIZE == 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 | #if __WORDSIZE == 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 __elision; | |
| 46 | # define __spins __elision_data.__espins | |
| 47 | # define __elision __elision_data.__elision | |
| 48 | } __elision_data; | |
| 49 | __pthread_slist_t __list; | |
| 50 | }; | |
| 51 | # define __PTHREAD_MUTEX_HAVE_PREV 0 | |
| 52 | #endif | |
| 53 | }; | |
| 54 | ||
| 55 | #if __WORDSIZE == 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/powerpc-linux-gnu/bits/struct_rwlock.h deleted-61| ... | ... | @@ -1,61 +0,0 @@ |
| 1 | /* PowerPC 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 | #if __WORDSIZE == 64 | |
| 32 | int __cur_writer; | |
| 33 | int __shared; | |
| 34 | unsigned char __rwelision; | |
| 35 | unsigned char __pad1[7]; | |
| 36 | unsigned long int __pad2; | |
| 37 | /* FLAGS must stay at this position in the structure to maintain | |
| 38 | binary compatibility. */ | |
| 39 | unsigned int __flags; | |
| 40 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, {0, 0, 0, 0, 0, 0, 0 } | |
| 41 | #else | |
| 42 | unsigned char __rwelision; | |
| 43 | unsigned char __pad2; | |
| 44 | unsigned char __shared; | |
| 45 | /* FLAGS must stay at this position in the structure to maintain | |
| 46 | binary compatibility. */ | |
| 47 | unsigned char __flags; | |
| 48 | int __cur_writer; | |
| 49 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0 | |
| 50 | #endif | |
| 51 | }; | |
| 52 | ||
| 53 | #if __WORDSIZE == 64 | |
| 54 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | |
| 55 | 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags | |
| 56 | #else | |
| 57 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | |
| 58 | 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0, __flags, 0 | |
| 59 | #endif | |
| 60 | ||
| 61 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/struct_stat.h deleted-231| ... | ... | @@ -1,231 +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 | #include <bits/wordsize.h> | |
| 27 | ||
| 28 | #if __WORDSIZE == 32 | |
| 29 | struct stat | |
| 30 | { | |
| 31 | # ifdef __USE_TIME_BITS64 | |
| 32 | # include <bits/struct_stat_time64_helper.h> | |
| 33 | # else | |
| 34 | __dev_t st_dev;			/* Device. */ | |
| 35 | # ifndef __USE_FILE_OFFSET64 | |
| 36 | unsigned short int __pad1; | |
| 37 | __ino_t st_ino;			/* File serial number.	*/ | |
| 38 | # else | |
| 39 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 40 | # endif | |
| 41 | __mode_t st_mode;			/* File mode. */ | |
| 42 | __nlink_t st_nlink;			/* Link count. */ | |
| 43 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 44 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 45 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 46 | unsigned short int __pad2; | |
| 47 | # ifndef __USE_FILE_OFFSET64 | |
| 48 | __off_t st_size;			/* Size of file, in bytes. */ | |
| 49 | # else | |
| 50 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 51 | # endif | |
| 52 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 53 | ||
| 54 | # ifndef __USE_FILE_OFFSET64 | |
| 55 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 56 | # else | |
| 57 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 58 | # endif | |
| 59 | # ifdef __USE_XOPEN2K8 | |
| 60 | /* Nanosecond resolution timestamps are stored in a format | |
| 61 | equivalent to 'struct timespec'. This is the type used | |
| 62 | whenever possible but the Unix namespace rules do not allow the | |
| 63 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 64 | Therefore we have to handle the use of this header in strictly | |
| 65 | standard-compliant sources special. */ | |
| 66 | struct timespec st_atim;		/* Time of last access. */ | |
| 67 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 68 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 69 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 70 | # define st_mtime st_mtim.tv_sec | |
| 71 | # define st_ctime st_ctim.tv_sec | |
| 72 | # else | |
| 73 | __time_t st_atime;			/* Time of last access. */ | |
| 74 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 75 | __time_t st_mtime;			/* Time of last modification. */ | |
| 76 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 77 | __time_t st_ctime;			/* Time of last status change. */ | |
| 78 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 79 | # endif | |
| 80 | unsigned long int __glibc_reserved4; | |
| 81 | unsigned long int __glibc_reserved5; | |
| 82 | # endif /* __USE_TIME_BITS64 */ | |
| 83 | }; | |
| 84 | ||
| 85 | # ifdef __USE_LARGEFILE64 | |
| 86 | struct stat64 | |
| 87 | { | |
| 88 | # ifdef __USE_TIME_BITS64 | |
| 89 | # include <bits/struct_stat_time64_helper.h> | |
| 90 | # else | |
| 91 | __dev_t st_dev;			/* Device. */ | |
| 92 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 93 | __mode_t st_mode;			/* File mode. */ | |
| 94 | __nlink_t st_nlink;			/* Link count. */ | |
| 95 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 96 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 97 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 98 | unsigned short int __pad2; | |
| 99 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 100 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 101 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 102 | # ifdef __USE_XOPEN2K8 | |
| 103 | /* Nanosecond resolution timestamps are stored in a format | |
| 104 | equivalent to 'struct timespec'. This is the type used | |
| 105 | whenever possible but the Unix namespace rules do not allow the | |
| 106 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 107 | Therefore we have to handle the use of this header in strictly | |
| 108 | standard-compliant sources special. */ | |
| 109 | struct timespec st_atim;		/* Time of last access. */ | |
| 110 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 111 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 112 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 113 | # define st_mtime st_mtim.tv_sec | |
| 114 | # define st_ctime st_ctim.tv_sec | |
| 115 | # else | |
| 116 | __time_t st_atime;			/* Time of last access. */ | |
| 117 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 118 | __time_t st_mtime;			/* Time of last modification. */ | |
| 119 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 120 | __time_t st_ctime;			/* Time of last status change. */ | |
| 121 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 122 | # endif | |
| 123 | unsigned long int __glibc_reserved4; | |
| 124 | unsigned long int __glibc_reserved5; | |
| 125 | # endif /* __USE_TIME_BITS64 */ | |
| 126 | }; | |
| 127 | # endif /* __USE_LARGEFILE64 */ | |
| 128 | ||
| 129 | #else /* __WORDSIZE == 32 */ | |
| 130 | ||
| 131 | struct stat | |
| 132 | { | |
| 133 | __dev_t st_dev;			/* Device. */ | |
| 134 | # ifndef __USE_FILE_OFFSET64 | |
| 135 | __ino_t st_ino;			/* File serial number.	*/ | |
| 136 | # else | |
| 137 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 138 | # endif | |
| 139 | __nlink_t st_nlink;			/* Link count. */ | |
| 140 | __mode_t st_mode;			/* File mode. */ | |
| 141 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 142 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 143 | int __pad2; | |
| 144 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 145 | # ifndef __USE_FILE_OFFSET64 | |
| 146 | __off_t st_size;			/* Size of file, in bytes. */ | |
| 147 | # else | |
| 148 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 149 | # endif | |
| 150 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 151 | ||
| 152 | # ifndef __USE_FILE_OFFSET64 | |
| 153 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 154 | # else | |
| 155 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 156 | # endif | |
| 157 | # ifdef __USE_XOPEN2K8 | |
| 158 | /* Nanosecond resolution timestamps are stored in a format | |
| 159 | equivalent to 'struct timespec'. This is the type used | |
| 160 | whenever possible but the Unix namespace rules do not allow the | |
| 161 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 162 | Therefore we have to handle the use of this header in strictly | |
| 163 | standard-compliant sources special. */ | |
| 164 | struct timespec st_atim;		/* Time of last access. */ | |
| 165 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 166 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 167 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 168 | # define st_mtime st_mtim.tv_sec | |
| 169 | # define st_ctime st_ctim.tv_sec | |
| 170 | # else | |
| 171 | __time_t st_atime;			/* Time of last access. */ | |
| 172 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 173 | __time_t st_mtime;			/* Time of last modification. */ | |
| 174 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 175 | __time_t st_ctime;			/* Time of last status change. */ | |
| 176 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 177 | # endif | |
| 178 | unsigned long int __glibc_reserved4; | |
| 179 | unsigned long int __glibc_reserved5; | |
| 180 | unsigned long int __glibc_reserved6; | |
| 181 | }; | |
| 182 | ||
| 183 | # ifdef __USE_LARGEFILE64 | |
| 184 | struct stat64 | |
| 185 | { | |
| 186 | __dev_t st_dev;			/* Device. */ | |
| 187 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 188 | __nlink_t st_nlink;			/* Link count. */ | |
| 189 | __mode_t st_mode;			/* File mode. */ | |
| 190 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 191 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 192 | int __pad2; | |
| 193 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 194 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 195 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 196 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 197 | # ifdef __USE_XOPEN2K8 | |
| 198 | /* Nanosecond resolution timestamps are stored in a format | |
| 199 | equivalent to 'struct timespec'. This is the type used | |
| 200 | whenever possible but the Unix namespace rules do not allow the | |
| 201 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 202 | Therefore we have to handle the use of this header in strictly | |
| 203 | standard-compliant sources special. */ | |
| 204 | struct timespec st_atim;		/* Time of last access. */ | |
| 205 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 206 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 207 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 208 | # define st_mtime st_mtim.tv_sec | |
| 209 | # define st_ctime st_ctim.tv_sec | |
| 210 | # else | |
| 211 | __time_t st_atime;			/* Time of last access. */ | |
| 212 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 213 | __time_t st_mtime;			/* Time of last modification. */ | |
| 214 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 215 | __time_t st_ctime;			/* Time of last status change. */ | |
| 216 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 217 | # endif | |
| 218 | unsigned long int __glibc_reserved4; | |
| 219 | unsigned long int __glibc_reserved5; | |
| 220 | unsigned long int __glibc_reserved6; | |
| 221 | }; | |
| 222 | # endif /* __USE_LARGEFILE64 */ | |
| 223 | #endif | |
| 224 | ||
| 225 | /* Tell code we have these members. */ | |
| 226 | #define	_STATBUF_ST_BLKSIZE | |
| 227 | #define _STATBUF_ST_RDEV | |
| 228 | /* Nanosecond resolution time values are supported. */ | |
| 229 | #define _STATBUF_ST_NSEC | |
| 230 | ||
| 231 | #endif /* _BITS_STRUCT_STAT_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/termios-baud.h deleted-45| ... | ... | @@ -1,45 +0,0 @@ |
| 1 | /* termios baud rate selection definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-baud.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_MISC | |
| 24 | # define CBAUD	0000377 | |
| 25 | # define CBAUDEX 0000020 | |
| 26 | # define CMSPAR 010000000000		/* mark or space (stick) parity */ | |
| 27 | # define CRTSCTS 020000000000		/* flow control */ | |
| 28 | #endif | |
| 29 | ||
| 30 | #define B57600 00020 | |
| 31 | #define B115200 00021 | |
| 32 | #define B230400 00022 | |
| 33 | #define B460800 00023 | |
| 34 | #define B500000 00024 | |
| 35 | #define B576000 00025 | |
| 36 | #define B921600 00026 | |
| 37 | #define B1000000 00027 | |
| 38 | #define B1152000 00030 | |
| 39 | #define B1500000 00031 | |
| 40 | #define B2000000 00032 | |
| 41 | #define B2500000 00033 | |
| 42 | #define B3000000 00034 | |
| 43 | #define B3500000 00035 | |
| 44 | #define B4000000 00036 | |
| 45 | #define __MAX_BAUD B4000000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/termios-c_cc.h deleted-41| ... | ... | @@ -1,41 +0,0 @@ |
| 1 | /* termios c_cc symbolic constant definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_cc.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_cc characters */ | |
| 24 | #define VINTR	0 | |
| 25 | #define VQUIT	1 | |
| 26 | #define VERASE	2 | |
| 27 | #define VKILL	3 | |
| 28 | #define VEOF	4 | |
| 29 | #define VMIN	5 | |
| 30 | #define VEOL	6 | |
| 31 | #define VTIME	7 | |
| 32 | #define VEOL2	8 | |
| 33 | #define VSWTC	9 | |
| 34 | ||
| 35 | #define VWERASE	10 | |
| 36 | #define VREPRINT	11 | |
| 37 | #define VSUSP		12 | |
| 38 | #define VSTART		13 | |
| 39 | #define VSTOP		14 | |
| 40 | #define VLNEXT		15 | |
| 41 | #define VDISCARD	16 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/termios-c_cflag.h deleted-35| ... | ... | @@ -1,35 +0,0 @@ |
| 1 | /* termios control mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_cflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #define CSIZE	00001400 | |
| 24 | #define CS5	00000000 | |
| 25 | #define CS6	00000400 | |
| 26 | #define CS7	00001000 | |
| 27 | #define CS8	00001400 | |
| 28 | ||
| 29 | #define CSTOPB	00002000 | |
| 30 | #define CREAD	00004000 | |
| 31 | #define PARENB	00010000 | |
| 32 | #define PARODD	00020000 | |
| 33 | #define HUPCL	00040000 | |
| 34 | ||
| 35 | #define CLOCAL	00100000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/termios-c_iflag.h deleted-38| ... | ... | @@ -1,38 +0,0 @@ |
| 1 | /* termios input mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_iflags.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_iflag bits */ | |
| 24 | #define IGNBRK	0000001 | |
| 25 | #define BRKINT	0000002 | |
| 26 | #define IGNPAR	0000004 | |
| 27 | #define PARMRK	0000010 | |
| 28 | #define INPCK	0000020 | |
| 29 | #define ISTRIP	0000040 | |
| 30 | #define INLCR	0000100 | |
| 31 | #define IGNCR	0000200 | |
| 32 | #define ICRNL	0000400 | |
| 33 | #define IXON	0001000 | |
| 34 | #define IXOFF	0002000 | |
| 35 | #define IXANY	0004000 | |
| 36 | #define IUCLC	0010000 | |
| 37 | #define IMAXBEL	0020000 | |
| 38 | #define IUTF8	0040000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/termios-c_lflag.h deleted-45| ... | ... | @@ -1,45 +0,0 @@ |
| 1 | /* termios local mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_lflag bits */ | |
| 24 | #define ISIG	0x00000080 | |
| 25 | #define ICANON	0x00000100 | |
| 26 | #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) | |
| 27 | # define XCASE	0x00004000 | |
| 28 | #endif | |
| 29 | #define ECHO	0x00000008 | |
| 30 | #define ECHOE	0x00000002 | |
| 31 | #define ECHOK	0x00000004 | |
| 32 | #define ECHONL	0x00000010 | |
| 33 | #define NOFLSH	0x80000000 | |
| 34 | #define TOSTOP	0x00400000 | |
| 35 | #ifdef __USE_MISC | |
| 36 | # define ECHOCTL	0x00000040 | |
| 37 | # define ECHOPRT	0x00000020 | |
| 38 | # define ECHOKE	0x00000001 | |
| 39 | # define FLUSHO	0x00800000 | |
| 40 | # define PENDIN	0x20000000 | |
| 41 | #endif | |
| 42 | #define IEXTEN	0x00000400 | |
| 43 | #ifdef __USE_MISC | |
| 44 | # define EXTPROC 0x10000000 | |
| 45 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/termios-c_oflag.h deleted-65| ... | ... | @@ -1,65 +0,0 @@ |
| 1 | /* termios output mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_oflag bits */ | |
| 24 | #define OPOST	0000001 | |
| 25 | #define ONLCR	0000002 | |
| 26 | #define OLCUC	0000004 | |
| 27 | ||
| 28 | #define OCRNL	0000010 | |
| 29 | #define ONOCR	0000020 | |
| 30 | #define ONLRET	0000040 | |
| 31 | ||
| 32 | #define OFILL	00000100 | |
| 33 | #define OFDEL	00000200 | |
| 34 | #if defined __USE_MISC || defined __USE_XOPEN | |
| 35 | # define NLDLY	00001400 | |
| 36 | # define NL0	00000000 | |
| 37 | # define NL1	00000400 | |
| 38 | # if defined __USE_MISC | |
| 39 | # define NL2	00001000 | |
| 40 | # define NL3	00001400 | |
| 41 | # endif | |
| 42 | # define TABDLY	00006000 | |
| 43 | # define TAB0	00000000 | |
| 44 | # define TAB1	00002000 | |
| 45 | # define TAB2	00004000 | |
| 46 | # define TAB3	00006000 | |
| 47 | # define CRDLY	00030000 | |
| 48 | # define CR0	00000000 | |
| 49 | # define CR1	00010000 | |
| 50 | # define CR2	00020000 | |
| 51 | # define CR3	00030000 | |
| 52 | # define FFDLY	00040000 | |
| 53 | # define FF0	00000000 | |
| 54 | # define FF1	00040000 | |
| 55 | # define BSDLY	00100000 | |
| 56 | # define BS0	00000000 | |
| 57 | # define BS1	00100000 | |
| 58 | #endif | |
| 59 | #define VTDLY	00200000 | |
| 60 | #define VT0	00000000 | |
| 61 | #define VT1	00200000 | |
| 62 | ||
| 63 | #ifdef __USE_MISC | |
| 64 | # define XTABS	00006000 | |
| 65 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/termios-misc.h deleted-72| ... | ... | @@ -1,72 +0,0 @@ |
| 1 | /* termios baud platform specific definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-misc.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_MISC | |
| 24 | ||
| 25 | struct sgttyb { | |
| 26 | 	char	sg_ispeed; | |
| 27 | 	char	sg_ospeed; | |
| 28 | 	char	sg_erase; | |
| 29 | 	char	sg_kill; | |
| 30 | 	short	sg_flags; | |
| 31 | }; | |
| 32 | ||
| 33 | struct tchars { | |
| 34 | 	char	t_intrc; | |
| 35 | 	char	t_quitc; | |
| 36 | 	char	t_startc; | |
| 37 | 	char	t_stopc; | |
| 38 | 	char	t_eofc; | |
| 39 | 	char	t_brkc; | |
| 40 | }; | |
| 41 | ||
| 42 | struct ltchars { | |
| 43 | 	char	t_suspc; | |
| 44 | 	char	t_dsuspc; | |
| 45 | 	char	t_rprntc; | |
| 46 | 	char	t_flushc; | |
| 47 | 	char	t_werasc; | |
| 48 | 	char	t_lnextc; | |
| 49 | }; | |
| 50 | ||
| 51 | /* Used for packet mode */ | |
| 52 | #define TIOCPKT_DATA		 0 | |
| 53 | #define TIOCPKT_FLUSHREAD	 1 | |
| 54 | #define TIOCPKT_FLUSHWRITE	 2 | |
| 55 | #define TIOCPKT_STOP		 4 | |
| 56 | #define TIOCPKT_START		 8 | |
| 57 | #define TIOCPKT_NOSTOP		16 | |
| 58 | #define TIOCPKT_DOSTOP		32 | |
| 59 | ||
| 60 | /* c_cc characters */ | |
| 61 | #define _VINTR	0 | |
| 62 | #define _VQUIT	1 | |
| 63 | #define _VERASE	2 | |
| 64 | #define _VKILL	3 | |
| 65 | #define _VEOF	4 | |
| 66 | #define _VMIN	5 | |
| 67 | #define _VEOL	6 | |
| 68 | #define _VTIME	7 | |
| 69 | #define _VEOL2	8 | |
| 70 | #define _VSWTC	9 | |
| 71 | ||
| 72 | #endif /* __USE_MISC */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/types/struct_msqid_ds.h deleted-53| ... | ... | @@ -1,53 +0,0 @@ |
| 1 | /* Linux/PowerPC implementation of the SysV message struct msqid_ds. | |
| 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 | #ifndef _SYS_MSG_H | |
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #include <bits/types/time_t.h> | |
| 24 | ||
| 25 | /* Structure of record for one message inside the kernel. | |
| 26 | The type `struct msg' is opaque. */ | |
| 27 | struct msqid_ds | |
| 28 | { | |
| 29 | #ifdef __USE_TIME_BITS64 | |
| 30 | # include <bits/types/struct_msqid64_ds_helper.h> | |
| 31 | #else | |
| 32 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | |
| 33 | # if __TIMESIZE == 32 | |
| 34 | unsigned long int __msg_stime_high; | |
| 35 | __time_t msg_stime;		/* time of last msgsnd command */ | |
| 36 | unsigned long int __msg_rtime_high; | |
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | |
| 38 | unsigned long int __msg_ctime_high; | |
| 39 | __time_t msg_ctime;		/* time of last change */ | |
| 40 | # else | |
| 41 | __time_t msg_stime;		/* time of last msgsnd command */ | |
| 42 | __time_t msg_rtime;		/* time of last msgsnd command */ | |
| 43 | __time_t msg_ctime;		/* time of last change */ | |
| 44 | # endif | |
| 45 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | |
| 46 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | |
| 47 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | |
| 48 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | |
| 49 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | |
| 50 | __syscall_ulong_t __glibc_reserved4; | |
| 51 | __syscall_ulong_t __glibc_reserved5; | |
| 52 | #endif | |
| 53 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/types/struct_semid_ds.h deleted-43| ... | ... | @@ -1,43 +0,0 @@ |
| 1 | /* PowerPC 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 | # if __TIMESIZE == 32 | |
| 31 | __syscall_ulong_t __sem_otime_high; | |
| 32 | __time_t sem_otime; /* last semop() time */ | |
| 33 | __syscall_ulong_t __sem_ctime_high; | |
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | |
| 35 | # else | |
| 36 | __time_t sem_otime; /* last semop() time */ | |
| 37 | __time_t sem_ctime; /* last time changed by semctl() */ | |
| 38 | # endif | |
| 39 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | |
| 40 | __syscall_ulong_t __glibc_reserved3; | |
| 41 | __syscall_ulong_t __glibc_reserved4; | |
| 42 | #endif | |
| 43 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/types/struct_shmid_ds.h deleted-50| ... | ... | @@ -1,50 +0,0 @@ |
| 1 | /* Linux/PowerPC implementation of the shared memory struct shmid_ds. | |
| 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 | #ifndef _SYS_SHM_H | |
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Data structure describing a shared memory segment. */ | |
| 24 | struct shmid_ds | |
| 25 | { | |
| 26 | #ifdef __USE_TIME_BITS64 | |
| 27 | # include <bits/types/struct_shmid64_ds_helper.h> | |
| 28 | #else | |
| 29 | struct ipc_perm shm_perm;		/* operation permission struct */ | |
| 30 | # if __TIMESIZE == 32 | |
| 31 | unsigned long int __shm_atime_high; | |
| 32 | __time_t shm_atime;			/* time of last shmat() */ | |
| 33 | unsigned long int __shm_dtime_high; | |
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | |
| 35 | unsigned long int __shm_ctime_high; | |
| 36 | __time_t shm_ctime;			/* time of last change by shmctl() */ | |
| 37 | unsigned long int __glibc_reserved4; | |
| 38 | # else | |
| 39 | __time_t shm_atime;			/* time of last shmat() */ | |
| 40 | __time_t shm_dtime;			/* time of last shmdt() */ | |
| 41 | __time_t shm_ctime;			/* time of last change by shmctl() */ | |
| 42 | # endif | |
| 43 | size_t shm_segsz;			/* size of segment in bytes */ | |
| 44 | __pid_t shm_cpid;			/* pid of creator */ | |
| 45 | __pid_t shm_lpid;			/* pid of last shmop */ | |
| 46 | shmatt_t shm_nattch;		/* number of current attaches */ | |
| 47 | __syscall_ulong_t __glibc_reserved5; | |
| 48 | __syscall_ulong_t __glibc_reserved6; | |
| 49 | #endif | |
| 50 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/bits/wordsize.h deleted-11| ... | ... | @@ -1,11 +0,0 @@ |
| 1 | /* Determine the wordsize from the preprocessor defines. */ | |
| 2 | ||
| 3 | #if defined __powerpc64__ | |
| 4 | # define __WORDSIZE	64 | |
| 5 | # define __WORDSIZE_TIME64_COMPAT32	1 | |
| 6 | #else | |
| 7 | # define __WORDSIZE	32 | |
| 8 | # define __WORDSIZE_TIME64_COMPAT32	0 | |
| 9 | # define __WORDSIZE32_SIZE_ULONG	0 | |
| 10 | # define __WORDSIZE32_PTRDIFF_LONG	0 | |
| 11 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/fpu_control.h deleted-114| ... | ... | @@ -1,114 +0,0 @@ |
| 1 | /* FPU control word definitions. PowerPC version. | |
| 2 | Copyright (C) 1996-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 _FPU_CONTROL_H | |
| 20 | #define _FPU_CONTROL_H | |
| 21 | ||
| 22 | #if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT) | |
| 23 | # error "SPE/e500 is no longer supported" | |
| 24 | #endif | |
| 25 | ||
| 26 | #ifdef _SOFT_FLOAT | |
| 27 | ||
| 28 | # define _FPU_RESERVED 0xffffffff | |
| 29 | # define _FPU_DEFAULT 0x00000000 /* Default value. */ | |
| 30 | typedef unsigned int fpu_control_t; | |
| 31 | # define _FPU_GETCW(cw) (cw) = 0 | |
| 32 | # define _FPU_SETCW(cw) (void) (cw) | |
| 33 | extern fpu_control_t __fpu_control; | |
| 34 | ||
| 35 | #else /* PowerPC 6xx floating-point. */ | |
| 36 | ||
| 37 | /* rounding control */ | |
| 38 | # define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */ | |
| 39 | # define _FPU_RC_DOWN 0x03 | |
| 40 | # define _FPU_RC_UP 0x02 | |
| 41 | # define _FPU_RC_ZERO 0x01 | |
| 42 | ||
| 43 | # define _FPU_MASK_RC (_FPU_RC_NEAREST|_FPU_RC_DOWN|_FPU_RC_UP|_FPU_RC_ZERO) | |
| 44 | ||
| 45 | # define _FPU_MASK_NI 0x04 /* non-ieee mode */ | |
| 46 | ||
| 47 | /* masking of interrupts */ | |
| 48 | # define _FPU_MASK_ZM 0x10 /* zero divide */ | |
| 49 | # define _FPU_MASK_OM 0x40 /* overflow */ | |
| 50 | # define _FPU_MASK_UM 0x20 /* underflow */ | |
| 51 | # define _FPU_MASK_XM 0x08 /* inexact */ | |
| 52 | # define _FPU_MASK_IM 0x80 /* invalid operation */ | |
| 53 | ||
| 54 | # define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */ | |
| 55 | ||
| 56 | /* The fdlibm code requires no interrupts for exceptions. */ | |
| 57 | # define _FPU_DEFAULT 0x00000000 /* Default value. */ | |
| 58 | ||
| 59 | /* IEEE: same as above, but (some) exceptions; | |
| 60 | we leave the 'inexact' exception off. | |
| 61 | */ | |
| 62 | # define _FPU_IEEE 0x000000f0 | |
| 63 | ||
| 64 | /* Type of the control word. */ | |
| 65 | typedef unsigned int fpu_control_t; | |
| 66 | ||
| 67 | /* Macros for accessing the hardware control word. */ | |
| 68 | # define _FPU_GETCW(cw)						\ | |
| 69 | ({union { double __d; unsigned long long __ll; } __u;		\ | |
| 70 | __asm__ __volatile__("mffs %0" : "=f" (__u.__d));		\ | |
| 71 | (cw) = (fpu_control_t) __u.__ll;				\ | |
| 72 | (fpu_control_t) __u.__ll;					\ | |
| 73 | }) | |
| 74 | ||
| 75 | # define _FPU_GET_RC_ISA300()						\ | |
| 76 | ({union { double __d; unsigned long long __ll; } __u;			\ | |
| 77 | __asm__ __volatile__(						\ | |
| 78 | ".machine push; .machine \"power9\"; mffsl %0; .machine pop" 	\ | |
| 79 | : "=f" (__u.__d));						\ | |
| 80 | (fpu_control_t) (__u.__ll & _FPU_MASK_RC);				\ | |
| 81 | }) | |
| 82 | ||
| 83 | # ifdef _ARCH_PWR9 | |
| 84 | # define _FPU_GET_RC() _FPU_GET_RC_ISA300() | |
| 85 | # elif defined __BUILTIN_CPU_SUPPORTS__ | |
| 86 | # define _FPU_GET_RC()							\ | |
| 87 | ({fpu_control_t __rc;							\ | |
| 88 | __rc = __glibc_likely (__builtin_cpu_supports ("arch_3_00"))	\ | |
| 89 | ? _FPU_GET_RC_ISA300 ()						\ | |
| 90 | : _FPU_GETCW (__rc) & _FPU_MASK_RC;				\ | |
| 91 | __rc;								\ | |
| 92 | }) | |
| 93 | # else | |
| 94 | # define _FPU_GET_RC()						\ | |
| 95 | ({fpu_control_t __rc = _FPU_GETCW (__rc) & _FPU_MASK_RC;	\ | |
| 96 | __rc;							\ | |
| 97 | }) | |
| 98 | # endif | |
| 99 | ||
| 100 | # define _FPU_SETCW(cw)						\ | |
| 101 | { union { double __d; unsigned long long __ll; } __u;		\ | |
| 102 | register double __fr;					\ | |
| 103 | __u.__ll = 0xfff80000LL << 32; /* This is a QNaN. */	\ | |
| 104 | __u.__ll |= (cw) & 0xffffffffLL;				\ | |
| 105 | __fr = __u.__d;						\ | |
| 106 | __asm__ __volatile__("mtfsf 255,%0" : : "f" (__fr));	\ | |
| 107 | } | |
| 108 | ||
| 109 | /* Default control word set at startup. */ | |
| 110 | extern fpu_control_t __fpu_control; | |
| 111 | ||
| 112 | #endif /* PowerPC 6xx floating-point. */ | |
| 113 | ||
| 114 | #endif /* _FPU_CONTROL_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/gnu/lib-names-32.h deleted-29| ... | ... | @@ -1,29 +0,0 @@ |
| 1 | /* This file is automatically generated. */ | |
| 2 | #ifndef __GNU_LIB_NAMES_H | |
| 3 | # error "Never use <gnu/lib-names-32.h> directly; include <gnu/lib-names.h> instead." | |
| 4 | #endif | |
| 5 | ||
| 6 | #define LD_SO "ld.so.1" | |
| 7 | #define LIBANL_SO "libanl.so.1" | |
| 8 | #define LIBBROKENLOCALE_SO "libBrokenLocale.so.1" | |
| 9 | #define LIBCRYPT_SO "libcrypt.so.1" | |
| 10 | #define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0" | |
| 11 | #define LIBC_SO "libc.so.6" | |
| 12 | #define LIBDL_SO "libdl.so.2" | |
| 13 | #define LIBGCC_S_SO "libgcc_s.so.1" | |
| 14 | #define LIBMVEC_SO "libmvec.so.1" | |
| 15 | #define LIBM_SO "libm.so.6" | |
| 16 | #define LIBNSL_SO "libnsl.so.1" | |
| 17 | #define LIBNSS_COMPAT_SO "libnss_compat.so.2" | |
| 18 | #define LIBNSS_DB_SO "libnss_db.so.2" | |
| 19 | #define LIBNSS_DNS_SO "libnss_dns.so.2" | |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | |
| 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | |
| 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | |
| 25 | #define LIBPTHREAD_SO "libpthread.so.0" | |
| 26 | #define LIBRESOLV_SO "libresolv.so.2" | |
| 27 | #define LIBRT_SO "librt.so.1" | |
| 28 | #define LIBTHREAD_DB_SO "libthread_db.so.1" | |
| 29 | #define LIBUTIL_SO "libutil.so.1" | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/gnu/lib-names.h deleted-19| ... | ... | @@ -1,19 +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 | #include <bits/wordsize.h> | |
| 8 | ||
| 9 | #if __WORDSIZE == 32 | |
| 10 | # include <gnu/lib-names-32.h> | |
| 11 | #endif | |
| 12 | #if __WORDSIZE == 64 && _CALL_ELF != 2 | |
| 13 | # include <gnu/lib-names-64-v1.h> | |
| 14 | #endif | |
| 15 | #if __WORDSIZE == 64 && _CALL_ELF == 2 | |
| 16 | # include <gnu/lib-names-64-v2.h> | |
| 17 | #endif | |
| 18 | ||
| 19 | #endif	/* gnu/lib-names.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/gnu/stubs.h deleted-15| ... | ... | @@ -1,15 +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 | #include <bits/wordsize.h> | |
| 6 | ||
| 7 | #if __WORDSIZE == 32 | |
| 8 | # include <gnu/stubs-32.h> | |
| 9 | #endif | |
| 10 | #if __WORDSIZE == 64 && _CALL_ELF != 2 | |
| 11 | # include <gnu/stubs-64-v1.h> | |
| 12 | #endif | |
| 13 | #if __WORDSIZE == 64 && _CALL_ELF == 2 | |
| 14 | # include <gnu/stubs-64-v2.h> | |
| 15 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/ieee754.h deleted-197| ... | ... | @@ -1,197 +0,0 @@ |
| 1 | /* Copyright (C) 1992-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 _IEEE754_H | |
| 19 | #define _IEEE754_H 1 | |
| 20 | ||
| 21 | #include <features.h> | |
| 22 | ||
| 23 | #include <bits/endian.h> | |
| 24 | #include <bits/floatn.h> | |
| 25 | ||
| 26 | __BEGIN_DECLS | |
| 27 | ||
| 28 | union ieee754_float | |
| 29 | { | |
| 30 | float f; | |
| 31 | ||
| 32 | /* This is the IEEE 754 single-precision format. */ | |
| 33 | struct | |
| 34 | { | |
| 35 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 36 | 	unsigned int negative:1; | |
| 37 | 	unsigned int exponent:8; | |
| 38 | 	unsigned int mantissa:23; | |
| 39 | #endif				/* Big endian. */ | |
| 40 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 41 | 	unsigned int mantissa:23; | |
| 42 | 	unsigned int exponent:8; | |
| 43 | 	unsigned int negative:1; | |
| 44 | #endif				/* Little endian. */ | |
| 45 | } ieee; | |
| 46 | ||
| 47 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 48 | struct | |
| 49 | { | |
| 50 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 51 | 	unsigned int negative:1; | |
| 52 | 	unsigned int exponent:8; | |
| 53 | 	unsigned int quiet_nan:1; | |
| 54 | 	unsigned int mantissa:22; | |
| 55 | #endif				/* Big endian. */ | |
| 56 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 57 | 	unsigned int mantissa:22; | |
| 58 | 	unsigned int quiet_nan:1; | |
| 59 | 	unsigned int exponent:8; | |
| 60 | 	unsigned int negative:1; | |
| 61 | #endif				/* Little endian. */ | |
| 62 | } ieee_nan; | |
| 63 | }; | |
| 64 | ||
| 65 | #define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent. */ | |
| 66 | ||
| 67 | ||
| 68 | union ieee754_double | |
| 69 | { | |
| 70 | double d; | |
| 71 | ||
| 72 | /* This is the IEEE 754 double-precision format. */ | |
| 73 | struct | |
| 74 | { | |
| 75 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 76 | 	unsigned int negative:1; | |
| 77 | 	unsigned int exponent:11; | |
| 78 | 	/* Together these comprise the mantissa. */ | |
| 79 | 	unsigned int mantissa0:20; | |
| 80 | 	unsigned int mantissa1:32; | |
| 81 | #endif				/* Big endian. */ | |
| 82 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 83 | 	/* Together these comprise the mantissa. */ | |
| 84 | 	unsigned int mantissa1:32; | |
| 85 | 	unsigned int mantissa0:20; | |
| 86 | 	unsigned int exponent:11; | |
| 87 | 	unsigned int negative:1; | |
| 88 | #endif				/* Little endian. */ | |
| 89 | } ieee; | |
| 90 | ||
| 91 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 92 | struct | |
| 93 | { | |
| 94 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 95 | 	unsigned int negative:1; | |
| 96 | 	unsigned int exponent:11; | |
| 97 | 	unsigned int quiet_nan:1; | |
| 98 | 	/* Together these comprise the mantissa. */ | |
| 99 | 	unsigned int mantissa0:19; | |
| 100 | 	unsigned int mantissa1:32; | |
| 101 | #else | |
| 102 | 	/* Together these comprise the mantissa. */ | |
| 103 | 	unsigned int mantissa1:32; | |
| 104 | 	unsigned int mantissa0:19; | |
| 105 | 	unsigned int quiet_nan:1; | |
| 106 | 	unsigned int exponent:11; | |
| 107 | 	unsigned int negative:1; | |
| 108 | #endif | |
| 109 | } ieee_nan; | |
| 110 | }; | |
| 111 | ||
| 112 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ | |
| 113 | ||
| 114 | ||
| 115 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | |
| 116 | /* long double is IEEE 128 bit */ | |
| 117 | union ieee854_long_double | |
| 118 | { | |
| 119 | long double d; | |
| 120 | ||
| 121 | /* This is the IEEE 854 quad-precision format. */ | |
| 122 | struct | |
| 123 | { | |
| 124 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 125 | 	unsigned int negative:1; | |
| 126 | 	unsigned int exponent:15; | |
| 127 | 	/* Together these comprise the mantissa. */ | |
| 128 | 	unsigned int mantissa0:16; | |
| 129 | 	unsigned int mantissa1:32; | |
| 130 | 	unsigned int mantissa2:32; | |
| 131 | 	unsigned int mantissa3:32; | |
| 132 | #endif				/* Big endian. */ | |
| 133 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 134 | 	/* Together these comprise the mantissa. */ | |
| 135 | 	unsigned int mantissa3:32; | |
| 136 | 	unsigned int mantissa2:32; | |
| 137 | 	unsigned int mantissa1:32; | |
| 138 | 	unsigned int mantissa0:16; | |
| 139 | 	unsigned int exponent:15; | |
| 140 | 	unsigned int negative:1; | |
| 141 | #endif				/* Little endian. */ | |
| 142 | } ieee; | |
| 143 | ||
| 144 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 145 | struct | |
| 146 | { | |
| 147 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 148 | 	unsigned int negative:1; | |
| 149 | 	unsigned int exponent:15; | |
| 150 | 	unsigned int quiet_nan:1; | |
| 151 | 	/* Together these comprise the mantissa. */ | |
| 152 | 	unsigned int mantissa0:15; | |
| 153 | 	unsigned int mantissa1:32; | |
| 154 | 	unsigned int mantissa2:32; | |
| 155 | 	unsigned int mantissa3:32; | |
| 156 | #else | |
| 157 | 	/* Together these comprise the mantissa. */ | |
| 158 | 	unsigned int mantissa3:32; | |
| 159 | 	unsigned int mantissa2:32; | |
| 160 | 	unsigned int mantissa1:32; | |
| 161 | 	unsigned int mantissa0:15; | |
| 162 | 	unsigned int quiet_nan:1; | |
| 163 | 	unsigned int exponent:15; | |
| 164 | 	unsigned int negative:1; | |
| 165 | #endif | |
| 166 | } ieee_nan; | |
| 167 | }; | |
| 168 | ||
| 169 | #define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */ | |
| 170 | #endif | |
| 171 | ||
| 172 | ||
| 173 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 || __GNUC_PREREQ (7, 0) | |
| 174 | /* IBM extended format for long double. | |
| 175 | ||
| 176 | Each long double is made up of two IEEE doubles. The value of the | |
| 177 | long double is the sum of the values of the two parts. The most | |
| 178 | significant part is required to be the value of the long double | |
| 179 | rounded to the nearest double, as specified by IEEE. For Inf | |
| 180 | values, the least significant part is required to be one of +0.0 or | |
| 181 | -0.0. No other requirements are made; so, for example, 1.0 may be | |
| 182 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a | |
| 183 | NaN is don't-care. */ | |
| 184 | union ibm_extended_long_double | |
| 185 | { | |
| 186 | # if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && __GNUC_PREREQ (7, 0) | |
| 187 | __ibm128 ld; | |
| 188 | # else | |
| 189 | long double ld; | |
| 190 | # endif | |
| 191 | union ieee754_double d[2]; | |
| 192 | }; | |
| 193 | #endif | |
| 194 | ||
| 195 | __END_DECLS | |
| 196 | ||
| 197 | #endif /* ieee754.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/sys/ptrace.h deleted-272| ... | ... | @@ -1,272 +0,0 @@ |
| 1 | /* `ptrace' debugger support interface. Linux/PowerPC 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_PTRACE_H | |
| 20 | #define _SYS_PTRACE_H	1 | |
| 21 | ||
| 22 | #include <features.h> | |
| 23 | #include <bits/types.h> | |
| 24 | ||
| 25 | __BEGIN_DECLS | |
| 26 | ||
| 27 | #if defined _LINUX_PTRACE_H || defined _ASM_POWERPC_PTRACE_H | |
| 28 | /* Do not let Linux headers macros interfere with enum __ptrace_request. */ | |
| 29 | # undef PTRACE_ATTACH | |
| 30 | # undef PTRACE_CONT | |
| 31 | # undef PTRACE_DETACH | |
| 32 | # undef PTRACE_GET_DEBUGREG | |
| 33 | # undef PTRACE_GETEVENTMSG | |
| 34 | # undef PTRACE_GETEVRREGS | |
| 35 | # undef PTRACE_GETFPREGS | |
| 36 | # undef PTRACE_GETREGS | |
| 37 | # undef PTRACE_GETREGS64 | |
| 38 | # undef PTRACE_GETREGSET | |
| 39 | # undef PTRACE_GETSIGINFO | |
| 40 | # undef PTRACE_GETSIGMASK | |
| 41 | # undef PTRACE_GET_SYSCALL_INFO | |
| 42 | # undef PTRACE_GETVRREGS | |
| 43 | # undef PTRACE_GETVSRREGS | |
| 44 | # undef PTRACE_INTERRUPT | |
| 45 | # undef PTRACE_KILL | |
| 46 | # undef PTRACE_LISTEN | |
| 47 | # undef PTRACE_PEEKDATA | |
| 48 | # undef PTRACE_PEEKSIGINFO | |
| 49 | # undef PTRACE_PEEKTEXT | |
| 50 | # undef PTRACE_POKEDATA | |
| 51 | # undef PTRACE_POKETEXT | |
| 52 | # undef PTRACE_SECCOMP_GET_FILTER | |
| 53 | # undef PTRACE_SECCOMP_GET_METADATA | |
| 54 | # undef PTRACE_SEIZE | |
| 55 | # undef PTRACE_SET_DEBUGREG | |
| 56 | # undef PTRACE_SETEVRREGS | |
| 57 | # undef PTRACE_SETFPREGS | |
| 58 | # undef PTRACE_SETOPTIONS | |
| 59 | # undef PTRACE_SETREGS | |
| 60 | # undef PTRACE_SETREGS64 | |
| 61 | # undef PTRACE_SETREGSET | |
| 62 | # undef PTRACE_SETSIGINFO | |
| 63 | # undef PTRACE_SETSIGMASK | |
| 64 | # undef PTRACE_SETVRREGS | |
| 65 | # undef PTRACE_SETVSRREGS | |
| 66 | # undef PTRACE_SINGLEBLOCK | |
| 67 | # undef PTRACE_SINGLESTEP | |
| 68 | # undef PTRACE_SYSCALL | |
| 69 | # undef PTRACE_SYSCALL_INFO_NONE | |
| 70 | # undef PTRACE_SYSCALL_INFO_ENTRY | |
| 71 | # undef PTRACE_SYSCALL_INFO_EXIT | |
| 72 | # undef PTRACE_SYSCALL_INFO_SECCOMP | |
| 73 | # undef PTRACE_SYSEMU | |
| 74 | # undef PTRACE_SYSEMU_SINGLESTEP | |
| 75 | # undef PTRACE_TRACEME | |
| 76 | #endif | |
| 77 | ||
| 78 | /* Type of the REQUEST argument to `ptrace.' */ | |
| 79 | enum __ptrace_request | |
| 80 | { | |
| 81 | /* Indicate that the process making this request should be traced. | |
| 82 | All signals received by this process can be intercepted by its | |
| 83 | parent, and its parent can use the other `ptrace' requests. */ | |
| 84 | PTRACE_TRACEME = 0, | |
| 85 | #define PT_TRACE_ME PTRACE_TRACEME | |
| 86 | ||
| 87 | /* Return the word in the process's text space at address ADDR. */ | |
| 88 | PTRACE_PEEKTEXT = 1, | |
| 89 | #define PT_READ_I PTRACE_PEEKTEXT | |
| 90 | ||
| 91 | /* Return the word in the process's data space at address ADDR. */ | |
| 92 | PTRACE_PEEKDATA = 2, | |
| 93 | #define PT_READ_D PTRACE_PEEKDATA | |
| 94 | ||
| 95 | /* Return the word in the process's user area at offset ADDR. */ | |
| 96 | PTRACE_PEEKUSER = 3, | |
| 97 | #define PT_READ_U PTRACE_PEEKUSER | |
| 98 | ||
| 99 | /* Write the word DATA into the process's text space at address ADDR. */ | |
| 100 | PTRACE_POKETEXT = 4, | |
| 101 | #define PT_WRITE_I PTRACE_POKETEXT | |
| 102 | ||
| 103 | /* Write the word DATA into the process's data space at address ADDR. */ | |
| 104 | PTRACE_POKEDATA = 5, | |
| 105 | #define PT_WRITE_D PTRACE_POKEDATA | |
| 106 | ||
| 107 | /* Write the word DATA into the process's user area at offset ADDR. */ | |
| 108 | PTRACE_POKEUSER = 6, | |
| 109 | #define PT_WRITE_U PTRACE_POKEUSER | |
| 110 | ||
| 111 | /* Continue the process. */ | |
| 112 | PTRACE_CONT = 7, | |
| 113 | #define PT_CONTINUE PTRACE_CONT | |
| 114 | ||
| 115 | /* Kill the process. */ | |
| 116 | PTRACE_KILL = 8, | |
| 117 | #define PT_KILL PTRACE_KILL | |
| 118 | ||
| 119 | /* Single step the process. */ | |
| 120 | PTRACE_SINGLESTEP = 9, | |
| 121 | #define PT_STEP PTRACE_SINGLESTEP | |
| 122 | ||
| 123 | /* Get all general purpose registers used by a process. */ | |
| 124 | PTRACE_GETREGS = 12, | |
| 125 | #define PT_GETREGS PTRACE_GETREGS | |
| 126 | ||
| 127 | /* Set all general purpose registers used by a process. */ | |
| 128 | PTRACE_SETREGS = 13, | |
| 129 | #define PT_SETREGS PTRACE_SETREGS | |
| 130 | ||
| 131 | /* Get all floating point registers used by a process. */ | |
| 132 | PTRACE_GETFPREGS = 14, | |
| 133 | #define PT_GETFPREGS PTRACE_GETFPREGS | |
| 134 | ||
| 135 | /* Set all floating point registers used by a process. */ | |
| 136 | PTRACE_SETFPREGS = 15, | |
| 137 | #define PT_SETFPREGS PTRACE_SETFPREGS | |
| 138 | ||
| 139 | /* Attach to a process that is already running. */ | |
| 140 | PTRACE_ATTACH = 16, | |
| 141 | #define PT_ATTACH PTRACE_ATTACH | |
| 142 | ||
| 143 | /* Detach from a process attached to with PTRACE_ATTACH. */ | |
| 144 | PTRACE_DETACH = 17, | |
| 145 | #define PT_DETACH PTRACE_DETACH | |
| 146 | ||
| 147 | /* Get all altivec registers used by a process. */ | |
| 148 | PTRACE_GETVRREGS = 18, | |
| 149 | #define PT_GETVRREGS PTRACE_GETVRREGS | |
| 150 | ||
| 151 | /* Set all altivec registers used by a process. */ | |
| 152 | PTRACE_SETVRREGS = 19, | |
| 153 | #define PT_SETVRREGS PTRACE_SETVRREGS | |
| 154 | ||
| 155 | /* Get all SPE registers used by a process. */ | |
| 156 | PTRACE_GETEVRREGS = 20, | |
| 157 | #define PT_GETEVRREGS PTRACE_GETEVRREGS | |
| 158 | ||
| 159 | /* Set all SPE registers used by a process. */ | |
| 160 | PTRACE_SETEVRREGS = 21, | |
| 161 | #define PT_SETEVRREGS PTRACE_SETEVRREGS | |
| 162 | ||
| 163 | /* Same as PTRACE_GETREGS except a 32-bit process will obtain | |
| 164 | the full 64-bit registers. Implemented by 64-bit kernels only. */ | |
| 165 | PTRACE_GETREGS64 = 22, | |
| 166 | #define PT_GETREGS64 PTRACE_GETREGS64 | |
| 167 | ||
| 168 | /* Same as PTRACE_SETREGS except a 32-bit process will set | |
| 169 | the full 64-bit registers. Implemented by 64-bit kernels only. */ | |
| 170 | PTRACE_SETREGS64 = 23, | |
| 171 | #define PT_SETREGS64 PTRACE_SETREGS64 | |
| 172 | ||
| 173 | /* Continue and stop at the next entry to or return from syscall. */ | |
| 174 | PTRACE_SYSCALL = 24, | |
| 175 | #define PT_SYSCALL PTRACE_SYSCALL | |
| 176 | ||
| 177 | /* Get a debug register of a process. */ | |
| 178 | PTRACE_GET_DEBUGREG = 25, | |
| 179 | #define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG | |
| 180 | ||
| 181 | /* Set a debug register of a process. */ | |
| 182 | PTRACE_SET_DEBUGREG = 26, | |
| 183 | #define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG | |
| 184 | ||
| 185 | /* Get the first 32 VSX registers of a process. */ | |
| 186 | PTRACE_GETVSRREGS = 27, | |
| 187 | #define PT_GETVSRREGS PTRACE_GETVSRREGS | |
| 188 | ||
| 189 | /* Set the first 32 VSX registers of a process. */ | |
| 190 | PTRACE_SETVSRREGS = 28, | |
| 191 | #define PT_SETVSRREGS PTRACE_SETVSRREGS | |
| 192 | ||
| 193 | /* Continue and stop at the next syscall, it will not be executed. */ | |
| 194 | PTRACE_SYSEMU = 29, | |
| 195 | #define PT_SYSEMU PTRACE_SYSEMU | |
| 196 | ||
| 197 | /* Single step the process, the next syscall will not be executed. */ | |
| 198 | PTRACE_SYSEMU_SINGLESTEP = 30, | |
| 199 | #define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP | |
| 200 | ||
| 201 | /* Execute process until next taken branch. */ | |
| 202 | PTRACE_SINGLEBLOCK = 256, | |
| 203 | #define PT_STEPBLOCK PTRACE_SINGLEBLOCK | |
| 204 | ||
| 205 | /* Set ptrace filter options. */ | |
| 206 | PTRACE_SETOPTIONS = 0x4200, | |
| 207 | #define PT_SETOPTIONS PTRACE_SETOPTIONS | |
| 208 | ||
| 209 | /* Get last ptrace message. */ | |
| 210 | PTRACE_GETEVENTMSG = 0x4201, | |
| 211 | #define PT_GETEVENTMSG PTRACE_GETEVENTMSG | |
| 212 | ||
| 213 | /* Get siginfo for process. */ | |
| 214 | PTRACE_GETSIGINFO = 0x4202, | |
| 215 | #define PT_GETSIGINFO PTRACE_GETSIGINFO | |
| 216 | ||
| 217 | /* Set new siginfo for process. */ | |
| 218 | PTRACE_SETSIGINFO = 0x4203, | |
| 219 | #define PT_SETSIGINFO PTRACE_SETSIGINFO | |
| 220 | ||
| 221 | /* Get register content. */ | |
| 222 | PTRACE_GETREGSET = 0x4204, | |
| 223 | #define PTRACE_GETREGSET PTRACE_GETREGSET | |
| 224 | ||
| 225 | /* Set register content. */ | |
| 226 | PTRACE_SETREGSET = 0x4205, | |
| 227 | #define PTRACE_SETREGSET PTRACE_SETREGSET | |
| 228 | ||
| 229 | /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect | |
| 230 | signal or group stop state. */ | |
| 231 | PTRACE_SEIZE = 0x4206, | |
| 232 | #define PTRACE_SEIZE PTRACE_SEIZE | |
| 233 | ||
| 234 | /* Trap seized tracee. */ | |
| 235 | PTRACE_INTERRUPT = 0x4207, | |
| 236 | #define PTRACE_INTERRUPT PTRACE_INTERRUPT | |
| 237 | ||
| 238 | /* Wait for next group event. */ | |
| 239 | PTRACE_LISTEN = 0x4208, | |
| 240 | #define PTRACE_LISTEN PTRACE_LISTEN | |
| 241 | ||
| 242 | /* Retrieve siginfo_t structures without removing signals from a queue. */ | |
| 243 | PTRACE_PEEKSIGINFO = 0x4209, | |
| 244 | #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO | |
| 245 | ||
| 246 | /* Get the mask of blocked signals. */ | |
| 247 | PTRACE_GETSIGMASK = 0x420a, | |
| 248 | #define PTRACE_GETSIGMASK PTRACE_GETSIGMASK | |
| 249 | ||
| 250 | /* Change the mask of blocked signals. */ | |
| 251 | PTRACE_SETSIGMASK = 0x420b, | |
| 252 | #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK | |
| 253 | ||
| 254 | /* Get seccomp BPF filters. */ | |
| 255 | PTRACE_SECCOMP_GET_FILTER = 0x420c, | |
| 256 | #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER | |
| 257 | ||
| 258 | /* Get seccomp BPF filter metadata. */ | |
| 259 | PTRACE_SECCOMP_GET_METADATA = 0x420d, | |
| 260 | #define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA | |
| 261 | ||
| 262 | /* Get information about system call. */ | |
| 263 | PTRACE_GET_SYSCALL_INFO = 0x420e | |
| 264 | #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO | |
| 265 | }; | |
| 266 | ||
| 267 | ||
| 268 | #include <bits/ptrace-shared.h> | |
| 269 | ||
| 270 | __END_DECLS | |
| 271 | ||
| 272 | #endif /* _SYS_PTRACE_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/sys/ucontext.h deleted-200| ... | ... | @@ -1,200 +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_UCONTEXT_H | |
| 19 | #define _SYS_UCONTEXT_H	1 | |
| 20 | ||
| 21 | #include <features.h> | |
| 22 | ||
| 23 | #include <bits/types/sigset_t.h> | |
| 24 | #include <bits/types/stack_t.h> | |
| 25 | ||
| 26 | ||
| 27 | #ifdef __USE_MISC | |
| 28 | # define __ctx(fld) fld | |
| 29 | #else | |
| 30 | # define __ctx(fld) __ ## fld | |
| 31 | #endif | |
| 32 | ||
| 33 | struct __ctx(pt_regs); | |
| 34 | ||
| 35 | #if __WORDSIZE == 32 | |
| 36 | ||
| 37 | /* Number of general registers. */ | |
| 38 | # define __NGREG	48 | |
| 39 | # ifdef __USE_MISC | |
| 40 | # define NGREG	__NGREG | |
| 41 | # endif | |
| 42 | ||
| 43 | /* Container for all general registers. */ | |
| 44 | typedef unsigned long gregset_t[__NGREG]; | |
| 45 | ||
| 46 | /* Container for floating-point registers and status */ | |
| 47 | typedef struct _libc_fpstate | |
| 48 | { | |
| 49 | 	double __ctx(fpregs)[32]; | |
| 50 | 	double __ctx(fpscr); | |
| 51 | 	unsigned int _pad[2]; | |
| 52 | } fpregset_t; | |
| 53 | ||
| 54 | /* Container for Altivec/VMX registers and status. | |
| 55 | Needs to be aligned on a 16-byte boundary. */ | |
| 56 | typedef struct _libc_vrstate | |
| 57 | { | |
| 58 | 	unsigned int __ctx(vrregs)[32][4]; | |
| 59 | 	unsigned int __ctx(vrsave); | |
| 60 | 	unsigned int _pad[2]; | |
| 61 | 	unsigned int __ctx(vscr); | |
| 62 | } vrregset_t; | |
| 63 | ||
| 64 | /* Context to describe whole processor state. */ | |
| 65 | typedef struct | |
| 66 | { | |
| 67 | 	gregset_t __ctx(gregs); | |
| 68 | 	fpregset_t __ctx(fpregs); | |
| 69 | 	vrregset_t __ctx(vrregs) __attribute__((__aligned__(16))); | |
| 70 | } mcontext_t; | |
| 71 | ||
| 72 | #else | |
| 73 | ||
| 74 | /* For 64-bit kernels with Altivec support, a machine context is exactly | |
| 75 | * a sigcontext. For older kernel (without Altivec) the sigcontext matches | |
| 76 | * the mcontext upto but not including the v_regs field. For kernels that | |
| 77 | * don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the | |
| 78 | * v_regs field may not exist and should not be referenced. The v_regs field | |
| 79 | * can be referenced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC | |
| 80 | * is set in AT_HWCAP. */ | |
| 81 | ||
| 82 | /* Number of general registers. */ | |
| 83 | # define __NGREG	48	/* includes r0-r31, nip, msr, lr, etc. */ | |
| 84 | # define __NFPREG	33	/* includes fp0-fp31 &fpscr. */ | |
| 85 | # define __NVRREG	34	/* includes v0-v31, vscr, & vrsave in | |
| 86 | 				 split vectors */ | |
| 87 | # ifdef __USE_MISC | |
| 88 | # define NGREG	__NGREG | |
| 89 | # define NFPREG	__NFPREG | |
| 90 | # define NVRREG	__NVRREG | |
| 91 | # endif | |
| 92 | ||
| 93 | typedef unsigned long gregset_t[__NGREG]; | |
| 94 | typedef double fpregset_t[__NFPREG]; | |
| 95 | ||
| 96 | /* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits | |
| 97 | but can only be copied to/from a 128-bit vector register. So we allocated | |
| 98 | a whole quadword speedup save/restore. */ | |
| 99 | typedef struct _libc_vscr | |
| 100 | { | |
| 101 | #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ | |
| 102 | 	unsigned int __pad[3]; | |
| 103 | 	unsigned int __ctx(vscr_word); | |
| 104 | #else | |
| 105 | 	unsigned int __ctx(vscr_word); | |
| 106 | 	unsigned int __pad[3]; | |
| 107 | #endif | |
| 108 | } vscr_t; | |
| 109 | ||
| 110 | /* Container for Altivec/VMX registers and status. | |
| 111 | Must to be aligned on a 16-byte boundary. */ | |
| 112 | typedef struct _libc_vrstate | |
| 113 | { | |
| 114 | 	unsigned int	__ctx(vrregs)[32][4]; | |
| 115 | 	vscr_t		__ctx(vscr); | |
| 116 | 	unsigned int	__ctx(vrsave); | |
| 117 | 	unsigned int	__pad[3]; | |
| 118 | } vrregset_t __attribute__((__aligned__(16))); | |
| 119 | ||
| 120 | typedef struct { | |
| 121 | 	unsigned long	__glibc_reserved[4]; | |
| 122 | 	int		__ctx(signal); | |
| 123 | 	int		__pad0; | |
| 124 | 	unsigned long	__ctx(handler); | |
| 125 | 	unsigned long	__ctx(oldmask); | |
| 126 | 	struct __ctx(pt_regs)	*__ctx(regs); | |
| 127 | 	gregset_t	__ctx(gp_regs); | |
| 128 | 	fpregset_t	__ctx(fp_regs); | |
| 129 | /* | |
| 130 | * To maintain compatibility with current implementations the sigcontext is | |
| 131 | * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t) | |
| 132 | * followed by an unstructured (vmx_reserve) field of 69 doublewords. This | |
| 133 | * allows the array of vector registers to be quadword aligned independent of | |
| 134 | * the alignment of the containing sigcontext or ucontext. It is the | |
| 135 | * responsibility of the code setting the sigcontext to set this pointer to | |
| 136 | * either NULL (if this processor does not support the VMX feature) or the | |
| 137 | * address of the first quadword within the allocated (vmx_reserve) area. | |
| 138 | * | |
| 139 | * The pointer (v_regs) of vector type (elf_vrreg_t) is essentially | |
| 140 | * an array of 34 quadword entries. The entries with | |
| 141 | * indexes 0-31 contain the corresponding vector registers. The entry with | |
| 142 | * index 32 contains the vscr as the last word (offset 12) within the | |
| 143 | * quadword. This allows the vscr to be stored as either a quadword (since | |
| 144 | * it must be copied via a vector register to/from storage) or as a word. | |
| 145 | * The entry with index 33 contains the vrsave as the first word (offset 0) | |
| 146 | * within the quadword. | |
| 147 | */ | |
| 148 | 	vrregset_t	*__ctx(v_regs); | |
| 149 | 	long		__ctx(vmx_reserve)[__NVRREG+__NVRREG+1]; | |
| 150 | } mcontext_t; | |
| 151 | ||
| 152 | #endif | |
| 153 | ||
| 154 | /* Userlevel context. */ | |
| 155 | typedef struct ucontext_t | |
| 156 | { | |
| 157 | unsigned long int __ctx(uc_flags); | |
| 158 | struct ucontext_t *uc_link; | |
| 159 | stack_t uc_stack; | |
| 160 | #if __WORDSIZE == 32 | |
| 161 | /* | |
| 162 | * These fields are set up this way to maximize source and | |
| 163 | * binary compatibility with code written for the old | |
| 164 | * ucontext_t definition, which didn't include space for the | |
| 165 | * registers. | |
| 166 | * | |
| 167 | * Different versions of the kernel have stored the registers on | |
| 168 | * signal delivery at different offsets from the ucontext struct. | |
| 169 | * Programs should thus use the uc_mcontext.uc_regs pointer to | |
| 170 | * find where the registers are actually stored. The registers | |
| 171 | * will be stored within the ucontext_t struct but not necessarily | |
| 172 | * at a fixed address. As a side-effect, this lets us achieve | |
| 173 | * 16-byte alignment for the register storage space if the | |
| 174 | * Altivec registers are to be saved, without requiring 16-byte | |
| 175 | * alignment on the whole ucontext_t. | |
| 176 | * | |
| 177 | * The uc_mcontext.regs field is included for source compatibility | |
| 178 | * with programs written against the older ucontext_t definition, | |
| 179 | * and its name should therefore not change. The uc_pad field | |
| 180 | * is for binary compatibility with programs compiled against the | |
| 181 | * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask | |
| 182 | * are at the same offset as previously. | |
| 183 | */ | |
| 184 | int __glibc_reserved1[7]; | |
| 185 | union __ctx(uc_regs_ptr) { | |
| 186 | struct __ctx(pt_regs) *__ctx(regs); | |
| 187 | mcontext_t *__ctx(uc_regs); | |
| 188 | } uc_mcontext; | |
| 189 | sigset_t uc_sigmask; | |
| 190 | /* last for extensibility */ | |
| 191 | char __ctx(uc_reg_space)[sizeof (mcontext_t) + 12]; | |
| 192 | #else /* 64-bit */ | |
| 193 | sigset_t uc_sigmask; | |
| 194 | mcontext_t uc_mcontext; /* last for extensibility */ | |
| 195 | #endif | |
| 196 | } ucontext_t; | |
| 197 | ||
| 198 | #undef __ctx | |
| 199 | ||
| 200 | #endif /* sys/ucontext.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnu/sys/user.h deleted-40| ... | ... | @@ -1,40 +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_USER_H | |
| 19 | ||
| 20 | #define _SYS_USER_H	1 | |
| 21 | #include <stddef.h> | |
| 22 | #include <features.h> | |
| 23 | ||
| 24 | #include <asm/ptrace.h> | |
| 25 | ||
| 26 | struct user { | |
| 27 | 	struct pt_regs	regs;			/* entire machine state */ | |
| 28 | 	size_t		u_tsize;		/* text size (pages) */ | |
| 29 | 	size_t		u_dsize;		/* data size (pages) */ | |
| 30 | 	size_t		u_ssize;		/* stack size (pages) */ | |
| 31 | 	unsigned long	start_code;		/* text starting address */ | |
| 32 | 	unsigned long	start_data;		/* data starting address */ | |
| 33 | 	unsigned long	start_stack;		/* stack starting address */ | |
| 34 | 	long int	signal;			/* signal causing core dump */ | |
| 35 | 	struct regs *	u_ar0;			/* help gdb find registers */ | |
| 36 | 	unsigned long	magic;			/* identifies a core file */ | |
| 37 | 	char		u_comm[32];		/* user command name */ | |
| 38 | }; | |
| 39 | ||
| 40 | #endif /* sys/user.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/endianness.h created+16| ... | ... | @@ -0,0 +1,16 @@ |
| 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 | /* PowerPC has selectable endianness. */ | |
| 9 | #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN | |
| 10 | # define __BYTE_ORDER __BIG_ENDIAN | |
| 11 | #endif | |
| 12 | #if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN | |
| 13 | # define __BYTE_ORDER __LITTLE_ENDIAN | |
| 14 | #endif | |
| 15 | ||
| 16 | #endif /* bits/endianness.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/environments.h created+96| ... | ... | @@ -0,0 +1,96 @@ |
| 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 | /* By default we have 32-bit wide `int', `long int', pointers and `off_t' | |
| 68 | and all platforms support LFS. */ | |
| 69 | # define _POSIX_V7_ILP32_OFF32	1 | |
| 70 | # define _POSIX_V7_ILP32_OFFBIG	1 | |
| 71 | # define _POSIX_V6_ILP32_OFF32	1 | |
| 72 | # define _POSIX_V6_ILP32_OFFBIG	1 | |
| 73 | # define _XBS5_ILP32_OFF32	1 | |
| 74 | # define _XBS5_ILP32_OFFBIG	1 | |
| 75 | ||
| 76 | /* We optionally provide an environment with the above size but an 64-bit | |
| 77 | side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ | |
| 78 | ||
| 79 | /* Environments with 64-bit wide pointers can be provided, | |
| 80 | so these macros aren't defined: | |
| 81 | # undef _POSIX_V7_LP64_OFF64 | |
| 82 | # undef _POSIX_V7_LPBIG_OFFBIG | |
| 83 | # undef _POSIX_V6_LP64_OFF64 | |
| 84 | # undef _POSIX_V6_LPBIG_OFFBIG | |
| 85 | # undef _XBS5_LP64_OFF64 | |
| 86 | # undef _XBS5_LPBIG_OFFBIG | |
| 87 | and sysconf tests for it at runtime. */ | |
| 88 | ||
| 89 | #endif /* __WORDSIZE == 32 */ | |
| 90 | ||
| 91 | #define __ILP32_OFF32_CFLAGS	"-m32" | |
| 92 | #define __ILP32_OFFBIG_CFLAGS	"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" | |
| 93 | #define __ILP32_OFF32_LDFLAGS	"-m32" | |
| 94 | #define __ILP32_OFFBIG_LDFLAGS	"-m32" | |
| 95 | #define __LP64_OFF64_CFLAGS	"-m64" | |
| 96 | #define __LP64_OFF64_LDFLAGS	"-m64" | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/fcntl.h created+62| ... | ... | @@ -0,0 +1,62 @@ |
| 1 | /* O_*, F_*, FD_* bit values for Linux/PowerPC. | |
| 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	_FCNTL_H | |
| 20 | # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #include <bits/wordsize.h> | |
| 24 | ||
| 25 | #define __O_DIRECTORY	 040000	/* Must be a directory.	 */ | |
| 26 | #define __O_NOFOLLOW	0100000	/* Do not follow links.	 */ | |
| 27 | #define __O_DIRECT	0400000	/* Direct disk access.	*/ | |
| 28 | ||
| 29 | #if __WORDSIZE == 64 | |
| 30 | /* Not necessary, files are always with 64bit off_t. */ | |
| 31 | # define __O_LARGEFILE 0 | |
| 32 | #else | |
| 33 | # define __O_LARGEFILE	0200000 | |
| 34 | #endif | |
| 35 | ||
| 36 | struct flock | |
| 37 | { | |
| 38 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | |
| 39 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | |
| 40 | #ifndef __USE_FILE_OFFSET64 | |
| 41 | __off_t l_start;	/* Offset where the lock begins. */ | |
| 42 | __off_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 43 | #else | |
| 44 | __off64_t l_start;	/* Offset where the lock begins. */ | |
| 45 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 46 | #endif | |
| 47 | __pid_t l_pid;	/* Process holding the lock. */ | |
| 48 | }; | |
| 49 | ||
| 50 | #ifdef __USE_LARGEFILE64 | |
| 51 | struct flock64 | |
| 52 | { | |
| 53 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | |
| 54 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | |
| 55 | __off64_t l_start;	/* Offset where the lock begins. */ | |
| 56 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 57 | __pid_t l_pid;	/* Process holding the lock. */ | |
| 58 | }; | |
| 59 | #endif | |
| 60 | ||
| 61 | /* Include generic Linux declarations. */ | |
| 62 | #include <bits/fcntl-linux.h> | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/fenv.h created+180| ... | ... | @@ -0,0 +1,180 @@ |
| 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 | ||
| 23 | /* Define bits representing the exception. We use the bit positions of | |
| 24 | the appropriate bits in the FPSCR... */ | |
| 25 | enum | |
| 26 | { | |
| 27 | FE_INEXACT = | |
| 28 | #define FE_INEXACT	(1 << (31 - 6)) | |
| 29 | FE_INEXACT, | |
| 30 | FE_DIVBYZERO = | |
| 31 | #define FE_DIVBYZERO	(1 << (31 - 5)) | |
| 32 | FE_DIVBYZERO, | |
| 33 | FE_UNDERFLOW = | |
| 34 | #define FE_UNDERFLOW	(1 << (31 - 4)) | |
| 35 | FE_UNDERFLOW, | |
| 36 | FE_OVERFLOW = | |
| 37 | #define FE_OVERFLOW	(1 << (31 - 3)) | |
| 38 | FE_OVERFLOW, | |
| 39 | ||
| 40 | /* ... except for FE_INVALID, for which we use bit 31. FE_INVALID | |
| 41 | actually corresponds to bits 7 through 12 and 21 through 23 | |
| 42 | in the FPSCR, but we can't use that because the current draft | |
| 43 | says that it must be a power of 2. Instead we use bit 2 which | |
| 44 | is the summary bit for all the FE_INVALID exceptions, which | |
| 45 | kind of makes sense. */ | |
| 46 | FE_INVALID = | |
| 47 | #define FE_INVALID	(1 << (31 - 2)) | |
| 48 | FE_INVALID, | |
| 49 | ||
| 50 | #ifdef __USE_GNU | |
| 51 | /* Breakdown of the FE_INVALID bits. Setting FE_INVALID on an | |
| 52 | input to a routine is equivalent to setting all of these bits; | |
| 53 | FE_INVALID will be set on output from a routine iff one of | |
| 54 | these bits is set. Note, though, that you can't disable or | |
| 55 | enable these exceptions individually. */ | |
| 56 | ||
| 57 | /* Operation with a sNaN. */ | |
| 58 | FE_INVALID_SNAN = | |
| 59 | # define FE_INVALID_SNAN	(1 << (31 - 7)) | |
| 60 | FE_INVALID_SNAN, | |
| 61 | ||
| 62 | /* Inf - Inf */ | |
| 63 | FE_INVALID_ISI = | |
| 64 | # define FE_INVALID_ISI	(1 << (31 - 8)) | |
| 65 | FE_INVALID_ISI, | |
| 66 | ||
| 67 | /* Inf / Inf */ | |
| 68 | FE_INVALID_IDI = | |
| 69 | # define FE_INVALID_IDI	(1 << (31 - 9)) | |
| 70 | FE_INVALID_IDI, | |
| 71 | ||
| 72 | /* 0 / 0 */ | |
| 73 | FE_INVALID_ZDZ = | |
| 74 | # define FE_INVALID_ZDZ	(1 << (31 - 10)) | |
| 75 | FE_INVALID_ZDZ, | |
| 76 | ||
| 77 | /* Inf * 0 */ | |
| 78 | FE_INVALID_IMZ = | |
| 79 | # define FE_INVALID_IMZ	(1 << (31 - 11)) | |
| 80 | FE_INVALID_IMZ, | |
| 81 | ||
| 82 | /* Comparison with a NaN. */ | |
| 83 | FE_INVALID_COMPARE = | |
| 84 | # define FE_INVALID_COMPARE	(1 << (31 - 12)) | |
| 85 | FE_INVALID_COMPARE, | |
| 86 | ||
| 87 | /* Invalid operation flag for software (not set by hardware). */ | |
| 88 | /* Note that some chips don't have this implemented, presumably | |
| 89 | because no-one expected anyone to write software for them %-). */ | |
| 90 | FE_INVALID_SOFTWARE = | |
| 91 | # define FE_INVALID_SOFTWARE	(1 << (31 - 21)) | |
| 92 | FE_INVALID_SOFTWARE, | |
| 93 | ||
| 94 | /* Square root of negative number (including -Inf). */ | |
| 95 | /* Note that some chips don't have this implemented. */ | |
| 96 | FE_INVALID_SQRT = | |
| 97 | # define FE_INVALID_SQRT	(1 << (31 - 22)) | |
| 98 | FE_INVALID_SQRT, | |
| 99 | ||
| 100 | /* Conversion-to-integer of a NaN or a number too large or too small. */ | |
| 101 | FE_INVALID_INTEGER_CONVERSION = | |
| 102 | # define FE_INVALID_INTEGER_CONVERSION	(1 << (31 - 23)) | |
| 103 | FE_INVALID_INTEGER_CONVERSION | |
| 104 | ||
| 105 | # define FE_ALL_INVALID \ | |
| 106 | (FE_INVALID_SNAN | FE_INVALID_ISI | FE_INVALID_IDI | FE_INVALID_ZDZ \ | |
| 107 | 	 | FE_INVALID_IMZ | FE_INVALID_COMPARE | FE_INVALID_SOFTWARE \ | |
| 108 | 	 | FE_INVALID_SQRT | FE_INVALID_INTEGER_CONVERSION) | |
| 109 | #endif | |
| 110 | }; | |
| 111 | ||
| 112 | #define FE_ALL_EXCEPT \ | |
| 113 | 	(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) | |
| 114 | ||
| 115 | /* PowerPC chips support all of the four defined rounding modes. We | |
| 116 | use the bit pattern in the FPSCR as the values for the | |
| 117 | appropriate macros. */ | |
| 118 | enum | |
| 119 | { | |
| 120 | FE_TONEAREST = | |
| 121 | #define FE_TONEAREST	0 | |
| 122 | FE_TONEAREST, | |
| 123 | FE_TOWARDZERO = | |
| 124 | #define FE_TOWARDZERO	1 | |
| 125 | FE_TOWARDZERO, | |
| 126 | FE_UPWARD = | |
| 127 | #define FE_UPWARD	2 | |
| 128 | FE_UPWARD, | |
| 129 | FE_DOWNWARD = | |
| 130 | #define FE_DOWNWARD	3 | |
| 131 | FE_DOWNWARD | |
| 132 | }; | |
| 133 | ||
| 134 | /* Type representing exception flags. */ | |
| 135 | typedef unsigned int fexcept_t; | |
| 136 | ||
| 137 | /* Type representing floating-point environment. We leave it as 'double' | |
| 138 | for efficiency reasons (rather than writing it to a 32-bit integer). */ | |
| 139 | typedef double fenv_t; | |
| 140 | ||
| 141 | /* If the default argument is used we use this value. */ | |
| 142 | extern const fenv_t __fe_dfl_env; | |
| 143 | #define FE_DFL_ENV	(&__fe_dfl_env) | |
| 144 | ||
| 145 | #ifdef __USE_GNU | |
| 146 | /* Floating-point environment where all exceptions are enabled. Note that | |
| 147 | this is not sufficient to give you SIGFPE. */ | |
| 148 | extern const fenv_t __fe_enabled_env; | |
| 149 | # define FE_ENABLED_ENV	(&__fe_enabled_env) | |
| 150 | ||
| 151 | /* Floating-point environment with (processor-dependent) non-IEEE floating | |
| 152 | point. */ | |
| 153 | extern const fenv_t __fe_nonieee_env; | |
| 154 | # define FE_NONIEEE_ENV	(&__fe_nonieee_env) | |
| 155 | ||
| 156 | /* Floating-point environment with all exceptions enabled. Note that | |
| 157 | just evaluating this value does not change the processor exception mode. | |
| 158 | Passing this mask to fesetenv will result in a prctl syscall to change | |
| 159 | the MSR FE0/FE1 bits to "Precise Mode". On some processors this will | |
| 160 | result in slower floating point execution. This will last until an | |
| 161 | fenv or exception mask is installed that disables all FP exceptions. */ | |
| 162 | # define FE_NOMASK_ENV	FE_ENABLED_ENV | |
| 163 | ||
| 164 | /* Floating-point environment with all exceptions disabled. Note that | |
| 165 | just evaluating this value does not change the processor exception mode. | |
| 166 | Passing this mask to fesetenv will result in a prctl syscall to change | |
| 167 | the MSR FE0/FE1 bits to "Ignore Exceptions Mode". On most processors | |
| 168 | this allows the fastest possible floating point execution.*/ | |
| 169 | # define FE_MASK_ENV	FE_DFL_ENV | |
| 170 | ||
| 171 | #endif | |
| 172 | ||
| 173 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | |
| 174 | /* Type representing floating-point control modes. */ | |
| 175 | typedef double femode_t; | |
| 176 | ||
| 177 | /* Default floating-point control modes. */ | |
| 178 | extern const femode_t __fe_dfl_mode; | |
| 179 | # define FE_DFL_MODE	(&__fe_dfl_mode) | |
| 180 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/floatn.h created+122| ... | ... | @@ -0,0 +1,122 @@ |
| 1 | /* Macros to control TS 18661-3 glibc features on powerpc. | |
| 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 | #include <bits/long-double.h> | |
| 24 | ||
| 25 | /* Defined to 1 if the current compiler invocation provides a | |
| 26 | floating-point type with the IEEE 754 binary128 format, and this glibc | |
| 27 | includes corresponding *f128 interfaces for it. */ | |
| 28 | #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \ | |
| 29 | && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH | |
| 30 | # define __HAVE_FLOAT128 1 | |
| 31 | #else | |
| 32 | # define __HAVE_FLOAT128 0 | |
| 33 | #endif | |
| 34 | ||
| 35 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | |
| 36 | from the default float, double and long double types in this glibc, i.e. | |
| 37 | calls to the binary128 functions go to *f128 symbols instead of *l. */ | |
| 38 | #if __HAVE_FLOAT128 | |
| 39 | # define __HAVE_DISTINCT_FLOAT128 1 | |
| 40 | #else | |
| 41 | # define __HAVE_DISTINCT_FLOAT128 0 | |
| 42 | #endif | |
| 43 | ||
| 44 | /* Defined to 1 if the current compiler invocation provides a | |
| 45 | floating-point type with the right format for _Float64x, and this | |
| 46 | glibc includes corresponding *f64x interfaces for it. */ | |
| 47 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | |
| 48 | ||
| 49 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | |
| 50 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | |
| 51 | the format of _Float128, which must be different from that of long | |
| 52 | double. */ | |
| 53 | #define __HAVE_FLOAT64X_LONG_DOUBLE 0 | |
| 54 | ||
| 55 | #ifndef __ASSEMBLER__ | |
| 56 | ||
| 57 | /* Defined to concatenate the literal suffix to be used with _Float128 | |
| 58 | types, if __HAVE_FLOAT128 is 1. */ | |
| 59 | # if __HAVE_FLOAT128 | |
| 60 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | |
| 61 | /* The literal suffix (f128) exist for powerpc only since GCC 7.0. */ | |
| 62 | # if __LDBL_MANT_DIG__ == 113 | |
| 63 | # define __f128(x) x##l | |
| 64 | # else | |
| 65 | # define __f128(x) x##q | |
| 66 | # endif | |
| 67 | # else | |
| 68 | # define __f128(x) x##f128 | |
| 69 | # endif | |
| 70 | # endif | |
| 71 | ||
| 72 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | |
| 73 | # if __HAVE_FLOAT128 | |
| 74 | # if __LDBL_MANT_DIG__ == 113 && defined __cplusplus | |
| 75 | typedef long double _Float128; | |
| 76 | # define __CFLOAT128 _Complex long double | |
| 77 | # elif !__GNUC_PREREQ (7, 0) || defined __cplusplus | |
| 78 | /* The type _Float128 exist for powerpc only since GCC 7.0. */ | |
| 79 | typedef __float128 _Float128; | |
| 80 | /* Add a typedef for older GCC and C++ compilers which don't natively support | |
| 81 | _Complex _Float128. */ | |
| 82 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__KC__))); | |
| 83 | # define __CFLOAT128 __cfloat128 | |
| 84 | # else | |
| 85 | # define __CFLOAT128 _Complex _Float128 | |
| 86 | # endif | |
| 87 | # endif | |
| 88 | ||
| 89 | /* The remaining of this file provides support for older compilers. */ | |
| 90 | # if __HAVE_FLOAT128 | |
| 91 | /* Builtin __builtin_huge_valf128 doesn't exist before GCC 7.0. */ | |
| 92 | # if !__GNUC_PREREQ (7, 0) | |
| 93 | # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) | |
| 94 | # endif | |
| 95 | ||
| 96 | /* The following builtins (suffixed with 'q') are available in GCC >= 6.2, | |
| 97 | which is the minimum version required for float128 support on powerpc64le. | |
| 98 | Since GCC 7.0 the builtins suffixed with f128 are also available, then | |
| 99 | there is no need to redefined them. */ | |
| 100 | # if !__GNUC_PREREQ (7, 0) | |
| 101 | # define __builtin_copysignf128 __builtin_copysignq | |
| 102 | # define __builtin_fabsf128 __builtin_fabsq | |
| 103 | # define __builtin_inff128 __builtin_infq | |
| 104 | # define __builtin_nanf128 __builtin_nanq | |
| 105 | # define __builtin_nansf128 __builtin_nansq | |
| 106 | # endif | |
| 107 | ||
| 108 | /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, | |
| 109 | e.g.: __builtin_signbitf128, before GCC 6. However, there has never | |
| 110 | been a __builtin_signbitf128 in GCC and the type-generic builtin is | |
| 111 | only available since GCC 6. */ | |
| 112 | # if !__GNUC_PREREQ (6, 0) | |
| 113 | # define __builtin_signbitf128 __signbitf128 | |
| 114 | # endif | |
| 115 | ||
| 116 | # endif | |
| 117 | ||
| 118 | #endif /* !__ASSEMBLER__. */ | |
| 119 | ||
| 120 | #include <bits/floatn-common.h> | |
| 121 | ||
| 122 | #endif /* _BITS_FLOATN_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/fp-fast.h created+39| ... | ... | @@ -0,0 +1,39 @@ |
| 1 | /* Define FP_FAST_* macros. PowerPC 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-fast.h> directly; include <math.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_ISOC99 | |
| 24 | ||
| 25 | /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l} | |
| 26 | builtins are supported. */ | |
| 27 | # if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMA | |
| 28 | # define FP_FAST_FMA 1 | |
| 29 | # endif | |
| 30 | ||
| 31 | # if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMAF | |
| 32 | # define FP_FAST_FMAF 1 | |
| 33 | # endif | |
| 34 | ||
| 35 | # ifdef __FP_FAST_FMAL | |
| 36 | # define FP_FAST_FMAL 1 | |
| 37 | # endif | |
| 38 | ||
| 39 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/hwcap.h created+78| ... | ... | @@ -0,0 +1,78 @@ |
| 1 | /* Defines for bits in AT_HWCAP and AT_HWCAP2. | |
| 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 | #if !defined(_SYS_AUXV_H) && !defined(_SYSDEPS_SYSDEP_H) | |
| 20 | # error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* The bit numbers must match those in the kernel's asm/cputable.h. */ | |
| 24 | ||
| 25 | /* Feature definitions in AT_HWCAP. */ | |
| 26 | #define PPC_FEATURE_32		 0x80000000 /* 32-bit mode. */ | |
| 27 | #define PPC_FEATURE_64		 0x40000000 /* 64-bit mode. */ | |
| 28 | #define PPC_FEATURE_601_INSTR	 0x20000000 /* 601 chip, Old POWER ISA. */ | |
| 29 | #define PPC_FEATURE_HAS_ALTIVEC	 0x10000000 /* SIMD/Vector Unit. */ | |
| 30 | #define PPC_FEATURE_HAS_FPU	 0x08000000 /* Floating Point Unit. */ | |
| 31 | #define PPC_FEATURE_HAS_MMU	 0x04000000 /* Memory Management Unit. */ | |
| 32 | #define PPC_FEATURE_HAS_4xxMAC	 0x02000000 /* 4xx Multiply Accumulator. */ | |
| 33 | #define PPC_FEATURE_UNIFIED_CACHE 0x01000000 /* Unified I/D cache. */ | |
| 34 | #define PPC_FEATURE_HAS_SPE	 0x00800000 /* Signal Processing ext. */ | |
| 35 | #define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 /* SPE Float. */ | |
| 36 | #define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 /* SPE Double. */ | |
| 37 | #define PPC_FEATURE_NO_TB	 0x00100000 /* 601/403gx have no timebase */ | |
| 38 | #define PPC_FEATURE_POWER4	 0x00080000 /* POWER4 ISA 2.00 */ | |
| 39 | #define PPC_FEATURE_POWER5	 0x00040000 /* POWER5 ISA 2.02 */ | |
| 40 | #define PPC_FEATURE_POWER5_PLUS	 0x00020000 /* POWER5+ ISA 2.03 */ | |
| 41 | #define PPC_FEATURE_CELL_BE	 0x00010000 /* CELL Broadband Engine */ | |
| 42 | #define PPC_FEATURE_BOOKE	 0x00008000 /* ISA Category Embedded */ | |
| 43 | #define PPC_FEATURE_SMT		 0x00004000 /* Simultaneous | |
| 44 | 						 Multi-Threading */ | |
| 45 | #define PPC_FEATURE_ICACHE_SNOOP 0x00002000 | |
| 46 | #define PPC_FEATURE_ARCH_2_05	 0x00001000 /* ISA 2.05 */ | |
| 47 | #define PPC_FEATURE_PA6T	 0x00000800 /* PA Semi 6T Core */ | |
| 48 | #define PPC_FEATURE_HAS_DFP	 0x00000400 /* Decimal FP Unit */ | |
| 49 | #define PPC_FEATURE_POWER6_EXT	 0x00000200 /* P6 + mffgpr/mftgpr */ | |
| 50 | #define PPC_FEATURE_ARCH_2_06	 0x00000100 /* ISA 2.06 */ | |
| 51 | #define PPC_FEATURE_HAS_VSX	 0x00000080 /* P7 Vector Extension. */ | |
| 52 | #define PPC_FEATURE_PSERIES_PERFMON_COMPAT 0x00000040 | |
| 53 | /* Reserved by the kernel.	 0x00000004 Do not use. */ | |
| 54 | #define PPC_FEATURE_TRUE_LE	 0x00000002 | |
| 55 | #define PPC_FEATURE_PPC_LE	 0x00000001 | |
| 56 | ||
| 57 | /* Feature definitions in AT_HWCAP2. */ | |
| 58 | #define PPC_FEATURE2_ARCH_2_07 0x80000000 /* ISA 2.07 */ | |
| 59 | #define PPC_FEATURE2_HAS_HTM 0x40000000 /* Hardware Transactional | |
| 60 | 						 Memory */ | |
| 61 | #define PPC_FEATURE2_HAS_DSCR 0x20000000 /* Data Stream Control | |
| 62 | 						 Register */ | |
| 63 | #define PPC_FEATURE2_HAS_EBB 0x10000000 /* Event Base Branching */ | |
| 64 | #define PPC_FEATURE2_HAS_ISEL 0x08000000 /* Integer Select */ | |
| 65 | #define PPC_FEATURE2_HAS_TAR 0x04000000 /* Target Address Register */ | |
| 66 | #define PPC_FEATURE2_HAS_VEC_CRYPTO 0x02000000 /* Target supports vector | |
| 67 | 						 instruction. */ | |
| 68 | #define PPC_FEATURE2_HTM_NOSC	 0x01000000 /* Kernel aborts transaction | |
| 69 | 						 when a syscall is made. */ | |
| 70 | #define PPC_FEATURE2_ARCH_3_00	 0x00800000 /* ISA 3.0 */ | |
| 71 | #define PPC_FEATURE2_HAS_IEEE128 0x00400000 /* VSX IEEE Binary Float | |
| 72 | 						 128-bit */ | |
| 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ | |
| 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ | |
| 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended | |
| 76 | 						 state. */ | |
| 77 | #define PPC_FEATURE2_ARCH_3_1	 0x00040000 /* ISA 3.1. */ | |
| 78 | #define PPC_FEATURE2_MMA	 0x00020000 /* Matrix-Multiply Assist. */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/ioctl-types.h created+77| ... | ... | @@ -0,0 +1,77 @@ |
| 1 | /* Structure types for pre-termios terminal ioctls. Linux/powerpc version. | |
| 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 _SYS_IOCTL_H | |
| 20 | # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Get definition of constants for use with `ioctl'. */ | |
| 24 | #include <asm/ioctls.h> | |
| 25 | ||
| 26 | ||
| 27 | struct winsize | |
| 28 | { | |
| 29 | unsigned short int ws_row; | |
| 30 | unsigned short int ws_col; | |
| 31 | unsigned short int ws_xpixel; | |
| 32 | unsigned short int ws_ypixel; | |
| 33 | }; | |
| 34 | ||
| 35 | #define NCC 10 | |
| 36 | struct termio | |
| 37 | { | |
| 38 | unsigned short int c_iflag;		/* input mode flags */ | |
| 39 | unsigned short int c_oflag;		/* output mode flags */ | |
| 40 | unsigned short int c_cflag;		/* control mode flags */ | |
| 41 | unsigned short int c_lflag;		/* local mode flags */ | |
| 42 | unsigned char c_line;		/* line discipline */ | |
| 43 | unsigned char c_cc[NCC];		/* control characters */ | |
| 44 | }; | |
| 45 | ||
| 46 | /* modem lines */ | |
| 47 | #define TIOCM_LE	0x001 | |
| 48 | #define TIOCM_DTR	0x002 | |
| 49 | #define TIOCM_RTS	0x004 | |
| 50 | #define TIOCM_ST	0x008 | |
| 51 | #define TIOCM_SR	0x010 | |
| 52 | #define TIOCM_CTS	0x020 | |
| 53 | #define TIOCM_CAR	0x040 | |
| 54 | #define TIOCM_RNG	0x080 | |
| 55 | #define TIOCM_DSR	0x100 | |
| 56 | #define TIOCM_CD	TIOCM_CAR | |
| 57 | #define TIOCM_RI	TIOCM_RNG | |
| 58 | ||
| 59 | /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ | |
| 60 | ||
| 61 | /* line disciplines */ | |
| 62 | #define N_TTY		0 | |
| 63 | #define N_SLIP		1 | |
| 64 | #define N_MOUSE		2 | |
| 65 | #define N_PPP		3 | |
| 66 | #define N_STRIP		4 | |
| 67 | #define N_AX25		5 | |
| 68 | #define N_X25		6	/* X.25 async */ | |
| 69 | #define N_6PACK		7 | |
| 70 | #define N_MASC		8	/* Mobitex module */ | |
| 71 | #define N_R3964		9	/* Simatic R3964 module */ | |
| 72 | #define N_PROFIBUS_FDL	10	/* Profibus */ | |
| 73 | #define N_IRDA		11	/* Linux IR */ | |
| 74 | #define N_SMSBLOCK	12	/* SMS block mode */ | |
| 75 | #define N_HDLC		13	/* synchronous HDLC */ | |
| 76 | #define N_SYNC_PPP	14	/* synchronous PPP */ | |
| 77 | #define	N_HCI		15	/* Bluetooth HCI UART */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/ipc-perm.h created+36| ... | ... | @@ -0,0 +1,36 @@ |
| 1 | /* struct ipc_perm definition. Linux/powerpc version. | |
| 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_IPC_H | |
| 20 | # error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Data structure used to pass permission information to IPC operations. */ | |
| 24 | struct ipc_perm | |
| 25 | { | |
| 26 | __key_t __key;		/* Key. */ | |
| 27 | __uid_t uid;		/* Owner's user ID. */ | |
| 28 | __gid_t gid;		/* Owner's group ID. */ | |
| 29 | __uid_t cuid;		/* Creator's user ID. */ | |
| 30 | __gid_t cgid;		/* Creator's group ID. */ | |
| 31 | __mode_t mode;		/* Read/write permission. */ | |
| 32 | __uint32_t __seq;		/* Sequence number. */ | |
| 33 | __uint32_t __pad1; | |
| 34 | __uint64_t __glibc_reserved1; | |
| 35 | __uint64_t __glibc_reserved2; | |
| 36 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/iscanonical.h created+58| ... | ... | @@ -0,0 +1,58 @@ |
| 1 | /* Define iscanonical macro. ldbl-128ibm 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 | #if defined (__NO_LONG_DOUBLE_MATH) || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | |
| 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) | |
| 25 | #else | |
| 26 | extern int __iscanonicall (long double __x) | |
| 27 | __THROW __attribute__ ((__const__)); | |
| 28 | # define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) | |
| 29 | # define __iscanonical(x) ((void) (__typeof (x)) (x), 1) | |
| 30 | # if __HAVE_DISTINCT_FLOAT128 | |
| 31 | # define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1) | |
| 32 | # endif | |
| 33 | ||
| 34 | /* Return nonzero value if X is canonical. In IEEE interchange binary | |
| 35 | formats, all values are canonical, but the argument must still be | |
| 36 | converted to its semantic type for any exceptions arising from the | |
| 37 | conversion, before being discarded; in IBM long double, there are | |
| 38 | encodings that are not consistently handled as corresponding to any | |
| 39 | particular value of the type, and we return 0 for those. */ | |
| 40 | # ifndef __cplusplus | |
| 41 | # define iscanonical(x) __MATH_TG ((x), __iscanonical, (x)) | |
| 42 | # else | |
| 43 | /* In C++ mode, __MATH_TG cannot be used, because it relies on | |
| 44 | __builtin_types_compatible_p, which is a C-only builtin. On the | |
| 45 | other hand, overloading provides the means to distinguish between | |
| 46 | the floating-point types. The overloading resolution will match | |
| 47 | the correct parameter (regardless of type qualifiers (i.e.: const | |
| 48 | and volatile)). */ | |
| 49 | extern "C++" { | |
| 50 | inline int iscanonical (float __val) { return __iscanonicalf (__val); } | |
| 51 | inline int iscanonical (double __val) { return __iscanonical (__val); } | |
| 52 | inline int iscanonical (long double __val) { return __iscanonicall (__val); } | |
| 53 | # if __HAVE_DISTINCT_FLOAT128 | |
| 54 | inline int iscanonical (_Float128 __val) { return __iscanonicalf128 (__val); } | |
| 55 | # endif | |
| 56 | } | |
| 57 | # endif /* __cplusplus */ | |
| 58 | #endif /* __NO_LONG_DOUBLE_MATH */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/link.h created+156| ... | ... | @@ -0,0 +1,156 @@ |
| 1 | /* Machine-specific declarations for dynamic linker interface. PowerPC version | |
| 2 | Copyright (C) 2004-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	_LINK_H | |
| 20 | # error "Never include <bits/link.h> directly; use <link.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | ||
| 24 | #if __ELF_NATIVE_CLASS == 32 | |
| 25 | ||
| 26 | /* Registers for entry into PLT on PPC32. */ | |
| 27 | typedef struct La_ppc32_regs | |
| 28 | { | |
| 29 | uint32_t lr_reg[8]; | |
| 30 | double lr_fp[8]; | |
| 31 | uint32_t lr_vreg[12][4]; | |
| 32 | uint32_t lr_r1; | |
| 33 | uint32_t lr_lr; | |
| 34 | } La_ppc32_regs; | |
| 35 | ||
| 36 | /* Return values for calls from PLT on PPC32. */ | |
| 37 | typedef struct La_ppc32_retval | |
| 38 | { | |
| 39 | uint32_t lrv_r3; | |
| 40 | uint32_t lrv_r4; | |
| 41 | double lrv_fp[8]; | |
| 42 | uint32_t lrv_v2[4]; | |
| 43 | } La_ppc32_retval; | |
| 44 | ||
| 45 | ||
| 46 | __BEGIN_DECLS | |
| 47 | ||
| 48 | extern Elf32_Addr la_ppc32_gnu_pltenter (Elf32_Sym *__sym, | |
| 49 | 					 unsigned int __ndx, | |
| 50 | 					 uintptr_t *__refcook, | |
| 51 | 					 uintptr_t *__defcook, | |
| 52 | 					 La_ppc32_regs *__regs, | |
| 53 | 					 unsigned int *__flags, | |
| 54 | 					 const char *__symname, | |
| 55 | 					 long int *__framesizep); | |
| 56 | extern unsigned int la_ppc32_gnu_pltexit (Elf32_Sym *__sym, | |
| 57 | 					 unsigned int __ndx, | |
| 58 | 					 uintptr_t *__refcook, | |
| 59 | 					 uintptr_t *__defcook, | |
| 60 | 					 const La_ppc32_regs *__inregs, | |
| 61 | 					 La_ppc32_retval *__outregs, | |
| 62 | 					 const char *__symname); | |
| 63 | ||
| 64 | __END_DECLS | |
| 65 | ||
| 66 | #elif __ELF_NATIVE_CLASS == 64 | |
| 67 | # if _CALL_ELF != 2 | |
| 68 | ||
| 69 | /* Registers for entry into PLT on PPC64. */ | |
| 70 | typedef struct La_ppc64_regs | |
| 71 | { | |
| 72 | uint64_t lr_reg[8]; | |
| 73 | double lr_fp[13]; | |
| 74 | uint32_t __padding; | |
| 75 | uint32_t lr_vrsave; | |
| 76 | uint32_t lr_vreg[12][4]; | |
| 77 | uint64_t lr_r1; | |
| 78 | uint64_t lr_lr; | |
| 79 | } La_ppc64_regs; | |
| 80 | ||
| 81 | /* Return values for calls from PLT on PPC64. */ | |
| 82 | typedef struct La_ppc64_retval | |
| 83 | { | |
| 84 | uint64_t lrv_r3; | |
| 85 | uint64_t lrv_r4; | |
| 86 | double lrv_fp[4];	/* f1-f4, float - complex long double. */ | |
| 87 | uint32_t lrv_v2[4];	/* v2. */ | |
| 88 | } La_ppc64_retval; | |
| 89 | ||
| 90 | ||
| 91 | __BEGIN_DECLS | |
| 92 | ||
| 93 | extern Elf64_Addr la_ppc64_gnu_pltenter (Elf64_Sym *__sym, | |
| 94 | 					 unsigned int __ndx, | |
| 95 | 					 uintptr_t *__refcook, | |
| 96 | 					 uintptr_t *__defcook, | |
| 97 | 					 La_ppc64_regs *__regs, | |
| 98 | 					 unsigned int *__flags, | |
| 99 | 					 const char *__symname, | |
| 100 | 					 long int *__framesizep); | |
| 101 | extern unsigned int la_ppc64_gnu_pltexit (Elf64_Sym *__sym, | |
| 102 | 					 unsigned int __ndx, | |
| 103 | 					 uintptr_t *__refcook, | |
| 104 | 					 uintptr_t *__defcook, | |
| 105 | 					 const La_ppc64_regs *__inregs, | |
| 106 | 					 La_ppc64_retval *__outregs, | |
| 107 | 					 const char *__symname); | |
| 108 | ||
| 109 | __END_DECLS | |
| 110 | ||
| 111 | # else | |
| 112 | ||
| 113 | /* Registers for entry into PLT on PPC64 in the ELFv2 ABI. */ | |
| 114 | typedef struct La_ppc64v2_regs | |
| 115 | { | |
| 116 | uint64_t lr_reg[8]; | |
| 117 | double lr_fp[13]; | |
| 118 | uint32_t __padding; | |
| 119 | uint32_t lr_vrsave; | |
| 120 | uint32_t lr_vreg[12][4] __attribute__ ((aligned (16))); | |
| 121 | uint64_t lr_r1; | |
| 122 | uint64_t lr_lr; | |
| 123 | } La_ppc64v2_regs; | |
| 124 | ||
| 125 | /* Return values for calls from PLT on PPC64 in the ELFv2 ABI. */ | |
| 126 | typedef struct La_ppc64v2_retval | |
| 127 | { | |
| 128 | uint64_t lrv_r3; | |
| 129 | uint64_t lrv_r4; | |
| 130 | double lrv_fp[10]; | |
| 131 | uint32_t lrv_vreg[8][4] __attribute__ ((aligned (16))); | |
| 132 | } La_ppc64v2_retval; | |
| 133 | ||
| 134 | ||
| 135 | __BEGIN_DECLS | |
| 136 | ||
| 137 | extern Elf64_Addr la_ppc64v2_gnu_pltenter (Elf64_Sym *__sym, | |
| 138 | 					 unsigned int __ndx, | |
| 139 | 					 uintptr_t *__refcook, | |
| 140 | 					 uintptr_t *__defcook, | |
| 141 | 					 La_ppc64v2_regs *__regs, | |
| 142 | 					 unsigned int *__flags, | |
| 143 | 					 const char *__symname, | |
| 144 | 					 long int *__framesizep); | |
| 145 | extern unsigned int la_ppc64v2_gnu_pltexit (Elf64_Sym *__sym, | |
| 146 | 					 unsigned int __ndx, | |
| 147 | 					 uintptr_t *__refcook, | |
| 148 | 					 uintptr_t *__defcook, | |
| 149 | 					 const La_ppc64v2_regs *__inregs, | |
| 150 | 					 La_ppc64v2_retval *__outregs, | |
| 151 | 					 const char *__symname); | |
| 152 | ||
| 153 | __END_DECLS | |
| 154 | ||
| 155 | # endif | |
| 156 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/long-double.h created+25| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | /* Properties of long double type. ldbl-opt 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 | #ifndef __NO_LONG_DOUBLE_MATH | |
| 20 | # define __LONG_DOUBLE_MATH_OPTIONAL	1 | |
| 21 | # ifndef __LONG_DOUBLE_128__ | |
| 22 | # define __NO_LONG_DOUBLE_MATH		1 | |
| 23 | # endif | |
| 24 | #endif | |
| 25 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/mman.h created+53| ... | ... | @@ -0,0 +1,53 @@ |
| 1 | /* Definitions for POSIX memory map interface. Linux/PowerPC version. | |
| 2 | Copyright (C) 1997-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 | #define PROT_SAO	0x10		/* Strong Access Ordering. */ | |
| 27 | ||
| 28 | /* These are Linux-specific. */ | |
| 29 | #ifdef __USE_MISC | |
| 30 | # define MAP_GROWSDOWN	0x00100		/* Stack-like segment. */ | |
| 31 | # define MAP_DENYWRITE	0x00800		/* ETXTBSY */ | |
| 32 | # define MAP_EXECUTABLE	0x01000		/* Mark it as an executable. */ | |
| 33 | # define MAP_LOCKED	0x00080		/* Lock the mapping. */ | |
| 34 | # define MAP_NORESERVE	0x00040		/* Don't check for reservations. */ | |
| 35 | # define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables. */ | |
| 36 | # define MAP_NONBLOCK	0x10000		/* Do not block on IO. */ | |
| 37 | # define MAP_STACK	0x20000		/* Allocation is for a stack. */ | |
| 38 | # define MAP_HUGETLB	0x40000		/* Create huge page mapping. */ | |
| 39 | # define MAP_SYNC	0x80000		/* Perform synchronous page | |
| 40 | 					 faults for the mapping. */ | |
| 41 | # define MAP_FIXED_NOREPLACE 0x100000	/* MAP_FIXED but do not unmap | |
| 42 | 					 underlying mapping. */ | |
| 43 | #endif | |
| 44 | ||
| 45 | /* Flags for `mlockall'. */ | |
| 46 | #define MCL_CURRENT	0x2000		/* Lock all currently mapped pages. */ | |
| 47 | #define MCL_FUTURE	0x4000		/* Lock all additions to address | |
| 48 | 					 space. */ | |
| 49 | #define MCL_ONFAULT	0x8000		/* Lock all pages that are | |
| 50 | 					 faulted in. */ | |
| 51 | ||
| 52 | /* Include generic Linux declarations. */ | |
| 53 | #include <bits/mman-linux.h> | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/procfs.h created+49| ... | ... | @@ -0,0 +1,49 @@ |
| 1 | /* Types for registers for sys/procfs.h. PowerPC version. | |
| 2 | Copyright (C) 1996-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 | #include <signal.h> | |
| 24 | #include <sys/ucontext.h> | |
| 25 | ||
| 26 | /* These definitions are normally provided by ucontext.h via | |
| 27 | asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define | |
| 28 | them here. */ | |
| 29 | #if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H | |
| 30 | #define ELF_NGREG 48 /* includes nip, msr, lr, etc. */ | |
| 31 | #define ELF_NFPREG 33 /* includes fpscr */ | |
| 32 | #if __WORDSIZE == 32 | |
| 33 | # define ELF_NVRREG 33 /* includes vscr */ | |
| 34 | #else | |
| 35 | # define ELF_NVRREG 34 /* includes vscr */ | |
| 36 | #endif | |
| 37 | ||
| 38 | typedef unsigned long elf_greg_t; | |
| 39 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | |
| 40 | ||
| 41 | typedef double elf_fpreg_t; | |
| 42 | typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; | |
| 43 | ||
| 44 | /* Altivec registers */ | |
| 45 | typedef struct { | |
| 46 | unsigned int u[4]; | |
| 47 | } __attribute__ ((__aligned__ (16))) elf_vrreg_t; | |
| 48 | typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG]; | |
| 49 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/pthread_stack_min.h created+21| ... | ... | @@ -0,0 +1,21 @@ |
| 1 | /* Definition of PTHREAD_STACK_MIN. Linux/PPC version. | |
| 2 | Copyright (C) 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 License as | |
| 7 | published by the Free Software Foundation; either version 2.1 of the | |
| 8 | 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; see the file COPYING.LIB. If | |
| 17 | not, see <https://www.gnu.org/licenses/>. */ | |
| 18 | ||
| 19 | /* Minimum size for a thread. At least two pages for systems with 64k | |
| 20 | pages. */ | |
| 21 | #define PTHREAD_STACK_MIN	131072 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/setjmp.h created+50| ... | ... | @@ -0,0 +1,50 @@ |
| 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 | /* Define the machine-dependent type `jmp_buf'. PowerPC 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 | /* The previous bits/setjmp.h had __jmp_buf defined as a structure. | |
| 27 | We use an array of 'long int' instead, to make writing the | |
| 28 | assembler easier. Naturally, user code should not depend on | |
| 29 | either representation. */ | |
| 30 | ||
| 31 | #include <bits/wordsize.h> | |
| 32 | ||
| 33 | /* The current powerpc 32-bit Altivec ABI specifies for SVR4 ABI and EABI | |
| 34 | the vrsave must be at byte 248 & v20 at byte 256. So we must pad this | |
| 35 | correctly on 32 bit. It also insists that vecregs are only gauranteed | |
| 36 | 4 byte alignment so we need to use vperm in the setjmp/longjmp routines. | |
| 37 | We have to version the code because members like int __mask_was_saved | |
| 38 | in the jmp_buf will move as jmp_buf is now larger than 248 bytes. We | |
| 39 | cannot keep the altivec jmp_buf backward compatible with the jmp_buf. */ | |
| 40 | #ifndef	_ASM | |
| 41 | # if __WORDSIZE == 64 | |
| 42 | typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16))); | |
| 43 | # else | |
| 44 | /* The alignment is not essential, i.e.the buffer can be copied to a 4 byte | |
| 45 | aligned buffer as per the ABI it is just added for performance reasons. */ | |
| 46 | typedef long int __jmp_buf[64 + (12 * 4)] __attribute__ ((__aligned__ (16))); | |
| 47 | # endif | |
| 48 | #endif | |
| 49 | ||
| 50 | #endif /* bits/setjmp.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/sigstack.h created+32| ... | ... | @@ -0,0 +1,32 @@ |
| 1 | /* sigstack, sigaltstack definitions. | |
| 2 | Copyright (C) 1998-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_SIGSTACK_H | |
| 20 | #define _BITS_SIGSTACK_H 1 | |
| 21 | ||
| 22 | #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H | |
| 23 | # error "Never include this file directly. Use <signal.h> instead" | |
| 24 | #endif | |
| 25 | ||
| 26 | /* Minimum stack size for a signal handler. */ | |
| 27 | #define MINSIGSTKSZ	4096 | |
| 28 | ||
| 29 | /* System default stack size. */ | |
| 30 | #define SIGSTKSZ	16384 | |
| 31 | ||
| 32 | #endif /* bits/sigstack.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/socket-constants.h created+70| ... | ... | @@ -0,0 +1,70 @@ |
| 1 | /* Socket constants which vary among Linux architectures. Version for POWER. | |
| 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 | #ifndef _SYS_SOCKET_H | |
| 20 | # error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #define SOL_SOCKET 1 | |
| 24 | #define SO_ACCEPTCONN 30 | |
| 25 | #define SO_BROADCAST 6 | |
| 26 | #define SO_DONTROUTE 5 | |
| 27 | #define SO_ERROR 4 | |
| 28 | #define SO_KEEPALIVE 9 | |
| 29 | #define SO_LINGER 13 | |
| 30 | #define SO_OOBINLINE 10 | |
| 31 | #define SO_RCVBUF 8 | |
| 32 | #define SO_RCVLOWAT 16 | |
| 33 | #define SO_REUSEADDR 2 | |
| 34 | #define SO_SNDBUF 7 | |
| 35 | #define SO_SNDLOWAT 17 | |
| 36 | #define SO_TYPE 3 | |
| 37 | ||
| 38 | #if __TIMESIZE == 64 | |
| 39 | # define SO_RCVTIMEO 18 | |
| 40 | # define SO_SNDTIMEO 19 | |
| 41 | # define SO_TIMESTAMP 29 | |
| 42 | # define SO_TIMESTAMPNS 35 | |
| 43 | # define SO_TIMESTAMPING 37 | |
| 44 | #else | |
| 45 | # define SO_RCVTIMEO_OLD 18 | |
| 46 | # define SO_SNDTIMEO_OLD 19 | |
| 47 | # define SO_RCVTIMEO_NEW 66 | |
| 48 | # define SO_SNDTIMEO_NEW 67 | |
| 49 | ||
| 50 | # define SO_TIMESTAMP_OLD 29 | |
| 51 | # define SO_TIMESTAMPNS_OLD 35 | |
| 52 | # define SO_TIMESTAMPING_OLD 37 | |
| 53 | # define SO_TIMESTAMP_NEW 63 | |
| 54 | # define SO_TIMESTAMPNS_NEW 64 | |
| 55 | # define SO_TIMESTAMPING_NEW 65 | |
| 56 | ||
| 57 | # ifdef __USE_TIME_BITS64 | |
| 58 | # define SO_RCVTIMEO SO_RCVTIMEO_NEW | |
| 59 | # define SO_SNDTIMEO SO_SNDTIMEO_NEW | |
| 60 | # define SO_TIMESTAMP SO_TIMESTAMP_NEW | |
| 61 | # define SO_TIMESTAMPNS SO_TIMESTAMPNS_NEW | |
| 62 | # define SO_TIMESTAMPING SO_TIMESTAMPING_NEW | |
| 63 | # else | |
| 64 | # define SO_RCVTIMEO SO_RCVTIMEO_OLD | |
| 65 | # define SO_SNDTIMEO SO_SNDTIMEO_OLD | |
| 66 | # define SO_TIMESTAMP SO_TIMESTAMP_OLD | |
| 67 | # define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD | |
| 68 | # define SO_TIMESTAMPING SO_TIMESTAMPING_OLD | |
| 69 | # endif | |
| 70 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/struct_mutex.h created+63| ... | ... | @@ -0,0 +1,63 @@ |
| 1 | /* PowerPC 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 | #if __WORDSIZE == 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 | #if __WORDSIZE == 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 __elision; | |
| 46 | # define __spins __elision_data.__espins | |
| 47 | # define __elision __elision_data.__elision | |
| 48 | } __elision_data; | |
| 49 | __pthread_slist_t __list; | |
| 50 | }; | |
| 51 | # define __PTHREAD_MUTEX_HAVE_PREV 0 | |
| 52 | #endif | |
| 53 | }; | |
| 54 | ||
| 55 | #if __WORDSIZE == 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/powerpc-linux-gnueabi/bits/struct_rwlock.h created+61| ... | ... | @@ -0,0 +1,61 @@ |
| 1 | /* PowerPC 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 | #if __WORDSIZE == 64 | |
| 32 | int __cur_writer; | |
| 33 | int __shared; | |
| 34 | unsigned char __rwelision; | |
| 35 | unsigned char __pad1[7]; | |
| 36 | unsigned long int __pad2; | |
| 37 | /* FLAGS must stay at this position in the structure to maintain | |
| 38 | binary compatibility. */ | |
| 39 | unsigned int __flags; | |
| 40 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, {0, 0, 0, 0, 0, 0, 0 } | |
| 41 | #else | |
| 42 | unsigned char __rwelision; | |
| 43 | unsigned char __pad2; | |
| 44 | unsigned char __shared; | |
| 45 | /* FLAGS must stay at this position in the structure to maintain | |
| 46 | binary compatibility. */ | |
| 47 | unsigned char __flags; | |
| 48 | int __cur_writer; | |
| 49 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0 | |
| 50 | #endif | |
| 51 | }; | |
| 52 | ||
| 53 | #if __WORDSIZE == 64 | |
| 54 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | |
| 55 | 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags | |
| 56 | #else | |
| 57 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | |
| 58 | 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0, __flags, 0 | |
| 59 | #endif | |
| 60 | ||
| 61 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/struct_stat.h created+231| ... | ... | @@ -0,0 +1,231 @@ |
| 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 | #include <bits/wordsize.h> | |
| 27 | ||
| 28 | #if __WORDSIZE == 32 | |
| 29 | struct stat | |
| 30 | { | |
| 31 | # ifdef __USE_TIME_BITS64 | |
| 32 | # include <bits/struct_stat_time64_helper.h> | |
| 33 | # else | |
| 34 | __dev_t st_dev;			/* Device. */ | |
| 35 | # ifndef __USE_FILE_OFFSET64 | |
| 36 | unsigned short int __pad1; | |
| 37 | __ino_t st_ino;			/* File serial number.	*/ | |
| 38 | # else | |
| 39 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 40 | # endif | |
| 41 | __mode_t st_mode;			/* File mode. */ | |
| 42 | __nlink_t st_nlink;			/* Link count. */ | |
| 43 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 44 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 45 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 46 | unsigned short int __pad2; | |
| 47 | # ifndef __USE_FILE_OFFSET64 | |
| 48 | __off_t st_size;			/* Size of file, in bytes. */ | |
| 49 | # else | |
| 50 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 51 | # endif | |
| 52 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 53 | ||
| 54 | # ifndef __USE_FILE_OFFSET64 | |
| 55 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 56 | # else | |
| 57 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 58 | # endif | |
| 59 | # ifdef __USE_XOPEN2K8 | |
| 60 | /* Nanosecond resolution timestamps are stored in a format | |
| 61 | equivalent to 'struct timespec'. This is the type used | |
| 62 | whenever possible but the Unix namespace rules do not allow the | |
| 63 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 64 | Therefore we have to handle the use of this header in strictly | |
| 65 | standard-compliant sources special. */ | |
| 66 | struct timespec st_atim;		/* Time of last access. */ | |
| 67 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 68 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 69 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 70 | # define st_mtime st_mtim.tv_sec | |
| 71 | # define st_ctime st_ctim.tv_sec | |
| 72 | # else | |
| 73 | __time_t st_atime;			/* Time of last access. */ | |
| 74 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 75 | __time_t st_mtime;			/* Time of last modification. */ | |
| 76 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 77 | __time_t st_ctime;			/* Time of last status change. */ | |
| 78 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 79 | # endif | |
| 80 | unsigned long int __glibc_reserved4; | |
| 81 | unsigned long int __glibc_reserved5; | |
| 82 | # endif /* __USE_TIME_BITS64 */ | |
| 83 | }; | |
| 84 | ||
| 85 | # ifdef __USE_LARGEFILE64 | |
| 86 | struct stat64 | |
| 87 | { | |
| 88 | # ifdef __USE_TIME_BITS64 | |
| 89 | # include <bits/struct_stat_time64_helper.h> | |
| 90 | # else | |
| 91 | __dev_t st_dev;			/* Device. */ | |
| 92 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 93 | __mode_t st_mode;			/* File mode. */ | |
| 94 | __nlink_t st_nlink;			/* Link count. */ | |
| 95 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 96 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 97 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 98 | unsigned short int __pad2; | |
| 99 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 100 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 101 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 102 | # ifdef __USE_XOPEN2K8 | |
| 103 | /* Nanosecond resolution timestamps are stored in a format | |
| 104 | equivalent to 'struct timespec'. This is the type used | |
| 105 | whenever possible but the Unix namespace rules do not allow the | |
| 106 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 107 | Therefore we have to handle the use of this header in strictly | |
| 108 | standard-compliant sources special. */ | |
| 109 | struct timespec st_atim;		/* Time of last access. */ | |
| 110 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 111 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 112 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 113 | # define st_mtime st_mtim.tv_sec | |
| 114 | # define st_ctime st_ctim.tv_sec | |
| 115 | # else | |
| 116 | __time_t st_atime;			/* Time of last access. */ | |
| 117 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 118 | __time_t st_mtime;			/* Time of last modification. */ | |
| 119 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 120 | __time_t st_ctime;			/* Time of last status change. */ | |
| 121 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 122 | # endif | |
| 123 | unsigned long int __glibc_reserved4; | |
| 124 | unsigned long int __glibc_reserved5; | |
| 125 | # endif /* __USE_TIME_BITS64 */ | |
| 126 | }; | |
| 127 | # endif /* __USE_LARGEFILE64 */ | |
| 128 | ||
| 129 | #else /* __WORDSIZE == 32 */ | |
| 130 | ||
| 131 | struct stat | |
| 132 | { | |
| 133 | __dev_t st_dev;			/* Device. */ | |
| 134 | # ifndef __USE_FILE_OFFSET64 | |
| 135 | __ino_t st_ino;			/* File serial number.	*/ | |
| 136 | # else | |
| 137 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 138 | # endif | |
| 139 | __nlink_t st_nlink;			/* Link count. */ | |
| 140 | __mode_t st_mode;			/* File mode. */ | |
| 141 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 142 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 143 | int __pad2; | |
| 144 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 145 | # ifndef __USE_FILE_OFFSET64 | |
| 146 | __off_t st_size;			/* Size of file, in bytes. */ | |
| 147 | # else | |
| 148 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 149 | # endif | |
| 150 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 151 | ||
| 152 | # ifndef __USE_FILE_OFFSET64 | |
| 153 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 154 | # else | |
| 155 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 156 | # endif | |
| 157 | # ifdef __USE_XOPEN2K8 | |
| 158 | /* Nanosecond resolution timestamps are stored in a format | |
| 159 | equivalent to 'struct timespec'. This is the type used | |
| 160 | whenever possible but the Unix namespace rules do not allow the | |
| 161 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 162 | Therefore we have to handle the use of this header in strictly | |
| 163 | standard-compliant sources special. */ | |
| 164 | struct timespec st_atim;		/* Time of last access. */ | |
| 165 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 166 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 167 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 168 | # define st_mtime st_mtim.tv_sec | |
| 169 | # define st_ctime st_ctim.tv_sec | |
| 170 | # else | |
| 171 | __time_t st_atime;			/* Time of last access. */ | |
| 172 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 173 | __time_t st_mtime;			/* Time of last modification. */ | |
| 174 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 175 | __time_t st_ctime;			/* Time of last status change. */ | |
| 176 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 177 | # endif | |
| 178 | unsigned long int __glibc_reserved4; | |
| 179 | unsigned long int __glibc_reserved5; | |
| 180 | unsigned long int __glibc_reserved6; | |
| 181 | }; | |
| 182 | ||
| 183 | # ifdef __USE_LARGEFILE64 | |
| 184 | struct stat64 | |
| 185 | { | |
| 186 | __dev_t st_dev;			/* Device. */ | |
| 187 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 188 | __nlink_t st_nlink;			/* Link count. */ | |
| 189 | __mode_t st_mode;			/* File mode. */ | |
| 190 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 191 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 192 | int __pad2; | |
| 193 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 194 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 195 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 196 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 197 | # ifdef __USE_XOPEN2K8 | |
| 198 | /* Nanosecond resolution timestamps are stored in a format | |
| 199 | equivalent to 'struct timespec'. This is the type used | |
| 200 | whenever possible but the Unix namespace rules do not allow the | |
| 201 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 202 | Therefore we have to handle the use of this header in strictly | |
| 203 | standard-compliant sources special. */ | |
| 204 | struct timespec st_atim;		/* Time of last access. */ | |
| 205 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 206 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 207 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 208 | # define st_mtime st_mtim.tv_sec | |
| 209 | # define st_ctime st_ctim.tv_sec | |
| 210 | # else | |
| 211 | __time_t st_atime;			/* Time of last access. */ | |
| 212 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 213 | __time_t st_mtime;			/* Time of last modification. */ | |
| 214 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 215 | __time_t st_ctime;			/* Time of last status change. */ | |
| 216 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 217 | # endif | |
| 218 | unsigned long int __glibc_reserved4; | |
| 219 | unsigned long int __glibc_reserved5; | |
| 220 | unsigned long int __glibc_reserved6; | |
| 221 | }; | |
| 222 | # endif /* __USE_LARGEFILE64 */ | |
| 223 | #endif | |
| 224 | ||
| 225 | /* Tell code we have these members. */ | |
| 226 | #define	_STATBUF_ST_BLKSIZE | |
| 227 | #define _STATBUF_ST_RDEV | |
| 228 | /* Nanosecond resolution time values are supported. */ | |
| 229 | #define _STATBUF_ST_NSEC | |
| 230 | ||
| 231 | #endif /* _BITS_STRUCT_STAT_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/termios-baud.h created+45| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | /* termios baud rate selection definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-baud.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_MISC | |
| 24 | # define CBAUD	0000377 | |
| 25 | # define CBAUDEX 0000020 | |
| 26 | # define CMSPAR 010000000000		/* mark or space (stick) parity */ | |
| 27 | # define CRTSCTS 020000000000		/* flow control */ | |
| 28 | #endif | |
| 29 | ||
| 30 | #define B57600 00020 | |
| 31 | #define B115200 00021 | |
| 32 | #define B230400 00022 | |
| 33 | #define B460800 00023 | |
| 34 | #define B500000 00024 | |
| 35 | #define B576000 00025 | |
| 36 | #define B921600 00026 | |
| 37 | #define B1000000 00027 | |
| 38 | #define B1152000 00030 | |
| 39 | #define B1500000 00031 | |
| 40 | #define B2000000 00032 | |
| 41 | #define B2500000 00033 | |
| 42 | #define B3000000 00034 | |
| 43 | #define B3500000 00035 | |
| 44 | #define B4000000 00036 | |
| 45 | #define __MAX_BAUD B4000000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/termios-c_cc.h created+41| ... | ... | @@ -0,0 +1,41 @@ |
| 1 | /* termios c_cc symbolic constant definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_cc.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_cc characters */ | |
| 24 | #define VINTR	0 | |
| 25 | #define VQUIT	1 | |
| 26 | #define VERASE	2 | |
| 27 | #define VKILL	3 | |
| 28 | #define VEOF	4 | |
| 29 | #define VMIN	5 | |
| 30 | #define VEOL	6 | |
| 31 | #define VTIME	7 | |
| 32 | #define VEOL2	8 | |
| 33 | #define VSWTC	9 | |
| 34 | ||
| 35 | #define VWERASE	10 | |
| 36 | #define VREPRINT	11 | |
| 37 | #define VSUSP		12 | |
| 38 | #define VSTART		13 | |
| 39 | #define VSTOP		14 | |
| 40 | #define VLNEXT		15 | |
| 41 | #define VDISCARD	16 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/termios-c_cflag.h created+35| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | /* termios control mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_cflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #define CSIZE	00001400 | |
| 24 | #define CS5	00000000 | |
| 25 | #define CS6	00000400 | |
| 26 | #define CS7	00001000 | |
| 27 | #define CS8	00001400 | |
| 28 | ||
| 29 | #define CSTOPB	00002000 | |
| 30 | #define CREAD	00004000 | |
| 31 | #define PARENB	00010000 | |
| 32 | #define PARODD	00020000 | |
| 33 | #define HUPCL	00040000 | |
| 34 | ||
| 35 | #define CLOCAL	00100000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/termios-c_iflag.h created+38| ... | ... | @@ -0,0 +1,38 @@ |
| 1 | /* termios input mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_iflags.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_iflag bits */ | |
| 24 | #define IGNBRK	0000001 | |
| 25 | #define BRKINT	0000002 | |
| 26 | #define IGNPAR	0000004 | |
| 27 | #define PARMRK	0000010 | |
| 28 | #define INPCK	0000020 | |
| 29 | #define ISTRIP	0000040 | |
| 30 | #define INLCR	0000100 | |
| 31 | #define IGNCR	0000200 | |
| 32 | #define ICRNL	0000400 | |
| 33 | #define IXON	0001000 | |
| 34 | #define IXOFF	0002000 | |
| 35 | #define IXANY	0004000 | |
| 36 | #define IUCLC	0010000 | |
| 37 | #define IMAXBEL	0020000 | |
| 38 | #define IUTF8	0040000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/termios-c_lflag.h created+45| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | /* termios local mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_lflag bits */ | |
| 24 | #define ISIG	0x00000080 | |
| 25 | #define ICANON	0x00000100 | |
| 26 | #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) | |
| 27 | # define XCASE	0x00004000 | |
| 28 | #endif | |
| 29 | #define ECHO	0x00000008 | |
| 30 | #define ECHOE	0x00000002 | |
| 31 | #define ECHOK	0x00000004 | |
| 32 | #define ECHONL	0x00000010 | |
| 33 | #define NOFLSH	0x80000000 | |
| 34 | #define TOSTOP	0x00400000 | |
| 35 | #ifdef __USE_MISC | |
| 36 | # define ECHOCTL	0x00000040 | |
| 37 | # define ECHOPRT	0x00000020 | |
| 38 | # define ECHOKE	0x00000001 | |
| 39 | # define FLUSHO	0x00800000 | |
| 40 | # define PENDIN	0x20000000 | |
| 41 | #endif | |
| 42 | #define IEXTEN	0x00000400 | |
| 43 | #ifdef __USE_MISC | |
| 44 | # define EXTPROC 0x10000000 | |
| 45 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/termios-c_oflag.h created+65| ... | ... | @@ -0,0 +1,65 @@ |
| 1 | /* termios output mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_oflag bits */ | |
| 24 | #define OPOST	0000001 | |
| 25 | #define ONLCR	0000002 | |
| 26 | #define OLCUC	0000004 | |
| 27 | ||
| 28 | #define OCRNL	0000010 | |
| 29 | #define ONOCR	0000020 | |
| 30 | #define ONLRET	0000040 | |
| 31 | ||
| 32 | #define OFILL	00000100 | |
| 33 | #define OFDEL	00000200 | |
| 34 | #if defined __USE_MISC || defined __USE_XOPEN | |
| 35 | # define NLDLY	00001400 | |
| 36 | # define NL0	00000000 | |
| 37 | # define NL1	00000400 | |
| 38 | # if defined __USE_MISC | |
| 39 | # define NL2	00001000 | |
| 40 | # define NL3	00001400 | |
| 41 | # endif | |
| 42 | # define TABDLY	00006000 | |
| 43 | # define TAB0	00000000 | |
| 44 | # define TAB1	00002000 | |
| 45 | # define TAB2	00004000 | |
| 46 | # define TAB3	00006000 | |
| 47 | # define CRDLY	00030000 | |
| 48 | # define CR0	00000000 | |
| 49 | # define CR1	00010000 | |
| 50 | # define CR2	00020000 | |
| 51 | # define CR3	00030000 | |
| 52 | # define FFDLY	00040000 | |
| 53 | # define FF0	00000000 | |
| 54 | # define FF1	00040000 | |
| 55 | # define BSDLY	00100000 | |
| 56 | # define BS0	00000000 | |
| 57 | # define BS1	00100000 | |
| 58 | #endif | |
| 59 | #define VTDLY	00200000 | |
| 60 | #define VT0	00000000 | |
| 61 | #define VT1	00200000 | |
| 62 | ||
| 63 | #ifdef __USE_MISC | |
| 64 | # define XTABS	00006000 | |
| 65 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/termios-misc.h created+72| ... | ... | @@ -0,0 +1,72 @@ |
| 1 | /* termios baud platform specific definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-misc.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_MISC | |
| 24 | ||
| 25 | struct sgttyb { | |
| 26 | 	char	sg_ispeed; | |
| 27 | 	char	sg_ospeed; | |
| 28 | 	char	sg_erase; | |
| 29 | 	char	sg_kill; | |
| 30 | 	short	sg_flags; | |
| 31 | }; | |
| 32 | ||
| 33 | struct tchars { | |
| 34 | 	char	t_intrc; | |
| 35 | 	char	t_quitc; | |
| 36 | 	char	t_startc; | |
| 37 | 	char	t_stopc; | |
| 38 | 	char	t_eofc; | |
| 39 | 	char	t_brkc; | |
| 40 | }; | |
| 41 | ||
| 42 | struct ltchars { | |
| 43 | 	char	t_suspc; | |
| 44 | 	char	t_dsuspc; | |
| 45 | 	char	t_rprntc; | |
| 46 | 	char	t_flushc; | |
| 47 | 	char	t_werasc; | |
| 48 | 	char	t_lnextc; | |
| 49 | }; | |
| 50 | ||
| 51 | /* Used for packet mode */ | |
| 52 | #define TIOCPKT_DATA		 0 | |
| 53 | #define TIOCPKT_FLUSHREAD	 1 | |
| 54 | #define TIOCPKT_FLUSHWRITE	 2 | |
| 55 | #define TIOCPKT_STOP		 4 | |
| 56 | #define TIOCPKT_START		 8 | |
| 57 | #define TIOCPKT_NOSTOP		16 | |
| 58 | #define TIOCPKT_DOSTOP		32 | |
| 59 | ||
| 60 | /* c_cc characters */ | |
| 61 | #define _VINTR	0 | |
| 62 | #define _VQUIT	1 | |
| 63 | #define _VERASE	2 | |
| 64 | #define _VKILL	3 | |
| 65 | #define _VEOF	4 | |
| 66 | #define _VMIN	5 | |
| 67 | #define _VEOL	6 | |
| 68 | #define _VTIME	7 | |
| 69 | #define _VEOL2	8 | |
| 70 | #define _VSWTC	9 | |
| 71 | ||
| 72 | #endif /* __USE_MISC */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/types/struct_msqid_ds.h created+53| ... | ... | @@ -0,0 +1,53 @@ |
| 1 | /* Linux/PowerPC implementation of the SysV message struct msqid_ds. | |
| 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 | #ifndef _SYS_MSG_H | |
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #include <bits/types/time_t.h> | |
| 24 | ||
| 25 | /* Structure of record for one message inside the kernel. | |
| 26 | The type `struct msg' is opaque. */ | |
| 27 | struct msqid_ds | |
| 28 | { | |
| 29 | #ifdef __USE_TIME_BITS64 | |
| 30 | # include <bits/types/struct_msqid64_ds_helper.h> | |
| 31 | #else | |
| 32 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | |
| 33 | # if __TIMESIZE == 32 | |
| 34 | unsigned long int __msg_stime_high; | |
| 35 | __time_t msg_stime;		/* time of last msgsnd command */ | |
| 36 | unsigned long int __msg_rtime_high; | |
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | |
| 38 | unsigned long int __msg_ctime_high; | |
| 39 | __time_t msg_ctime;		/* time of last change */ | |
| 40 | # else | |
| 41 | __time_t msg_stime;		/* time of last msgsnd command */ | |
| 42 | __time_t msg_rtime;		/* time of last msgsnd command */ | |
| 43 | __time_t msg_ctime;		/* time of last change */ | |
| 44 | # endif | |
| 45 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | |
| 46 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | |
| 47 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | |
| 48 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | |
| 49 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | |
| 50 | __syscall_ulong_t __glibc_reserved4; | |
| 51 | __syscall_ulong_t __glibc_reserved5; | |
| 52 | #endif | |
| 53 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/types/struct_semid_ds.h created+43| ... | ... | @@ -0,0 +1,43 @@ |
| 1 | /* PowerPC 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 | # if __TIMESIZE == 32 | |
| 31 | __syscall_ulong_t __sem_otime_high; | |
| 32 | __time_t sem_otime; /* last semop() time */ | |
| 33 | __syscall_ulong_t __sem_ctime_high; | |
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | |
| 35 | # else | |
| 36 | __time_t sem_otime; /* last semop() time */ | |
| 37 | __time_t sem_ctime; /* last time changed by semctl() */ | |
| 38 | # endif | |
| 39 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | |
| 40 | __syscall_ulong_t __glibc_reserved3; | |
| 41 | __syscall_ulong_t __glibc_reserved4; | |
| 42 | #endif | |
| 43 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/types/struct_shmid_ds.h created+50| ... | ... | @@ -0,0 +1,50 @@ |
| 1 | /* Linux/PowerPC implementation of the shared memory struct shmid_ds. | |
| 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 | #ifndef _SYS_SHM_H | |
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Data structure describing a shared memory segment. */ | |
| 24 | struct shmid_ds | |
| 25 | { | |
| 26 | #ifdef __USE_TIME_BITS64 | |
| 27 | # include <bits/types/struct_shmid64_ds_helper.h> | |
| 28 | #else | |
| 29 | struct ipc_perm shm_perm;		/* operation permission struct */ | |
| 30 | # if __TIMESIZE == 32 | |
| 31 | unsigned long int __shm_atime_high; | |
| 32 | __time_t shm_atime;			/* time of last shmat() */ | |
| 33 | unsigned long int __shm_dtime_high; | |
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | |
| 35 | unsigned long int __shm_ctime_high; | |
| 36 | __time_t shm_ctime;			/* time of last change by shmctl() */ | |
| 37 | unsigned long int __glibc_reserved4; | |
| 38 | # else | |
| 39 | __time_t shm_atime;			/* time of last shmat() */ | |
| 40 | __time_t shm_dtime;			/* time of last shmdt() */ | |
| 41 | __time_t shm_ctime;			/* time of last change by shmctl() */ | |
| 42 | # endif | |
| 43 | size_t shm_segsz;			/* size of segment in bytes */ | |
| 44 | __pid_t shm_cpid;			/* pid of creator */ | |
| 45 | __pid_t shm_lpid;			/* pid of last shmop */ | |
| 46 | shmatt_t shm_nattch;		/* number of current attaches */ | |
| 47 | __syscall_ulong_t __glibc_reserved5; | |
| 48 | __syscall_ulong_t __glibc_reserved6; | |
| 49 | #endif | |
| 50 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/bits/wordsize.h created+11| ... | ... | @@ -0,0 +1,11 @@ |
| 1 | /* Determine the wordsize from the preprocessor defines. */ | |
| 2 | ||
| 3 | #if defined __powerpc64__ | |
| 4 | # define __WORDSIZE	64 | |
| 5 | # define __WORDSIZE_TIME64_COMPAT32	1 | |
| 6 | #else | |
| 7 | # define __WORDSIZE	32 | |
| 8 | # define __WORDSIZE_TIME64_COMPAT32	0 | |
| 9 | # define __WORDSIZE32_SIZE_ULONG	0 | |
| 10 | # define __WORDSIZE32_PTRDIFF_LONG	0 | |
| 11 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/fpu_control.h created+114| ... | ... | @@ -0,0 +1,114 @@ |
| 1 | /* FPU control word definitions. PowerPC version. | |
| 2 | Copyright (C) 1996-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 _FPU_CONTROL_H | |
| 20 | #define _FPU_CONTROL_H | |
| 21 | ||
| 22 | #if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT) | |
| 23 | # error "SPE/e500 is no longer supported" | |
| 24 | #endif | |
| 25 | ||
| 26 | #ifdef _SOFT_FLOAT | |
| 27 | ||
| 28 | # define _FPU_RESERVED 0xffffffff | |
| 29 | # define _FPU_DEFAULT 0x00000000 /* Default value. */ | |
| 30 | typedef unsigned int fpu_control_t; | |
| 31 | # define _FPU_GETCW(cw) (cw) = 0 | |
| 32 | # define _FPU_SETCW(cw) (void) (cw) | |
| 33 | extern fpu_control_t __fpu_control; | |
| 34 | ||
| 35 | #else /* PowerPC 6xx floating-point. */ | |
| 36 | ||
| 37 | /* rounding control */ | |
| 38 | # define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */ | |
| 39 | # define _FPU_RC_DOWN 0x03 | |
| 40 | # define _FPU_RC_UP 0x02 | |
| 41 | # define _FPU_RC_ZERO 0x01 | |
| 42 | ||
| 43 | # define _FPU_MASK_RC (_FPU_RC_NEAREST|_FPU_RC_DOWN|_FPU_RC_UP|_FPU_RC_ZERO) | |
| 44 | ||
| 45 | # define _FPU_MASK_NI 0x04 /* non-ieee mode */ | |
| 46 | ||
| 47 | /* masking of interrupts */ | |
| 48 | # define _FPU_MASK_ZM 0x10 /* zero divide */ | |
| 49 | # define _FPU_MASK_OM 0x40 /* overflow */ | |
| 50 | # define _FPU_MASK_UM 0x20 /* underflow */ | |
| 51 | # define _FPU_MASK_XM 0x08 /* inexact */ | |
| 52 | # define _FPU_MASK_IM 0x80 /* invalid operation */ | |
| 53 | ||
| 54 | # define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */ | |
| 55 | ||
| 56 | /* The fdlibm code requires no interrupts for exceptions. */ | |
| 57 | # define _FPU_DEFAULT 0x00000000 /* Default value. */ | |
| 58 | ||
| 59 | /* IEEE: same as above, but (some) exceptions; | |
| 60 | we leave the 'inexact' exception off. | |
| 61 | */ | |
| 62 | # define _FPU_IEEE 0x000000f0 | |
| 63 | ||
| 64 | /* Type of the control word. */ | |
| 65 | typedef unsigned int fpu_control_t; | |
| 66 | ||
| 67 | /* Macros for accessing the hardware control word. */ | |
| 68 | # define _FPU_GETCW(cw)						\ | |
| 69 | ({union { double __d; unsigned long long __ll; } __u;		\ | |
| 70 | __asm__ __volatile__("mffs %0" : "=f" (__u.__d));		\ | |
| 71 | (cw) = (fpu_control_t) __u.__ll;				\ | |
| 72 | (fpu_control_t) __u.__ll;					\ | |
| 73 | }) | |
| 74 | ||
| 75 | # define _FPU_GET_RC_ISA300()						\ | |
| 76 | ({union { double __d; unsigned long long __ll; } __u;			\ | |
| 77 | __asm__ __volatile__(						\ | |
| 78 | ".machine push; .machine \"power9\"; mffsl %0; .machine pop" 	\ | |
| 79 | : "=f" (__u.__d));						\ | |
| 80 | (fpu_control_t) (__u.__ll & _FPU_MASK_RC);				\ | |
| 81 | }) | |
| 82 | ||
| 83 | # ifdef _ARCH_PWR9 | |
| 84 | # define _FPU_GET_RC() _FPU_GET_RC_ISA300() | |
| 85 | # elif defined __BUILTIN_CPU_SUPPORTS__ | |
| 86 | # define _FPU_GET_RC()							\ | |
| 87 | ({fpu_control_t __rc;							\ | |
| 88 | __rc = __glibc_likely (__builtin_cpu_supports ("arch_3_00"))	\ | |
| 89 | ? _FPU_GET_RC_ISA300 ()						\ | |
| 90 | : _FPU_GETCW (__rc) & _FPU_MASK_RC;				\ | |
| 91 | __rc;								\ | |
| 92 | }) | |
| 93 | # else | |
| 94 | # define _FPU_GET_RC()						\ | |
| 95 | ({fpu_control_t __rc = _FPU_GETCW (__rc) & _FPU_MASK_RC;	\ | |
| 96 | __rc;							\ | |
| 97 | }) | |
| 98 | # endif | |
| 99 | ||
| 100 | # define _FPU_SETCW(cw)						\ | |
| 101 | { union { double __d; unsigned long long __ll; } __u;		\ | |
| 102 | register double __fr;					\ | |
| 103 | __u.__ll = 0xfff80000LL << 32; /* This is a QNaN. */	\ | |
| 104 | __u.__ll |= (cw) & 0xffffffffLL;				\ | |
| 105 | __fr = __u.__d;						\ | |
| 106 | __asm__ __volatile__("mtfsf 255,%0" : : "f" (__fr));	\ | |
| 107 | } | |
| 108 | ||
| 109 | /* Default control word set at startup. */ | |
| 110 | extern fpu_control_t __fpu_control; | |
| 111 | ||
| 112 | #endif /* PowerPC 6xx floating-point. */ | |
| 113 | ||
| 114 | #endif /* _FPU_CONTROL_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/gnu/lib-names-32.h created+29| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | /* This file is automatically generated. */ | |
| 2 | #ifndef __GNU_LIB_NAMES_H | |
| 3 | # error "Never use <gnu/lib-names-32.h> directly; include <gnu/lib-names.h> instead." | |
| 4 | #endif | |
| 5 | ||
| 6 | #define LD_SO "ld.so.1" | |
| 7 | #define LIBANL_SO "libanl.so.1" | |
| 8 | #define LIBBROKENLOCALE_SO "libBrokenLocale.so.1" | |
| 9 | #define LIBCRYPT_SO "libcrypt.so.1" | |
| 10 | #define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0" | |
| 11 | #define LIBC_SO "libc.so.6" | |
| 12 | #define LIBDL_SO "libdl.so.2" | |
| 13 | #define LIBGCC_S_SO "libgcc_s.so.1" | |
| 14 | #define LIBMVEC_SO "libmvec.so.1" | |
| 15 | #define LIBM_SO "libm.so.6" | |
| 16 | #define LIBNSL_SO "libnsl.so.1" | |
| 17 | #define LIBNSS_COMPAT_SO "libnss_compat.so.2" | |
| 18 | #define LIBNSS_DB_SO "libnss_db.so.2" | |
| 19 | #define LIBNSS_DNS_SO "libnss_dns.so.2" | |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | |
| 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | |
| 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | |
| 25 | #define LIBPTHREAD_SO "libpthread.so.0" | |
| 26 | #define LIBRESOLV_SO "libresolv.so.2" | |
| 27 | #define LIBRT_SO "librt.so.1" | |
| 28 | #define LIBTHREAD_DB_SO "libthread_db.so.1" | |
| 29 | #define LIBUTIL_SO "libutil.so.1" | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/gnu/lib-names.h created+19| ... | ... | @@ -0,0 +1,19 @@ |
| 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 | #include <bits/wordsize.h> | |
| 8 | ||
| 9 | #if __WORDSIZE == 32 | |
| 10 | # include <gnu/lib-names-32.h> | |
| 11 | #endif | |
| 12 | #if __WORDSIZE == 64 && _CALL_ELF != 2 | |
| 13 | # include <gnu/lib-names-64-v1.h> | |
| 14 | #endif | |
| 15 | #if __WORDSIZE == 64 && _CALL_ELF == 2 | |
| 16 | # include <gnu/lib-names-64-v2.h> | |
| 17 | #endif | |
| 18 | ||
| 19 | #endif	/* gnu/lib-names.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/gnu/stubs.h created+15| ... | ... | @@ -0,0 +1,15 @@ |
| 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 | #include <bits/wordsize.h> | |
| 6 | ||
| 7 | #if __WORDSIZE == 32 | |
| 8 | # include <gnu/stubs-32.h> | |
| 9 | #endif | |
| 10 | #if __WORDSIZE == 64 && _CALL_ELF != 2 | |
| 11 | # include <gnu/stubs-64-v1.h> | |
| 12 | #endif | |
| 13 | #if __WORDSIZE == 64 && _CALL_ELF == 2 | |
| 14 | # include <gnu/stubs-64-v2.h> | |
| 15 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/ieee754.h created+197| ... | ... | @@ -0,0 +1,197 @@ |
| 1 | /* Copyright (C) 1992-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 _IEEE754_H | |
| 19 | #define _IEEE754_H 1 | |
| 20 | ||
| 21 | #include <features.h> | |
| 22 | ||
| 23 | #include <bits/endian.h> | |
| 24 | #include <bits/floatn.h> | |
| 25 | ||
| 26 | __BEGIN_DECLS | |
| 27 | ||
| 28 | union ieee754_float | |
| 29 | { | |
| 30 | float f; | |
| 31 | ||
| 32 | /* This is the IEEE 754 single-precision format. */ | |
| 33 | struct | |
| 34 | { | |
| 35 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 36 | 	unsigned int negative:1; | |
| 37 | 	unsigned int exponent:8; | |
| 38 | 	unsigned int mantissa:23; | |
| 39 | #endif				/* Big endian. */ | |
| 40 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 41 | 	unsigned int mantissa:23; | |
| 42 | 	unsigned int exponent:8; | |
| 43 | 	unsigned int negative:1; | |
| 44 | #endif				/* Little endian. */ | |
| 45 | } ieee; | |
| 46 | ||
| 47 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 48 | struct | |
| 49 | { | |
| 50 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 51 | 	unsigned int negative:1; | |
| 52 | 	unsigned int exponent:8; | |
| 53 | 	unsigned int quiet_nan:1; | |
| 54 | 	unsigned int mantissa:22; | |
| 55 | #endif				/* Big endian. */ | |
| 56 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 57 | 	unsigned int mantissa:22; | |
| 58 | 	unsigned int quiet_nan:1; | |
| 59 | 	unsigned int exponent:8; | |
| 60 | 	unsigned int negative:1; | |
| 61 | #endif				/* Little endian. */ | |
| 62 | } ieee_nan; | |
| 63 | }; | |
| 64 | ||
| 65 | #define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent. */ | |
| 66 | ||
| 67 | ||
| 68 | union ieee754_double | |
| 69 | { | |
| 70 | double d; | |
| 71 | ||
| 72 | /* This is the IEEE 754 double-precision format. */ | |
| 73 | struct | |
| 74 | { | |
| 75 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 76 | 	unsigned int negative:1; | |
| 77 | 	unsigned int exponent:11; | |
| 78 | 	/* Together these comprise the mantissa. */ | |
| 79 | 	unsigned int mantissa0:20; | |
| 80 | 	unsigned int mantissa1:32; | |
| 81 | #endif				/* Big endian. */ | |
| 82 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 83 | 	/* Together these comprise the mantissa. */ | |
| 84 | 	unsigned int mantissa1:32; | |
| 85 | 	unsigned int mantissa0:20; | |
| 86 | 	unsigned int exponent:11; | |
| 87 | 	unsigned int negative:1; | |
| 88 | #endif				/* Little endian. */ | |
| 89 | } ieee; | |
| 90 | ||
| 91 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 92 | struct | |
| 93 | { | |
| 94 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 95 | 	unsigned int negative:1; | |
| 96 | 	unsigned int exponent:11; | |
| 97 | 	unsigned int quiet_nan:1; | |
| 98 | 	/* Together these comprise the mantissa. */ | |
| 99 | 	unsigned int mantissa0:19; | |
| 100 | 	unsigned int mantissa1:32; | |
| 101 | #else | |
| 102 | 	/* Together these comprise the mantissa. */ | |
| 103 | 	unsigned int mantissa1:32; | |
| 104 | 	unsigned int mantissa0:19; | |
| 105 | 	unsigned int quiet_nan:1; | |
| 106 | 	unsigned int exponent:11; | |
| 107 | 	unsigned int negative:1; | |
| 108 | #endif | |
| 109 | } ieee_nan; | |
| 110 | }; | |
| 111 | ||
| 112 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ | |
| 113 | ||
| 114 | ||
| 115 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | |
| 116 | /* long double is IEEE 128 bit */ | |
| 117 | union ieee854_long_double | |
| 118 | { | |
| 119 | long double d; | |
| 120 | ||
| 121 | /* This is the IEEE 854 quad-precision format. */ | |
| 122 | struct | |
| 123 | { | |
| 124 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 125 | 	unsigned int negative:1; | |
| 126 | 	unsigned int exponent:15; | |
| 127 | 	/* Together these comprise the mantissa. */ | |
| 128 | 	unsigned int mantissa0:16; | |
| 129 | 	unsigned int mantissa1:32; | |
| 130 | 	unsigned int mantissa2:32; | |
| 131 | 	unsigned int mantissa3:32; | |
| 132 | #endif				/* Big endian. */ | |
| 133 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 134 | 	/* Together these comprise the mantissa. */ | |
| 135 | 	unsigned int mantissa3:32; | |
| 136 | 	unsigned int mantissa2:32; | |
| 137 | 	unsigned int mantissa1:32; | |
| 138 | 	unsigned int mantissa0:16; | |
| 139 | 	unsigned int exponent:15; | |
| 140 | 	unsigned int negative:1; | |
| 141 | #endif				/* Little endian. */ | |
| 142 | } ieee; | |
| 143 | ||
| 144 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 145 | struct | |
| 146 | { | |
| 147 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 148 | 	unsigned int negative:1; | |
| 149 | 	unsigned int exponent:15; | |
| 150 | 	unsigned int quiet_nan:1; | |
| 151 | 	/* Together these comprise the mantissa. */ | |
| 152 | 	unsigned int mantissa0:15; | |
| 153 | 	unsigned int mantissa1:32; | |
| 154 | 	unsigned int mantissa2:32; | |
| 155 | 	unsigned int mantissa3:32; | |
| 156 | #else | |
| 157 | 	/* Together these comprise the mantissa. */ | |
| 158 | 	unsigned int mantissa3:32; | |
| 159 | 	unsigned int mantissa2:32; | |
| 160 | 	unsigned int mantissa1:32; | |
| 161 | 	unsigned int mantissa0:15; | |
| 162 | 	unsigned int quiet_nan:1; | |
| 163 | 	unsigned int exponent:15; | |
| 164 | 	unsigned int negative:1; | |
| 165 | #endif | |
| 166 | } ieee_nan; | |
| 167 | }; | |
| 168 | ||
| 169 | #define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */ | |
| 170 | #endif | |
| 171 | ||
| 172 | ||
| 173 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 || __GNUC_PREREQ (7, 0) | |
| 174 | /* IBM extended format for long double. | |
| 175 | ||
| 176 | Each long double is made up of two IEEE doubles. The value of the | |
| 177 | long double is the sum of the values of the two parts. The most | |
| 178 | significant part is required to be the value of the long double | |
| 179 | rounded to the nearest double, as specified by IEEE. For Inf | |
| 180 | values, the least significant part is required to be one of +0.0 or | |
| 181 | -0.0. No other requirements are made; so, for example, 1.0 may be | |
| 182 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a | |
| 183 | NaN is don't-care. */ | |
| 184 | union ibm_extended_long_double | |
| 185 | { | |
| 186 | # if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && __GNUC_PREREQ (7, 0) | |
| 187 | __ibm128 ld; | |
| 188 | # else | |
| 189 | long double ld; | |
| 190 | # endif | |
| 191 | union ieee754_double d[2]; | |
| 192 | }; | |
| 193 | #endif | |
| 194 | ||
| 195 | __END_DECLS | |
| 196 | ||
| 197 | #endif /* ieee754.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/sys/ptrace.h created+272| ... | ... | @@ -0,0 +1,272 @@ |
| 1 | /* `ptrace' debugger support interface. Linux/PowerPC 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_PTRACE_H | |
| 20 | #define _SYS_PTRACE_H	1 | |
| 21 | ||
| 22 | #include <features.h> | |
| 23 | #include <bits/types.h> | |
| 24 | ||
| 25 | __BEGIN_DECLS | |
| 26 | ||
| 27 | #if defined _LINUX_PTRACE_H || defined _ASM_POWERPC_PTRACE_H | |
| 28 | /* Do not let Linux headers macros interfere with enum __ptrace_request. */ | |
| 29 | # undef PTRACE_ATTACH | |
| 30 | # undef PTRACE_CONT | |
| 31 | # undef PTRACE_DETACH | |
| 32 | # undef PTRACE_GET_DEBUGREG | |
| 33 | # undef PTRACE_GETEVENTMSG | |
| 34 | # undef PTRACE_GETEVRREGS | |
| 35 | # undef PTRACE_GETFPREGS | |
| 36 | # undef PTRACE_GETREGS | |
| 37 | # undef PTRACE_GETREGS64 | |
| 38 | # undef PTRACE_GETREGSET | |
| 39 | # undef PTRACE_GETSIGINFO | |
| 40 | # undef PTRACE_GETSIGMASK | |
| 41 | # undef PTRACE_GET_SYSCALL_INFO | |
| 42 | # undef PTRACE_GETVRREGS | |
| 43 | # undef PTRACE_GETVSRREGS | |
| 44 | # undef PTRACE_INTERRUPT | |
| 45 | # undef PTRACE_KILL | |
| 46 | # undef PTRACE_LISTEN | |
| 47 | # undef PTRACE_PEEKDATA | |
| 48 | # undef PTRACE_PEEKSIGINFO | |
| 49 | # undef PTRACE_PEEKTEXT | |
| 50 | # undef PTRACE_POKEDATA | |
| 51 | # undef PTRACE_POKETEXT | |
| 52 | # undef PTRACE_SECCOMP_GET_FILTER | |
| 53 | # undef PTRACE_SECCOMP_GET_METADATA | |
| 54 | # undef PTRACE_SEIZE | |
| 55 | # undef PTRACE_SET_DEBUGREG | |
| 56 | # undef PTRACE_SETEVRREGS | |
| 57 | # undef PTRACE_SETFPREGS | |
| 58 | # undef PTRACE_SETOPTIONS | |
| 59 | # undef PTRACE_SETREGS | |
| 60 | # undef PTRACE_SETREGS64 | |
| 61 | # undef PTRACE_SETREGSET | |
| 62 | # undef PTRACE_SETSIGINFO | |
| 63 | # undef PTRACE_SETSIGMASK | |
| 64 | # undef PTRACE_SETVRREGS | |
| 65 | # undef PTRACE_SETVSRREGS | |
| 66 | # undef PTRACE_SINGLEBLOCK | |
| 67 | # undef PTRACE_SINGLESTEP | |
| 68 | # undef PTRACE_SYSCALL | |
| 69 | # undef PTRACE_SYSCALL_INFO_NONE | |
| 70 | # undef PTRACE_SYSCALL_INFO_ENTRY | |
| 71 | # undef PTRACE_SYSCALL_INFO_EXIT | |
| 72 | # undef PTRACE_SYSCALL_INFO_SECCOMP | |
| 73 | # undef PTRACE_SYSEMU | |
| 74 | # undef PTRACE_SYSEMU_SINGLESTEP | |
| 75 | # undef PTRACE_TRACEME | |
| 76 | #endif | |
| 77 | ||
| 78 | /* Type of the REQUEST argument to `ptrace.' */ | |
| 79 | enum __ptrace_request | |
| 80 | { | |
| 81 | /* Indicate that the process making this request should be traced. | |
| 82 | All signals received by this process can be intercepted by its | |
| 83 | parent, and its parent can use the other `ptrace' requests. */ | |
| 84 | PTRACE_TRACEME = 0, | |
| 85 | #define PT_TRACE_ME PTRACE_TRACEME | |
| 86 | ||
| 87 | /* Return the word in the process's text space at address ADDR. */ | |
| 88 | PTRACE_PEEKTEXT = 1, | |
| 89 | #define PT_READ_I PTRACE_PEEKTEXT | |
| 90 | ||
| 91 | /* Return the word in the process's data space at address ADDR. */ | |
| 92 | PTRACE_PEEKDATA = 2, | |
| 93 | #define PT_READ_D PTRACE_PEEKDATA | |
| 94 | ||
| 95 | /* Return the word in the process's user area at offset ADDR. */ | |
| 96 | PTRACE_PEEKUSER = 3, | |
| 97 | #define PT_READ_U PTRACE_PEEKUSER | |
| 98 | ||
| 99 | /* Write the word DATA into the process's text space at address ADDR. */ | |
| 100 | PTRACE_POKETEXT = 4, | |
| 101 | #define PT_WRITE_I PTRACE_POKETEXT | |
| 102 | ||
| 103 | /* Write the word DATA into the process's data space at address ADDR. */ | |
| 104 | PTRACE_POKEDATA = 5, | |
| 105 | #define PT_WRITE_D PTRACE_POKEDATA | |
| 106 | ||
| 107 | /* Write the word DATA into the process's user area at offset ADDR. */ | |
| 108 | PTRACE_POKEUSER = 6, | |
| 109 | #define PT_WRITE_U PTRACE_POKEUSER | |
| 110 | ||
| 111 | /* Continue the process. */ | |
| 112 | PTRACE_CONT = 7, | |
| 113 | #define PT_CONTINUE PTRACE_CONT | |
| 114 | ||
| 115 | /* Kill the process. */ | |
| 116 | PTRACE_KILL = 8, | |
| 117 | #define PT_KILL PTRACE_KILL | |
| 118 | ||
| 119 | /* Single step the process. */ | |
| 120 | PTRACE_SINGLESTEP = 9, | |
| 121 | #define PT_STEP PTRACE_SINGLESTEP | |
| 122 | ||
| 123 | /* Get all general purpose registers used by a process. */ | |
| 124 | PTRACE_GETREGS = 12, | |
| 125 | #define PT_GETREGS PTRACE_GETREGS | |
| 126 | ||
| 127 | /* Set all general purpose registers used by a process. */ | |
| 128 | PTRACE_SETREGS = 13, | |
| 129 | #define PT_SETREGS PTRACE_SETREGS | |
| 130 | ||
| 131 | /* Get all floating point registers used by a process. */ | |
| 132 | PTRACE_GETFPREGS = 14, | |
| 133 | #define PT_GETFPREGS PTRACE_GETFPREGS | |
| 134 | ||
| 135 | /* Set all floating point registers used by a process. */ | |
| 136 | PTRACE_SETFPREGS = 15, | |
| 137 | #define PT_SETFPREGS PTRACE_SETFPREGS | |
| 138 | ||
| 139 | /* Attach to a process that is already running. */ | |
| 140 | PTRACE_ATTACH = 16, | |
| 141 | #define PT_ATTACH PTRACE_ATTACH | |
| 142 | ||
| 143 | /* Detach from a process attached to with PTRACE_ATTACH. */ | |
| 144 | PTRACE_DETACH = 17, | |
| 145 | #define PT_DETACH PTRACE_DETACH | |
| 146 | ||
| 147 | /* Get all altivec registers used by a process. */ | |
| 148 | PTRACE_GETVRREGS = 18, | |
| 149 | #define PT_GETVRREGS PTRACE_GETVRREGS | |
| 150 | ||
| 151 | /* Set all altivec registers used by a process. */ | |
| 152 | PTRACE_SETVRREGS = 19, | |
| 153 | #define PT_SETVRREGS PTRACE_SETVRREGS | |
| 154 | ||
| 155 | /* Get all SPE registers used by a process. */ | |
| 156 | PTRACE_GETEVRREGS = 20, | |
| 157 | #define PT_GETEVRREGS PTRACE_GETEVRREGS | |
| 158 | ||
| 159 | /* Set all SPE registers used by a process. */ | |
| 160 | PTRACE_SETEVRREGS = 21, | |
| 161 | #define PT_SETEVRREGS PTRACE_SETEVRREGS | |
| 162 | ||
| 163 | /* Same as PTRACE_GETREGS except a 32-bit process will obtain | |
| 164 | the full 64-bit registers. Implemented by 64-bit kernels only. */ | |
| 165 | PTRACE_GETREGS64 = 22, | |
| 166 | #define PT_GETREGS64 PTRACE_GETREGS64 | |
| 167 | ||
| 168 | /* Same as PTRACE_SETREGS except a 32-bit process will set | |
| 169 | the full 64-bit registers. Implemented by 64-bit kernels only. */ | |
| 170 | PTRACE_SETREGS64 = 23, | |
| 171 | #define PT_SETREGS64 PTRACE_SETREGS64 | |
| 172 | ||
| 173 | /* Continue and stop at the next entry to or return from syscall. */ | |
| 174 | PTRACE_SYSCALL = 24, | |
| 175 | #define PT_SYSCALL PTRACE_SYSCALL | |
| 176 | ||
| 177 | /* Get a debug register of a process. */ | |
| 178 | PTRACE_GET_DEBUGREG = 25, | |
| 179 | #define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG | |
| 180 | ||
| 181 | /* Set a debug register of a process. */ | |
| 182 | PTRACE_SET_DEBUGREG = 26, | |
| 183 | #define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG | |
| 184 | ||
| 185 | /* Get the first 32 VSX registers of a process. */ | |
| 186 | PTRACE_GETVSRREGS = 27, | |
| 187 | #define PT_GETVSRREGS PTRACE_GETVSRREGS | |
| 188 | ||
| 189 | /* Set the first 32 VSX registers of a process. */ | |
| 190 | PTRACE_SETVSRREGS = 28, | |
| 191 | #define PT_SETVSRREGS PTRACE_SETVSRREGS | |
| 192 | ||
| 193 | /* Continue and stop at the next syscall, it will not be executed. */ | |
| 194 | PTRACE_SYSEMU = 29, | |
| 195 | #define PT_SYSEMU PTRACE_SYSEMU | |
| 196 | ||
| 197 | /* Single step the process, the next syscall will not be executed. */ | |
| 198 | PTRACE_SYSEMU_SINGLESTEP = 30, | |
| 199 | #define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP | |
| 200 | ||
| 201 | /* Execute process until next taken branch. */ | |
| 202 | PTRACE_SINGLEBLOCK = 256, | |
| 203 | #define PT_STEPBLOCK PTRACE_SINGLEBLOCK | |
| 204 | ||
| 205 | /* Set ptrace filter options. */ | |
| 206 | PTRACE_SETOPTIONS = 0x4200, | |
| 207 | #define PT_SETOPTIONS PTRACE_SETOPTIONS | |
| 208 | ||
| 209 | /* Get last ptrace message. */ | |
| 210 | PTRACE_GETEVENTMSG = 0x4201, | |
| 211 | #define PT_GETEVENTMSG PTRACE_GETEVENTMSG | |
| 212 | ||
| 213 | /* Get siginfo for process. */ | |
| 214 | PTRACE_GETSIGINFO = 0x4202, | |
| 215 | #define PT_GETSIGINFO PTRACE_GETSIGINFO | |
| 216 | ||
| 217 | /* Set new siginfo for process. */ | |
| 218 | PTRACE_SETSIGINFO = 0x4203, | |
| 219 | #define PT_SETSIGINFO PTRACE_SETSIGINFO | |
| 220 | ||
| 221 | /* Get register content. */ | |
| 222 | PTRACE_GETREGSET = 0x4204, | |
| 223 | #define PTRACE_GETREGSET PTRACE_GETREGSET | |
| 224 | ||
| 225 | /* Set register content. */ | |
| 226 | PTRACE_SETREGSET = 0x4205, | |
| 227 | #define PTRACE_SETREGSET PTRACE_SETREGSET | |
| 228 | ||
| 229 | /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect | |
| 230 | signal or group stop state. */ | |
| 231 | PTRACE_SEIZE = 0x4206, | |
| 232 | #define PTRACE_SEIZE PTRACE_SEIZE | |
| 233 | ||
| 234 | /* Trap seized tracee. */ | |
| 235 | PTRACE_INTERRUPT = 0x4207, | |
| 236 | #define PTRACE_INTERRUPT PTRACE_INTERRUPT | |
| 237 | ||
| 238 | /* Wait for next group event. */ | |
| 239 | PTRACE_LISTEN = 0x4208, | |
| 240 | #define PTRACE_LISTEN PTRACE_LISTEN | |
| 241 | ||
| 242 | /* Retrieve siginfo_t structures without removing signals from a queue. */ | |
| 243 | PTRACE_PEEKSIGINFO = 0x4209, | |
| 244 | #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO | |
| 245 | ||
| 246 | /* Get the mask of blocked signals. */ | |
| 247 | PTRACE_GETSIGMASK = 0x420a, | |
| 248 | #define PTRACE_GETSIGMASK PTRACE_GETSIGMASK | |
| 249 | ||
| 250 | /* Change the mask of blocked signals. */ | |
| 251 | PTRACE_SETSIGMASK = 0x420b, | |
| 252 | #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK | |
| 253 | ||
| 254 | /* Get seccomp BPF filters. */ | |
| 255 | PTRACE_SECCOMP_GET_FILTER = 0x420c, | |
| 256 | #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER | |
| 257 | ||
| 258 | /* Get seccomp BPF filter metadata. */ | |
| 259 | PTRACE_SECCOMP_GET_METADATA = 0x420d, | |
| 260 | #define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA | |
| 261 | ||
| 262 | /* Get information about system call. */ | |
| 263 | PTRACE_GET_SYSCALL_INFO = 0x420e | |
| 264 | #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO | |
| 265 | }; | |
| 266 | ||
| 267 | ||
| 268 | #include <bits/ptrace-shared.h> | |
| 269 | ||
| 270 | __END_DECLS | |
| 271 | ||
| 272 | #endif /* _SYS_PTRACE_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/sys/ucontext.h created+200| ... | ... | @@ -0,0 +1,200 @@ |
| 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_UCONTEXT_H | |
| 19 | #define _SYS_UCONTEXT_H	1 | |
| 20 | ||
| 21 | #include <features.h> | |
| 22 | ||
| 23 | #include <bits/types/sigset_t.h> | |
| 24 | #include <bits/types/stack_t.h> | |
| 25 | ||
| 26 | ||
| 27 | #ifdef __USE_MISC | |
| 28 | # define __ctx(fld) fld | |
| 29 | #else | |
| 30 | # define __ctx(fld) __ ## fld | |
| 31 | #endif | |
| 32 | ||
| 33 | struct __ctx(pt_regs); | |
| 34 | ||
| 35 | #if __WORDSIZE == 32 | |
| 36 | ||
| 37 | /* Number of general registers. */ | |
| 38 | # define __NGREG	48 | |
| 39 | # ifdef __USE_MISC | |
| 40 | # define NGREG	__NGREG | |
| 41 | # endif | |
| 42 | ||
| 43 | /* Container for all general registers. */ | |
| 44 | typedef unsigned long gregset_t[__NGREG]; | |
| 45 | ||
| 46 | /* Container for floating-point registers and status */ | |
| 47 | typedef struct _libc_fpstate | |
| 48 | { | |
| 49 | 	double __ctx(fpregs)[32]; | |
| 50 | 	double __ctx(fpscr); | |
| 51 | 	unsigned int _pad[2]; | |
| 52 | } fpregset_t; | |
| 53 | ||
| 54 | /* Container for Altivec/VMX registers and status. | |
| 55 | Needs to be aligned on a 16-byte boundary. */ | |
| 56 | typedef struct _libc_vrstate | |
| 57 | { | |
| 58 | 	unsigned int __ctx(vrregs)[32][4]; | |
| 59 | 	unsigned int __ctx(vrsave); | |
| 60 | 	unsigned int _pad[2]; | |
| 61 | 	unsigned int __ctx(vscr); | |
| 62 | } vrregset_t; | |
| 63 | ||
| 64 | /* Context to describe whole processor state. */ | |
| 65 | typedef struct | |
| 66 | { | |
| 67 | 	gregset_t __ctx(gregs); | |
| 68 | 	fpregset_t __ctx(fpregs); | |
| 69 | 	vrregset_t __ctx(vrregs) __attribute__((__aligned__(16))); | |
| 70 | } mcontext_t; | |
| 71 | ||
| 72 | #else | |
| 73 | ||
| 74 | /* For 64-bit kernels with Altivec support, a machine context is exactly | |
| 75 | * a sigcontext. For older kernel (without Altivec) the sigcontext matches | |
| 76 | * the mcontext upto but not including the v_regs field. For kernels that | |
| 77 | * don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the | |
| 78 | * v_regs field may not exist and should not be referenced. The v_regs field | |
| 79 | * can be referenced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC | |
| 80 | * is set in AT_HWCAP. */ | |
| 81 | ||
| 82 | /* Number of general registers. */ | |
| 83 | # define __NGREG	48	/* includes r0-r31, nip, msr, lr, etc. */ | |
| 84 | # define __NFPREG	33	/* includes fp0-fp31 &fpscr. */ | |
| 85 | # define __NVRREG	34	/* includes v0-v31, vscr, & vrsave in | |
| 86 | 				 split vectors */ | |
| 87 | # ifdef __USE_MISC | |
| 88 | # define NGREG	__NGREG | |
| 89 | # define NFPREG	__NFPREG | |
| 90 | # define NVRREG	__NVRREG | |
| 91 | # endif | |
| 92 | ||
| 93 | typedef unsigned long gregset_t[__NGREG]; | |
| 94 | typedef double fpregset_t[__NFPREG]; | |
| 95 | ||
| 96 | /* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits | |
| 97 | but can only be copied to/from a 128-bit vector register. So we allocated | |
| 98 | a whole quadword speedup save/restore. */ | |
| 99 | typedef struct _libc_vscr | |
| 100 | { | |
| 101 | #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ | |
| 102 | 	unsigned int __pad[3]; | |
| 103 | 	unsigned int __ctx(vscr_word); | |
| 104 | #else | |
| 105 | 	unsigned int __ctx(vscr_word); | |
| 106 | 	unsigned int __pad[3]; | |
| 107 | #endif | |
| 108 | } vscr_t; | |
| 109 | ||
| 110 | /* Container for Altivec/VMX registers and status. | |
| 111 | Must to be aligned on a 16-byte boundary. */ | |
| 112 | typedef struct _libc_vrstate | |
| 113 | { | |
| 114 | 	unsigned int	__ctx(vrregs)[32][4]; | |
| 115 | 	vscr_t		__ctx(vscr); | |
| 116 | 	unsigned int	__ctx(vrsave); | |
| 117 | 	unsigned int	__pad[3]; | |
| 118 | } vrregset_t __attribute__((__aligned__(16))); | |
| 119 | ||
| 120 | typedef struct { | |
| 121 | 	unsigned long	__glibc_reserved[4]; | |
| 122 | 	int		__ctx(signal); | |
| 123 | 	int		__pad0; | |
| 124 | 	unsigned long	__ctx(handler); | |
| 125 | 	unsigned long	__ctx(oldmask); | |
| 126 | 	struct __ctx(pt_regs)	*__ctx(regs); | |
| 127 | 	gregset_t	__ctx(gp_regs); | |
| 128 | 	fpregset_t	__ctx(fp_regs); | |
| 129 | /* | |
| 130 | * To maintain compatibility with current implementations the sigcontext is | |
| 131 | * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t) | |
| 132 | * followed by an unstructured (vmx_reserve) field of 69 doublewords. This | |
| 133 | * allows the array of vector registers to be quadword aligned independent of | |
| 134 | * the alignment of the containing sigcontext or ucontext. It is the | |
| 135 | * responsibility of the code setting the sigcontext to set this pointer to | |
| 136 | * either NULL (if this processor does not support the VMX feature) or the | |
| 137 | * address of the first quadword within the allocated (vmx_reserve) area. | |
| 138 | * | |
| 139 | * The pointer (v_regs) of vector type (elf_vrreg_t) is essentially | |
| 140 | * an array of 34 quadword entries. The entries with | |
| 141 | * indexes 0-31 contain the corresponding vector registers. The entry with | |
| 142 | * index 32 contains the vscr as the last word (offset 12) within the | |
| 143 | * quadword. This allows the vscr to be stored as either a quadword (since | |
| 144 | * it must be copied via a vector register to/from storage) or as a word. | |
| 145 | * The entry with index 33 contains the vrsave as the first word (offset 0) | |
| 146 | * within the quadword. | |
| 147 | */ | |
| 148 | 	vrregset_t	*__ctx(v_regs); | |
| 149 | 	long		__ctx(vmx_reserve)[__NVRREG+__NVRREG+1]; | |
| 150 | } mcontext_t; | |
| 151 | ||
| 152 | #endif | |
| 153 | ||
| 154 | /* Userlevel context. */ | |
| 155 | typedef struct ucontext_t | |
| 156 | { | |
| 157 | unsigned long int __ctx(uc_flags); | |
| 158 | struct ucontext_t *uc_link; | |
| 159 | stack_t uc_stack; | |
| 160 | #if __WORDSIZE == 32 | |
| 161 | /* | |
| 162 | * These fields are set up this way to maximize source and | |
| 163 | * binary compatibility with code written for the old | |
| 164 | * ucontext_t definition, which didn't include space for the | |
| 165 | * registers. | |
| 166 | * | |
| 167 | * Different versions of the kernel have stored the registers on | |
| 168 | * signal delivery at different offsets from the ucontext struct. | |
| 169 | * Programs should thus use the uc_mcontext.uc_regs pointer to | |
| 170 | * find where the registers are actually stored. The registers | |
| 171 | * will be stored within the ucontext_t struct but not necessarily | |
| 172 | * at a fixed address. As a side-effect, this lets us achieve | |
| 173 | * 16-byte alignment for the register storage space if the | |
| 174 | * Altivec registers are to be saved, without requiring 16-byte | |
| 175 | * alignment on the whole ucontext_t. | |
| 176 | * | |
| 177 | * The uc_mcontext.regs field is included for source compatibility | |
| 178 | * with programs written against the older ucontext_t definition, | |
| 179 | * and its name should therefore not change. The uc_pad field | |
| 180 | * is for binary compatibility with programs compiled against the | |
| 181 | * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask | |
| 182 | * are at the same offset as previously. | |
| 183 | */ | |
| 184 | int __glibc_reserved1[7]; | |
| 185 | union __ctx(uc_regs_ptr) { | |
| 186 | struct __ctx(pt_regs) *__ctx(regs); | |
| 187 | mcontext_t *__ctx(uc_regs); | |
| 188 | } uc_mcontext; | |
| 189 | sigset_t uc_sigmask; | |
| 190 | /* last for extensibility */ | |
| 191 | char __ctx(uc_reg_space)[sizeof (mcontext_t) + 12]; | |
| 192 | #else /* 64-bit */ | |
| 193 | sigset_t uc_sigmask; | |
| 194 | mcontext_t uc_mcontext; /* last for extensibility */ | |
| 195 | #endif | |
| 196 | } ucontext_t; | |
| 197 | ||
| 198 | #undef __ctx | |
| 199 | ||
| 200 | #endif /* sys/ucontext.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabi/sys/user.h created+40| ... | ... | @@ -0,0 +1,40 @@ |
| 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_USER_H | |
| 19 | ||
| 20 | #define _SYS_USER_H	1 | |
| 21 | #include <stddef.h> | |
| 22 | #include <features.h> | |
| 23 | ||
| 24 | #include <asm/ptrace.h> | |
| 25 | ||
| 26 | struct user { | |
| 27 | 	struct pt_regs	regs;			/* entire machine state */ | |
| 28 | 	size_t		u_tsize;		/* text size (pages) */ | |
| 29 | 	size_t		u_dsize;		/* data size (pages) */ | |
| 30 | 	size_t		u_ssize;		/* stack size (pages) */ | |
| 31 | 	unsigned long	start_code;		/* text starting address */ | |
| 32 | 	unsigned long	start_data;		/* data starting address */ | |
| 33 | 	unsigned long	start_stack;		/* stack starting address */ | |
| 34 | 	long int	signal;			/* signal causing core dump */ | |
| 35 | 	struct regs *	u_ar0;			/* help gdb find registers */ | |
| 36 | 	unsigned long	magic;			/* identifies a core file */ | |
| 37 | 	char		u_comm[32];		/* user command name */ | |
| 38 | }; | |
| 39 | ||
| 40 | #endif /* sys/user.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/endianness.h created+16| ... | ... | @@ -0,0 +1,16 @@ |
| 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 | /* PowerPC has selectable endianness. */ | |
| 9 | #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN | |
| 10 | # define __BYTE_ORDER __BIG_ENDIAN | |
| 11 | #endif | |
| 12 | #if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN | |
| 13 | # define __BYTE_ORDER __LITTLE_ENDIAN | |
| 14 | #endif | |
| 15 | ||
| 16 | #endif /* bits/endianness.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/environments.h created+96| ... | ... | @@ -0,0 +1,96 @@ |
| 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 | /* By default we have 32-bit wide `int', `long int', pointers and `off_t' | |
| 68 | and all platforms support LFS. */ | |
| 69 | # define _POSIX_V7_ILP32_OFF32	1 | |
| 70 | # define _POSIX_V7_ILP32_OFFBIG	1 | |
| 71 | # define _POSIX_V6_ILP32_OFF32	1 | |
| 72 | # define _POSIX_V6_ILP32_OFFBIG	1 | |
| 73 | # define _XBS5_ILP32_OFF32	1 | |
| 74 | # define _XBS5_ILP32_OFFBIG	1 | |
| 75 | ||
| 76 | /* We optionally provide an environment with the above size but an 64-bit | |
| 77 | side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ | |
| 78 | ||
| 79 | /* Environments with 64-bit wide pointers can be provided, | |
| 80 | so these macros aren't defined: | |
| 81 | # undef _POSIX_V7_LP64_OFF64 | |
| 82 | # undef _POSIX_V7_LPBIG_OFFBIG | |
| 83 | # undef _POSIX_V6_LP64_OFF64 | |
| 84 | # undef _POSIX_V6_LPBIG_OFFBIG | |
| 85 | # undef _XBS5_LP64_OFF64 | |
| 86 | # undef _XBS5_LPBIG_OFFBIG | |
| 87 | and sysconf tests for it at runtime. */ | |
| 88 | ||
| 89 | #endif /* __WORDSIZE == 32 */ | |
| 90 | ||
| 91 | #define __ILP32_OFF32_CFLAGS	"-m32" | |
| 92 | #define __ILP32_OFFBIG_CFLAGS	"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" | |
| 93 | #define __ILP32_OFF32_LDFLAGS	"-m32" | |
| 94 | #define __ILP32_OFFBIG_LDFLAGS	"-m32" | |
| 95 | #define __LP64_OFF64_CFLAGS	"-m64" | |
| 96 | #define __LP64_OFF64_LDFLAGS	"-m64" | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/fcntl.h created+62| ... | ... | @@ -0,0 +1,62 @@ |
| 1 | /* O_*, F_*, FD_* bit values for Linux/PowerPC. | |
| 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	_FCNTL_H | |
| 20 | # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #include <bits/wordsize.h> | |
| 24 | ||
| 25 | #define __O_DIRECTORY	 040000	/* Must be a directory.	 */ | |
| 26 | #define __O_NOFOLLOW	0100000	/* Do not follow links.	 */ | |
| 27 | #define __O_DIRECT	0400000	/* Direct disk access.	*/ | |
| 28 | ||
| 29 | #if __WORDSIZE == 64 | |
| 30 | /* Not necessary, files are always with 64bit off_t. */ | |
| 31 | # define __O_LARGEFILE 0 | |
| 32 | #else | |
| 33 | # define __O_LARGEFILE	0200000 | |
| 34 | #endif | |
| 35 | ||
| 36 | struct flock | |
| 37 | { | |
| 38 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | |
| 39 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | |
| 40 | #ifndef __USE_FILE_OFFSET64 | |
| 41 | __off_t l_start;	/* Offset where the lock begins. */ | |
| 42 | __off_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 43 | #else | |
| 44 | __off64_t l_start;	/* Offset where the lock begins. */ | |
| 45 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 46 | #endif | |
| 47 | __pid_t l_pid;	/* Process holding the lock. */ | |
| 48 | }; | |
| 49 | ||
| 50 | #ifdef __USE_LARGEFILE64 | |
| 51 | struct flock64 | |
| 52 | { | |
| 53 | short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/ | |
| 54 | short int l_whence;	/* Where `l_start' is relative to (like `lseek'). */ | |
| 55 | __off64_t l_start;	/* Offset where the lock begins. */ | |
| 56 | __off64_t l_len;	/* Size of the locked area; zero means until EOF. */ | |
| 57 | __pid_t l_pid;	/* Process holding the lock. */ | |
| 58 | }; | |
| 59 | #endif | |
| 60 | ||
| 61 | /* Include generic Linux declarations. */ | |
| 62 | #include <bits/fcntl-linux.h> | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/fenv.h created+180| ... | ... | @@ -0,0 +1,180 @@ |
| 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 | ||
| 23 | /* Define bits representing the exception. We use the bit positions of | |
| 24 | the appropriate bits in the FPSCR... */ | |
| 25 | enum | |
| 26 | { | |
| 27 | FE_INEXACT = | |
| 28 | #define FE_INEXACT	(1 << (31 - 6)) | |
| 29 | FE_INEXACT, | |
| 30 | FE_DIVBYZERO = | |
| 31 | #define FE_DIVBYZERO	(1 << (31 - 5)) | |
| 32 | FE_DIVBYZERO, | |
| 33 | FE_UNDERFLOW = | |
| 34 | #define FE_UNDERFLOW	(1 << (31 - 4)) | |
| 35 | FE_UNDERFLOW, | |
| 36 | FE_OVERFLOW = | |
| 37 | #define FE_OVERFLOW	(1 << (31 - 3)) | |
| 38 | FE_OVERFLOW, | |
| 39 | ||
| 40 | /* ... except for FE_INVALID, for which we use bit 31. FE_INVALID | |
| 41 | actually corresponds to bits 7 through 12 and 21 through 23 | |
| 42 | in the FPSCR, but we can't use that because the current draft | |
| 43 | says that it must be a power of 2. Instead we use bit 2 which | |
| 44 | is the summary bit for all the FE_INVALID exceptions, which | |
| 45 | kind of makes sense. */ | |
| 46 | FE_INVALID = | |
| 47 | #define FE_INVALID	(1 << (31 - 2)) | |
| 48 | FE_INVALID, | |
| 49 | ||
| 50 | #ifdef __USE_GNU | |
| 51 | /* Breakdown of the FE_INVALID bits. Setting FE_INVALID on an | |
| 52 | input to a routine is equivalent to setting all of these bits; | |
| 53 | FE_INVALID will be set on output from a routine iff one of | |
| 54 | these bits is set. Note, though, that you can't disable or | |
| 55 | enable these exceptions individually. */ | |
| 56 | ||
| 57 | /* Operation with a sNaN. */ | |
| 58 | FE_INVALID_SNAN = | |
| 59 | # define FE_INVALID_SNAN	(1 << (31 - 7)) | |
| 60 | FE_INVALID_SNAN, | |
| 61 | ||
| 62 | /* Inf - Inf */ | |
| 63 | FE_INVALID_ISI = | |
| 64 | # define FE_INVALID_ISI	(1 << (31 - 8)) | |
| 65 | FE_INVALID_ISI, | |
| 66 | ||
| 67 | /* Inf / Inf */ | |
| 68 | FE_INVALID_IDI = | |
| 69 | # define FE_INVALID_IDI	(1 << (31 - 9)) | |
| 70 | FE_INVALID_IDI, | |
| 71 | ||
| 72 | /* 0 / 0 */ | |
| 73 | FE_INVALID_ZDZ = | |
| 74 | # define FE_INVALID_ZDZ	(1 << (31 - 10)) | |
| 75 | FE_INVALID_ZDZ, | |
| 76 | ||
| 77 | /* Inf * 0 */ | |
| 78 | FE_INVALID_IMZ = | |
| 79 | # define FE_INVALID_IMZ	(1 << (31 - 11)) | |
| 80 | FE_INVALID_IMZ, | |
| 81 | ||
| 82 | /* Comparison with a NaN. */ | |
| 83 | FE_INVALID_COMPARE = | |
| 84 | # define FE_INVALID_COMPARE	(1 << (31 - 12)) | |
| 85 | FE_INVALID_COMPARE, | |
| 86 | ||
| 87 | /* Invalid operation flag for software (not set by hardware). */ | |
| 88 | /* Note that some chips don't have this implemented, presumably | |
| 89 | because no-one expected anyone to write software for them %-). */ | |
| 90 | FE_INVALID_SOFTWARE = | |
| 91 | # define FE_INVALID_SOFTWARE	(1 << (31 - 21)) | |
| 92 | FE_INVALID_SOFTWARE, | |
| 93 | ||
| 94 | /* Square root of negative number (including -Inf). */ | |
| 95 | /* Note that some chips don't have this implemented. */ | |
| 96 | FE_INVALID_SQRT = | |
| 97 | # define FE_INVALID_SQRT	(1 << (31 - 22)) | |
| 98 | FE_INVALID_SQRT, | |
| 99 | ||
| 100 | /* Conversion-to-integer of a NaN or a number too large or too small. */ | |
| 101 | FE_INVALID_INTEGER_CONVERSION = | |
| 102 | # define FE_INVALID_INTEGER_CONVERSION	(1 << (31 - 23)) | |
| 103 | FE_INVALID_INTEGER_CONVERSION | |
| 104 | ||
| 105 | # define FE_ALL_INVALID \ | |
| 106 | (FE_INVALID_SNAN | FE_INVALID_ISI | FE_INVALID_IDI | FE_INVALID_ZDZ \ | |
| 107 | 	 | FE_INVALID_IMZ | FE_INVALID_COMPARE | FE_INVALID_SOFTWARE \ | |
| 108 | 	 | FE_INVALID_SQRT | FE_INVALID_INTEGER_CONVERSION) | |
| 109 | #endif | |
| 110 | }; | |
| 111 | ||
| 112 | #define FE_ALL_EXCEPT \ | |
| 113 | 	(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) | |
| 114 | ||
| 115 | /* PowerPC chips support all of the four defined rounding modes. We | |
| 116 | use the bit pattern in the FPSCR as the values for the | |
| 117 | appropriate macros. */ | |
| 118 | enum | |
| 119 | { | |
| 120 | FE_TONEAREST = | |
| 121 | #define FE_TONEAREST	0 | |
| 122 | FE_TONEAREST, | |
| 123 | FE_TOWARDZERO = | |
| 124 | #define FE_TOWARDZERO	1 | |
| 125 | FE_TOWARDZERO, | |
| 126 | FE_UPWARD = | |
| 127 | #define FE_UPWARD	2 | |
| 128 | FE_UPWARD, | |
| 129 | FE_DOWNWARD = | |
| 130 | #define FE_DOWNWARD	3 | |
| 131 | FE_DOWNWARD | |
| 132 | }; | |
| 133 | ||
| 134 | /* Type representing exception flags. */ | |
| 135 | typedef unsigned int fexcept_t; | |
| 136 | ||
| 137 | /* Type representing floating-point environment. We leave it as 'double' | |
| 138 | for efficiency reasons (rather than writing it to a 32-bit integer). */ | |
| 139 | typedef double fenv_t; | |
| 140 | ||
| 141 | /* If the default argument is used we use this value. */ | |
| 142 | extern const fenv_t __fe_dfl_env; | |
| 143 | #define FE_DFL_ENV	(&__fe_dfl_env) | |
| 144 | ||
| 145 | #ifdef __USE_GNU | |
| 146 | /* Floating-point environment where all exceptions are enabled. Note that | |
| 147 | this is not sufficient to give you SIGFPE. */ | |
| 148 | extern const fenv_t __fe_enabled_env; | |
| 149 | # define FE_ENABLED_ENV	(&__fe_enabled_env) | |
| 150 | ||
| 151 | /* Floating-point environment with (processor-dependent) non-IEEE floating | |
| 152 | point. */ | |
| 153 | extern const fenv_t __fe_nonieee_env; | |
| 154 | # define FE_NONIEEE_ENV	(&__fe_nonieee_env) | |
| 155 | ||
| 156 | /* Floating-point environment with all exceptions enabled. Note that | |
| 157 | just evaluating this value does not change the processor exception mode. | |
| 158 | Passing this mask to fesetenv will result in a prctl syscall to change | |
| 159 | the MSR FE0/FE1 bits to "Precise Mode". On some processors this will | |
| 160 | result in slower floating point execution. This will last until an | |
| 161 | fenv or exception mask is installed that disables all FP exceptions. */ | |
| 162 | # define FE_NOMASK_ENV	FE_ENABLED_ENV | |
| 163 | ||
| 164 | /* Floating-point environment with all exceptions disabled. Note that | |
| 165 | just evaluating this value does not change the processor exception mode. | |
| 166 | Passing this mask to fesetenv will result in a prctl syscall to change | |
| 167 | the MSR FE0/FE1 bits to "Ignore Exceptions Mode". On most processors | |
| 168 | this allows the fastest possible floating point execution.*/ | |
| 169 | # define FE_MASK_ENV	FE_DFL_ENV | |
| 170 | ||
| 171 | #endif | |
| 172 | ||
| 173 | #if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) | |
| 174 | /* Type representing floating-point control modes. */ | |
| 175 | typedef double femode_t; | |
| 176 | ||
| 177 | /* Default floating-point control modes. */ | |
| 178 | extern const femode_t __fe_dfl_mode; | |
| 179 | # define FE_DFL_MODE	(&__fe_dfl_mode) | |
| 180 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/floatn.h created+122| ... | ... | @@ -0,0 +1,122 @@ |
| 1 | /* Macros to control TS 18661-3 glibc features on powerpc. | |
| 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 | #include <bits/long-double.h> | |
| 24 | ||
| 25 | /* Defined to 1 if the current compiler invocation provides a | |
| 26 | floating-point type with the IEEE 754 binary128 format, and this glibc | |
| 27 | includes corresponding *f128 interfaces for it. */ | |
| 28 | #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \ | |
| 29 | && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH | |
| 30 | # define __HAVE_FLOAT128 1 | |
| 31 | #else | |
| 32 | # define __HAVE_FLOAT128 0 | |
| 33 | #endif | |
| 34 | ||
| 35 | /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct | |
| 36 | from the default float, double and long double types in this glibc, i.e. | |
| 37 | calls to the binary128 functions go to *f128 symbols instead of *l. */ | |
| 38 | #if __HAVE_FLOAT128 | |
| 39 | # define __HAVE_DISTINCT_FLOAT128 1 | |
| 40 | #else | |
| 41 | # define __HAVE_DISTINCT_FLOAT128 0 | |
| 42 | #endif | |
| 43 | ||
| 44 | /* Defined to 1 if the current compiler invocation provides a | |
| 45 | floating-point type with the right format for _Float64x, and this | |
| 46 | glibc includes corresponding *f64x interfaces for it. */ | |
| 47 | #define __HAVE_FLOAT64X __HAVE_FLOAT128 | |
| 48 | ||
| 49 | /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format | |
| 50 | of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has | |
| 51 | the format of _Float128, which must be different from that of long | |
| 52 | double. */ | |
| 53 | #define __HAVE_FLOAT64X_LONG_DOUBLE 0 | |
| 54 | ||
| 55 | #ifndef __ASSEMBLER__ | |
| 56 | ||
| 57 | /* Defined to concatenate the literal suffix to be used with _Float128 | |
| 58 | types, if __HAVE_FLOAT128 is 1. */ | |
| 59 | # if __HAVE_FLOAT128 | |
| 60 | # if !__GNUC_PREREQ (7, 0) || defined __cplusplus | |
| 61 | /* The literal suffix (f128) exist for powerpc only since GCC 7.0. */ | |
| 62 | # if __LDBL_MANT_DIG__ == 113 | |
| 63 | # define __f128(x) x##l | |
| 64 | # else | |
| 65 | # define __f128(x) x##q | |
| 66 | # endif | |
| 67 | # else | |
| 68 | # define __f128(x) x##f128 | |
| 69 | # endif | |
| 70 | # endif | |
| 71 | ||
| 72 | /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ | |
| 73 | # if __HAVE_FLOAT128 | |
| 74 | # if __LDBL_MANT_DIG__ == 113 && defined __cplusplus | |
| 75 | typedef long double _Float128; | |
| 76 | # define __CFLOAT128 _Complex long double | |
| 77 | # elif !__GNUC_PREREQ (7, 0) || defined __cplusplus | |
| 78 | /* The type _Float128 exist for powerpc only since GCC 7.0. */ | |
| 79 | typedef __float128 _Float128; | |
| 80 | /* Add a typedef for older GCC and C++ compilers which don't natively support | |
| 81 | _Complex _Float128. */ | |
| 82 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__KC__))); | |
| 83 | # define __CFLOAT128 __cfloat128 | |
| 84 | # else | |
| 85 | # define __CFLOAT128 _Complex _Float128 | |
| 86 | # endif | |
| 87 | # endif | |
| 88 | ||
| 89 | /* The remaining of this file provides support for older compilers. */ | |
| 90 | # if __HAVE_FLOAT128 | |
| 91 | /* Builtin __builtin_huge_valf128 doesn't exist before GCC 7.0. */ | |
| 92 | # if !__GNUC_PREREQ (7, 0) | |
| 93 | # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) | |
| 94 | # endif | |
| 95 | ||
| 96 | /* The following builtins (suffixed with 'q') are available in GCC >= 6.2, | |
| 97 | which is the minimum version required for float128 support on powerpc64le. | |
| 98 | Since GCC 7.0 the builtins suffixed with f128 are also available, then | |
| 99 | there is no need to redefined them. */ | |
| 100 | # if !__GNUC_PREREQ (7, 0) | |
| 101 | # define __builtin_copysignf128 __builtin_copysignq | |
| 102 | # define __builtin_fabsf128 __builtin_fabsq | |
| 103 | # define __builtin_inff128 __builtin_infq | |
| 104 | # define __builtin_nanf128 __builtin_nanq | |
| 105 | # define __builtin_nansf128 __builtin_nansq | |
| 106 | # endif | |
| 107 | ||
| 108 | /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, | |
| 109 | e.g.: __builtin_signbitf128, before GCC 6. However, there has never | |
| 110 | been a __builtin_signbitf128 in GCC and the type-generic builtin is | |
| 111 | only available since GCC 6. */ | |
| 112 | # if !__GNUC_PREREQ (6, 0) | |
| 113 | # define __builtin_signbitf128 __signbitf128 | |
| 114 | # endif | |
| 115 | ||
| 116 | # endif | |
| 117 | ||
| 118 | #endif /* !__ASSEMBLER__. */ | |
| 119 | ||
| 120 | #include <bits/floatn-common.h> | |
| 121 | ||
| 122 | #endif /* _BITS_FLOATN_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/fp-fast.h created+39| ... | ... | @@ -0,0 +1,39 @@ |
| 1 | /* Define FP_FAST_* macros. PowerPC 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-fast.h> directly; include <math.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_ISOC99 | |
| 24 | ||
| 25 | /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l} | |
| 26 | builtins are supported. */ | |
| 27 | # if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMA | |
| 28 | # define FP_FAST_FMA 1 | |
| 29 | # endif | |
| 30 | ||
| 31 | # if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMAF | |
| 32 | # define FP_FAST_FMAF 1 | |
| 33 | # endif | |
| 34 | ||
| 35 | # ifdef __FP_FAST_FMAL | |
| 36 | # define FP_FAST_FMAL 1 | |
| 37 | # endif | |
| 38 | ||
| 39 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/hwcap.h created+78| ... | ... | @@ -0,0 +1,78 @@ |
| 1 | /* Defines for bits in AT_HWCAP and AT_HWCAP2. | |
| 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 | #if !defined(_SYS_AUXV_H) && !defined(_SYSDEPS_SYSDEP_H) | |
| 20 | # error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* The bit numbers must match those in the kernel's asm/cputable.h. */ | |
| 24 | ||
| 25 | /* Feature definitions in AT_HWCAP. */ | |
| 26 | #define PPC_FEATURE_32		 0x80000000 /* 32-bit mode. */ | |
| 27 | #define PPC_FEATURE_64		 0x40000000 /* 64-bit mode. */ | |
| 28 | #define PPC_FEATURE_601_INSTR	 0x20000000 /* 601 chip, Old POWER ISA. */ | |
| 29 | #define PPC_FEATURE_HAS_ALTIVEC	 0x10000000 /* SIMD/Vector Unit. */ | |
| 30 | #define PPC_FEATURE_HAS_FPU	 0x08000000 /* Floating Point Unit. */ | |
| 31 | #define PPC_FEATURE_HAS_MMU	 0x04000000 /* Memory Management Unit. */ | |
| 32 | #define PPC_FEATURE_HAS_4xxMAC	 0x02000000 /* 4xx Multiply Accumulator. */ | |
| 33 | #define PPC_FEATURE_UNIFIED_CACHE 0x01000000 /* Unified I/D cache. */ | |
| 34 | #define PPC_FEATURE_HAS_SPE	 0x00800000 /* Signal Processing ext. */ | |
| 35 | #define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 /* SPE Float. */ | |
| 36 | #define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 /* SPE Double. */ | |
| 37 | #define PPC_FEATURE_NO_TB	 0x00100000 /* 601/403gx have no timebase */ | |
| 38 | #define PPC_FEATURE_POWER4	 0x00080000 /* POWER4 ISA 2.00 */ | |
| 39 | #define PPC_FEATURE_POWER5	 0x00040000 /* POWER5 ISA 2.02 */ | |
| 40 | #define PPC_FEATURE_POWER5_PLUS	 0x00020000 /* POWER5+ ISA 2.03 */ | |
| 41 | #define PPC_FEATURE_CELL_BE	 0x00010000 /* CELL Broadband Engine */ | |
| 42 | #define PPC_FEATURE_BOOKE	 0x00008000 /* ISA Category Embedded */ | |
| 43 | #define PPC_FEATURE_SMT		 0x00004000 /* Simultaneous | |
| 44 | 						 Multi-Threading */ | |
| 45 | #define PPC_FEATURE_ICACHE_SNOOP 0x00002000 | |
| 46 | #define PPC_FEATURE_ARCH_2_05	 0x00001000 /* ISA 2.05 */ | |
| 47 | #define PPC_FEATURE_PA6T	 0x00000800 /* PA Semi 6T Core */ | |
| 48 | #define PPC_FEATURE_HAS_DFP	 0x00000400 /* Decimal FP Unit */ | |
| 49 | #define PPC_FEATURE_POWER6_EXT	 0x00000200 /* P6 + mffgpr/mftgpr */ | |
| 50 | #define PPC_FEATURE_ARCH_2_06	 0x00000100 /* ISA 2.06 */ | |
| 51 | #define PPC_FEATURE_HAS_VSX	 0x00000080 /* P7 Vector Extension. */ | |
| 52 | #define PPC_FEATURE_PSERIES_PERFMON_COMPAT 0x00000040 | |
| 53 | /* Reserved by the kernel.	 0x00000004 Do not use. */ | |
| 54 | #define PPC_FEATURE_TRUE_LE	 0x00000002 | |
| 55 | #define PPC_FEATURE_PPC_LE	 0x00000001 | |
| 56 | ||
| 57 | /* Feature definitions in AT_HWCAP2. */ | |
| 58 | #define PPC_FEATURE2_ARCH_2_07 0x80000000 /* ISA 2.07 */ | |
| 59 | #define PPC_FEATURE2_HAS_HTM 0x40000000 /* Hardware Transactional | |
| 60 | 						 Memory */ | |
| 61 | #define PPC_FEATURE2_HAS_DSCR 0x20000000 /* Data Stream Control | |
| 62 | 						 Register */ | |
| 63 | #define PPC_FEATURE2_HAS_EBB 0x10000000 /* Event Base Branching */ | |
| 64 | #define PPC_FEATURE2_HAS_ISEL 0x08000000 /* Integer Select */ | |
| 65 | #define PPC_FEATURE2_HAS_TAR 0x04000000 /* Target Address Register */ | |
| 66 | #define PPC_FEATURE2_HAS_VEC_CRYPTO 0x02000000 /* Target supports vector | |
| 67 | 						 instruction. */ | |
| 68 | #define PPC_FEATURE2_HTM_NOSC	 0x01000000 /* Kernel aborts transaction | |
| 69 | 						 when a syscall is made. */ | |
| 70 | #define PPC_FEATURE2_ARCH_3_00	 0x00800000 /* ISA 3.0 */ | |
| 71 | #define PPC_FEATURE2_HAS_IEEE128 0x00400000 /* VSX IEEE Binary Float | |
| 72 | 						 128-bit */ | |
| 73 | #define PPC_FEATURE2_DARN	 0x00200000 /* darn instruction. */ | |
| 74 | #define PPC_FEATURE2_SCV	 0x00100000 /* scv syscall. */ | |
| 75 | #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended | |
| 76 | 						 state. */ | |
| 77 | #define PPC_FEATURE2_ARCH_3_1	 0x00040000 /* ISA 3.1. */ | |
| 78 | #define PPC_FEATURE2_MMA	 0x00020000 /* Matrix-Multiply Assist. */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/ioctl-types.h created+77| ... | ... | @@ -0,0 +1,77 @@ |
| 1 | /* Structure types for pre-termios terminal ioctls. Linux/powerpc version. | |
| 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 _SYS_IOCTL_H | |
| 20 | # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Get definition of constants for use with `ioctl'. */ | |
| 24 | #include <asm/ioctls.h> | |
| 25 | ||
| 26 | ||
| 27 | struct winsize | |
| 28 | { | |
| 29 | unsigned short int ws_row; | |
| 30 | unsigned short int ws_col; | |
| 31 | unsigned short int ws_xpixel; | |
| 32 | unsigned short int ws_ypixel; | |
| 33 | }; | |
| 34 | ||
| 35 | #define NCC 10 | |
| 36 | struct termio | |
| 37 | { | |
| 38 | unsigned short int c_iflag;		/* input mode flags */ | |
| 39 | unsigned short int c_oflag;		/* output mode flags */ | |
| 40 | unsigned short int c_cflag;		/* control mode flags */ | |
| 41 | unsigned short int c_lflag;		/* local mode flags */ | |
| 42 | unsigned char c_line;		/* line discipline */ | |
| 43 | unsigned char c_cc[NCC];		/* control characters */ | |
| 44 | }; | |
| 45 | ||
| 46 | /* modem lines */ | |
| 47 | #define TIOCM_LE	0x001 | |
| 48 | #define TIOCM_DTR	0x002 | |
| 49 | #define TIOCM_RTS	0x004 | |
| 50 | #define TIOCM_ST	0x008 | |
| 51 | #define TIOCM_SR	0x010 | |
| 52 | #define TIOCM_CTS	0x020 | |
| 53 | #define TIOCM_CAR	0x040 | |
| 54 | #define TIOCM_RNG	0x080 | |
| 55 | #define TIOCM_DSR	0x100 | |
| 56 | #define TIOCM_CD	TIOCM_CAR | |
| 57 | #define TIOCM_RI	TIOCM_RNG | |
| 58 | ||
| 59 | /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ | |
| 60 | ||
| 61 | /* line disciplines */ | |
| 62 | #define N_TTY		0 | |
| 63 | #define N_SLIP		1 | |
| 64 | #define N_MOUSE		2 | |
| 65 | #define N_PPP		3 | |
| 66 | #define N_STRIP		4 | |
| 67 | #define N_AX25		5 | |
| 68 | #define N_X25		6	/* X.25 async */ | |
| 69 | #define N_6PACK		7 | |
| 70 | #define N_MASC		8	/* Mobitex module */ | |
| 71 | #define N_R3964		9	/* Simatic R3964 module */ | |
| 72 | #define N_PROFIBUS_FDL	10	/* Profibus */ | |
| 73 | #define N_IRDA		11	/* Linux IR */ | |
| 74 | #define N_SMSBLOCK	12	/* SMS block mode */ | |
| 75 | #define N_HDLC		13	/* synchronous HDLC */ | |
| 76 | #define N_SYNC_PPP	14	/* synchronous PPP */ | |
| 77 | #define	N_HCI		15	/* Bluetooth HCI UART */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/ipc-perm.h created+36| ... | ... | @@ -0,0 +1,36 @@ |
| 1 | /* struct ipc_perm definition. Linux/powerpc version. | |
| 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_IPC_H | |
| 20 | # error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Data structure used to pass permission information to IPC operations. */ | |
| 24 | struct ipc_perm | |
| 25 | { | |
| 26 | __key_t __key;		/* Key. */ | |
| 27 | __uid_t uid;		/* Owner's user ID. */ | |
| 28 | __gid_t gid;		/* Owner's group ID. */ | |
| 29 | __uid_t cuid;		/* Creator's user ID. */ | |
| 30 | __gid_t cgid;		/* Creator's group ID. */ | |
| 31 | __mode_t mode;		/* Read/write permission. */ | |
| 32 | __uint32_t __seq;		/* Sequence number. */ | |
| 33 | __uint32_t __pad1; | |
| 34 | __uint64_t __glibc_reserved1; | |
| 35 | __uint64_t __glibc_reserved2; | |
| 36 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/iscanonical.h created+58| ... | ... | @@ -0,0 +1,58 @@ |
| 1 | /* Define iscanonical macro. ldbl-128ibm 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 | #if defined (__NO_LONG_DOUBLE_MATH) || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | |
| 24 | # define iscanonical(x) ((void) (__typeof (x)) (x), 1) | |
| 25 | #else | |
| 26 | extern int __iscanonicall (long double __x) | |
| 27 | __THROW __attribute__ ((__const__)); | |
| 28 | # define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) | |
| 29 | # define __iscanonical(x) ((void) (__typeof (x)) (x), 1) | |
| 30 | # if __HAVE_DISTINCT_FLOAT128 | |
| 31 | # define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1) | |
| 32 | # endif | |
| 33 | ||
| 34 | /* Return nonzero value if X is canonical. In IEEE interchange binary | |
| 35 | formats, all values are canonical, but the argument must still be | |
| 36 | converted to its semantic type for any exceptions arising from the | |
| 37 | conversion, before being discarded; in IBM long double, there are | |
| 38 | encodings that are not consistently handled as corresponding to any | |
| 39 | particular value of the type, and we return 0 for those. */ | |
| 40 | # ifndef __cplusplus | |
| 41 | # define iscanonical(x) __MATH_TG ((x), __iscanonical, (x)) | |
| 42 | # else | |
| 43 | /* In C++ mode, __MATH_TG cannot be used, because it relies on | |
| 44 | __builtin_types_compatible_p, which is a C-only builtin. On the | |
| 45 | other hand, overloading provides the means to distinguish between | |
| 46 | the floating-point types. The overloading resolution will match | |
| 47 | the correct parameter (regardless of type qualifiers (i.e.: const | |
| 48 | and volatile)). */ | |
| 49 | extern "C++" { | |
| 50 | inline int iscanonical (float __val) { return __iscanonicalf (__val); } | |
| 51 | inline int iscanonical (double __val) { return __iscanonical (__val); } | |
| 52 | inline int iscanonical (long double __val) { return __iscanonicall (__val); } | |
| 53 | # if __HAVE_DISTINCT_FLOAT128 | |
| 54 | inline int iscanonical (_Float128 __val) { return __iscanonicalf128 (__val); } | |
| 55 | # endif | |
| 56 | } | |
| 57 | # endif /* __cplusplus */ | |
| 58 | #endif /* __NO_LONG_DOUBLE_MATH */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/link.h created+156| ... | ... | @@ -0,0 +1,156 @@ |
| 1 | /* Machine-specific declarations for dynamic linker interface. PowerPC version | |
| 2 | Copyright (C) 2004-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	_LINK_H | |
| 20 | # error "Never include <bits/link.h> directly; use <link.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | ||
| 24 | #if __ELF_NATIVE_CLASS == 32 | |
| 25 | ||
| 26 | /* Registers for entry into PLT on PPC32. */ | |
| 27 | typedef struct La_ppc32_regs | |
| 28 | { | |
| 29 | uint32_t lr_reg[8]; | |
| 30 | double lr_fp[8]; | |
| 31 | uint32_t lr_vreg[12][4]; | |
| 32 | uint32_t lr_r1; | |
| 33 | uint32_t lr_lr; | |
| 34 | } La_ppc32_regs; | |
| 35 | ||
| 36 | /* Return values for calls from PLT on PPC32. */ | |
| 37 | typedef struct La_ppc32_retval | |
| 38 | { | |
| 39 | uint32_t lrv_r3; | |
| 40 | uint32_t lrv_r4; | |
| 41 | double lrv_fp[8]; | |
| 42 | uint32_t lrv_v2[4]; | |
| 43 | } La_ppc32_retval; | |
| 44 | ||
| 45 | ||
| 46 | __BEGIN_DECLS | |
| 47 | ||
| 48 | extern Elf32_Addr la_ppc32_gnu_pltenter (Elf32_Sym *__sym, | |
| 49 | 					 unsigned int __ndx, | |
| 50 | 					 uintptr_t *__refcook, | |
| 51 | 					 uintptr_t *__defcook, | |
| 52 | 					 La_ppc32_regs *__regs, | |
| 53 | 					 unsigned int *__flags, | |
| 54 | 					 const char *__symname, | |
| 55 | 					 long int *__framesizep); | |
| 56 | extern unsigned int la_ppc32_gnu_pltexit (Elf32_Sym *__sym, | |
| 57 | 					 unsigned int __ndx, | |
| 58 | 					 uintptr_t *__refcook, | |
| 59 | 					 uintptr_t *__defcook, | |
| 60 | 					 const La_ppc32_regs *__inregs, | |
| 61 | 					 La_ppc32_retval *__outregs, | |
| 62 | 					 const char *__symname); | |
| 63 | ||
| 64 | __END_DECLS | |
| 65 | ||
| 66 | #elif __ELF_NATIVE_CLASS == 64 | |
| 67 | # if _CALL_ELF != 2 | |
| 68 | ||
| 69 | /* Registers for entry into PLT on PPC64. */ | |
| 70 | typedef struct La_ppc64_regs | |
| 71 | { | |
| 72 | uint64_t lr_reg[8]; | |
| 73 | double lr_fp[13]; | |
| 74 | uint32_t __padding; | |
| 75 | uint32_t lr_vrsave; | |
| 76 | uint32_t lr_vreg[12][4]; | |
| 77 | uint64_t lr_r1; | |
| 78 | uint64_t lr_lr; | |
| 79 | } La_ppc64_regs; | |
| 80 | ||
| 81 | /* Return values for calls from PLT on PPC64. */ | |
| 82 | typedef struct La_ppc64_retval | |
| 83 | { | |
| 84 | uint64_t lrv_r3; | |
| 85 | uint64_t lrv_r4; | |
| 86 | double lrv_fp[4];	/* f1-f4, float - complex long double. */ | |
| 87 | uint32_t lrv_v2[4];	/* v2. */ | |
| 88 | } La_ppc64_retval; | |
| 89 | ||
| 90 | ||
| 91 | __BEGIN_DECLS | |
| 92 | ||
| 93 | extern Elf64_Addr la_ppc64_gnu_pltenter (Elf64_Sym *__sym, | |
| 94 | 					 unsigned int __ndx, | |
| 95 | 					 uintptr_t *__refcook, | |
| 96 | 					 uintptr_t *__defcook, | |
| 97 | 					 La_ppc64_regs *__regs, | |
| 98 | 					 unsigned int *__flags, | |
| 99 | 					 const char *__symname, | |
| 100 | 					 long int *__framesizep); | |
| 101 | extern unsigned int la_ppc64_gnu_pltexit (Elf64_Sym *__sym, | |
| 102 | 					 unsigned int __ndx, | |
| 103 | 					 uintptr_t *__refcook, | |
| 104 | 					 uintptr_t *__defcook, | |
| 105 | 					 const La_ppc64_regs *__inregs, | |
| 106 | 					 La_ppc64_retval *__outregs, | |
| 107 | 					 const char *__symname); | |
| 108 | ||
| 109 | __END_DECLS | |
| 110 | ||
| 111 | # else | |
| 112 | ||
| 113 | /* Registers for entry into PLT on PPC64 in the ELFv2 ABI. */ | |
| 114 | typedef struct La_ppc64v2_regs | |
| 115 | { | |
| 116 | uint64_t lr_reg[8]; | |
| 117 | double lr_fp[13]; | |
| 118 | uint32_t __padding; | |
| 119 | uint32_t lr_vrsave; | |
| 120 | uint32_t lr_vreg[12][4] __attribute__ ((aligned (16))); | |
| 121 | uint64_t lr_r1; | |
| 122 | uint64_t lr_lr; | |
| 123 | } La_ppc64v2_regs; | |
| 124 | ||
| 125 | /* Return values for calls from PLT on PPC64 in the ELFv2 ABI. */ | |
| 126 | typedef struct La_ppc64v2_retval | |
| 127 | { | |
| 128 | uint64_t lrv_r3; | |
| 129 | uint64_t lrv_r4; | |
| 130 | double lrv_fp[10]; | |
| 131 | uint32_t lrv_vreg[8][4] __attribute__ ((aligned (16))); | |
| 132 | } La_ppc64v2_retval; | |
| 133 | ||
| 134 | ||
| 135 | __BEGIN_DECLS | |
| 136 | ||
| 137 | extern Elf64_Addr la_ppc64v2_gnu_pltenter (Elf64_Sym *__sym, | |
| 138 | 					 unsigned int __ndx, | |
| 139 | 					 uintptr_t *__refcook, | |
| 140 | 					 uintptr_t *__defcook, | |
| 141 | 					 La_ppc64v2_regs *__regs, | |
| 142 | 					 unsigned int *__flags, | |
| 143 | 					 const char *__symname, | |
| 144 | 					 long int *__framesizep); | |
| 145 | extern unsigned int la_ppc64v2_gnu_pltexit (Elf64_Sym *__sym, | |
| 146 | 					 unsigned int __ndx, | |
| 147 | 					 uintptr_t *__refcook, | |
| 148 | 					 uintptr_t *__defcook, | |
| 149 | 					 const La_ppc64v2_regs *__inregs, | |
| 150 | 					 La_ppc64v2_retval *__outregs, | |
| 151 | 					 const char *__symname); | |
| 152 | ||
| 153 | __END_DECLS | |
| 154 | ||
| 155 | # endif | |
| 156 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/long-double.h created+25| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | /* Properties of long double type. ldbl-opt 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 | #ifndef __NO_LONG_DOUBLE_MATH | |
| 20 | # define __LONG_DOUBLE_MATH_OPTIONAL	1 | |
| 21 | # ifndef __LONG_DOUBLE_128__ | |
| 22 | # define __NO_LONG_DOUBLE_MATH		1 | |
| 23 | # endif | |
| 24 | #endif | |
| 25 | #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/mman.h created+53| ... | ... | @@ -0,0 +1,53 @@ |
| 1 | /* Definitions for POSIX memory map interface. Linux/PowerPC version. | |
| 2 | Copyright (C) 1997-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 | #define PROT_SAO	0x10		/* Strong Access Ordering. */ | |
| 27 | ||
| 28 | /* These are Linux-specific. */ | |
| 29 | #ifdef __USE_MISC | |
| 30 | # define MAP_GROWSDOWN	0x00100		/* Stack-like segment. */ | |
| 31 | # define MAP_DENYWRITE	0x00800		/* ETXTBSY */ | |
| 32 | # define MAP_EXECUTABLE	0x01000		/* Mark it as an executable. */ | |
| 33 | # define MAP_LOCKED	0x00080		/* Lock the mapping. */ | |
| 34 | # define MAP_NORESERVE	0x00040		/* Don't check for reservations. */ | |
| 35 | # define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables. */ | |
| 36 | # define MAP_NONBLOCK	0x10000		/* Do not block on IO. */ | |
| 37 | # define MAP_STACK	0x20000		/* Allocation is for a stack. */ | |
| 38 | # define MAP_HUGETLB	0x40000		/* Create huge page mapping. */ | |
| 39 | # define MAP_SYNC	0x80000		/* Perform synchronous page | |
| 40 | 					 faults for the mapping. */ | |
| 41 | # define MAP_FIXED_NOREPLACE 0x100000	/* MAP_FIXED but do not unmap | |
| 42 | 					 underlying mapping. */ | |
| 43 | #endif | |
| 44 | ||
| 45 | /* Flags for `mlockall'. */ | |
| 46 | #define MCL_CURRENT	0x2000		/* Lock all currently mapped pages. */ | |
| 47 | #define MCL_FUTURE	0x4000		/* Lock all additions to address | |
| 48 | 					 space. */ | |
| 49 | #define MCL_ONFAULT	0x8000		/* Lock all pages that are | |
| 50 | 					 faulted in. */ | |
| 51 | ||
| 52 | /* Include generic Linux declarations. */ | |
| 53 | #include <bits/mman-linux.h> | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/procfs.h created+49| ... | ... | @@ -0,0 +1,49 @@ |
| 1 | /* Types for registers for sys/procfs.h. PowerPC version. | |
| 2 | Copyright (C) 1996-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 | #include <signal.h> | |
| 24 | #include <sys/ucontext.h> | |
| 25 | ||
| 26 | /* These definitions are normally provided by ucontext.h via | |
| 27 | asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define | |
| 28 | them here. */ | |
| 29 | #if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H | |
| 30 | #define ELF_NGREG 48 /* includes nip, msr, lr, etc. */ | |
| 31 | #define ELF_NFPREG 33 /* includes fpscr */ | |
| 32 | #if __WORDSIZE == 32 | |
| 33 | # define ELF_NVRREG 33 /* includes vscr */ | |
| 34 | #else | |
| 35 | # define ELF_NVRREG 34 /* includes vscr */ | |
| 36 | #endif | |
| 37 | ||
| 38 | typedef unsigned long elf_greg_t; | |
| 39 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | |
| 40 | ||
| 41 | typedef double elf_fpreg_t; | |
| 42 | typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; | |
| 43 | ||
| 44 | /* Altivec registers */ | |
| 45 | typedef struct { | |
| 46 | unsigned int u[4]; | |
| 47 | } __attribute__ ((__aligned__ (16))) elf_vrreg_t; | |
| 48 | typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG]; | |
| 49 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/pthread_stack_min.h created+21| ... | ... | @@ -0,0 +1,21 @@ |
| 1 | /* Definition of PTHREAD_STACK_MIN. Linux/PPC version. | |
| 2 | Copyright (C) 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 License as | |
| 7 | published by the Free Software Foundation; either version 2.1 of the | |
| 8 | 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; see the file COPYING.LIB. If | |
| 17 | not, see <https://www.gnu.org/licenses/>. */ | |
| 18 | ||
| 19 | /* Minimum size for a thread. At least two pages for systems with 64k | |
| 20 | pages. */ | |
| 21 | #define PTHREAD_STACK_MIN	131072 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/setjmp.h created+50| ... | ... | @@ -0,0 +1,50 @@ |
| 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 | /* Define the machine-dependent type `jmp_buf'. PowerPC 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 | /* The previous bits/setjmp.h had __jmp_buf defined as a structure. | |
| 27 | We use an array of 'long int' instead, to make writing the | |
| 28 | assembler easier. Naturally, user code should not depend on | |
| 29 | either representation. */ | |
| 30 | ||
| 31 | #include <bits/wordsize.h> | |
| 32 | ||
| 33 | /* The current powerpc 32-bit Altivec ABI specifies for SVR4 ABI and EABI | |
| 34 | the vrsave must be at byte 248 & v20 at byte 256. So we must pad this | |
| 35 | correctly on 32 bit. It also insists that vecregs are only gauranteed | |
| 36 | 4 byte alignment so we need to use vperm in the setjmp/longjmp routines. | |
| 37 | We have to version the code because members like int __mask_was_saved | |
| 38 | in the jmp_buf will move as jmp_buf is now larger than 248 bytes. We | |
| 39 | cannot keep the altivec jmp_buf backward compatible with the jmp_buf. */ | |
| 40 | #ifndef	_ASM | |
| 41 | # if __WORDSIZE == 64 | |
| 42 | typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16))); | |
| 43 | # else | |
| 44 | /* The alignment is not essential, i.e.the buffer can be copied to a 4 byte | |
| 45 | aligned buffer as per the ABI it is just added for performance reasons. */ | |
| 46 | typedef long int __jmp_buf[64 + (12 * 4)] __attribute__ ((__aligned__ (16))); | |
| 47 | # endif | |
| 48 | #endif | |
| 49 | ||
| 50 | #endif /* bits/setjmp.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/sigstack.h created+32| ... | ... | @@ -0,0 +1,32 @@ |
| 1 | /* sigstack, sigaltstack definitions. | |
| 2 | Copyright (C) 1998-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_SIGSTACK_H | |
| 20 | #define _BITS_SIGSTACK_H 1 | |
| 21 | ||
| 22 | #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H | |
| 23 | # error "Never include this file directly. Use <signal.h> instead" | |
| 24 | #endif | |
| 25 | ||
| 26 | /* Minimum stack size for a signal handler. */ | |
| 27 | #define MINSIGSTKSZ	4096 | |
| 28 | ||
| 29 | /* System default stack size. */ | |
| 30 | #define SIGSTKSZ	16384 | |
| 31 | ||
| 32 | #endif /* bits/sigstack.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/socket-constants.h created+70| ... | ... | @@ -0,0 +1,70 @@ |
| 1 | /* Socket constants which vary among Linux architectures. Version for POWER. | |
| 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 | #ifndef _SYS_SOCKET_H | |
| 20 | # error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #define SOL_SOCKET 1 | |
| 24 | #define SO_ACCEPTCONN 30 | |
| 25 | #define SO_BROADCAST 6 | |
| 26 | #define SO_DONTROUTE 5 | |
| 27 | #define SO_ERROR 4 | |
| 28 | #define SO_KEEPALIVE 9 | |
| 29 | #define SO_LINGER 13 | |
| 30 | #define SO_OOBINLINE 10 | |
| 31 | #define SO_RCVBUF 8 | |
| 32 | #define SO_RCVLOWAT 16 | |
| 33 | #define SO_REUSEADDR 2 | |
| 34 | #define SO_SNDBUF 7 | |
| 35 | #define SO_SNDLOWAT 17 | |
| 36 | #define SO_TYPE 3 | |
| 37 | ||
| 38 | #if __TIMESIZE == 64 | |
| 39 | # define SO_RCVTIMEO 18 | |
| 40 | # define SO_SNDTIMEO 19 | |
| 41 | # define SO_TIMESTAMP 29 | |
| 42 | # define SO_TIMESTAMPNS 35 | |
| 43 | # define SO_TIMESTAMPING 37 | |
| 44 | #else | |
| 45 | # define SO_RCVTIMEO_OLD 18 | |
| 46 | # define SO_SNDTIMEO_OLD 19 | |
| 47 | # define SO_RCVTIMEO_NEW 66 | |
| 48 | # define SO_SNDTIMEO_NEW 67 | |
| 49 | ||
| 50 | # define SO_TIMESTAMP_OLD 29 | |
| 51 | # define SO_TIMESTAMPNS_OLD 35 | |
| 52 | # define SO_TIMESTAMPING_OLD 37 | |
| 53 | # define SO_TIMESTAMP_NEW 63 | |
| 54 | # define SO_TIMESTAMPNS_NEW 64 | |
| 55 | # define SO_TIMESTAMPING_NEW 65 | |
| 56 | ||
| 57 | # ifdef __USE_TIME_BITS64 | |
| 58 | # define SO_RCVTIMEO SO_RCVTIMEO_NEW | |
| 59 | # define SO_SNDTIMEO SO_SNDTIMEO_NEW | |
| 60 | # define SO_TIMESTAMP SO_TIMESTAMP_NEW | |
| 61 | # define SO_TIMESTAMPNS SO_TIMESTAMPNS_NEW | |
| 62 | # define SO_TIMESTAMPING SO_TIMESTAMPING_NEW | |
| 63 | # else | |
| 64 | # define SO_RCVTIMEO SO_RCVTIMEO_OLD | |
| 65 | # define SO_SNDTIMEO SO_SNDTIMEO_OLD | |
| 66 | # define SO_TIMESTAMP SO_TIMESTAMP_OLD | |
| 67 | # define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD | |
| 68 | # define SO_TIMESTAMPING SO_TIMESTAMPING_OLD | |
| 69 | # endif | |
| 70 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/struct_mutex.h created+63| ... | ... | @@ -0,0 +1,63 @@ |
| 1 | /* PowerPC 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 | #if __WORDSIZE == 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 | #if __WORDSIZE == 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 __elision; | |
| 46 | # define __spins __elision_data.__espins | |
| 47 | # define __elision __elision_data.__elision | |
| 48 | } __elision_data; | |
| 49 | __pthread_slist_t __list; | |
| 50 | }; | |
| 51 | # define __PTHREAD_MUTEX_HAVE_PREV 0 | |
| 52 | #endif | |
| 53 | }; | |
| 54 | ||
| 55 | #if __WORDSIZE == 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/powerpc-linux-gnueabihf/bits/struct_rwlock.h created+61| ... | ... | @@ -0,0 +1,61 @@ |
| 1 | /* PowerPC 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 | #if __WORDSIZE == 64 | |
| 32 | int __cur_writer; | |
| 33 | int __shared; | |
| 34 | unsigned char __rwelision; | |
| 35 | unsigned char __pad1[7]; | |
| 36 | unsigned long int __pad2; | |
| 37 | /* FLAGS must stay at this position in the structure to maintain | |
| 38 | binary compatibility. */ | |
| 39 | unsigned int __flags; | |
| 40 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, {0, 0, 0, 0, 0, 0, 0 } | |
| 41 | #else | |
| 42 | unsigned char __rwelision; | |
| 43 | unsigned char __pad2; | |
| 44 | unsigned char __shared; | |
| 45 | /* FLAGS must stay at this position in the structure to maintain | |
| 46 | binary compatibility. */ | |
| 47 | unsigned char __flags; | |
| 48 | int __cur_writer; | |
| 49 | # define __PTHREAD_RWLOCK_ELISION_EXTRA 0 | |
| 50 | #endif | |
| 51 | }; | |
| 52 | ||
| 53 | #if __WORDSIZE == 64 | |
| 54 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | |
| 55 | 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags | |
| 56 | #else | |
| 57 | # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ | |
| 58 | 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0, __flags, 0 | |
| 59 | #endif | |
| 60 | ||
| 61 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/struct_stat.h created+231| ... | ... | @@ -0,0 +1,231 @@ |
| 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 | #include <bits/wordsize.h> | |
| 27 | ||
| 28 | #if __WORDSIZE == 32 | |
| 29 | struct stat | |
| 30 | { | |
| 31 | # ifdef __USE_TIME_BITS64 | |
| 32 | # include <bits/struct_stat_time64_helper.h> | |
| 33 | # else | |
| 34 | __dev_t st_dev;			/* Device. */ | |
| 35 | # ifndef __USE_FILE_OFFSET64 | |
| 36 | unsigned short int __pad1; | |
| 37 | __ino_t st_ino;			/* File serial number.	*/ | |
| 38 | # else | |
| 39 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 40 | # endif | |
| 41 | __mode_t st_mode;			/* File mode. */ | |
| 42 | __nlink_t st_nlink;			/* Link count. */ | |
| 43 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 44 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 45 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 46 | unsigned short int __pad2; | |
| 47 | # ifndef __USE_FILE_OFFSET64 | |
| 48 | __off_t st_size;			/* Size of file, in bytes. */ | |
| 49 | # else | |
| 50 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 51 | # endif | |
| 52 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 53 | ||
| 54 | # ifndef __USE_FILE_OFFSET64 | |
| 55 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 56 | # else | |
| 57 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 58 | # endif | |
| 59 | # ifdef __USE_XOPEN2K8 | |
| 60 | /* Nanosecond resolution timestamps are stored in a format | |
| 61 | equivalent to 'struct timespec'. This is the type used | |
| 62 | whenever possible but the Unix namespace rules do not allow the | |
| 63 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 64 | Therefore we have to handle the use of this header in strictly | |
| 65 | standard-compliant sources special. */ | |
| 66 | struct timespec st_atim;		/* Time of last access. */ | |
| 67 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 68 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 69 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 70 | # define st_mtime st_mtim.tv_sec | |
| 71 | # define st_ctime st_ctim.tv_sec | |
| 72 | # else | |
| 73 | __time_t st_atime;			/* Time of last access. */ | |
| 74 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 75 | __time_t st_mtime;			/* Time of last modification. */ | |
| 76 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 77 | __time_t st_ctime;			/* Time of last status change. */ | |
| 78 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 79 | # endif | |
| 80 | unsigned long int __glibc_reserved4; | |
| 81 | unsigned long int __glibc_reserved5; | |
| 82 | # endif /* __USE_TIME_BITS64 */ | |
| 83 | }; | |
| 84 | ||
| 85 | # ifdef __USE_LARGEFILE64 | |
| 86 | struct stat64 | |
| 87 | { | |
| 88 | # ifdef __USE_TIME_BITS64 | |
| 89 | # include <bits/struct_stat_time64_helper.h> | |
| 90 | # else | |
| 91 | __dev_t st_dev;			/* Device. */ | |
| 92 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 93 | __mode_t st_mode;			/* File mode. */ | |
| 94 | __nlink_t st_nlink;			/* Link count. */ | |
| 95 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 96 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 97 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 98 | unsigned short int __pad2; | |
| 99 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 100 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 101 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 102 | # ifdef __USE_XOPEN2K8 | |
| 103 | /* Nanosecond resolution timestamps are stored in a format | |
| 104 | equivalent to 'struct timespec'. This is the type used | |
| 105 | whenever possible but the Unix namespace rules do not allow the | |
| 106 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 107 | Therefore we have to handle the use of this header in strictly | |
| 108 | standard-compliant sources special. */ | |
| 109 | struct timespec st_atim;		/* Time of last access. */ | |
| 110 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 111 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 112 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 113 | # define st_mtime st_mtim.tv_sec | |
| 114 | # define st_ctime st_ctim.tv_sec | |
| 115 | # else | |
| 116 | __time_t st_atime;			/* Time of last access. */ | |
| 117 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 118 | __time_t st_mtime;			/* Time of last modification. */ | |
| 119 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 120 | __time_t st_ctime;			/* Time of last status change. */ | |
| 121 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 122 | # endif | |
| 123 | unsigned long int __glibc_reserved4; | |
| 124 | unsigned long int __glibc_reserved5; | |
| 125 | # endif /* __USE_TIME_BITS64 */ | |
| 126 | }; | |
| 127 | # endif /* __USE_LARGEFILE64 */ | |
| 128 | ||
| 129 | #else /* __WORDSIZE == 32 */ | |
| 130 | ||
| 131 | struct stat | |
| 132 | { | |
| 133 | __dev_t st_dev;			/* Device. */ | |
| 134 | # ifndef __USE_FILE_OFFSET64 | |
| 135 | __ino_t st_ino;			/* File serial number.	*/ | |
| 136 | # else | |
| 137 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 138 | # endif | |
| 139 | __nlink_t st_nlink;			/* Link count. */ | |
| 140 | __mode_t st_mode;			/* File mode. */ | |
| 141 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 142 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 143 | int __pad2; | |
| 144 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 145 | # ifndef __USE_FILE_OFFSET64 | |
| 146 | __off_t st_size;			/* Size of file, in bytes. */ | |
| 147 | # else | |
| 148 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 149 | # endif | |
| 150 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 151 | ||
| 152 | # ifndef __USE_FILE_OFFSET64 | |
| 153 | __blkcnt_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 154 | # else | |
| 155 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 156 | # endif | |
| 157 | # ifdef __USE_XOPEN2K8 | |
| 158 | /* Nanosecond resolution timestamps are stored in a format | |
| 159 | equivalent to 'struct timespec'. This is the type used | |
| 160 | whenever possible but the Unix namespace rules do not allow the | |
| 161 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 162 | Therefore we have to handle the use of this header in strictly | |
| 163 | standard-compliant sources special. */ | |
| 164 | struct timespec st_atim;		/* Time of last access. */ | |
| 165 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 166 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 167 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 168 | # define st_mtime st_mtim.tv_sec | |
| 169 | # define st_ctime st_ctim.tv_sec | |
| 170 | # else | |
| 171 | __time_t st_atime;			/* Time of last access. */ | |
| 172 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 173 | __time_t st_mtime;			/* Time of last modification. */ | |
| 174 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 175 | __time_t st_ctime;			/* Time of last status change. */ | |
| 176 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 177 | # endif | |
| 178 | unsigned long int __glibc_reserved4; | |
| 179 | unsigned long int __glibc_reserved5; | |
| 180 | unsigned long int __glibc_reserved6; | |
| 181 | }; | |
| 182 | ||
| 183 | # ifdef __USE_LARGEFILE64 | |
| 184 | struct stat64 | |
| 185 | { | |
| 186 | __dev_t st_dev;			/* Device. */ | |
| 187 | __ino64_t st_ino;			/* File serial number.	*/ | |
| 188 | __nlink_t st_nlink;			/* Link count. */ | |
| 189 | __mode_t st_mode;			/* File mode. */ | |
| 190 | __uid_t st_uid;			/* User ID of the file's owner.	*/ | |
| 191 | __gid_t st_gid;			/* Group ID of the file's group.*/ | |
| 192 | int __pad2; | |
| 193 | __dev_t st_rdev;			/* Device number, if device. */ | |
| 194 | __off64_t st_size;			/* Size of file, in bytes. */ | |
| 195 | __blksize_t st_blksize;		/* Optimal block size for I/O. */ | |
| 196 | __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ | |
| 197 | # ifdef __USE_XOPEN2K8 | |
| 198 | /* Nanosecond resolution timestamps are stored in a format | |
| 199 | equivalent to 'struct timespec'. This is the type used | |
| 200 | whenever possible but the Unix namespace rules do not allow the | |
| 201 | identifier 'timespec' to appear in the <sys/stat.h> header. | |
| 202 | Therefore we have to handle the use of this header in strictly | |
| 203 | standard-compliant sources special. */ | |
| 204 | struct timespec st_atim;		/* Time of last access. */ | |
| 205 | struct timespec st_mtim;		/* Time of last modification. */ | |
| 206 | struct timespec st_ctim;		/* Time of last status change. */ | |
| 207 | # define st_atime st_atim.tv_sec	/* Backward compatibility. */ | |
| 208 | # define st_mtime st_mtim.tv_sec | |
| 209 | # define st_ctime st_ctim.tv_sec | |
| 210 | # else | |
| 211 | __time_t st_atime;			/* Time of last access. */ | |
| 212 | unsigned long int st_atimensec;	/* Nscecs of last access. */ | |
| 213 | __time_t st_mtime;			/* Time of last modification. */ | |
| 214 | unsigned long int st_mtimensec;	/* Nsecs of last modification. */ | |
| 215 | __time_t st_ctime;			/* Time of last status change. */ | |
| 216 | unsigned long int st_ctimensec;	/* Nsecs of last status change. */ | |
| 217 | # endif | |
| 218 | unsigned long int __glibc_reserved4; | |
| 219 | unsigned long int __glibc_reserved5; | |
| 220 | unsigned long int __glibc_reserved6; | |
| 221 | }; | |
| 222 | # endif /* __USE_LARGEFILE64 */ | |
| 223 | #endif | |
| 224 | ||
| 225 | /* Tell code we have these members. */ | |
| 226 | #define	_STATBUF_ST_BLKSIZE | |
| 227 | #define _STATBUF_ST_RDEV | |
| 228 | /* Nanosecond resolution time values are supported. */ | |
| 229 | #define _STATBUF_ST_NSEC | |
| 230 | ||
| 231 | #endif /* _BITS_STRUCT_STAT_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/termios-baud.h created+45| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | /* termios baud rate selection definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-baud.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_MISC | |
| 24 | # define CBAUD	0000377 | |
| 25 | # define CBAUDEX 0000020 | |
| 26 | # define CMSPAR 010000000000		/* mark or space (stick) parity */ | |
| 27 | # define CRTSCTS 020000000000		/* flow control */ | |
| 28 | #endif | |
| 29 | ||
| 30 | #define B57600 00020 | |
| 31 | #define B115200 00021 | |
| 32 | #define B230400 00022 | |
| 33 | #define B460800 00023 | |
| 34 | #define B500000 00024 | |
| 35 | #define B576000 00025 | |
| 36 | #define B921600 00026 | |
| 37 | #define B1000000 00027 | |
| 38 | #define B1152000 00030 | |
| 39 | #define B1500000 00031 | |
| 40 | #define B2000000 00032 | |
| 41 | #define B2500000 00033 | |
| 42 | #define B3000000 00034 | |
| 43 | #define B3500000 00035 | |
| 44 | #define B4000000 00036 | |
| 45 | #define __MAX_BAUD B4000000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/termios-c_cc.h created+41| ... | ... | @@ -0,0 +1,41 @@ |
| 1 | /* termios c_cc symbolic constant definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_cc.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_cc characters */ | |
| 24 | #define VINTR	0 | |
| 25 | #define VQUIT	1 | |
| 26 | #define VERASE	2 | |
| 27 | #define VKILL	3 | |
| 28 | #define VEOF	4 | |
| 29 | #define VMIN	5 | |
| 30 | #define VEOL	6 | |
| 31 | #define VTIME	7 | |
| 32 | #define VEOL2	8 | |
| 33 | #define VSWTC	9 | |
| 34 | ||
| 35 | #define VWERASE	10 | |
| 36 | #define VREPRINT	11 | |
| 37 | #define VSUSP		12 | |
| 38 | #define VSTART		13 | |
| 39 | #define VSTOP		14 | |
| 40 | #define VLNEXT		15 | |
| 41 | #define VDISCARD	16 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/termios-c_cflag.h created+35| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | /* termios control mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_cflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #define CSIZE	00001400 | |
| 24 | #define CS5	00000000 | |
| 25 | #define CS6	00000400 | |
| 26 | #define CS7	00001000 | |
| 27 | #define CS8	00001400 | |
| 28 | ||
| 29 | #define CSTOPB	00002000 | |
| 30 | #define CREAD	00004000 | |
| 31 | #define PARENB	00010000 | |
| 32 | #define PARODD	00020000 | |
| 33 | #define HUPCL	00040000 | |
| 34 | ||
| 35 | #define CLOCAL	00100000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/termios-c_iflag.h created+38| ... | ... | @@ -0,0 +1,38 @@ |
| 1 | /* termios input mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_iflags.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_iflag bits */ | |
| 24 | #define IGNBRK	0000001 | |
| 25 | #define BRKINT	0000002 | |
| 26 | #define IGNPAR	0000004 | |
| 27 | #define PARMRK	0000010 | |
| 28 | #define INPCK	0000020 | |
| 29 | #define ISTRIP	0000040 | |
| 30 | #define INLCR	0000100 | |
| 31 | #define IGNCR	0000200 | |
| 32 | #define ICRNL	0000400 | |
| 33 | #define IXON	0001000 | |
| 34 | #define IXOFF	0002000 | |
| 35 | #define IXANY	0004000 | |
| 36 | #define IUCLC	0010000 | |
| 37 | #define IMAXBEL	0020000 | |
| 38 | #define IUTF8	0040000 | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/termios-c_lflag.h created+45| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | /* termios local mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_lflag bits */ | |
| 24 | #define ISIG	0x00000080 | |
| 25 | #define ICANON	0x00000100 | |
| 26 | #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) | |
| 27 | # define XCASE	0x00004000 | |
| 28 | #endif | |
| 29 | #define ECHO	0x00000008 | |
| 30 | #define ECHOE	0x00000002 | |
| 31 | #define ECHOK	0x00000004 | |
| 32 | #define ECHONL	0x00000010 | |
| 33 | #define NOFLSH	0x80000000 | |
| 34 | #define TOSTOP	0x00400000 | |
| 35 | #ifdef __USE_MISC | |
| 36 | # define ECHOCTL	0x00000040 | |
| 37 | # define ECHOPRT	0x00000020 | |
| 38 | # define ECHOKE	0x00000001 | |
| 39 | # define FLUSHO	0x00800000 | |
| 40 | # define PENDIN	0x20000000 | |
| 41 | #endif | |
| 42 | #define IEXTEN	0x00000400 | |
| 43 | #ifdef __USE_MISC | |
| 44 | # define EXTPROC 0x10000000 | |
| 45 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/termios-c_oflag.h created+65| ... | ... | @@ -0,0 +1,65 @@ |
| 1 | /* termios output mode definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* c_oflag bits */ | |
| 24 | #define OPOST	0000001 | |
| 25 | #define ONLCR	0000002 | |
| 26 | #define OLCUC	0000004 | |
| 27 | ||
| 28 | #define OCRNL	0000010 | |
| 29 | #define ONOCR	0000020 | |
| 30 | #define ONLRET	0000040 | |
| 31 | ||
| 32 | #define OFILL	00000100 | |
| 33 | #define OFDEL	00000200 | |
| 34 | #if defined __USE_MISC || defined __USE_XOPEN | |
| 35 | # define NLDLY	00001400 | |
| 36 | # define NL0	00000000 | |
| 37 | # define NL1	00000400 | |
| 38 | # if defined __USE_MISC | |
| 39 | # define NL2	00001000 | |
| 40 | # define NL3	00001400 | |
| 41 | # endif | |
| 42 | # define TABDLY	00006000 | |
| 43 | # define TAB0	00000000 | |
| 44 | # define TAB1	00002000 | |
| 45 | # define TAB2	00004000 | |
| 46 | # define TAB3	00006000 | |
| 47 | # define CRDLY	00030000 | |
| 48 | # define CR0	00000000 | |
| 49 | # define CR1	00010000 | |
| 50 | # define CR2	00020000 | |
| 51 | # define CR3	00030000 | |
| 52 | # define FFDLY	00040000 | |
| 53 | # define FF0	00000000 | |
| 54 | # define FF1	00040000 | |
| 55 | # define BSDLY	00100000 | |
| 56 | # define BS0	00000000 | |
| 57 | # define BS1	00100000 | |
| 58 | #endif | |
| 59 | #define VTDLY	00200000 | |
| 60 | #define VT0	00000000 | |
| 61 | #define VT1	00200000 | |
| 62 | ||
| 63 | #ifdef __USE_MISC | |
| 64 | # define XTABS	00006000 | |
| 65 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/termios-misc.h created+72| ... | ... | @@ -0,0 +1,72 @@ |
| 1 | /* termios baud platform specific definitions. Linux/powerpc version. | |
| 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 | #ifndef _TERMIOS_H | |
| 20 | # error "Never include <bits/termios-misc.h> directly; use <termios.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #ifdef __USE_MISC | |
| 24 | ||
| 25 | struct sgttyb { | |
| 26 | 	char	sg_ispeed; | |
| 27 | 	char	sg_ospeed; | |
| 28 | 	char	sg_erase; | |
| 29 | 	char	sg_kill; | |
| 30 | 	short	sg_flags; | |
| 31 | }; | |
| 32 | ||
| 33 | struct tchars { | |
| 34 | 	char	t_intrc; | |
| 35 | 	char	t_quitc; | |
| 36 | 	char	t_startc; | |
| 37 | 	char	t_stopc; | |
| 38 | 	char	t_eofc; | |
| 39 | 	char	t_brkc; | |
| 40 | }; | |
| 41 | ||
| 42 | struct ltchars { | |
| 43 | 	char	t_suspc; | |
| 44 | 	char	t_dsuspc; | |
| 45 | 	char	t_rprntc; | |
| 46 | 	char	t_flushc; | |
| 47 | 	char	t_werasc; | |
| 48 | 	char	t_lnextc; | |
| 49 | }; | |
| 50 | ||
| 51 | /* Used for packet mode */ | |
| 52 | #define TIOCPKT_DATA		 0 | |
| 53 | #define TIOCPKT_FLUSHREAD	 1 | |
| 54 | #define TIOCPKT_FLUSHWRITE	 2 | |
| 55 | #define TIOCPKT_STOP		 4 | |
| 56 | #define TIOCPKT_START		 8 | |
| 57 | #define TIOCPKT_NOSTOP		16 | |
| 58 | #define TIOCPKT_DOSTOP		32 | |
| 59 | ||
| 60 | /* c_cc characters */ | |
| 61 | #define _VINTR	0 | |
| 62 | #define _VQUIT	1 | |
| 63 | #define _VERASE	2 | |
| 64 | #define _VKILL	3 | |
| 65 | #define _VEOF	4 | |
| 66 | #define _VMIN	5 | |
| 67 | #define _VEOL	6 | |
| 68 | #define _VTIME	7 | |
| 69 | #define _VEOL2	8 | |
| 70 | #define _VSWTC	9 | |
| 71 | ||
| 72 | #endif /* __USE_MISC */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/types/struct_msqid_ds.h created+53| ... | ... | @@ -0,0 +1,53 @@ |
| 1 | /* Linux/PowerPC implementation of the SysV message struct msqid_ds. | |
| 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 | #ifndef _SYS_MSG_H | |
| 20 | # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | #include <bits/types/time_t.h> | |
| 24 | ||
| 25 | /* Structure of record for one message inside the kernel. | |
| 26 | The type `struct msg' is opaque. */ | |
| 27 | struct msqid_ds | |
| 28 | { | |
| 29 | #ifdef __USE_TIME_BITS64 | |
| 30 | # include <bits/types/struct_msqid64_ds_helper.h> | |
| 31 | #else | |
| 32 | struct ipc_perm msg_perm;	/* structure describing operation permission */ | |
| 33 | # if __TIMESIZE == 32 | |
| 34 | unsigned long int __msg_stime_high; | |
| 35 | __time_t msg_stime;		/* time of last msgsnd command */ | |
| 36 | unsigned long int __msg_rtime_high; | |
| 37 | __time_t msg_rtime;		/* time of last msgsnd command */ | |
| 38 | unsigned long int __msg_ctime_high; | |
| 39 | __time_t msg_ctime;		/* time of last change */ | |
| 40 | # else | |
| 41 | __time_t msg_stime;		/* time of last msgsnd command */ | |
| 42 | __time_t msg_rtime;		/* time of last msgsnd command */ | |
| 43 | __time_t msg_ctime;		/* time of last change */ | |
| 44 | # endif | |
| 45 | __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */ | |
| 46 | msgqnum_t msg_qnum;		/* number of messages currently on queue */ | |
| 47 | msglen_t msg_qbytes;		/* max number of bytes allowed on queue */ | |
| 48 | __pid_t msg_lspid;		/* pid of last msgsnd() */ | |
| 49 | __pid_t msg_lrpid;		/* pid of last msgrcv() */ | |
| 50 | __syscall_ulong_t __glibc_reserved4; | |
| 51 | __syscall_ulong_t __glibc_reserved5; | |
| 52 | #endif | |
| 53 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/types/struct_semid_ds.h created+43| ... | ... | @@ -0,0 +1,43 @@ |
| 1 | /* PowerPC 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 | # if __TIMESIZE == 32 | |
| 31 | __syscall_ulong_t __sem_otime_high; | |
| 32 | __time_t sem_otime; /* last semop() time */ | |
| 33 | __syscall_ulong_t __sem_ctime_high; | |
| 34 | __time_t sem_ctime; /* last time changed by semctl() */ | |
| 35 | # else | |
| 36 | __time_t sem_otime; /* last semop() time */ | |
| 37 | __time_t sem_ctime; /* last time changed by semctl() */ | |
| 38 | # endif | |
| 39 | __syscall_ulong_t sem_nsems; /* number of semaphores in set */ | |
| 40 | __syscall_ulong_t __glibc_reserved3; | |
| 41 | __syscall_ulong_t __glibc_reserved4; | |
| 42 | #endif | |
| 43 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/types/struct_shmid_ds.h created+50| ... | ... | @@ -0,0 +1,50 @@ |
| 1 | /* Linux/PowerPC implementation of the shared memory struct shmid_ds. | |
| 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 | #ifndef _SYS_SHM_H | |
| 20 | # error "Never include <bits/types/struct_shmid_ds.h> directly; use <sys/shm.h> instead." | |
| 21 | #endif | |
| 22 | ||
| 23 | /* Data structure describing a shared memory segment. */ | |
| 24 | struct shmid_ds | |
| 25 | { | |
| 26 | #ifdef __USE_TIME_BITS64 | |
| 27 | # include <bits/types/struct_shmid64_ds_helper.h> | |
| 28 | #else | |
| 29 | struct ipc_perm shm_perm;		/* operation permission struct */ | |
| 30 | # if __TIMESIZE == 32 | |
| 31 | unsigned long int __shm_atime_high; | |
| 32 | __time_t shm_atime;			/* time of last shmat() */ | |
| 33 | unsigned long int __shm_dtime_high; | |
| 34 | __time_t shm_dtime;			/* time of last shmdt() */ | |
| 35 | unsigned long int __shm_ctime_high; | |
| 36 | __time_t shm_ctime;			/* time of last change by shmctl() */ | |
| 37 | unsigned long int __glibc_reserved4; | |
| 38 | # else | |
| 39 | __time_t shm_atime;			/* time of last shmat() */ | |
| 40 | __time_t shm_dtime;			/* time of last shmdt() */ | |
| 41 | __time_t shm_ctime;			/* time of last change by shmctl() */ | |
| 42 | # endif | |
| 43 | size_t shm_segsz;			/* size of segment in bytes */ | |
| 44 | __pid_t shm_cpid;			/* pid of creator */ | |
| 45 | __pid_t shm_lpid;			/* pid of last shmop */ | |
| 46 | shmatt_t shm_nattch;		/* number of current attaches */ | |
| 47 | __syscall_ulong_t __glibc_reserved5; | |
| 48 | __syscall_ulong_t __glibc_reserved6; | |
| 49 | #endif | |
| 50 | }; | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/bits/wordsize.h created+11| ... | ... | @@ -0,0 +1,11 @@ |
| 1 | /* Determine the wordsize from the preprocessor defines. */ | |
| 2 | ||
| 3 | #if defined __powerpc64__ | |
| 4 | # define __WORDSIZE	64 | |
| 5 | # define __WORDSIZE_TIME64_COMPAT32	1 | |
| 6 | #else | |
| 7 | # define __WORDSIZE	32 | |
| 8 | # define __WORDSIZE_TIME64_COMPAT32	0 | |
| 9 | # define __WORDSIZE32_SIZE_ULONG	0 | |
| 10 | # define __WORDSIZE32_PTRDIFF_LONG	0 | |
| 11 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/fpu_control.h created+114| ... | ... | @@ -0,0 +1,114 @@ |
| 1 | /* FPU control word definitions. PowerPC version. | |
| 2 | Copyright (C) 1996-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 _FPU_CONTROL_H | |
| 20 | #define _FPU_CONTROL_H | |
| 21 | ||
| 22 | #if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT) | |
| 23 | # error "SPE/e500 is no longer supported" | |
| 24 | #endif | |
| 25 | ||
| 26 | #ifdef _SOFT_FLOAT | |
| 27 | ||
| 28 | # define _FPU_RESERVED 0xffffffff | |
| 29 | # define _FPU_DEFAULT 0x00000000 /* Default value. */ | |
| 30 | typedef unsigned int fpu_control_t; | |
| 31 | # define _FPU_GETCW(cw) (cw) = 0 | |
| 32 | # define _FPU_SETCW(cw) (void) (cw) | |
| 33 | extern fpu_control_t __fpu_control; | |
| 34 | ||
| 35 | #else /* PowerPC 6xx floating-point. */ | |
| 36 | ||
| 37 | /* rounding control */ | |
| 38 | # define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */ | |
| 39 | # define _FPU_RC_DOWN 0x03 | |
| 40 | # define _FPU_RC_UP 0x02 | |
| 41 | # define _FPU_RC_ZERO 0x01 | |
| 42 | ||
| 43 | # define _FPU_MASK_RC (_FPU_RC_NEAREST|_FPU_RC_DOWN|_FPU_RC_UP|_FPU_RC_ZERO) | |
| 44 | ||
| 45 | # define _FPU_MASK_NI 0x04 /* non-ieee mode */ | |
| 46 | ||
| 47 | /* masking of interrupts */ | |
| 48 | # define _FPU_MASK_ZM 0x10 /* zero divide */ | |
| 49 | # define _FPU_MASK_OM 0x40 /* overflow */ | |
| 50 | # define _FPU_MASK_UM 0x20 /* underflow */ | |
| 51 | # define _FPU_MASK_XM 0x08 /* inexact */ | |
| 52 | # define _FPU_MASK_IM 0x80 /* invalid operation */ | |
| 53 | ||
| 54 | # define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */ | |
| 55 | ||
| 56 | /* The fdlibm code requires no interrupts for exceptions. */ | |
| 57 | # define _FPU_DEFAULT 0x00000000 /* Default value. */ | |
| 58 | ||
| 59 | /* IEEE: same as above, but (some) exceptions; | |
| 60 | we leave the 'inexact' exception off. | |
| 61 | */ | |
| 62 | # define _FPU_IEEE 0x000000f0 | |
| 63 | ||
| 64 | /* Type of the control word. */ | |
| 65 | typedef unsigned int fpu_control_t; | |
| 66 | ||
| 67 | /* Macros for accessing the hardware control word. */ | |
| 68 | # define _FPU_GETCW(cw)						\ | |
| 69 | ({union { double __d; unsigned long long __ll; } __u;		\ | |
| 70 | __asm__ __volatile__("mffs %0" : "=f" (__u.__d));		\ | |
| 71 | (cw) = (fpu_control_t) __u.__ll;				\ | |
| 72 | (fpu_control_t) __u.__ll;					\ | |
| 73 | }) | |
| 74 | ||
| 75 | # define _FPU_GET_RC_ISA300()						\ | |
| 76 | ({union { double __d; unsigned long long __ll; } __u;			\ | |
| 77 | __asm__ __volatile__(						\ | |
| 78 | ".machine push; .machine \"power9\"; mffsl %0; .machine pop" 	\ | |
| 79 | : "=f" (__u.__d));						\ | |
| 80 | (fpu_control_t) (__u.__ll & _FPU_MASK_RC);				\ | |
| 81 | }) | |
| 82 | ||
| 83 | # ifdef _ARCH_PWR9 | |
| 84 | # define _FPU_GET_RC() _FPU_GET_RC_ISA300() | |
| 85 | # elif defined __BUILTIN_CPU_SUPPORTS__ | |
| 86 | # define _FPU_GET_RC()							\ | |
| 87 | ({fpu_control_t __rc;							\ | |
| 88 | __rc = __glibc_likely (__builtin_cpu_supports ("arch_3_00"))	\ | |
| 89 | ? _FPU_GET_RC_ISA300 ()						\ | |
| 90 | : _FPU_GETCW (__rc) & _FPU_MASK_RC;				\ | |
| 91 | __rc;								\ | |
| 92 | }) | |
| 93 | # else | |
| 94 | # define _FPU_GET_RC()						\ | |
| 95 | ({fpu_control_t __rc = _FPU_GETCW (__rc) & _FPU_MASK_RC;	\ | |
| 96 | __rc;							\ | |
| 97 | }) | |
| 98 | # endif | |
| 99 | ||
| 100 | # define _FPU_SETCW(cw)						\ | |
| 101 | { union { double __d; unsigned long long __ll; } __u;		\ | |
| 102 | register double __fr;					\ | |
| 103 | __u.__ll = 0xfff80000LL << 32; /* This is a QNaN. */	\ | |
| 104 | __u.__ll |= (cw) & 0xffffffffLL;				\ | |
| 105 | __fr = __u.__d;						\ | |
| 106 | __asm__ __volatile__("mtfsf 255,%0" : : "f" (__fr));	\ | |
| 107 | } | |
| 108 | ||
| 109 | /* Default control word set at startup. */ | |
| 110 | extern fpu_control_t __fpu_control; | |
| 111 | ||
| 112 | #endif /* PowerPC 6xx floating-point. */ | |
| 113 | ||
| 114 | #endif /* _FPU_CONTROL_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/gnu/lib-names-32.h created+29| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | /* This file is automatically generated. */ | |
| 2 | #ifndef __GNU_LIB_NAMES_H | |
| 3 | # error "Never use <gnu/lib-names-32.h> directly; include <gnu/lib-names.h> instead." | |
| 4 | #endif | |
| 5 | ||
| 6 | #define LD_SO "ld.so.1" | |
| 7 | #define LIBANL_SO "libanl.so.1" | |
| 8 | #define LIBBROKENLOCALE_SO "libBrokenLocale.so.1" | |
| 9 | #define LIBCRYPT_SO "libcrypt.so.1" | |
| 10 | #define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0" | |
| 11 | #define LIBC_SO "libc.so.6" | |
| 12 | #define LIBDL_SO "libdl.so.2" | |
| 13 | #define LIBGCC_S_SO "libgcc_s.so.1" | |
| 14 | #define LIBMVEC_SO "libmvec.so.1" | |
| 15 | #define LIBM_SO "libm.so.6" | |
| 16 | #define LIBNSL_SO "libnsl.so.1" | |
| 17 | #define LIBNSS_COMPAT_SO "libnss_compat.so.2" | |
| 18 | #define LIBNSS_DB_SO "libnss_db.so.2" | |
| 19 | #define LIBNSS_DNS_SO "libnss_dns.so.2" | |
| 20 | #define LIBNSS_FILES_SO "libnss_files.so.2" | |
| 21 | #define LIBNSS_HESIOD_SO "libnss_hesiod.so.2" | |
| 22 | #define LIBNSS_LDAP_SO "libnss_ldap.so.2" | |
| 23 | #define LIBNSS_TEST1_SO "libnss_test1.so.2" | |
| 24 | #define LIBNSS_TEST2_SO "libnss_test2.so.2" | |
| 25 | #define LIBPTHREAD_SO "libpthread.so.0" | |
| 26 | #define LIBRESOLV_SO "libresolv.so.2" | |
| 27 | #define LIBRT_SO "librt.so.1" | |
| 28 | #define LIBTHREAD_DB_SO "libthread_db.so.1" | |
| 29 | #define LIBUTIL_SO "libutil.so.1" | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/gnu/lib-names.h created+19| ... | ... | @@ -0,0 +1,19 @@ |
| 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 | #include <bits/wordsize.h> | |
| 8 | ||
| 9 | #if __WORDSIZE == 32 | |
| 10 | # include <gnu/lib-names-32.h> | |
| 11 | #endif | |
| 12 | #if __WORDSIZE == 64 && _CALL_ELF != 2 | |
| 13 | # include <gnu/lib-names-64-v1.h> | |
| 14 | #endif | |
| 15 | #if __WORDSIZE == 64 && _CALL_ELF == 2 | |
| 16 | # include <gnu/lib-names-64-v2.h> | |
| 17 | #endif | |
| 18 | ||
| 19 | #endif	/* gnu/lib-names.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/gnu/stubs.h created+15| ... | ... | @@ -0,0 +1,15 @@ |
| 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 | #include <bits/wordsize.h> | |
| 6 | ||
| 7 | #if __WORDSIZE == 32 | |
| 8 | # include <gnu/stubs-32.h> | |
| 9 | #endif | |
| 10 | #if __WORDSIZE == 64 && _CALL_ELF != 2 | |
| 11 | # include <gnu/stubs-64-v1.h> | |
| 12 | #endif | |
| 13 | #if __WORDSIZE == 64 && _CALL_ELF == 2 | |
| 14 | # include <gnu/stubs-64-v2.h> | |
| 15 | #endif | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/ieee754.h created+197| ... | ... | @@ -0,0 +1,197 @@ |
| 1 | /* Copyright (C) 1992-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 _IEEE754_H | |
| 19 | #define _IEEE754_H 1 | |
| 20 | ||
| 21 | #include <features.h> | |
| 22 | ||
| 23 | #include <bits/endian.h> | |
| 24 | #include <bits/floatn.h> | |
| 25 | ||
| 26 | __BEGIN_DECLS | |
| 27 | ||
| 28 | union ieee754_float | |
| 29 | { | |
| 30 | float f; | |
| 31 | ||
| 32 | /* This is the IEEE 754 single-precision format. */ | |
| 33 | struct | |
| 34 | { | |
| 35 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 36 | 	unsigned int negative:1; | |
| 37 | 	unsigned int exponent:8; | |
| 38 | 	unsigned int mantissa:23; | |
| 39 | #endif				/* Big endian. */ | |
| 40 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 41 | 	unsigned int mantissa:23; | |
| 42 | 	unsigned int exponent:8; | |
| 43 | 	unsigned int negative:1; | |
| 44 | #endif				/* Little endian. */ | |
| 45 | } ieee; | |
| 46 | ||
| 47 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 48 | struct | |
| 49 | { | |
| 50 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 51 | 	unsigned int negative:1; | |
| 52 | 	unsigned int exponent:8; | |
| 53 | 	unsigned int quiet_nan:1; | |
| 54 | 	unsigned int mantissa:22; | |
| 55 | #endif				/* Big endian. */ | |
| 56 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 57 | 	unsigned int mantissa:22; | |
| 58 | 	unsigned int quiet_nan:1; | |
| 59 | 	unsigned int exponent:8; | |
| 60 | 	unsigned int negative:1; | |
| 61 | #endif				/* Little endian. */ | |
| 62 | } ieee_nan; | |
| 63 | }; | |
| 64 | ||
| 65 | #define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent. */ | |
| 66 | ||
| 67 | ||
| 68 | union ieee754_double | |
| 69 | { | |
| 70 | double d; | |
| 71 | ||
| 72 | /* This is the IEEE 754 double-precision format. */ | |
| 73 | struct | |
| 74 | { | |
| 75 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 76 | 	unsigned int negative:1; | |
| 77 | 	unsigned int exponent:11; | |
| 78 | 	/* Together these comprise the mantissa. */ | |
| 79 | 	unsigned int mantissa0:20; | |
| 80 | 	unsigned int mantissa1:32; | |
| 81 | #endif				/* Big endian. */ | |
| 82 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 83 | 	/* Together these comprise the mantissa. */ | |
| 84 | 	unsigned int mantissa1:32; | |
| 85 | 	unsigned int mantissa0:20; | |
| 86 | 	unsigned int exponent:11; | |
| 87 | 	unsigned int negative:1; | |
| 88 | #endif				/* Little endian. */ | |
| 89 | } ieee; | |
| 90 | ||
| 91 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 92 | struct | |
| 93 | { | |
| 94 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 95 | 	unsigned int negative:1; | |
| 96 | 	unsigned int exponent:11; | |
| 97 | 	unsigned int quiet_nan:1; | |
| 98 | 	/* Together these comprise the mantissa. */ | |
| 99 | 	unsigned int mantissa0:19; | |
| 100 | 	unsigned int mantissa1:32; | |
| 101 | #else | |
| 102 | 	/* Together these comprise the mantissa. */ | |
| 103 | 	unsigned int mantissa1:32; | |
| 104 | 	unsigned int mantissa0:19; | |
| 105 | 	unsigned int quiet_nan:1; | |
| 106 | 	unsigned int exponent:11; | |
| 107 | 	unsigned int negative:1; | |
| 108 | #endif | |
| 109 | } ieee_nan; | |
| 110 | }; | |
| 111 | ||
| 112 | #define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent. */ | |
| 113 | ||
| 114 | ||
| 115 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 | |
| 116 | /* long double is IEEE 128 bit */ | |
| 117 | union ieee854_long_double | |
| 118 | { | |
| 119 | long double d; | |
| 120 | ||
| 121 | /* This is the IEEE 854 quad-precision format. */ | |
| 122 | struct | |
| 123 | { | |
| 124 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 125 | 	unsigned int negative:1; | |
| 126 | 	unsigned int exponent:15; | |
| 127 | 	/* Together these comprise the mantissa. */ | |
| 128 | 	unsigned int mantissa0:16; | |
| 129 | 	unsigned int mantissa1:32; | |
| 130 | 	unsigned int mantissa2:32; | |
| 131 | 	unsigned int mantissa3:32; | |
| 132 | #endif				/* Big endian. */ | |
| 133 | #if	__BYTE_ORDER == __LITTLE_ENDIAN | |
| 134 | 	/* Together these comprise the mantissa. */ | |
| 135 | 	unsigned int mantissa3:32; | |
| 136 | 	unsigned int mantissa2:32; | |
| 137 | 	unsigned int mantissa1:32; | |
| 138 | 	unsigned int mantissa0:16; | |
| 139 | 	unsigned int exponent:15; | |
| 140 | 	unsigned int negative:1; | |
| 141 | #endif				/* Little endian. */ | |
| 142 | } ieee; | |
| 143 | ||
| 144 | /* This format makes it easier to see if a NaN is a signalling NaN. */ | |
| 145 | struct | |
| 146 | { | |
| 147 | #if	__BYTE_ORDER == __BIG_ENDIAN | |
| 148 | 	unsigned int negative:1; | |
| 149 | 	unsigned int exponent:15; | |
| 150 | 	unsigned int quiet_nan:1; | |
| 151 | 	/* Together these comprise the mantissa. */ | |
| 152 | 	unsigned int mantissa0:15; | |
| 153 | 	unsigned int mantissa1:32; | |
| 154 | 	unsigned int mantissa2:32; | |
| 155 | 	unsigned int mantissa3:32; | |
| 156 | #else | |
| 157 | 	/* Together these comprise the mantissa. */ | |
| 158 | 	unsigned int mantissa3:32; | |
| 159 | 	unsigned int mantissa2:32; | |
| 160 | 	unsigned int mantissa1:32; | |
| 161 | 	unsigned int mantissa0:15; | |
| 162 | 	unsigned int quiet_nan:1; | |
| 163 | 	unsigned int exponent:15; | |
| 164 | 	unsigned int negative:1; | |
| 165 | #endif | |
| 166 | } ieee_nan; | |
| 167 | }; | |
| 168 | ||
| 169 | #define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */ | |
| 170 | #endif | |
| 171 | ||
| 172 | ||
| 173 | #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 || __GNUC_PREREQ (7, 0) | |
| 174 | /* IBM extended format for long double. | |
| 175 | ||
| 176 | Each long double is made up of two IEEE doubles. The value of the | |
| 177 | long double is the sum of the values of the two parts. The most | |
| 178 | significant part is required to be the value of the long double | |
| 179 | rounded to the nearest double, as specified by IEEE. For Inf | |
| 180 | values, the least significant part is required to be one of +0.0 or | |
| 181 | -0.0. No other requirements are made; so, for example, 1.0 may be | |
| 182 | represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a | |
| 183 | NaN is don't-care. */ | |
| 184 | union ibm_extended_long_double | |
| 185 | { | |
| 186 | # if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && __GNUC_PREREQ (7, 0) | |
| 187 | __ibm128 ld; | |
| 188 | # else | |
| 189 | long double ld; | |
| 190 | # endif | |
| 191 | union ieee754_double d[2]; | |
| 192 | }; | |
| 193 | #endif | |
| 194 | ||
| 195 | __END_DECLS | |
| 196 | ||
| 197 | #endif /* ieee754.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/sys/ptrace.h created+272| ... | ... | @@ -0,0 +1,272 @@ |
| 1 | /* `ptrace' debugger support interface. Linux/PowerPC 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_PTRACE_H | |
| 20 | #define _SYS_PTRACE_H	1 | |
| 21 | ||
| 22 | #include <features.h> | |
| 23 | #include <bits/types.h> | |
| 24 | ||
| 25 | __BEGIN_DECLS | |
| 26 | ||
| 27 | #if defined _LINUX_PTRACE_H || defined _ASM_POWERPC_PTRACE_H | |
| 28 | /* Do not let Linux headers macros interfere with enum __ptrace_request. */ | |
| 29 | # undef PTRACE_ATTACH | |
| 30 | # undef PTRACE_CONT | |
| 31 | # undef PTRACE_DETACH | |
| 32 | # undef PTRACE_GET_DEBUGREG | |
| 33 | # undef PTRACE_GETEVENTMSG | |
| 34 | # undef PTRACE_GETEVRREGS | |
| 35 | # undef PTRACE_GETFPREGS | |
| 36 | # undef PTRACE_GETREGS | |
| 37 | # undef PTRACE_GETREGS64 | |
| 38 | # undef PTRACE_GETREGSET | |
| 39 | # undef PTRACE_GETSIGINFO | |
| 40 | # undef PTRACE_GETSIGMASK | |
| 41 | # undef PTRACE_GET_SYSCALL_INFO | |
| 42 | # undef PTRACE_GETVRREGS | |
| 43 | # undef PTRACE_GETVSRREGS | |
| 44 | # undef PTRACE_INTERRUPT | |
| 45 | # undef PTRACE_KILL | |
| 46 | # undef PTRACE_LISTEN | |
| 47 | # undef PTRACE_PEEKDATA | |
| 48 | # undef PTRACE_PEEKSIGINFO | |
| 49 | # undef PTRACE_PEEKTEXT | |
| 50 | # undef PTRACE_POKEDATA | |
| 51 | # undef PTRACE_POKETEXT | |
| 52 | # undef PTRACE_SECCOMP_GET_FILTER | |
| 53 | # undef PTRACE_SECCOMP_GET_METADATA | |
| 54 | # undef PTRACE_SEIZE | |
| 55 | # undef PTRACE_SET_DEBUGREG | |
| 56 | # undef PTRACE_SETEVRREGS | |
| 57 | # undef PTRACE_SETFPREGS | |
| 58 | # undef PTRACE_SETOPTIONS | |
| 59 | # undef PTRACE_SETREGS | |
| 60 | # undef PTRACE_SETREGS64 | |
| 61 | # undef PTRACE_SETREGSET | |
| 62 | # undef PTRACE_SETSIGINFO | |
| 63 | # undef PTRACE_SETSIGMASK | |
| 64 | # undef PTRACE_SETVRREGS | |
| 65 | # undef PTRACE_SETVSRREGS | |
| 66 | # undef PTRACE_SINGLEBLOCK | |
| 67 | # undef PTRACE_SINGLESTEP | |
| 68 | # undef PTRACE_SYSCALL | |
| 69 | # undef PTRACE_SYSCALL_INFO_NONE | |
| 70 | # undef PTRACE_SYSCALL_INFO_ENTRY | |
| 71 | # undef PTRACE_SYSCALL_INFO_EXIT | |
| 72 | # undef PTRACE_SYSCALL_INFO_SECCOMP | |
| 73 | # undef PTRACE_SYSEMU | |
| 74 | # undef PTRACE_SYSEMU_SINGLESTEP | |
| 75 | # undef PTRACE_TRACEME | |
| 76 | #endif | |
| 77 | ||
| 78 | /* Type of the REQUEST argument to `ptrace.' */ | |
| 79 | enum __ptrace_request | |
| 80 | { | |
| 81 | /* Indicate that the process making this request should be traced. | |
| 82 | All signals received by this process can be intercepted by its | |
| 83 | parent, and its parent can use the other `ptrace' requests. */ | |
| 84 | PTRACE_TRACEME = 0, | |
| 85 | #define PT_TRACE_ME PTRACE_TRACEME | |
| 86 | ||
| 87 | /* Return the word in the process's text space at address ADDR. */ | |
| 88 | PTRACE_PEEKTEXT = 1, | |
| 89 | #define PT_READ_I PTRACE_PEEKTEXT | |
| 90 | ||
| 91 | /* Return the word in the process's data space at address ADDR. */ | |
| 92 | PTRACE_PEEKDATA = 2, | |
| 93 | #define PT_READ_D PTRACE_PEEKDATA | |
| 94 | ||
| 95 | /* Return the word in the process's user area at offset ADDR. */ | |
| 96 | PTRACE_PEEKUSER = 3, | |
| 97 | #define PT_READ_U PTRACE_PEEKUSER | |
| 98 | ||
| 99 | /* Write the word DATA into the process's text space at address ADDR. */ | |
| 100 | PTRACE_POKETEXT = 4, | |
| 101 | #define PT_WRITE_I PTRACE_POKETEXT | |
| 102 | ||
| 103 | /* Write the word DATA into the process's data space at address ADDR. */ | |
| 104 | PTRACE_POKEDATA = 5, | |
| 105 | #define PT_WRITE_D PTRACE_POKEDATA | |
| 106 | ||
| 107 | /* Write the word DATA into the process's user area at offset ADDR. */ | |
| 108 | PTRACE_POKEUSER = 6, | |
| 109 | #define PT_WRITE_U PTRACE_POKEUSER | |
| 110 | ||
| 111 | /* Continue the process. */ | |
| 112 | PTRACE_CONT = 7, | |
| 113 | #define PT_CONTINUE PTRACE_CONT | |
| 114 | ||
| 115 | /* Kill the process. */ | |
| 116 | PTRACE_KILL = 8, | |
| 117 | #define PT_KILL PTRACE_KILL | |
| 118 | ||
| 119 | /* Single step the process. */ | |
| 120 | PTRACE_SINGLESTEP = 9, | |
| 121 | #define PT_STEP PTRACE_SINGLESTEP | |
| 122 | ||
| 123 | /* Get all general purpose registers used by a process. */ | |
| 124 | PTRACE_GETREGS = 12, | |
| 125 | #define PT_GETREGS PTRACE_GETREGS | |
| 126 | ||
| 127 | /* Set all general purpose registers used by a process. */ | |
| 128 | PTRACE_SETREGS = 13, | |
| 129 | #define PT_SETREGS PTRACE_SETREGS | |
| 130 | ||
| 131 | /* Get all floating point registers used by a process. */ | |
| 132 | PTRACE_GETFPREGS = 14, | |
| 133 | #define PT_GETFPREGS PTRACE_GETFPREGS | |
| 134 | ||
| 135 | /* Set all floating point registers used by a process. */ | |
| 136 | PTRACE_SETFPREGS = 15, | |
| 137 | #define PT_SETFPREGS PTRACE_SETFPREGS | |
| 138 | ||
| 139 | /* Attach to a process that is already running. */ | |
| 140 | PTRACE_ATTACH = 16, | |
| 141 | #define PT_ATTACH PTRACE_ATTACH | |
| 142 | ||
| 143 | /* Detach from a process attached to with PTRACE_ATTACH. */ | |
| 144 | PTRACE_DETACH = 17, | |
| 145 | #define PT_DETACH PTRACE_DETACH | |
| 146 | ||
| 147 | /* Get all altivec registers used by a process. */ | |
| 148 | PTRACE_GETVRREGS = 18, | |
| 149 | #define PT_GETVRREGS PTRACE_GETVRREGS | |
| 150 | ||
| 151 | /* Set all altivec registers used by a process. */ | |
| 152 | PTRACE_SETVRREGS = 19, | |
| 153 | #define PT_SETVRREGS PTRACE_SETVRREGS | |
| 154 | ||
| 155 | /* Get all SPE registers used by a process. */ | |
| 156 | PTRACE_GETEVRREGS = 20, | |
| 157 | #define PT_GETEVRREGS PTRACE_GETEVRREGS | |
| 158 | ||
| 159 | /* Set all SPE registers used by a process. */ | |
| 160 | PTRACE_SETEVRREGS = 21, | |
| 161 | #define PT_SETEVRREGS PTRACE_SETEVRREGS | |
| 162 | ||
| 163 | /* Same as PTRACE_GETREGS except a 32-bit process will obtain | |
| 164 | the full 64-bit registers. Implemented by 64-bit kernels only. */ | |
| 165 | PTRACE_GETREGS64 = 22, | |
| 166 | #define PT_GETREGS64 PTRACE_GETREGS64 | |
| 167 | ||
| 168 | /* Same as PTRACE_SETREGS except a 32-bit process will set | |
| 169 | the full 64-bit registers. Implemented by 64-bit kernels only. */ | |
| 170 | PTRACE_SETREGS64 = 23, | |
| 171 | #define PT_SETREGS64 PTRACE_SETREGS64 | |
| 172 | ||
| 173 | /* Continue and stop at the next entry to or return from syscall. */ | |
| 174 | PTRACE_SYSCALL = 24, | |
| 175 | #define PT_SYSCALL PTRACE_SYSCALL | |
| 176 | ||
| 177 | /* Get a debug register of a process. */ | |
| 178 | PTRACE_GET_DEBUGREG = 25, | |
| 179 | #define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG | |
| 180 | ||
| 181 | /* Set a debug register of a process. */ | |
| 182 | PTRACE_SET_DEBUGREG = 26, | |
| 183 | #define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG | |
| 184 | ||
| 185 | /* Get the first 32 VSX registers of a process. */ | |
| 186 | PTRACE_GETVSRREGS = 27, | |
| 187 | #define PT_GETVSRREGS PTRACE_GETVSRREGS | |
| 188 | ||
| 189 | /* Set the first 32 VSX registers of a process. */ | |
| 190 | PTRACE_SETVSRREGS = 28, | |
| 191 | #define PT_SETVSRREGS PTRACE_SETVSRREGS | |
| 192 | ||
| 193 | /* Continue and stop at the next syscall, it will not be executed. */ | |
| 194 | PTRACE_SYSEMU = 29, | |
| 195 | #define PT_SYSEMU PTRACE_SYSEMU | |
| 196 | ||
| 197 | /* Single step the process, the next syscall will not be executed. */ | |
| 198 | PTRACE_SYSEMU_SINGLESTEP = 30, | |
| 199 | #define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP | |
| 200 | ||
| 201 | /* Execute process until next taken branch. */ | |
| 202 | PTRACE_SINGLEBLOCK = 256, | |
| 203 | #define PT_STEPBLOCK PTRACE_SINGLEBLOCK | |
| 204 | ||
| 205 | /* Set ptrace filter options. */ | |
| 206 | PTRACE_SETOPTIONS = 0x4200, | |
| 207 | #define PT_SETOPTIONS PTRACE_SETOPTIONS | |
| 208 | ||
| 209 | /* Get last ptrace message. */ | |
| 210 | PTRACE_GETEVENTMSG = 0x4201, | |
| 211 | #define PT_GETEVENTMSG PTRACE_GETEVENTMSG | |
| 212 | ||
| 213 | /* Get siginfo for process. */ | |
| 214 | PTRACE_GETSIGINFO = 0x4202, | |
| 215 | #define PT_GETSIGINFO PTRACE_GETSIGINFO | |
| 216 | ||
| 217 | /* Set new siginfo for process. */ | |
| 218 | PTRACE_SETSIGINFO = 0x4203, | |
| 219 | #define PT_SETSIGINFO PTRACE_SETSIGINFO | |
| 220 | ||
| 221 | /* Get register content. */ | |
| 222 | PTRACE_GETREGSET = 0x4204, | |
| 223 | #define PTRACE_GETREGSET PTRACE_GETREGSET | |
| 224 | ||
| 225 | /* Set register content. */ | |
| 226 | PTRACE_SETREGSET = 0x4205, | |
| 227 | #define PTRACE_SETREGSET PTRACE_SETREGSET | |
| 228 | ||
| 229 | /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect | |
| 230 | signal or group stop state. */ | |
| 231 | PTRACE_SEIZE = 0x4206, | |
| 232 | #define PTRACE_SEIZE PTRACE_SEIZE | |
| 233 | ||
| 234 | /* Trap seized tracee. */ | |
| 235 | PTRACE_INTERRUPT = 0x4207, | |
| 236 | #define PTRACE_INTERRUPT PTRACE_INTERRUPT | |
| 237 | ||
| 238 | /* Wait for next group event. */ | |
| 239 | PTRACE_LISTEN = 0x4208, | |
| 240 | #define PTRACE_LISTEN PTRACE_LISTEN | |
| 241 | ||
| 242 | /* Retrieve siginfo_t structures without removing signals from a queue. */ | |
| 243 | PTRACE_PEEKSIGINFO = 0x4209, | |
| 244 | #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO | |
| 245 | ||
| 246 | /* Get the mask of blocked signals. */ | |
| 247 | PTRACE_GETSIGMASK = 0x420a, | |
| 248 | #define PTRACE_GETSIGMASK PTRACE_GETSIGMASK | |
| 249 | ||
| 250 | /* Change the mask of blocked signals. */ | |
| 251 | PTRACE_SETSIGMASK = 0x420b, | |
| 252 | #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK | |
| 253 | ||
| 254 | /* Get seccomp BPF filters. */ | |
| 255 | PTRACE_SECCOMP_GET_FILTER = 0x420c, | |
| 256 | #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER | |
| 257 | ||
| 258 | /* Get seccomp BPF filter metadata. */ | |
| 259 | PTRACE_SECCOMP_GET_METADATA = 0x420d, | |
| 260 | #define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA | |
| 261 | ||
| 262 | /* Get information about system call. */ | |
| 263 | PTRACE_GET_SYSCALL_INFO = 0x420e | |
| 264 | #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO | |
| 265 | }; | |
| 266 | ||
| 267 | ||
| 268 | #include <bits/ptrace-shared.h> | |
| 269 | ||
| 270 | __END_DECLS | |
| 271 | ||
| 272 | #endif /* _SYS_PTRACE_H */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/sys/ucontext.h created+200| ... | ... | @@ -0,0 +1,200 @@ |
| 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_UCONTEXT_H | |
| 19 | #define _SYS_UCONTEXT_H	1 | |
| 20 | ||
| 21 | #include <features.h> | |
| 22 | ||
| 23 | #include <bits/types/sigset_t.h> | |
| 24 | #include <bits/types/stack_t.h> | |
| 25 | ||
| 26 | ||
| 27 | #ifdef __USE_MISC | |
| 28 | # define __ctx(fld) fld | |
| 29 | #else | |
| 30 | # define __ctx(fld) __ ## fld | |
| 31 | #endif | |
| 32 | ||
| 33 | struct __ctx(pt_regs); | |
| 34 | ||
| 35 | #if __WORDSIZE == 32 | |
| 36 | ||
| 37 | /* Number of general registers. */ | |
| 38 | # define __NGREG	48 | |
| 39 | # ifdef __USE_MISC | |
| 40 | # define NGREG	__NGREG | |
| 41 | # endif | |
| 42 | ||
| 43 | /* Container for all general registers. */ | |
| 44 | typedef unsigned long gregset_t[__NGREG]; | |
| 45 | ||
| 46 | /* Container for floating-point registers and status */ | |
| 47 | typedef struct _libc_fpstate | |
| 48 | { | |
| 49 | 	double __ctx(fpregs)[32]; | |
| 50 | 	double __ctx(fpscr); | |
| 51 | 	unsigned int _pad[2]; | |
| 52 | } fpregset_t; | |
| 53 | ||
| 54 | /* Container for Altivec/VMX registers and status. | |
| 55 | Needs to be aligned on a 16-byte boundary. */ | |
| 56 | typedef struct _libc_vrstate | |
| 57 | { | |
| 58 | 	unsigned int __ctx(vrregs)[32][4]; | |
| 59 | 	unsigned int __ctx(vrsave); | |
| 60 | 	unsigned int _pad[2]; | |
| 61 | 	unsigned int __ctx(vscr); | |
| 62 | } vrregset_t; | |
| 63 | ||
| 64 | /* Context to describe whole processor state. */ | |
| 65 | typedef struct | |
| 66 | { | |
| 67 | 	gregset_t __ctx(gregs); | |
| 68 | 	fpregset_t __ctx(fpregs); | |
| 69 | 	vrregset_t __ctx(vrregs) __attribute__((__aligned__(16))); | |
| 70 | } mcontext_t; | |
| 71 | ||
| 72 | #else | |
| 73 | ||
| 74 | /* For 64-bit kernels with Altivec support, a machine context is exactly | |
| 75 | * a sigcontext. For older kernel (without Altivec) the sigcontext matches | |
| 76 | * the mcontext upto but not including the v_regs field. For kernels that | |
| 77 | * don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the | |
| 78 | * v_regs field may not exist and should not be referenced. The v_regs field | |
| 79 | * can be referenced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC | |
| 80 | * is set in AT_HWCAP. */ | |
| 81 | ||
| 82 | /* Number of general registers. */ | |
| 83 | # define __NGREG	48	/* includes r0-r31, nip, msr, lr, etc. */ | |
| 84 | # define __NFPREG	33	/* includes fp0-fp31 &fpscr. */ | |
| 85 | # define __NVRREG	34	/* includes v0-v31, vscr, & vrsave in | |
| 86 | 				 split vectors */ | |
| 87 | # ifdef __USE_MISC | |
| 88 | # define NGREG	__NGREG | |
| 89 | # define NFPREG	__NFPREG | |
| 90 | # define NVRREG	__NVRREG | |
| 91 | # endif | |
| 92 | ||
| 93 | typedef unsigned long gregset_t[__NGREG]; | |
| 94 | typedef double fpregset_t[__NFPREG]; | |
| 95 | ||
| 96 | /* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits | |
| 97 | but can only be copied to/from a 128-bit vector register. So we allocated | |
| 98 | a whole quadword speedup save/restore. */ | |
| 99 | typedef struct _libc_vscr | |
| 100 | { | |
| 101 | #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ | |
| 102 | 	unsigned int __pad[3]; | |
| 103 | 	unsigned int __ctx(vscr_word); | |
| 104 | #else | |
| 105 | 	unsigned int __ctx(vscr_word); | |
| 106 | 	unsigned int __pad[3]; | |
| 107 | #endif | |
| 108 | } vscr_t; | |
| 109 | ||
| 110 | /* Container for Altivec/VMX registers and status. | |
| 111 | Must to be aligned on a 16-byte boundary. */ | |
| 112 | typedef struct _libc_vrstate | |
| 113 | { | |
| 114 | 	unsigned int	__ctx(vrregs)[32][4]; | |
| 115 | 	vscr_t		__ctx(vscr); | |
| 116 | 	unsigned int	__ctx(vrsave); | |
| 117 | 	unsigned int	__pad[3]; | |
| 118 | } vrregset_t __attribute__((__aligned__(16))); | |
| 119 | ||
| 120 | typedef struct { | |
| 121 | 	unsigned long	__glibc_reserved[4]; | |
| 122 | 	int		__ctx(signal); | |
| 123 | 	int		__pad0; | |
| 124 | 	unsigned long	__ctx(handler); | |
| 125 | 	unsigned long	__ctx(oldmask); | |
| 126 | 	struct __ctx(pt_regs)	*__ctx(regs); | |
| 127 | 	gregset_t	__ctx(gp_regs); | |
| 128 | 	fpregset_t	__ctx(fp_regs); | |
| 129 | /* | |
| 130 | * To maintain compatibility with current implementations the sigcontext is | |
| 131 | * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t) | |
| 132 | * followed by an unstructured (vmx_reserve) field of 69 doublewords. This | |
| 133 | * allows the array of vector registers to be quadword aligned independent of | |
| 134 | * the alignment of the containing sigcontext or ucontext. It is the | |
| 135 | * responsibility of the code setting the sigcontext to set this pointer to | |
| 136 | * either NULL (if this processor does not support the VMX feature) or the | |
| 137 | * address of the first quadword within the allocated (vmx_reserve) area. | |
| 138 | * | |
| 139 | * The pointer (v_regs) of vector type (elf_vrreg_t) is essentially | |
| 140 | * an array of 34 quadword entries. The entries with | |
| 141 | * indexes 0-31 contain the corresponding vector registers. The entry with | |
| 142 | * index 32 contains the vscr as the last word (offset 12) within the | |
| 143 | * quadword. This allows the vscr to be stored as either a quadword (since | |
| 144 | * it must be copied via a vector register to/from storage) or as a word. | |
| 145 | * The entry with index 33 contains the vrsave as the first word (offset 0) | |
| 146 | * within the quadword. | |
| 147 | */ | |
| 148 | 	vrregset_t	*__ctx(v_regs); | |
| 149 | 	long		__ctx(vmx_reserve)[__NVRREG+__NVRREG+1]; | |
| 150 | } mcontext_t; | |
| 151 | ||
| 152 | #endif | |
| 153 | ||
| 154 | /* Userlevel context. */ | |
| 155 | typedef struct ucontext_t | |
| 156 | { | |
| 157 | unsigned long int __ctx(uc_flags); | |
| 158 | struct ucontext_t *uc_link; | |
| 159 | stack_t uc_stack; | |
| 160 | #if __WORDSIZE == 32 | |
| 161 | /* | |
| 162 | * These fields are set up this way to maximize source and | |
| 163 | * binary compatibility with code written for the old | |
| 164 | * ucontext_t definition, which didn't include space for the | |
| 165 | * registers. | |
| 166 | * | |
| 167 | * Different versions of the kernel have stored the registers on | |
| 168 | * signal delivery at different offsets from the ucontext struct. | |
| 169 | * Programs should thus use the uc_mcontext.uc_regs pointer to | |
| 170 | * find where the registers are actually stored. The registers | |
| 171 | * will be stored within the ucontext_t struct but not necessarily | |
| 172 | * at a fixed address. As a side-effect, this lets us achieve | |
| 173 | * 16-byte alignment for the register storage space if the | |
| 174 | * Altivec registers are to be saved, without requiring 16-byte | |
| 175 | * alignment on the whole ucontext_t. | |
| 176 | * | |
| 177 | * The uc_mcontext.regs field is included for source compatibility | |
| 178 | * with programs written against the older ucontext_t definition, | |
| 179 | * and its name should therefore not change. The uc_pad field | |
| 180 | * is for binary compatibility with programs compiled against the | |
| 181 | * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask | |
| 182 | * are at the same offset as previously. | |
| 183 | */ | |
| 184 | int __glibc_reserved1[7]; | |
| 185 | union __ctx(uc_regs_ptr) { | |
| 186 | struct __ctx(pt_regs) *__ctx(regs); | |
| 187 | mcontext_t *__ctx(uc_regs); | |
| 188 | } uc_mcontext; | |
| 189 | sigset_t uc_sigmask; | |
| 190 | /* last for extensibility */ | |
| 191 | char __ctx(uc_reg_space)[sizeof (mcontext_t) + 12]; | |
| 192 | #else /* 64-bit */ | |
| 193 | sigset_t uc_sigmask; | |
| 194 | mcontext_t uc_mcontext; /* last for extensibility */ | |
| 195 | #endif | |
| 196 | } ucontext_t; | |
| 197 | ||
| 198 | #undef __ctx | |
| 199 | ||
| 200 | #endif /* sys/ucontext.h */ | |
| \ No newline at end of file |
lib/libc/include/powerpc-linux-gnueabihf/sys/user.h created+40| ... | ... | @@ -0,0 +1,40 @@ |
| 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_USER_H | |
| 19 | ||
| 20 | #define _SYS_USER_H	1 | |
| 21 | #include <stddef.h> | |
| 22 | #include <features.h> | |
| 23 | ||
| 24 | #include <asm/ptrace.h> | |
| 25 | ||
| 26 | struct user { | |
| 27 | 	struct pt_regs	regs;			/* entire machine state */ | |
| 28 | 	size_t		u_tsize;		/* text size (pages) */ | |
| 29 | 	size_t		u_dsize;		/* data size (pages) */ | |
| 30 | 	size_t		u_ssize;		/* stack size (pages) */ | |
| 31 | 	unsigned long	start_code;		/* text starting address */ | |
| 32 | 	unsigned long	start_data;		/* data starting address */ | |
| 33 | 	unsigned long	start_stack;		/* stack starting address */ | |
| 34 | 	long int	signal;			/* signal causing core dump */ | |
| 35 | 	struct regs *	u_ar0;			/* help gdb find registers */ | |
| 36 | 	unsigned long	magic;			/* identifies a core file */ | |
| 37 | 	char		u_comm[32];		/* user command name */ | |
| 38 | }; | |
| 39 | ||
| 40 | #endif /* sys/user.h */ | |
| \ No newline at end of file |
src/target.zig+2-1| ... | ... | @@ -54,7 +54,8 @@ pub const available_libcs = [_]ArchOsAbi{ |
| 54 | 54 | .{ .arch = .powerpc64le, .os = .linux, .abi = .musl }, |
| 55 | 55 | .{ .arch = .powerpc64, .os = .linux, .abi = .gnu }, |
| 56 | 56 | .{ .arch = .powerpc64, .os = .linux, .abi = .musl }, |
| 57 | .{ .arch = .powerpc, .os = .linux, .abi = .gnu }, | |
| 57 | .{ .arch = .powerpc, .os = .linux, .abi = .gnueabi }, | |
| 58 | .{ .arch = .powerpc, .os = .linux, .abi = .gnueabihf }, | |
| 58 | 59 | .{ .arch = .powerpc, .os = .linux, .abi = .musl }, |
| 59 | 60 | .{ .arch = .riscv64, .os = .linux, .abi = .gnu }, |
| 60 | 61 | .{ .arch = .riscv64, .os = .linux, .abi = .musl }, |
test/tests.zig+9| ... | ... | @@ -236,6 +236,15 @@ const test_targets = blk: { |
| 236 | 236 | }, |
| 237 | 237 | .link_libc = true, |
| 238 | 238 | }, |
| 239 | // https://github.com/ziglang/zig/issues/2256 | |
| 240 | //TestTarget{ | |
| 241 | // .target = .{ | |
| 242 | // .cpu_arch = .powerpc, | |
| 243 | // .os_tag = .linux, | |
| 244 | // .abi = .gnueabihf, | |
| 245 | // }, | |
| 246 | // .link_libc = true, | |
| 247 | //}, | |
| 239 | 248 | |
| 240 | 249 | TestTarget{ |
| 241 | 250 | .target = .{ |
tools/process_headers.zig+6-1| ... | ... | @@ -152,7 +152,12 @@ const glibc_targets = [_]LibCTarget{ |
| 152 | 152 | LibCTarget{ |
| 153 | 153 | .name = "powerpc-linux-gnu", |
| 154 | 154 | .arch = MultiArch{ .specific = Arch.powerpc }, |
| 155 | .abi = MultiAbi{ .specific = Abi.gnu }, | |
| 155 | .abi = MultiAbi{ .specific = Abi.gnueabihf }, | |
| 156 | }, | |
| 157 | LibCTarget{ | |
| 158 | .name = "powerpc-linux-gnu-soft", | |
| 159 | .arch = MultiArch{ .specific = Arch.powerpc }, | |
| 160 | .abi = MultiAbi{ .specific = Abi.gnueabi }, | |
| 156 | 161 | }, |
| 157 | 162 | LibCTarget{ |
| 158 | 163 | .name = "riscv64-linux-gnu-rv64imac-lp64", |