| 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,7 +477,7 @@ |
| 477 | /* Major and minor version number of the GNU C library package. Use | 477 | /* Major and minor version number of the GNU C library package. Use |
| 478 | these macros to test for features in specific releases. */ | 478 | these macros to test for features in specific releases. */ |
| 479 | #define	__GLIBC__	2 | 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 | #define __GLIBC_PREREQ(maj, min) \ | 482 | #define __GLIBC_PREREQ(maj, min) \ |
| 483 | 	((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) | 483 | 	((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) |
| ... | @@ -512,4 +512,4 @@ | ... | @@ -512,4 +512,4 @@ |
| 512 | #include <gnu/stubs.h> | 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,7 +54,8 @@ pub const available_libcs = [_]ArchOsAbi{ |
| 54 | .{ .arch = .powerpc64le, .os = .linux, .abi = .musl }, | 54 | .{ .arch = .powerpc64le, .os = .linux, .abi = .musl }, |
| 55 | .{ .arch = .powerpc64, .os = .linux, .abi = .gnu }, | 55 | .{ .arch = .powerpc64, .os = .linux, .abi = .gnu }, |
| 56 | .{ .arch = .powerpc64, .os = .linux, .abi = .musl }, | 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 | .{ .arch = .powerpc, .os = .linux, .abi = .musl }, | 59 | .{ .arch = .powerpc, .os = .linux, .abi = .musl }, |
| 59 | .{ .arch = .riscv64, .os = .linux, .abi = .gnu }, | 60 | .{ .arch = .riscv64, .os = .linux, .abi = .gnu }, |
| 60 | .{ .arch = .riscv64, .os = .linux, .abi = .musl }, | 61 | .{ .arch = .riscv64, .os = .linux, .abi = .musl }, |
test/tests.zig+9| ... | @@ -236,6 +236,15 @@ const test_targets = blk: { | ... | @@ -236,6 +236,15 @@ const test_targets = blk: { |
| 236 | }, | 236 | }, |
| 237 | .link_libc = true, | 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 | TestTarget{ | 249 | TestTarget{ |
| 241 | .target = .{ | 250 | .target = .{ |
tools/process_headers.zig+6-1| ... | @@ -152,7 +152,12 @@ const glibc_targets = [_]LibCTarget{ | ... | @@ -152,7 +152,12 @@ const glibc_targets = [_]LibCTarget{ |
| 152 | LibCTarget{ | 152 | LibCTarget{ |
| 153 | .name = "powerpc-linux-gnu", | 153 | .name = "powerpc-linux-gnu", |
| 154 | .arch = MultiArch{ .specific = Arch.powerpc }, | 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 | LibCTarget{ | 162 | LibCTarget{ |
| 158 | .name = "riscv64-linux-gnu-rv64imac-lp64", | 163 | .name = "riscv64-linux-gnu-rv64imac-lp64", |