multi-arch glibc headers
This commit is contained in:
36
libc/include/powerpc-linux-gnu/bits/endian.h
Normal file
36
libc/include/powerpc-linux-gnu/bits/endian.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* PowerPC can be little or big endian. Hopefully gcc will know... */
|
||||
|
||||
#ifndef _ENDIAN_H
|
||||
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
|
||||
#endif
|
||||
|
||||
#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
|
||||
# if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
|
||||
# error Both BIG_ENDIAN and LITTLE_ENDIAN defined!
|
||||
# endif
|
||||
# define __BYTE_ORDER __BIG_ENDIAN
|
||||
#else
|
||||
# if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
|
||||
# define __BYTE_ORDER __LITTLE_ENDIAN
|
||||
# else
|
||||
# warning Cannot determine current byte order, assuming big-endian.
|
||||
# define __BYTE_ORDER __BIG_ENDIAN
|
||||
# endif
|
||||
#endif
|
||||
96
libc/include/powerpc-linux-gnu/bits/environments.h
Normal file
96
libc/include/powerpc-linux-gnu/bits/environments.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
libc/include/powerpc-linux-gnu/bits/fcntl.h
Normal file
62
libc/include/powerpc-linux-gnu/bits/fcntl.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/* O_*, F_*, FD_* bit values for Linux/PowerPC.
|
||||
Copyright (C) 1995-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
libc/include/powerpc-linux-gnu/bits/fenv.h
Normal file
180
libc/include/powerpc-linux-gnu/bits/fenv.h
Normal file
@@ -0,0 +1,180 @@
|
||||
/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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)
|
||||
/* 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
|
||||
79
libc/include/powerpc-linux-gnu/bits/fenvinline.h
Normal file
79
libc/include/powerpc-linux-gnu/bits/fenvinline.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/* Inline floating-point environment handling functions for powerpc.
|
||||
Copyright (C) 1995-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_FPRS__
|
||||
|
||||
/* Inline definition for fegetround. */
|
||||
# define __fegetround() \
|
||||
(__extension__ ({ int __fegetround_result; \
|
||||
__asm__ __volatile__ \
|
||||
("mcrfs 7,7 ; mfcr %0" \
|
||||
: "=r"(__fegetround_result) : : "cr7"); \
|
||||
__fegetround_result & 3; }))
|
||||
# define fegetround() __fegetround ()
|
||||
|
||||
# ifndef __NO_MATH_INLINES
|
||||
/* The weird 'i#*X' constraints on the following suppress a gcc
|
||||
warning when __excepts is not a constant. Otherwise, they mean the
|
||||
same as just plain 'i'. */
|
||||
|
||||
# if __GNUC_PREREQ(3, 4)
|
||||
|
||||
/* Inline definition for feraiseexcept. */
|
||||
# define feraiseexcept(__excepts) \
|
||||
(__extension__ ({ \
|
||||
int __e = __excepts; \
|
||||
int __ret; \
|
||||
if (__builtin_constant_p (__e) \
|
||||
&& (__e & (__e - 1)) == 0 \
|
||||
&& __e != FE_INVALID) \
|
||||
{ \
|
||||
if (__e != 0) \
|
||||
__asm__ __volatile__ ("mtfsb1 %0" \
|
||||
: : "i#*X" (__builtin_clz (__e))); \
|
||||
__ret = 0; \
|
||||
} \
|
||||
else \
|
||||
__ret = feraiseexcept (__e); \
|
||||
__ret; \
|
||||
}))
|
||||
|
||||
/* Inline definition for feclearexcept. */
|
||||
# define feclearexcept(__excepts) \
|
||||
(__extension__ ({ \
|
||||
int __e = __excepts; \
|
||||
int __ret; \
|
||||
if (__builtin_constant_p (__e) \
|
||||
&& (__e & (__e - 1)) == 0 \
|
||||
&& __e != FE_INVALID) \
|
||||
{ \
|
||||
if (__e != 0) \
|
||||
__asm__ __volatile__ ("mtfsb0 %0" \
|
||||
: : "i#*X" (__builtin_clz (__e))); \
|
||||
__ret = 0; \
|
||||
} \
|
||||
else \
|
||||
__ret = feclearexcept (__e); \
|
||||
__ret; \
|
||||
}))
|
||||
|
||||
# endif /* __GNUC_PREREQ(3, 4). */
|
||||
|
||||
# endif /* !__NO_MATH_INLINES. */
|
||||
|
||||
#endif /* __GNUC__ && !_SOFT_FLOAT && !__NO_FPRS__ */
|
||||
122
libc/include/powerpc-linux-gnu/bits/floatn.h
Normal file
122
libc/include/powerpc-linux-gnu/bits/floatn.h
Normal file
@@ -0,0 +1,122 @@
|
||||
/* Macros to control TS 18661-3 glibc features on powerpc.
|
||||
Copyright (C) 2017-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _BITS_FLOATN_H
|
||||
#define _BITS_FLOATN_H
|
||||
|
||||
#include <features.h>
|
||||
#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
libc/include/powerpc-linux-gnu/bits/fp-fast.h
Normal file
39
libc/include/powerpc-linux-gnu/bits/fp-fast.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Define FP_FAST_* macros. PowerPC version.
|
||||
Copyright (C) 2016-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License 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 _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
|
||||
76
libc/include/powerpc-linux-gnu/bits/hwcap.h
Normal file
76
libc/include/powerpc-linux-gnu/bits/hwcap.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/* Defines for bits in AT_HWCAP and AT_HWCAP2.
|
||||
Copyright (C) 2012-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#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. */
|
||||
77
libc/include/powerpc-linux-gnu/bits/ioctl-types.h
Normal file
77
libc/include/powerpc-linux-gnu/bits/ioctl-types.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/* Structure types for pre-termios terminal ioctls. Linux/powerpc version.
|
||||
Copyright (C) 2014-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_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 */
|
||||
54
libc/include/powerpc-linux-gnu/bits/ipc.h
Normal file
54
libc/include/powerpc-linux-gnu/bits/ipc.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_IPC_H
|
||||
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Mode bits for `msgget', `semget', and `shmget'. */
|
||||
#define IPC_CREAT 01000 /* Create key if key does not exist. */
|
||||
#define IPC_EXCL 02000 /* Fail if key exists. */
|
||||
#define IPC_NOWAIT 04000 /* Return error on wait. */
|
||||
|
||||
/* Control commands for `msgctl', `semctl', and `shmctl'. */
|
||||
#define IPC_RMID 0 /* Remove identifier. */
|
||||
#define IPC_SET 1 /* Set `ipc_perm' options. */
|
||||
#define IPC_STAT 2 /* Get `ipc_perm' options. */
|
||||
#ifdef __USE_GNU
|
||||
# define IPC_INFO 3 /* See ipcs. */
|
||||
#endif
|
||||
|
||||
/* Special key values. */
|
||||
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
|
||||
|
||||
|
||||
/* 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
libc/include/powerpc-linux-gnu/bits/iscanonical.h
Normal file
58
libc/include/powerpc-linux-gnu/bits/iscanonical.h
Normal file
@@ -0,0 +1,58 @@
|
||||
/* Define iscanonical macro. ldbl-128ibm version.
|
||||
Copyright (C) 2016-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License 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 _MATH_H
|
||||
# error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
#ifdef __NO_LONG_DOUBLE_MATH
|
||||
# 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
libc/include/powerpc-linux-gnu/bits/link.h
Normal file
156
libc/include/powerpc-linux-gnu/bits/link.h
Normal file
@@ -0,0 +1,156 @@
|
||||
/* Machine-specific declarations for dynamic linker interface. PowerPC version
|
||||
Copyright (C) 2004-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
|
||||
100
libc/include/powerpc-linux-gnu/bits/local_lim.h
Normal file
100
libc/include/powerpc-linux-gnu/bits/local_lim.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/* Minimum guaranteed maximum values for system limits. Linux/PPC version.
|
||||
Copyright (C) 1993-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
||||
and defines LINK_MAX although filesystems have different maxima. A
|
||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
||||
runtime and therefore the macro must not be defined. Remove this
|
||||
after including the header if necessary. */
|
||||
#ifndef NR_OPEN
|
||||
# define __undef_NR_OPEN
|
||||
#endif
|
||||
#ifndef LINK_MAX
|
||||
# define __undef_LINK_MAX
|
||||
#endif
|
||||
#ifndef OPEN_MAX
|
||||
# define __undef_OPEN_MAX
|
||||
#endif
|
||||
#ifndef ARG_MAX
|
||||
# define __undef_ARG_MAX
|
||||
#endif
|
||||
|
||||
/* The kernel sources contain a file with all the needed information. */
|
||||
#include <linux/limits.h>
|
||||
|
||||
/* Have to remove NR_OPEN? */
|
||||
#ifdef __undef_NR_OPEN
|
||||
# undef NR_OPEN
|
||||
# undef __undef_NR_OPEN
|
||||
#endif
|
||||
/* Have to remove LINK_MAX? */
|
||||
#ifdef __undef_LINK_MAX
|
||||
# undef LINK_MAX
|
||||
# undef __undef_LINK_MAX
|
||||
#endif
|
||||
/* Have to remove OPEN_MAX? */
|
||||
#ifdef __undef_OPEN_MAX
|
||||
# undef OPEN_MAX
|
||||
# undef __undef_OPEN_MAX
|
||||
#endif
|
||||
/* Have to remove ARG_MAX? */
|
||||
#ifdef __undef_ARG_MAX
|
||||
# undef ARG_MAX
|
||||
# undef __undef_ARG_MAX
|
||||
#endif
|
||||
|
||||
/* The number of data keys per process. */
|
||||
#define _POSIX_THREAD_KEYS_MAX 128
|
||||
/* This is the value this implementation supports. */
|
||||
#define PTHREAD_KEYS_MAX 1024
|
||||
|
||||
/* Controlling the iterations of destructors for thread-specific data. */
|
||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
||||
/* Number of iterations this implementation does. */
|
||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
||||
|
||||
/* The number of threads per process. */
|
||||
#define _POSIX_THREAD_THREADS_MAX 64
|
||||
/* We have no predefined limit on the number of threads. */
|
||||
#undef PTHREAD_THREADS_MAX
|
||||
|
||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
||||
priority level. */
|
||||
#define AIO_PRIO_DELTA_MAX 20
|
||||
|
||||
/* Minimum size for a thread. At least two pages for systems with 64k
|
||||
pages. */
|
||||
#define PTHREAD_STACK_MIN 131072
|
||||
|
||||
/* Maximum number of timer expiration overruns. */
|
||||
#define DELAYTIMER_MAX 2147483647
|
||||
|
||||
/* Maximum tty name length. */
|
||||
#define TTY_NAME_MAX 32
|
||||
|
||||
/* Maximum login name length. This is arbitrary. */
|
||||
#define LOGIN_NAME_MAX 256
|
||||
|
||||
/* Maximum host name length. */
|
||||
#define HOST_NAME_MAX 64
|
||||
|
||||
/* Maximum message queue priority level. */
|
||||
#define MQ_PRIO_MAX 32768
|
||||
|
||||
/* Maximum value the semaphore can have. */
|
||||
#define SEM_VALUE_MAX (2147483647)
|
||||
24
libc/include/powerpc-linux-gnu/bits/long-double.h
Normal file
24
libc/include/powerpc-linux-gnu/bits/long-double.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/* Properties of long double type. ldbl-opt version.
|
||||
Copyright (C) 2016-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef __NO_LONG_DOUBLE_MATH
|
||||
# define __LONG_DOUBLE_MATH_OPTIONAL 1
|
||||
# ifndef __LONG_DOUBLE_128__
|
||||
# define __NO_LONG_DOUBLE_MATH 1
|
||||
# endif
|
||||
#endif
|
||||
51
libc/include/powerpc-linux-gnu/bits/mman.h
Normal file
51
libc/include/powerpc-linux-gnu/bits/mman.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/* Definitions for POSIX memory map interface. Linux/PowerPC version.
|
||||
Copyright (C) 1997-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_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_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>
|
||||
26
libc/include/powerpc-linux-gnu/bits/msq-pad.h
Normal file
26
libc/include/powerpc-linux-gnu/bits/msq-pad.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/* Define where padding goes in struct msqid_ds. PowerPC version.
|
||||
Copyright (C) 2018-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_MSG_H
|
||||
# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/timesize.h>
|
||||
|
||||
#define __MSQ_PAD_AFTER_TIME 0
|
||||
#define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
|
||||
49
libc/include/powerpc-linux-gnu/bits/procfs.h
Normal file
49
libc/include/powerpc-linux-gnu/bits/procfs.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/* Types for registers for sys/procfs.h. PowerPC version.
|
||||
Copyright (C) 1996-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_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
|
||||
81
libc/include/powerpc-linux-gnu/bits/pthreadtypes-arch.h
Normal file
81
libc/include/powerpc-linux-gnu/bits/pthreadtypes-arch.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/* Machine-specific pthread type layouts. PowerPC version.
|
||||
Copyright (C) 2003-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _BITS_PTHREADTYPES_ARCH_H
|
||||
#define _BITS_PTHREADTYPES_ARCH_H 1
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 40
|
||||
# define __SIZEOF_PTHREAD_ATTR_T 56
|
||||
# define __SIZEOF_PTHREAD_RWLOCK_T 56
|
||||
# define __SIZEOF_PTHREAD_BARRIER_T 32
|
||||
#else
|
||||
# define __SIZEOF_PTHREAD_MUTEX_T 24
|
||||
# define __SIZEOF_PTHREAD_ATTR_T 36
|
||||
# define __SIZEOF_PTHREAD_RWLOCK_T 32
|
||||
# define __SIZEOF_PTHREAD_BARRIER_T 20
|
||||
#endif
|
||||
#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_COND_T 48
|
||||
#define __SIZEOF_PTHREAD_CONDATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
|
||||
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
|
||||
|
||||
/* Definitions for internal mutex struct. */
|
||||
#define __PTHREAD_COMPAT_PADDING_MID
|
||||
#define __PTHREAD_COMPAT_PADDING_END
|
||||
#define __PTHREAD_MUTEX_LOCK_ELISION 1
|
||||
#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND (__WORDSIZE != 64)
|
||||
#define __PTHREAD_MUTEX_USE_UNION (__WORDSIZE != 64)
|
||||
|
||||
#define __LOCK_ALIGNMENT
|
||||
#define __ONCE_ALIGNMENT
|
||||
|
||||
struct __pthread_rwlock_arch_t
|
||||
{
|
||||
unsigned int __readers;
|
||||
unsigned int __writers;
|
||||
unsigned int __wrphase_futex;
|
||||
unsigned int __writers_futex;
|
||||
unsigned int __pad3;
|
||||
unsigned int __pad4;
|
||||
#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
|
||||
};
|
||||
|
||||
#endif /* bits/pthreadtypes.h */
|
||||
26
libc/include/powerpc-linux-gnu/bits/sem-pad.h
Normal file
26
libc/include/powerpc-linux-gnu/bits/sem-pad.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/* Define where padding goes in struct semid_ds. PowerPC version.
|
||||
Copyright (C) 2018-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_SEM_H
|
||||
# error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/timesize.h>
|
||||
|
||||
#define __SEM_PAD_AFTER_TIME 0
|
||||
#define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32)
|
||||
40
libc/include/powerpc-linux-gnu/bits/semaphore.h
Normal file
40
libc/include/powerpc-linux-gnu/bits/semaphore.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Machine-specific POSIX semaphore type layouts. PowerPC version.
|
||||
Copyright (C) 2003-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
|
||||
|
||||
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 _SEMAPHORE_H
|
||||
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
# define __SIZEOF_SEM_T 32
|
||||
#else
|
||||
# define __SIZEOF_SEM_T 16
|
||||
#endif
|
||||
|
||||
/* Value returned if `sem_open' failed. */
|
||||
#define SEM_FAILED ((sem_t *) 0)
|
||||
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_SEM_T];
|
||||
long int __align;
|
||||
} sem_t;
|
||||
50
libc/include/powerpc-linux-gnu/bits/setjmp.h
Normal file
50
libc/include/powerpc-linux-gnu/bits/setjmp.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* 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 */
|
||||
28
libc/include/powerpc-linux-gnu/bits/shm-pad.h
Normal file
28
libc/include/powerpc-linux-gnu/bits/shm-pad.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Define where padding goes in struct shmid_ds. PowerPC version.
|
||||
Copyright (C) 2018-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_SHM_H
|
||||
# error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/timesize.h>
|
||||
|
||||
#define __SHM_PAD_AFTER_TIME 0
|
||||
#define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32)
|
||||
#define __SHM_SEGSZ_AFTER_TIME 1
|
||||
#define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ (__TIMESIZE == 32)
|
||||
32
libc/include/powerpc-linux-gnu/bits/sigstack.h
Normal file
32
libc/include/powerpc-linux-gnu/bits/sigstack.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/* sigstack, sigaltstack definitions.
|
||||
Copyright (C) 1998-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _BITS_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 */
|
||||
275
libc/include/powerpc-linux-gnu/bits/stat.h
Normal file
275
libc/include/powerpc-linux-gnu/bits/stat.h
Normal file
@@ -0,0 +1,275 @@
|
||||
/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if !defined _SYS_STAT_H && !defined _FCNTL_H
|
||||
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_STAT_H
|
||||
#define _BITS_STAT_H 1
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* Versions of the `struct stat' data structure. */
|
||||
#define _STAT_VER_LINUX_OLD 1
|
||||
#define _STAT_VER_KERNEL 1
|
||||
#define _STAT_VER_SVR4 2
|
||||
#define _STAT_VER_LINUX 3
|
||||
#if __WORDSIZE == 32
|
||||
# define _STAT_VER _STAT_VER_LINUX
|
||||
#else
|
||||
# define _STAT_VER _STAT_VER_KERNEL
|
||||
#endif
|
||||
|
||||
/* Versions of the `xmknod' interface. */
|
||||
#define _MKNOD_VER_LINUX 1
|
||||
#define _MKNOD_VER_SVR4 2
|
||||
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
|
||||
|
||||
|
||||
#if __WORDSIZE == 32
|
||||
|
||||
struct stat
|
||||
{
|
||||
__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;
|
||||
};
|
||||
|
||||
|
||||
# ifdef __USE_LARGEFILE64
|
||||
struct stat64
|
||||
{
|
||||
__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_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
|
||||
|
||||
/* Encoding of the file mode. */
|
||||
|
||||
#define __S_IFMT 0170000 /* These bits determine file type. */
|
||||
|
||||
/* File types. */
|
||||
#define __S_IFDIR 0040000 /* Directory. */
|
||||
#define __S_IFCHR 0020000 /* Character device. */
|
||||
#define __S_IFBLK 0060000 /* Block device. */
|
||||
#define __S_IFREG 0100000 /* Regular file. */
|
||||
#define __S_IFIFO 0010000 /* FIFO. */
|
||||
#define __S_IFLNK 0120000 /* Symbolic link. */
|
||||
#define __S_IFSOCK 0140000 /* Socket. */
|
||||
|
||||
/* POSIX.1b objects. Note that these macros always evaluate to zero. But
|
||||
they do it by enforcing the correct use of the macros. */
|
||||
#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
|
||||
/* Protection bits. */
|
||||
|
||||
#define __S_ISUID 04000 /* Set user ID on execution. */
|
||||
#define __S_ISGID 02000 /* Set group ID on execution. */
|
||||
#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
|
||||
#define __S_IREAD 0400 /* Read by owner. */
|
||||
#define __S_IWRITE 0200 /* Write by owner. */
|
||||
#define __S_IEXEC 0100 /* Execute by owner. */
|
||||
|
||||
#ifdef __USE_ATFILE
|
||||
# define UTIME_NOW ((1l << 30) - 1l)
|
||||
# define UTIME_OMIT ((1l << 30) - 2l)
|
||||
#endif
|
||||
|
||||
#endif /* bits/stat.h */
|
||||
45
libc/include/powerpc-linux-gnu/bits/termios-baud.h
Normal file
45
libc/include/powerpc-linux-gnu/bits/termios-baud.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/* termios baud rate selection definitions. Linux/powerpc version.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
libc/include/powerpc-linux-gnu/bits/termios-c_cc.h
Normal file
41
libc/include/powerpc-linux-gnu/bits/termios-c_cc.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* termios c_cc symbolic constant definitions. Linux/powerpc version.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
libc/include/powerpc-linux-gnu/bits/termios-c_cflag.h
Normal file
35
libc/include/powerpc-linux-gnu/bits/termios-c_cflag.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/* termios control mode definitions. Linux/powerpc version.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
libc/include/powerpc-linux-gnu/bits/termios-c_iflag.h
Normal file
38
libc/include/powerpc-linux-gnu/bits/termios-c_iflag.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/* termios input mode definitions. Linux/powerpc version.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
libc/include/powerpc-linux-gnu/bits/termios-c_lflag.h
Normal file
45
libc/include/powerpc-linux-gnu/bits/termios-c_lflag.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/* termios local mode definitions. Linux/powerpc version.
|
||||
Copyright (C) 2019i 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 _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
libc/include/powerpc-linux-gnu/bits/termios-c_oflag.h
Normal file
65
libc/include/powerpc-linux-gnu/bits/termios-c_oflag.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/* termios output mode definitions. Linux/powerpc version.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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
libc/include/powerpc-linux-gnu/bits/termios-misc.h
Normal file
72
libc/include/powerpc-linux-gnu/bits/termios-misc.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/* termios baud platform specific definitions. Linux/powerpc version.
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _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 */
|
||||
11
libc/include/powerpc-linux-gnu/bits/wordsize.h
Normal file
11
libc/include/powerpc-linux-gnu/bits/wordsize.h
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
|
||||
Reference in New Issue
Block a user