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