diff options
Diffstat (limited to 'libc/sysdeps/linux/sparc/bits')
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/fcntl.h | 2 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/fenv.h | 60 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/resource.h | 21 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/sem.h | 18 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/stat.h | 4 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/typesizes.h | 12 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h | 3 | 
7 files changed, 87 insertions, 33 deletions
| diff --git a/libc/sysdeps/linux/sparc/bits/fcntl.h b/libc/sysdeps/linux/sparc/bits/fcntl.h index 935495937..35224cdb3 100644 --- a/libc/sysdeps/linux/sparc/bits/fcntl.h +++ b/libc/sysdeps/linux/sparc/bits/fcntl.h @@ -252,3 +252,5 @@ extern ssize_t tee (int __fdin, int __fdout, size_t __len,  #endif  __END_DECLS +/* Include generic Linux declarations.  */ +#include <bits/fcntl-linux.h> diff --git a/libc/sysdeps/linux/sparc/bits/fenv.h b/libc/sysdeps/linux/sparc/bits/fenv.h index 79ab8cefa..83b32cc51 100644 --- a/libc/sysdeps/linux/sparc/bits/fenv.h +++ b/libc/sysdeps/linux/sparc/bits/fenv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1997-2025 Free Software Foundation, Inc.     The GNU C Library is free software; you can redistribute it and/or     modify it under the terms of the GNU Lesser General Public @@ -12,26 +12,34 @@     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/>.  */ +   <https://www.gnu.org/licenses/>.  */  #ifndef _FENV_H  # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."  #endif +#include <bits/wordsize.h> + +  /* Define bits representing the exception.  We use the bit positions     of the appropriate accrued exception bits from the FSR.  */  enum    { -    FE_INVALID = 	(1 << 9), -#define FE_INVALID	FE_INVALID -    FE_OVERFLOW = 	(1 << 8), -#define FE_OVERFLOW	FE_OVERFLOW -    FE_UNDERFLOW = 	(1 << 7), -#define FE_UNDERFLOW	FE_UNDERFLOW -    FE_DIVBYZERO = 	(1 << 6), -#define FE_DIVBYZERO	FE_DIVBYZERO -    FE_INEXACT = 	(1 << 5) -#define FE_INEXACT	FE_INEXACT +    FE_INVALID = +#define FE_INVALID	(1 << 9) +      FE_INVALID, +    FE_OVERFLOW = +#define FE_OVERFLOW	(1 << 8) +      FE_OVERFLOW, +    FE_UNDERFLOW = +#define FE_UNDERFLOW	(1 << 7) +      FE_UNDERFLOW, +    FE_DIVBYZERO = +#define FE_DIVBYZERO	(1 << 6) +      FE_DIVBYZERO, +    FE_INEXACT = +#define FE_INEXACT	(1 << 5) +      FE_INEXACT    };  #define FE_ALL_EXCEPT \ @@ -42,14 +50,18 @@ enum     for the appropriate macros.  */  enum    { -    FE_TONEAREST = 	(0U << 30), -#define FE_TONEAREST	FE_TONEAREST -    FE_TOWARDZERO = 	(1U << 30), -#define FE_TOWARDZERO	FE_TOWARDZERO -    FE_UPWARD = 	(2U << 30), -#define FE_UPWARD	FE_UPWARD -    FE_DOWNWARD = 	(3U << 30) -#define FE_DOWNWARD	FE_DOWNWARD +    FE_TONEAREST = +#define FE_TONEAREST	(0 << 30) +      FE_TONEAREST, +    FE_TOWARDZERO = +#define FE_TOWARDZERO	(1 << 30) +      FE_TOWARDZERO, +    FE_UPWARD = +#define FE_UPWARD	(-0x7fffffff - 1) /* (2 << 30) */ +      FE_UPWARD, +    FE_DOWNWARD = +#define FE_DOWNWARD	(-0x40000000) /* (3 << 30) */ +      FE_DOWNWARD    };  #define __FE_ROUND_MASK	(3U << 30) @@ -70,6 +82,8 @@ typedef unsigned long int fenv_t;  # define FE_NOMASK_ENV	((const fenv_t *) -2)  #endif -/* For internal use only: access the fp state register.  */ -#define __fenv_stfsr(X)   __asm__ ("st %%fsr,%0" : "=m" (X)) -#define __fenv_ldfsr(X)   __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X)) +/* Type representing floating-point control modes.  */ +typedef unsigned long int femode_t; + +/* Default floating-point control modes.  */ +# define FE_DFL_MODE	((const femode_t *) -1L) diff --git a/libc/sysdeps/linux/sparc/bits/resource.h b/libc/sysdeps/linux/sparc/bits/resource.h index 1005aeced..48e1049f4 100644 --- a/libc/sysdeps/linux/sparc/bits/resource.h +++ b/libc/sysdeps/linux/sparc/bits/resource.h @@ -98,7 +98,13 @@ enum __rlimit_resource    __RLIMIT_RTPRIO = 14,  #define RLIMIT_RTPRIO __RLIMIT_RTPRIO -  __RLIMIT_NLIMITS = 15, +  /* Maximum CPU time in µs that a process scheduled under a real-time +     scheduling policy may consume without making a blocking system +     call before being forcibly descheduled.  */ +  __RLIMIT_RTTIME = 15, +#define RLIMIT_RTTIME __RLIMIT_RTTIME + +  __RLIMIT_NLIMITS = 16,    __RLIM_NLIMITS = __RLIMIT_NLIMITS  #define RLIMIT_NLIMITS __RLIMIT_NLIMITS  #define RLIM_NLIMITS __RLIM_NLIMITS @@ -108,11 +114,11 @@ enum __rlimit_resource  #ifndef __USE_FILE_OFFSET64  # define RLIM_INFINITY ((long int)(~0UL >> 1))  #else -# define RLIM_INFINITY 0x7fffffffffffffffLL +# define RLIM_INFINITY 0xffffffffffffffffULL  #endif  #ifdef __USE_LARGEFILE64 -# define RLIM64_INFINITY 0x7fffffffffffffffLL +# define RLIM64_INFINITY 0xffffffffffffffffULL  #endif  /* We can represent all limits.  */ @@ -158,6 +164,15 @@ enum __rusage_who    /* All of its terminated child processes.  */    RUSAGE_CHILDREN = -1  #define RUSAGE_CHILDREN RUSAGE_CHILDREN + +#ifdef __USE_GNU +  , +  /* The calling thread.  */ +  RUSAGE_THREAD = 1 +# define RUSAGE_THREAD RUSAGE_THREAD +  /* Name for the same functionality on Solaris.  */ +# define RUSAGE_LWP RUSAGE_THREAD +#endif  };  #define __need_timeval diff --git a/libc/sysdeps/linux/sparc/bits/sem.h b/libc/sysdeps/linux/sparc/bits/sem.h index 04c579fc6..23fd7c2eb 100644 --- a/libc/sysdeps/linux/sparc/bits/sem.h +++ b/libc/sysdeps/linux/sparc/bits/sem.h @@ -38,10 +38,24 @@ struct semid_ds  {    struct ipc_perm sem_perm;		/* operation permission struct */    unsigned int __pad1; -  __time_t sem_otime;			/* last semop() time */ +#if defined(__UCLIBC_USE_TIME64__) +  unsigned long int __sem_otime_internal_1; /* last semop() time */ +  unsigned long int __sem_otime_internal_2; +#else +  __time_t sem_otime;                  /* last semop() time */ +#endif    unsigned int __pad2; -  __time_t sem_ctime;			/* last time changed by semctl() */ +#if defined(__UCLIBC_USE_TIME64__) +  unsigned long int __sem_ctime_internal_1; /* last time changed by semctl() */ +  unsigned long int __sem_ctime_internal_2; +#else +  __time_t sem_ctime;                  /* last time changed by semctl() */ +#endif    unsigned long int sem_nsems;		/* number of semaphores in set */ +#if defined(__UCLIBC_USE_TIME64__) +  __time_t sem_otime; +  __time_t sem_ctime; +#endif    unsigned long int __uclibc_unused1;    unsigned long int __uclibc_unused2;  }; diff --git a/libc/sysdeps/linux/sparc/bits/stat.h b/libc/sysdeps/linux/sparc/bits/stat.h index b88885fe2..0fbef8b3f 100644 --- a/libc/sysdeps/linux/sparc/bits/stat.h +++ b/libc/sysdeps/linux/sparc/bits/stat.h @@ -53,7 +53,7 @@ struct stat  #else      __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */  #endif -#ifdef __USE_MISC +#if defined(__USE_MISC) || defined(__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 @@ -93,7 +93,7 @@ struct stat64      __blksize_t st_blksize;		/* Optimal block size for I/O.  */      __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */ -#ifdef __USE_MISC +#if defined(__USE_MISC) || defined(__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 diff --git a/libc/sysdeps/linux/sparc/bits/typesizes.h b/libc/sysdeps/linux/sparc/bits/typesizes.h index 37b7656aa..c7b7f5576 100644 --- a/libc/sysdeps/linux/sparc/bits/typesizes.h +++ b/libc/sysdeps/linux/sparc/bits/typesizes.h @@ -46,9 +46,21 @@  #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE  #define	__ID_T_TYPE		__U32_TYPE  #define __CLOCK_T_TYPE		__SLONGWORD_TYPE + +#ifdef __UCLIBC_USE_TIME64__ +#define __TIME_T_TYPE		__S64_TYPE +#else  #define __TIME_T_TYPE		__SLONGWORD_TYPE +#endif +  #define __USECONDS_T_TYPE	__U32_TYPE + +#ifdef __UCLIBC_USE_TIME64__ +#define __SUSECONDS_T_TYPE	__S64_TYPE +#else  #define __SUSECONDS_T_TYPE	__S32_TYPE +#endif +  #define __DADDR_T_TYPE		__S32_TYPE  #define __SWBLK_T_TYPE		__SLONGWORD_TYPE  #define __KEY_T_TYPE		__S32_TYPE diff --git a/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h b/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h index 76f5084ff..283a250bb 100644 --- a/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h +++ b/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h @@ -11,9 +11,6 @@  /* can your target use syscall6() for mmap ? */  #define __UCLIBC_MMAP_HAS_6_ARGS__ -/* does your target use statx */ -#undef __UCLIBC_HAVE_STATX__ -  /* does your target align 64bit values in register pairs ? (32bit arches only) */  #undef __UCLIBC_SYSCALL_ALIGN_64BIT__ | 
