mirror of
git://git.musl-libc.org/musl
synced 2025-03-06 20:48:29 +01:00
Compare commits
No commits in common. "master" and "v1.2.0" have entirely different histories.
677 changed files with 3053 additions and 9276 deletions
|
@ -74,7 +74,6 @@ Kylie McClain
|
|||
Leah Neukirchen
|
||||
Luca Barbato
|
||||
Luka Perkov
|
||||
Lynn Ochs
|
||||
M Farkas-Dyck (Strake)
|
||||
Mahesh Bodapati
|
||||
Markus Wichmann
|
||||
|
@ -104,6 +103,7 @@ Stefan O'Rear
|
|||
Szabolcs Nagy
|
||||
Timo Teräs
|
||||
Trutz Behn
|
||||
Valentin Ochs
|
||||
Will Dietz
|
||||
William Haddon
|
||||
William Pitcock
|
||||
|
@ -127,13 +127,10 @@ Copyright © 2017-2018 Arm Limited
|
|||
and labelled as such in comments in the individual source files. All
|
||||
have been licensed under extremely permissive terms.
|
||||
|
||||
The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008
|
||||
The ARM memcpy code (src/string/arm/memcpy_el.S) is Copyright © 2008
|
||||
The Android Open Source Project and is licensed under a two-clause BSD
|
||||
license. It was taken from Bionic libc, used on Android.
|
||||
|
||||
The AArch64 memcpy and memset code (src/string/aarch64/*) are
|
||||
Copyright © 1999-2019, Arm Limited.
|
||||
|
||||
The implementation of DES for crypt (src/crypt/crypt_des.c) is
|
||||
Copyright © 1994 David Burren. It is licensed under a BSD license.
|
||||
|
||||
|
@ -143,7 +140,7 @@ domain. The code also comes with a fallback permissive license for use
|
|||
in jurisdictions that may not recognize the public domain.
|
||||
|
||||
The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011
|
||||
Lynn Ochs and is licensed under an MIT-style license.
|
||||
Valentin Ochs and is licensed under an MIT-style license.
|
||||
|
||||
The x86_64 port was written by Nicholas J. Kain and is licensed under
|
||||
the standard MIT terms.
|
||||
|
|
9
INSTALL
9
INSTALL
|
@ -86,7 +86,7 @@ and ABI combinations:
|
|||
|
||||
* SuperH (SH)
|
||||
* Standard ELF ABI or FDPIC ABI (shared-text without MMU)
|
||||
* Little-endian by default; big-endian variant also supported
|
||||
* Little-endian by default; big-engian variant also supported
|
||||
* Full FPU ABI or soft-float ABI is supported, but the
|
||||
single-precision-only FPU ABI is not
|
||||
|
||||
|
@ -97,16 +97,11 @@ and ABI combinations:
|
|||
|
||||
* OpenRISC 1000 (or1k)
|
||||
|
||||
* RISC-V
|
||||
* 32-bit and 64-bit
|
||||
* RISC-V 64
|
||||
* Little endian
|
||||
* Hard, soft, and hard-single/soft-double floating point ABIs
|
||||
* Standard ELF; no shared-text NOMMU support
|
||||
|
||||
* LoongArch
|
||||
* 64-bit ISA
|
||||
* Hard, soft, and hard-single/soft-double floating point ABIs
|
||||
|
||||
|
||||
|
||||
Build and Installation Procedure
|
||||
|
|
5
Makefile
5
Makefile
|
@ -17,8 +17,7 @@ includedir = $(prefix)/include
|
|||
libdir = $(prefix)/lib
|
||||
syslibdir = /lib
|
||||
|
||||
MALLOC_DIR = mallocng
|
||||
SRC_DIRS = $(addprefix $(srcdir)/,src/* src/malloc/$(MALLOC_DIR) crt ldso $(COMPAT_SRC_DIRS))
|
||||
SRC_DIRS = $(addprefix $(srcdir)/,src/* crt ldso $(COMPAT_SRC_DIRS))
|
||||
BASE_GLOBS = $(addsuffix /*.c,$(SRC_DIRS))
|
||||
ARCH_GLOBS = $(addsuffix /$(ARCH)/*.[csS],$(SRC_DIRS))
|
||||
BASE_SRCS = $(sort $(wildcard $(BASE_GLOBS)))
|
||||
|
@ -109,7 +108,7 @@ obj/src/internal/version.o obj/src/internal/version.lo: obj/src/internal/version
|
|||
|
||||
obj/crt/rcrt1.o obj/ldso/dlstart.lo obj/ldso/dynlink.lo: $(srcdir)/src/internal/dynlink.h $(srcdir)/arch/$(ARCH)/reloc.h
|
||||
|
||||
obj/crt/crt1.o obj/crt/Scrt1.o obj/crt/rcrt1.o obj/ldso/dlstart.lo: $(srcdir)/arch/$(ARCH)/crt_arch.h
|
||||
obj/crt/crt1.o obj/crt/scrt1.o obj/crt/rcrt1.o obj/ldso/dlstart.lo: $(srcdir)/arch/$(ARCH)/crt_arch.h
|
||||
|
||||
obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart.c
|
||||
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.2.5
|
||||
1.2.0
|
||||
|
|
238
WHATSNEW
238
WHATSNEW
|
@ -2200,241 +2200,3 @@ arch-specific bugs fixed:
|
|||
- arm dynamic linker chose wrong tls/atomic variants since 1.1.21
|
||||
- some math library functions returned excess precision on i386
|
||||
- unconfirmed regression in fchmodat AT_SYMLINK_NOFOLLOW on mips*
|
||||
|
||||
|
||||
|
||||
1.2.1 release notes
|
||||
|
||||
major changes:
|
||||
- new malloc implementation (mallocng & overhauled bump allocator)
|
||||
|
||||
new features:
|
||||
- DNS queries via res_* now set AD flag, report zone signedness (DNSSEC)
|
||||
- PTHREAD_NULL macro (POSIX-future)
|
||||
|
||||
performance:
|
||||
- optimized memcpy and memset for aarch64
|
||||
- optimized memcpy for arm now supports big endian
|
||||
- optimized x86_64 remquol
|
||||
- improved strerror without linear search
|
||||
|
||||
bugs fixed:
|
||||
- lock-skipping for processes that returned to single-threaded was wrong
|
||||
- AF_UNSPEC dns lookups mishandled single failure in paired A+AAAA
|
||||
- res_send and res_query returned wrong value on errors from nameserver
|
||||
- corrupted sysvipc timestamps on 32-bit archs with old kernels
|
||||
- incorrect parsing of timezone offsets after overly-long zone name
|
||||
- clock_adjtime was broken on 32-bit archs (time64)
|
||||
- pthread_kill as not async-signal-safe
|
||||
- pthread_cancel was not async-cancel-safe
|
||||
- large-ulp errors in various math functions in non-default rounding modes
|
||||
|
||||
arch-specific bugs fixed:
|
||||
- arm clock_gettime was broken on some hw due to bad time64 vdso
|
||||
- m68k sqrtl lacked long double precision
|
||||
- mips* syscall mechanism regressions on older kernels
|
||||
- mips* had negated error codes for some syscalls (kernel bug)
|
||||
- mips* SIGEMT was wrongly called SIGSTKFLT
|
||||
- sh fesetround didn't work correctly on sh
|
||||
|
||||
|
||||
|
||||
1.2.2 release notes
|
||||
|
||||
major changes:
|
||||
- child restrictions lifted after fork of multithreaded parent
|
||||
|
||||
new features:
|
||||
- _Fork function (POSIX-future)
|
||||
- reallocarray function (extension from OpenBSD, now widespread)
|
||||
- gettid function (kernel tid as supported concept)
|
||||
- SIGEV_THREAD_ID sigevent API (Linux extension)
|
||||
- tcgetwinsize and tcsetwinsize functions (POSIX-future)
|
||||
|
||||
performance:
|
||||
- faster software sqrt on archs without native sqrt instruction
|
||||
|
||||
compatibility:
|
||||
- realpath no longer depends on procfs availability & accuracy
|
||||
- time zone parser now always prefers 64-bit tables if present
|
||||
- crypt_blowfish now supports $2b$ prefix
|
||||
- res_query now reports errors via h_errno
|
||||
- set*id and setrlimit are now safe in vforked/cloned child
|
||||
- setgroups now applies to all threads
|
||||
- dlopen debugger notification is improved, should work with lldb
|
||||
- setrlimit no longer needs __synccall broadcast on linux 2.6.36+
|
||||
- faccessat with AT_EACCESS no longer needs child process on linux 5.8+
|
||||
|
||||
bugs fixed:
|
||||
- buffer overflow and infinite loop errors in wcsnrtombs (CVE-2020-28928)
|
||||
- sem_close unmapped still-referenced semaphores
|
||||
- fork of process with active aio could deadlock or crash paren
|
||||
- pthread_cond_wait was broken with priority-inheritance mutex
|
||||
- getgrouplist wrongly failed when nscd reported an empty list
|
||||
- abort could leak modified SIGABRT disposition to fork or posix_spawn child
|
||||
- regression with mallocng: malloc_usable_size(0) crashed
|
||||
- readlink wrongly gave EINVAL on zero length dest buffer
|
||||
- sqrtl was severely inaccurate (not correctly rounded) on ldquad archs
|
||||
- assert failure wrongly flushed stdio (possible deadlock)
|
||||
- MUSL_LOCPATH search was broken with multiple components
|
||||
- missing newline in herror output
|
||||
- possible deadlock in pthread_exit with pshared mutex or barrier usage
|
||||
- pthread_mutexattr_getprotocol didn't read back protocol
|
||||
- v4l2 ioctl translation for pre-time64 kernels didn't work
|
||||
|
||||
arch-specific bugs fixed:
|
||||
- x86_64 longjmp failed to handle 0 argument reliably
|
||||
- i386 __set_thread_area fallback for pre-2.6 kernels didn't work
|
||||
- missing O_LARGEFILE macro value on x86_64, x32, mips64
|
||||
- unpredictable s390x breakage from failure to preserve call-saved registers
|
||||
|
||||
|
||||
|
||||
1.2.3 release notes
|
||||
|
||||
new features:
|
||||
- qsort_r function (POSIX-future)
|
||||
- pthread_getname_np extension function
|
||||
- hard float on SPE FPU for powerpc-sf
|
||||
- SEEK_DATA and SEEK_HOLE exposed in unistd.h (Linux extensions)
|
||||
|
||||
compatibility:
|
||||
- free now preserves errno (POSIX-future requirement)
|
||||
- setjmp is declared explicitly with returns_twice for non-GCC compilers
|
||||
- macro version of isascii is no longer defined for C++
|
||||
- dynamic linker now tolerates zero-length LOAD segments
|
||||
- epoll_[p]wait is now a cancellation point
|
||||
- pwd/grp functions no longer fail on systems without AF_UNIX support
|
||||
- POSIX TZ parsing is stricter to allow more names to fallback to files
|
||||
- NULL is now defined as nullptr when used in C++11 or later
|
||||
- gettext now accepts null pointer as argument
|
||||
|
||||
bugs fixed:
|
||||
- old regression in wcwidth of Hangul combining (vowel/final) letters
|
||||
- duplocale used wrong malloc when malloc was replaced (1.2.2 regression)
|
||||
- fmaf rounded wrong on archs without FE_TOWARDZERO (all softfloat archs)
|
||||
- popen didn't honor requirement not to leak other popen pipe fds to child
|
||||
- aligned_alloc and variants crashed on allocation failure
|
||||
- dl_iterate_phdr reported incorrect module TLS pointers
|
||||
- mishandling of some inputs in acoshf and expm1f and functions using them
|
||||
- potentially wrong-sign zero in cproj functions at infinity
|
||||
- multiple bugs in legacy function cuserid
|
||||
- minor posix_spawn file actions API conformance issues
|
||||
- pthread_setname_np fd leak
|
||||
- out-of-bound read in zoneinfo handling with distant-past times
|
||||
- out-of-tree builds lacked generated debug cfi for x86 asm
|
||||
|
||||
arch-specific bugs fixed:
|
||||
- powerpc (32-bit) struct shmid_ds layout was wrong for some fields
|
||||
- time64 struct layout was wrong in sound ioctl fallback (32-bit archs)
|
||||
|
||||
|
||||
|
||||
1.2.4 release notes
|
||||
|
||||
new features:
|
||||
- large dns record lookups via tcp fallback
|
||||
- new getaddrinfo EAI_NODATA result to distinguish NODATA/NxDomain
|
||||
- support for new RELR compressed format for relative relocations
|
||||
- sysconf keys for querying signal stack size requirements
|
||||
- real vfork on riscv64
|
||||
|
||||
performance:
|
||||
- mallocng no longer uses MADV_FREE (high performance cost, little gain)
|
||||
- vdso clock_gettime is supported once again on 32-bit arm
|
||||
|
||||
compatibility:
|
||||
- gethostbyname family now distinguishes NO_DATA from HOST_NOT_FOUND
|
||||
- res_send now works with caller-provided edns0 queries
|
||||
- arpa/nameser.h RR types list is now up-to-date
|
||||
- previously-missing POSIX confstr keys have been added
|
||||
- mntent interfaces now accept missing fields
|
||||
- alt signal stack, if any, is now used for internal signals
|
||||
- the LFS64 macros are no longer exposed without _LARGEFILE64_SOURCE
|
||||
- memmem (POSIX-future) is now exposed in default feature profile
|
||||
- pthread_atfork now admits calls from an application-provided malloc
|
||||
- debugger tracking of shared libraries now works on MIPS PIE binaries
|
||||
- sendmsg now supports up to SCM_MAX_FD fds in SCM_RIGHTS messages
|
||||
|
||||
bugs fixed:
|
||||
- gethostbyname[2]_r wrongly returned nonzero (error) on negative result
|
||||
- parallel v4/v6 address queries could fail on query id collisions
|
||||
- spurious getaddrinfo/AI_ADDRCONFIG failures due to errno clobbering
|
||||
- dns search domains ending in dot (including lone dot) broke lookups
|
||||
- ipv6 servers in resolv.conf broke lookups on systems with v6 disabled
|
||||
- systems with bindv6only failed to query both v4 and v6 nameservers
|
||||
- res_mkquery mishandled consecutive final dots in name
|
||||
- res_send could malfunction for very small answer buffer sizes
|
||||
- resolver dns backend accepted answers with wrong (A vs AAAA) RR type
|
||||
- getservbyport_r returned junk or ENOENT (vs ERANGE) on buffer size errors
|
||||
- dns result parsing of malformed responses could process uninitialized data
|
||||
- freopen didn't reset stream orientation (byte/wide) & encoding rule
|
||||
- fwprintf didn't print most fields on open_wmemstream FILEs
|
||||
- wide printf %lc ignored field width
|
||||
- wide printf erroneously processed %n after encoding errors
|
||||
- use of wide printf %9$ argument slot overflowed undersized buffer
|
||||
- swprintf malfunctioned on nul character in output
|
||||
- strverscmp ordered digit sequences vs nondigits incorrectly
|
||||
- timer_create/SIGEV_THREAD failure leaked the thread
|
||||
- semaphores were subject to missed-wake under certain usage patterns
|
||||
- several possible rare deadlocks with lock handling at thread exit
|
||||
- several possible rare deadlocks with aio and multithreaded fork
|
||||
- dynamic linker relro processing was broken on archs w/variable pagesize
|
||||
- async cancellation could run cancellation handlers in invalid context
|
||||
- pthread_detach was wrongly a cancellation point in rare race code path
|
||||
- use-after-close/double-close errors in mq_notify error paths
|
||||
- mq_notify event thread wrongly ran with signals unmasked
|
||||
- wcs{,n}cmp, wmemcmp returned wrong results when difference overflowed
|
||||
- accept4, pipe2, and dup3 handled unknown flags wrong in fallback cases
|
||||
- CPU_SETSIZE macro had wrong unit
|
||||
- select fallback for pre-time64 kernels truncated timeout (vs clamping)
|
||||
|
||||
arch-specific bugs fixed:
|
||||
- x32 new socketcalls took fallback path due to pointer sign extension
|
||||
- x32 wait4 didn't fill rusage structure (time64 regression)
|
||||
- x32 semtimedop mismatched timespec ABI with kernel (time64 regression)
|
||||
- sigaction signal mask was bogus on or1k, microblaze, mips, and riscv
|
||||
- powerpc-sf longjmp asm clobbered value argument
|
||||
- or1k poll function passed timeout to syscall in wrong form
|
||||
|
||||
|
||||
|
||||
1.2.5 release notes
|
||||
|
||||
new features:
|
||||
- statx function (linux extension; via syscall and fallback using fstatat)
|
||||
- clone function is now usable and gives _Fork-like consistency in child
|
||||
- statvfs now provides f_type result
|
||||
- preadv2 and pwritev2 (linux extension) syscall wrappers
|
||||
- riscv64 TLSDESC support
|
||||
|
||||
new ports:
|
||||
- loongarch64
|
||||
- riscv32
|
||||
|
||||
compatibility:
|
||||
- DNS resolver can now handle answers with long CNAME chains
|
||||
- string.h no longer provides (C23-incompat) non-prototype decl of basename
|
||||
- fstatat statx backend now matches stat syscall non-automounting behavior
|
||||
- mntent interfaces now handle escaped whitespace in paths/options
|
||||
|
||||
standards updates:
|
||||
- printf %lc of nul wchar now produces output
|
||||
- snprintf and swprintf no longer fail on n > INT_MAX
|
||||
- ppoll is now exposed in default feature profile
|
||||
|
||||
bugs fixed:
|
||||
- some long DNS answers were wrongly rejected despite new TCP support
|
||||
- glob could wrongly return GLOB_NOMATCH if aborted before any matches
|
||||
- multithreaded set*id could malfunction from thread sequencing logic bug
|
||||
- certain use of threads after fork could deadlock thread-list lock
|
||||
- posix_spawn child could deadlock in race with async parent death
|
||||
- mbrtowc return value was wrong if argument n exceeded UINT_MAX
|
||||
- 80-bit extended acoshl and powl got some corner cases wrong
|
||||
- syslog incorrectly generated localized timestamps
|
||||
|
||||
arch-specific bugs fixed:
|
||||
- arm (32-bit) TLSDESC malfunctioned due to addends being processed wrong
|
||||
- riscv64 icache flush operation was non-functional
|
||||
- sh sigsetjmp failed to properly restore call-saved register r8 on return
|
||||
- sh dlsym RTLD_NEXT did not identify calling module correctly
|
||||
|
|
|
@ -38,15 +38,3 @@
|
|||
#define HWCAP2_SVEBITPERM (1 << 4)
|
||||
#define HWCAP2_SVESHA3 (1 << 5)
|
||||
#define HWCAP2_SVESM4 (1 << 6)
|
||||
#define HWCAP2_FLAGM2 (1 << 7)
|
||||
#define HWCAP2_FRINT (1 << 8)
|
||||
#define HWCAP2_SVEI8MM (1 << 9)
|
||||
#define HWCAP2_SVEF32MM (1 << 10)
|
||||
#define HWCAP2_SVEF64MM (1 << 11)
|
||||
#define HWCAP2_SVEBF16 (1 << 12)
|
||||
#define HWCAP2_I8MM (1 << 13)
|
||||
#define HWCAP2_BF16 (1 << 14)
|
||||
#define HWCAP2_DGH (1 << 15)
|
||||
#define HWCAP2_RNG (1 << 16)
|
||||
#define HWCAP2_BTI (1 << 17)
|
||||
#define HWCAP2_MTE (1 << 18)
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
#define PROT_BTI 0x10
|
||||
#define PROT_MTE 0x20
|
2
arch/aarch64/bits/posix.h
Normal file
2
arch/aarch64/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_LP64_OFF64 1
|
||||
#define _POSIX_V7_LP64_OFF64 1
|
2
arch/aarch64/bits/reg.h
Normal file
2
arch/aarch64/bits/reg.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 64
|
|
@ -11,7 +11,7 @@ typedef unsigned long greg_t;
|
|||
typedef unsigned long gregset_t[34];
|
||||
|
||||
typedef struct {
|
||||
__uint128_t vregs[32];
|
||||
long double vregs[32];
|
||||
unsigned int fpsr;
|
||||
unsigned int fpcr;
|
||||
} fpregset_t;
|
||||
|
@ -34,7 +34,7 @@ struct fpsimd_context {
|
|||
struct _aarch64_ctx head;
|
||||
unsigned int fpsr;
|
||||
unsigned int fpcr;
|
||||
__uint128_t vregs[32];
|
||||
long double vregs[32];
|
||||
};
|
||||
struct esr_context {
|
||||
struct _aarch64_ctx head;
|
||||
|
|
|
@ -6,7 +6,7 @@ struct stat {
|
|||
uid_t st_uid;
|
||||
gid_t st_gid;
|
||||
dev_t st_rdev;
|
||||
unsigned long long __pad;
|
||||
unsigned long __pad;
|
||||
off_t st_size;
|
||||
blksize_t st_blksize;
|
||||
int __pad2;
|
|
@ -12,18 +12,9 @@ typedef uint32_t uint_fast32_t;
|
|||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#if __LONG_MAX == 0x7fffffffL
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
||||
#else
|
||||
#define INTPTR_MIN INT64_MIN
|
||||
#define INTPTR_MAX INT64_MAX
|
||||
#define UINTPTR_MAX UINT64_MAX
|
||||
#define PTRDIFF_MIN INT64_MIN
|
||||
#define PTRDIFF_MAX INT64_MAX
|
||||
#define SIZE_MAX UINT64_MAX
|
||||
#endif
|
|
@ -289,19 +289,4 @@
|
|||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ struct user_regs_struct {
|
|||
};
|
||||
|
||||
struct user_fpsimd_struct {
|
||||
__uint128_t vregs[32];
|
||||
long double vregs[32];
|
||||
unsigned int fpsr;
|
||||
unsigned int fpcr;
|
||||
};
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
uintptr_t tp;
|
||||
__asm__ ("mrs %0,tpidr_el0" : "=r"(tp));
|
||||
return tp;
|
||||
char *self;
|
||||
__asm__ ("mrs %0,tpidr_el0" : "=r"(self));
|
||||
return (void*)(self - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 16
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread))
|
||||
|
||||
#define MC_PC pc
|
||||
|
|
2
arch/arm/bits/posix.h
Normal file
2
arch/arm/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
3
arch/arm/bits/reg.h
Normal file
3
arch/arm/bits/reg.h
Normal file
|
@ -0,0 +1,3 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 32
|
||||
/* FIXME */
|
20
arch/arm/bits/stdint.h
Normal file
20
arch/arm/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -389,21 +389,6 @@
|
|||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
|
||||
#define __ARM_NR_breakpoint 0x0f0001
|
||||
#define __ARM_NR_cacheflush 0x0f0002
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#if ((__ARM_ARCH_6K__ || __ARM_ARCH_6KZ__ || __ARM_ARCH_6ZK__) && !__thumb__) \
|
||||
|| __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH >= 7
|
||||
|
||||
static inline uintptr_t __get_tp()
|
||||
static inline pthread_t __pthread_self()
|
||||
{
|
||||
uintptr_t tp;
|
||||
__asm__ ( "mrc p15,0,%0,c13,c0,3" : "=r"(tp) );
|
||||
return tp;
|
||||
char *p;
|
||||
__asm__ ( "mrc p15,0,%0,c13,c0,3" : "=r"(p) );
|
||||
return (void *)(p-sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#else
|
||||
|
@ -16,17 +16,18 @@ static inline uintptr_t __get_tp()
|
|||
#define BLX "blx"
|
||||
#endif
|
||||
|
||||
static inline uintptr_t __get_tp()
|
||||
static inline pthread_t __pthread_self()
|
||||
{
|
||||
extern hidden uintptr_t __a_gettp_ptr;
|
||||
register uintptr_t tp __asm__("r0");
|
||||
__asm__ ( BLX " %1" : "=r"(tp) : "r"(__a_gettp_ptr) : "cc", "lr" );
|
||||
return tp;
|
||||
register uintptr_t p __asm__("r0");
|
||||
__asm__ ( BLX " %1" : "=r"(p) : "r"(__a_gettp_ptr) : "cc", "lr" );
|
||||
return (void *)(p-sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 8
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread))
|
||||
|
||||
#define MC_PC arm_pc
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#define REL_TPOFF R_ARM_TLS_TPOFF32
|
||||
#define REL_TLSDESC R_ARM_TLS_DESC
|
||||
|
||||
#define TLSDESC_BACKWARDS 1
|
||||
#define TLSDESC_BACKWARDS
|
||||
|
||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||
"mov sp,%1 ; bx %0" : : "r"(pc), "r"(sp) : "memory" )
|
||||
|
|
|
@ -98,13 +98,12 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
|
|||
__asm_syscall(R7_OPERAND, "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4), "r"(r5));
|
||||
}
|
||||
|
||||
#define SYSCALL_FADVISE_6_ARG
|
||||
|
||||
#define SYSCALL_IPC_BROKEN_MODE
|
||||
|
||||
#define VDSO_USEFUL
|
||||
#define VDSO_CGT32_SYM "__vdso_clock_gettime"
|
||||
#define VDSO_CGT32_VER "LINUX_2.6"
|
||||
#define VDSO_CGT_SYM "__vdso_clock_gettime64"
|
||||
#define VDSO_CGT_VER "LINUX_2.6"
|
||||
#define VDSO_CGT_WORKAROUND 1
|
||||
|
||||
#define SYSCALL_FADVISE_6_ARG
|
||||
|
||||
#define SYSCALL_IPC_BROKEN_MODE
|
||||
|
|
|
@ -30,15 +30,9 @@
|
|||
#define F_SETSIG 10
|
||||
#define F_GETSIG 11
|
||||
|
||||
#if __LONG_MAX == 0x7fffffffL
|
||||
#define F_GETLK 12
|
||||
#define F_SETLK 13
|
||||
#define F_SETLKW 14
|
||||
#else
|
||||
#define F_GETLK 5
|
||||
#define F_SETLK 6
|
||||
#define F_SETLKW 7
|
||||
#endif
|
||||
|
||||
#define F_SETOWN_EX 15
|
||||
#define F_GETOWN_EX 16
|
||||
|
|
2
arch/i386/bits/posix.h
Normal file
2
arch/i386/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
|
@ -1,3 +1,5 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 32
|
||||
#define EBX 0
|
||||
#define ECX 1
|
||||
#define EDX 2
|
||||
|
|
20
arch/i386/bits/stdint.h
Normal file
20
arch/i386/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -426,20 +426,4 @@
|
|||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_memfd_secret 447
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
uintptr_t tp;
|
||||
__asm__ ("movl %%gs:0,%0" : "=r" (tp) );
|
||||
return tp;
|
||||
struct pthread *self;
|
||||
__asm__ ("movl %%gs:0,%0" : "=r" (self) );
|
||||
return self;
|
||||
}
|
||||
|
||||
#define TP_ADJ(p) (p)
|
||||
|
||||
#define MC_PC gregs[REG_EIP]
|
||||
|
|
|
@ -87,3 +87,5 @@ static inline long __syscall6(long n, long a1, long a2, long a3, long a4, long a
|
|||
#define VDSO_CGT32_VER "LINUX_2.6"
|
||||
#define VDSO_CGT_SYM "__vdso_clock_gettime64"
|
||||
#define VDSO_CGT_VER "LINUX_2.6"
|
||||
|
||||
#define SYSCALL_USE_SOCKETCALL
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
#define a_ll a_ll
|
||||
static inline int a_ll(volatile int *p)
|
||||
{
|
||||
int v;
|
||||
__asm__ __volatile__ (
|
||||
"ll.w %0, %1"
|
||||
: "=r"(v)
|
||||
: "ZC"(*p));
|
||||
return v;
|
||||
}
|
||||
|
||||
#define a_sc a_sc
|
||||
static inline int a_sc(volatile int *p, int v)
|
||||
{
|
||||
int r;
|
||||
__asm__ __volatile__ (
|
||||
"sc.w %0, %1"
|
||||
: "=r"(r), "=ZC"(*p)
|
||||
: "0"(v) : "memory");
|
||||
return r;
|
||||
}
|
||||
|
||||
#define a_ll_p a_ll_p
|
||||
static inline void *a_ll_p(volatile void *p)
|
||||
{
|
||||
void *v;
|
||||
__asm__ __volatile__ (
|
||||
"ll.d %0, %1"
|
||||
: "=r"(v)
|
||||
: "ZC"(*(void *volatile *)p));
|
||||
return v;
|
||||
}
|
||||
|
||||
#define a_sc_p a_sc_p
|
||||
static inline int a_sc_p(volatile void *p, void *v)
|
||||
{
|
||||
long r;
|
||||
__asm__ __volatile__ (
|
||||
"sc.d %0, %1"
|
||||
: "=r"(r), "=ZC"(*(void *volatile *)p)
|
||||
: "0"(v)
|
||||
: "memory");
|
||||
return r;
|
||||
}
|
||||
|
||||
#define a_barrier a_barrier
|
||||
static inline void a_barrier()
|
||||
{
|
||||
__asm__ __volatile__ ("dbar 0" : : : "memory");
|
||||
}
|
||||
|
||||
#define a_pre_llsc a_barrier
|
||||
#define a_post_llsc a_barrier
|
|
@ -1,18 +0,0 @@
|
|||
#define _Addr long
|
||||
#define _Int64 long
|
||||
#define _Reg long
|
||||
|
||||
#define __BYTE_ORDER 1234
|
||||
#define __LONG_MAX 0x7fffffffffffffffL
|
||||
|
||||
#ifndef __cplusplus
|
||||
TYPEDEF int wchar_t;
|
||||
#endif
|
||||
|
||||
TYPEDEF float float_t;
|
||||
TYPEDEF double double_t;
|
||||
|
||||
TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
|
||||
|
||||
TYPEDEF unsigned nlink_t;
|
||||
TYPEDEF int blksize_t;
|
|
@ -1,20 +0,0 @@
|
|||
#define FE_INEXACT 0x010000
|
||||
#define FE_UNDERFLOW 0x020000
|
||||
#define FE_OVERFLOW 0x040000
|
||||
#define FE_DIVBYZERO 0x080000
|
||||
#define FE_INVALID 0x100000
|
||||
|
||||
#define FE_ALL_EXCEPT 0x1F0000
|
||||
|
||||
#define FE_TONEAREST 0x000
|
||||
#define FE_TOWARDZERO 0x100
|
||||
#define FE_UPWARD 0x200
|
||||
#define FE_DOWNWARD 0x300
|
||||
|
||||
typedef unsigned fexcept_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned __cw;
|
||||
} fenv_t;
|
||||
|
||||
#define FE_DFL_ENV ((const fenv_t *) -1)
|
|
@ -1,16 +0,0 @@
|
|||
#define FLT_EVAL_METHOD 0
|
||||
|
||||
#define LDBL_TRUE_MIN 6.47517511943802511092443895822764655e-4966L
|
||||
#define LDBL_MIN 3.36210314311209350626267781732175260e-4932L
|
||||
#define LDBL_MAX 1.18973149535723176508575932662800702e+4932L
|
||||
#define LDBL_EPSILON 1.92592994438723585305597794258492732e-34L
|
||||
|
||||
#define LDBL_MANT_DIG 113
|
||||
#define LDBL_MIN_EXP (-16381)
|
||||
#define LDBL_MAX_EXP 16384
|
||||
|
||||
#define LDBL_DIG 33
|
||||
#define LDBL_MIN_10_EXP (-4931)
|
||||
#define LDBL_MAX_10_EXP 4932
|
||||
|
||||
#define DECIMAL_DIG 36
|
|
@ -1 +0,0 @@
|
|||
typedef unsigned long __jmp_buf[23];
|
|
@ -1,101 +0,0 @@
|
|||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||
|
||||
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||
#define MINSIGSTKSZ 4096
|
||||
#define SIGSTKSZ 16384
|
||||
#endif
|
||||
|
||||
#if defined(_GNU_SOURCE)
|
||||
#define LARCH_NGREG 32
|
||||
#define LARCH_REG_RA 1
|
||||
#define LARCH_REG_SP 3
|
||||
#define LARCH_REG_S0 23
|
||||
#define LARCH_REG_S1 24
|
||||
#define LARCH_REG_A0 4
|
||||
#define LARCH_REG_S2 25
|
||||
#define LARCH_REG_NARGS 8
|
||||
#endif
|
||||
|
||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||
typedef unsigned long greg_t, gregset_t[32];
|
||||
|
||||
struct sigcontext {
|
||||
unsigned long sc_pc;
|
||||
unsigned long sc_regs[32];
|
||||
unsigned sc_flags;
|
||||
unsigned long sc_extcontext[] __attribute__((__aligned__(16)));
|
||||
};
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
unsigned long __pc;
|
||||
unsigned long __gregs[32];
|
||||
unsigned __flags;
|
||||
unsigned long __extcontext[] __attribute__((__aligned__(16)));
|
||||
} mcontext_t;
|
||||
|
||||
struct sigaltstack {
|
||||
void *ss_sp;
|
||||
int ss_flags;
|
||||
size_t ss_size;
|
||||
};
|
||||
|
||||
typedef struct __ucontext
|
||||
{
|
||||
unsigned long uc_flags;
|
||||
struct __ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
sigset_t uc_sigmask;
|
||||
long __uc_pad;
|
||||
mcontext_t uc_mcontext;
|
||||
} ucontext_t;
|
||||
|
||||
#define __uc_flags uc_flags
|
||||
|
||||
#define SA_NOCLDSTOP 1
|
||||
#define SA_NOCLDWAIT 2
|
||||
#define SA_SIGINFO 4
|
||||
#define SA_ONSTACK 0x08000000
|
||||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
|
||||
#endif
|
||||
|
||||
#define SIGHUP 1
|
||||
#define SIGINT 2
|
||||
#define SIGQUIT 3
|
||||
#define SIGILL 4
|
||||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT SIGABRT
|
||||
#define SIGBUS 7
|
||||
#define SIGFPE 8
|
||||
#define SIGKILL 9
|
||||
#define SIGUSR1 10
|
||||
#define SIGSEGV 11
|
||||
#define SIGUSR2 12
|
||||
#define SIGPIPE 13
|
||||
#define SIGALRM 14
|
||||
#define SIGTERM 15
|
||||
#define SIGSTKFLT 16
|
||||
#define SIGCHLD 17
|
||||
#define SIGCONT 18
|
||||
#define SIGSTOP 19
|
||||
#define SIGTSTP 20
|
||||
#define SIGTTIN 21
|
||||
#define SIGTTOU 22
|
||||
#define SIGURG 23
|
||||
#define SIGXCPU 24
|
||||
#define SIGXFSZ 25
|
||||
#define SIGVTALRM 26
|
||||
#define SIGPROF 27
|
||||
#define SIGWINCH 28
|
||||
#define SIGIO 29
|
||||
#define SIGPOLL SIGIO
|
||||
#define SIGPWR 30
|
||||
#define SIGSYS 31
|
||||
#define SIGUNUSED SIGSYS
|
||||
|
||||
#define _NSIG 65
|
|
@ -1,316 +0,0 @@
|
|||
#define __NR_io_setup 0
|
||||
#define __NR_io_destroy 1
|
||||
#define __NR_io_submit 2
|
||||
#define __NR_io_cancel 3
|
||||
#define __NR_io_getevents 4
|
||||
#define __NR_setxattr 5
|
||||
#define __NR_lsetxattr 6
|
||||
#define __NR_fsetxattr 7
|
||||
#define __NR_getxattr 8
|
||||
#define __NR_lgetxattr 9
|
||||
#define __NR_fgetxattr 10
|
||||
#define __NR_listxattr 11
|
||||
#define __NR_llistxattr 12
|
||||
#define __NR_flistxattr 13
|
||||
#define __NR_removexattr 14
|
||||
#define __NR_lremovexattr 15
|
||||
#define __NR_fremovexattr 16
|
||||
#define __NR_getcwd 17
|
||||
#define __NR_lookup_dcookie 18
|
||||
#define __NR_eventfd2 19
|
||||
#define __NR_epoll_create1 20
|
||||
#define __NR_epoll_ctl 21
|
||||
#define __NR_epoll_pwait 22
|
||||
#define __NR_dup 23
|
||||
#define __NR_dup3 24
|
||||
#define __NR3264_fcntl 25
|
||||
#define __NR_inotify_init1 26
|
||||
#define __NR_inotify_add_watch 27
|
||||
#define __NR_inotify_rm_watch 28
|
||||
#define __NR_ioctl 29
|
||||
#define __NR_ioprio_set 30
|
||||
#define __NR_ioprio_get 31
|
||||
#define __NR_flock 32
|
||||
#define __NR_mknodat 33
|
||||
#define __NR_mkdirat 34
|
||||
#define __NR_unlinkat 35
|
||||
#define __NR_symlinkat 36
|
||||
#define __NR_linkat 37
|
||||
#define __NR_umount2 39
|
||||
#define __NR_mount 40
|
||||
#define __NR_pivot_root 41
|
||||
#define __NR_nfsservctl 42
|
||||
#define __NR3264_statfs 43
|
||||
#define __NR3264_fstatfs 44
|
||||
#define __NR3264_truncate 45
|
||||
#define __NR3264_ftruncate 46
|
||||
#define __NR_fallocate 47
|
||||
#define __NR_faccessat 48
|
||||
#define __NR_chdir 49
|
||||
#define __NR_fchdir 50
|
||||
#define __NR_chroot 51
|
||||
#define __NR_fchmod 52
|
||||
#define __NR_fchmodat 53
|
||||
#define __NR_fchownat 54
|
||||
#define __NR_fchown 55
|
||||
#define __NR_openat 56
|
||||
#define __NR_close 57
|
||||
#define __NR_vhangup 58
|
||||
#define __NR_pipe2 59
|
||||
#define __NR_quotactl 60
|
||||
#define __NR_getdents64 61
|
||||
#define __NR3264_lseek 62
|
||||
#define __NR_read 63
|
||||
#define __NR_write 64
|
||||
#define __NR_readv 65
|
||||
#define __NR_writev 66
|
||||
#define __NR_pread64 67
|
||||
#define __NR_pwrite64 68
|
||||
#define __NR_preadv 69
|
||||
#define __NR_pwritev 70
|
||||
#define __NR3264_sendfile 71
|
||||
#define __NR_pselect6 72
|
||||
#define __NR_ppoll 73
|
||||
#define __NR_signalfd4 74
|
||||
#define __NR_vmsplice 75
|
||||
#define __NR_splice 76
|
||||
#define __NR_tee 77
|
||||
#define __NR_readlinkat 78
|
||||
#define __NR_sync 81
|
||||
#define __NR_fsync 82
|
||||
#define __NR_fdatasync 83
|
||||
#define __NR_sync_file_range 84
|
||||
#define __NR_timerfd_create 85
|
||||
#define __NR_timerfd_settime 86
|
||||
#define __NR_timerfd_gettime 87
|
||||
#define __NR_utimensat 88
|
||||
#define __NR_acct 89
|
||||
#define __NR_capget 90
|
||||
#define __NR_capset 91
|
||||
#define __NR_personality 92
|
||||
#define __NR_exit 93
|
||||
#define __NR_exit_group 94
|
||||
#define __NR_waitid 95
|
||||
#define __NR_set_tid_address 96
|
||||
#define __NR_unshare 97
|
||||
#define __NR_futex 98
|
||||
#define __NR_set_robust_list 99
|
||||
#define __NR_get_robust_list 100
|
||||
#define __NR_nanosleep 101
|
||||
#define __NR_getitimer 102
|
||||
#define __NR_setitimer 103
|
||||
#define __NR_kexec_load 104
|
||||
#define __NR_init_module 105
|
||||
#define __NR_delete_module 106
|
||||
#define __NR_timer_create 107
|
||||
#define __NR_timer_gettime 108
|
||||
#define __NR_timer_getoverrun 109
|
||||
#define __NR_timer_settime 110
|
||||
#define __NR_timer_delete 111
|
||||
#define __NR_clock_settime 112
|
||||
#define __NR_clock_gettime 113
|
||||
#define __NR_clock_getres 114
|
||||
#define __NR_clock_nanosleep 115
|
||||
#define __NR_syslog 116
|
||||
#define __NR_ptrace 117
|
||||
#define __NR_sched_setparam 118
|
||||
#define __NR_sched_setscheduler 119
|
||||
#define __NR_sched_getscheduler 120
|
||||
#define __NR_sched_getparam 121
|
||||
#define __NR_sched_setaffinity 122
|
||||
#define __NR_sched_getaffinity 123
|
||||
#define __NR_sched_yield 124
|
||||
#define __NR_sched_get_priority_max 125
|
||||
#define __NR_sched_get_priority_min 126
|
||||
#define __NR_sched_rr_get_interval 127
|
||||
#define __NR_restart_syscall 128
|
||||
#define __NR_kill 129
|
||||
#define __NR_tkill 130
|
||||
#define __NR_tgkill 131
|
||||
#define __NR_sigaltstack 132
|
||||
#define __NR_rt_sigsuspend 133
|
||||
#define __NR_rt_sigaction 134
|
||||
#define __NR_rt_sigprocmask 135
|
||||
#define __NR_rt_sigpending 136
|
||||
#define __NR_rt_sigtimedwait 137
|
||||
#define __NR_rt_sigqueueinfo 138
|
||||
#define __NR_rt_sigreturn 139
|
||||
#define __NR_setpriority 140
|
||||
#define __NR_getpriority 141
|
||||
#define __NR_reboot 142
|
||||
#define __NR_setregid 143
|
||||
#define __NR_setgid 144
|
||||
#define __NR_setreuid 145
|
||||
#define __NR_setuid 146
|
||||
#define __NR_setresuid 147
|
||||
#define __NR_getresuid 148
|
||||
#define __NR_setresgid 149
|
||||
#define __NR_getresgid 150
|
||||
#define __NR_setfsuid 151
|
||||
#define __NR_setfsgid 152
|
||||
#define __NR_times 153
|
||||
#define __NR_setpgid 154
|
||||
#define __NR_getpgid 155
|
||||
#define __NR_getsid 156
|
||||
#define __NR_setsid 157
|
||||
#define __NR_getgroups 158
|
||||
#define __NR_setgroups 159
|
||||
#define __NR_uname 160
|
||||
#define __NR_sethostname 161
|
||||
#define __NR_setdomainname 162
|
||||
#define __NR_getrusage 165
|
||||
#define __NR_umask 166
|
||||
#define __NR_prctl 167
|
||||
#define __NR_getcpu 168
|
||||
#define __NR_gettimeofday 169
|
||||
#define __NR_settimeofday 170
|
||||
#define __NR_adjtimex 171
|
||||
#define __NR_getpid 172
|
||||
#define __NR_getppid 173
|
||||
#define __NR_getuid 174
|
||||
#define __NR_geteuid 175
|
||||
#define __NR_getgid 176
|
||||
#define __NR_getegid 177
|
||||
#define __NR_gettid 178
|
||||
#define __NR_sysinfo 179
|
||||
#define __NR_mq_open 180
|
||||
#define __NR_mq_unlink 181
|
||||
#define __NR_mq_timedsend 182
|
||||
#define __NR_mq_timedreceive 183
|
||||
#define __NR_mq_notify 184
|
||||
#define __NR_mq_getsetattr 185
|
||||
#define __NR_msgget 186
|
||||
#define __NR_msgctl 187
|
||||
#define __NR_msgrcv 188
|
||||
#define __NR_msgsnd 189
|
||||
#define __NR_semget 190
|
||||
#define __NR_semctl 191
|
||||
#define __NR_semtimedop 192
|
||||
#define __NR_semop 193
|
||||
#define __NR_shmget 194
|
||||
#define __NR_shmctl 195
|
||||
#define __NR_shmat 196
|
||||
#define __NR_shmdt 197
|
||||
#define __NR_socket 198
|
||||
#define __NR_socketpair 199
|
||||
#define __NR_bind 200
|
||||
#define __NR_listen 201
|
||||
#define __NR_accept 202
|
||||
#define __NR_connect 203
|
||||
#define __NR_getsockname 204
|
||||
#define __NR_getpeername 205
|
||||
#define __NR_sendto 206
|
||||
#define __NR_recvfrom 207
|
||||
#define __NR_setsockopt 208
|
||||
#define __NR_getsockopt 209
|
||||
#define __NR_shutdown 210
|
||||
#define __NR_sendmsg 211
|
||||
#define __NR_recvmsg 212
|
||||
#define __NR_readahead 213
|
||||
#define __NR_brk 214
|
||||
#define __NR_munmap 215
|
||||
#define __NR_mremap 216
|
||||
#define __NR_add_key 217
|
||||
#define __NR_request_key 218
|
||||
#define __NR_keyctl 219
|
||||
#define __NR_clone 220
|
||||
#define __NR_execve 221
|
||||
#define __NR3264_mmap 222
|
||||
#define __NR3264_fadvise64 223
|
||||
#define __NR_swapon 224
|
||||
#define __NR_swapoff 225
|
||||
#define __NR_mprotect 226
|
||||
#define __NR_msync 227
|
||||
#define __NR_mlock 228
|
||||
#define __NR_munlock 229
|
||||
#define __NR_mlockall 230
|
||||
#define __NR_munlockall 231
|
||||
#define __NR_mincore 232
|
||||
#define __NR_madvise 233
|
||||
#define __NR_remap_file_pages 234
|
||||
#define __NR_mbind 235
|
||||
#define __NR_get_mempolicy 236
|
||||
#define __NR_set_mempolicy 237
|
||||
#define __NR_migrate_pages 238
|
||||
#define __NR_move_pages 239
|
||||
#define __NR_rt_tgsigqueueinfo 240
|
||||
#define __NR_perf_event_open 241
|
||||
#define __NR_accept4 242
|
||||
#define __NR_recvmmsg 243
|
||||
#define __NR_arch_specific_syscall 244
|
||||
#define __NR_wait4 260
|
||||
#define __NR_prlimit64 261
|
||||
#define __NR_fanotify_init 262
|
||||
#define __NR_fanotify_mark 263
|
||||
#define __NR_name_to_handle_at 264
|
||||
#define __NR_open_by_handle_at 265
|
||||
#define __NR_clock_adjtime 266
|
||||
#define __NR_syncfs 267
|
||||
#define __NR_setns 268
|
||||
#define __NR_sendmmsg 269
|
||||
#define __NR_process_vm_readv 270
|
||||
#define __NR_process_vm_writev 271
|
||||
#define __NR_kcmp 272
|
||||
#define __NR_finit_module 273
|
||||
#define __NR_sched_setattr 274
|
||||
#define __NR_sched_getattr 275
|
||||
#define __NR_renameat2 276
|
||||
#define __NR_seccomp 277
|
||||
#define __NR_getrandom 278
|
||||
#define __NR_memfd_create 279
|
||||
#define __NR_bpf 280
|
||||
#define __NR_execveat 281
|
||||
#define __NR_userfaultfd 282
|
||||
#define __NR_membarrier 283
|
||||
#define __NR_mlock2 284
|
||||
#define __NR_copy_file_range 285
|
||||
#define __NR_preadv2 286
|
||||
#define __NR_pwritev2 287
|
||||
#define __NR_pkey_mprotect 288
|
||||
#define __NR_pkey_alloc 289
|
||||
#define __NR_pkey_free 290
|
||||
#define __NR_statx 291
|
||||
#define __NR_io_pgetevents 292
|
||||
#define __NR_rseq 293
|
||||
#define __NR_kexec_file_load 294
|
||||
#define __NR_pidfd_send_signal 424
|
||||
#define __NR_io_uring_setup 425
|
||||
#define __NR_io_uring_enter 426
|
||||
#define __NR_io_uring_register 427
|
||||
#define __NR_open_tree 428
|
||||
#define __NR_move_mount 429
|
||||
#define __NR_fsopen 430
|
||||
#define __NR_fsconfig 431
|
||||
#define __NR_fsmount 432
|
||||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_quotactl_fd 443
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
#define __NR_map_shadow_stack 453
|
||||
#define __NR_futex_wake 454
|
||||
#define __NR_futex_wait 455
|
||||
#define __NR_futex_requeue 456
|
||||
#define __NR_fcntl __NR3264_fcntl
|
||||
#define __NR_statfs __NR3264_statfs
|
||||
#define __NR_fstatfs __NR3264_fstatfs
|
||||
#define __NR_truncate __NR3264_truncate
|
||||
#define __NR_ftruncate __NR3264_ftruncate
|
||||
#define __NR_lseek __NR3264_lseek
|
||||
#define __NR_sendfile __NR3264_sendfile
|
||||
#define __NR_mmap __NR3264_mmap
|
||||
#define __NR_fadvise64 __NR3264_fadvise64
|
|
@ -1,24 +0,0 @@
|
|||
#define ELF_NGREG 45
|
||||
#define ELF_NFPREG 34
|
||||
|
||||
struct user_regs_struct {
|
||||
unsigned long regs[32];
|
||||
unsigned long orig_a0;
|
||||
unsigned long csr_era;
|
||||
unsigned long csr_badv;
|
||||
unsigned long reserved[10];
|
||||
};
|
||||
|
||||
struct user_fp_struct {
|
||||
unsigned long fpr[32];
|
||||
unsigned long fcc;
|
||||
unsigned int fcsr;
|
||||
};
|
||||
|
||||
typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
|
||||
|
||||
typedef union {
|
||||
double d;
|
||||
float f;
|
||||
} elf_fpreg_t;
|
||||
typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
|
|
@ -1,13 +0,0 @@
|
|||
__asm__(
|
||||
".text \n"
|
||||
".global " START "\n"
|
||||
".type " START ", @function\n"
|
||||
START ":\n"
|
||||
" move $fp, $zero\n"
|
||||
" move $a0, $sp\n"
|
||||
".weak _DYNAMIC\n"
|
||||
".hidden _DYNAMIC\n"
|
||||
" la.local $a1, _DYNAMIC\n"
|
||||
" bstrins.d $sp, $zero, 3, 0\n"
|
||||
" b " START "_c\n"
|
||||
);
|
|
@ -1,11 +0,0 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
{
|
||||
register uintptr_t tp __asm__("tp");
|
||||
__asm__ ("" : "=r" (tp) );
|
||||
return tp;
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 0
|
||||
#define DTP_OFFSET 0
|
||||
#define MC_PC __pc
|
|
@ -1,30 +0,0 @@
|
|||
#ifdef __loongarch_soft_float
|
||||
#define FP_SUFFIX "-sf"
|
||||
#elif defined __loongarch_single_float
|
||||
#define FP_SUFFIX "-sp"
|
||||
#else
|
||||
#define FP_SUFFIX ""
|
||||
#endif
|
||||
|
||||
#define LDSO_ARCH "loongarch64" FP_SUFFIX
|
||||
|
||||
#define TPOFF_K 0
|
||||
|
||||
#define REL_PLT R_LARCH_JUMP_SLOT
|
||||
#define REL_COPY R_LARCH_COPY
|
||||
#define REL_DTPMOD R_LARCH_TLS_DTPMOD64
|
||||
#define REL_DTPOFF R_LARCH_TLS_DTPREL64
|
||||
#define REL_TPOFF R_LARCH_TLS_TPREL64
|
||||
#define REL_RELATIVE R_LARCH_RELATIVE
|
||||
#define REL_SYMBOLIC R_LARCH_64
|
||||
#define REL_TLSDESC R_LARCH_TLS_DESC64
|
||||
|
||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||
"move $sp, %1 ; jr %0" : : "r"(pc), "r"(sp) : "memory" )
|
||||
|
||||
#define GETFUNCSYM(fp, sym, got) __asm__ ( \
|
||||
".hidden " #sym "\n" \
|
||||
".align 8 \n" \
|
||||
" la.local $t1, "#sym" \n" \
|
||||
" move %0, $t1 \n" \
|
||||
: "=r"(*(fp)) : : "memory" )
|
|
@ -1,137 +0,0 @@
|
|||
#define __SYSCALL_LL_E(x) (x)
|
||||
#define __SYSCALL_LL_O(x) (x)
|
||||
|
||||
#define SYSCALL_CLOBBERLIST \
|
||||
"$t0", "$t1", "$t2", "$t3", \
|
||||
"$t4", "$t5", "$t6", "$t7", "$t8", "memory"
|
||||
|
||||
static inline long __syscall0(long n)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0");
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "=r"(a0)
|
||||
: "r"(a7)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
static inline long __syscall1(long n, long a)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0") = a;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "+r"(a0)
|
||||
: "r"(a7)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
static inline long __syscall2(long n, long a, long b)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0") = a;
|
||||
register long a1 __asm__("$a1") = b;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "+r"(a0)
|
||||
: "r"(a7), "r"(a1)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
static inline long __syscall3(long n, long a, long b, long c)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0") = a;
|
||||
register long a1 __asm__("$a1") = b;
|
||||
register long a2 __asm__("$a2") = c;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "+r"(a0)
|
||||
: "r"(a7), "r"(a1), "r"(a2)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
static inline long __syscall4(long n, long a, long b, long c, long d)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0") = a;
|
||||
register long a1 __asm__("$a1") = b;
|
||||
register long a2 __asm__("$a2") = c;
|
||||
register long a3 __asm__("$a3") = d;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "+r"(a0)
|
||||
: "r"(a7), "r"(a1), "r"(a2), "r"(a3)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0") = a;
|
||||
register long a1 __asm__("$a1") = b;
|
||||
register long a2 __asm__("$a2") = c;
|
||||
register long a3 __asm__("$a3") = d;
|
||||
register long a4 __asm__("$a4") = e;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "+r"(a0)
|
||||
: "r"(a7), "r"(a1), "r"(a2), "r"(a3), "r"(a4)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0") = a;
|
||||
register long a1 __asm__("$a1") = b;
|
||||
register long a2 __asm__("$a2") = c;
|
||||
register long a3 __asm__("$a3") = d;
|
||||
register long a4 __asm__("$a4") = e;
|
||||
register long a5 __asm__("$a5") = f;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "+r"(a0)
|
||||
: "r"(a7), "r"(a1), "r"(a2), "r"(a3), "r"(a4), "r"(a5)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
static inline long __syscall7(long n, long a, long b, long c, long d, long e, long f, long g)
|
||||
{
|
||||
register long a7 __asm__("$a7") = n;
|
||||
register long a0 __asm__("$a0") = a;
|
||||
register long a1 __asm__("$a1") = b;
|
||||
register long a2 __asm__("$a2") = c;
|
||||
register long a3 __asm__("$a3") = d;
|
||||
register long a4 __asm__("$a4") = e;
|
||||
register long a5 __asm__("$a5") = f;
|
||||
register long a6 __asm__("$a6") = g;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"syscall 0"
|
||||
: "+r"(a0)
|
||||
: "r"(a7), "r"(a1), "r"(a2), "r"(a3), "r"(a4), "r"(a5), "r"(a6)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return a0;
|
||||
}
|
||||
|
||||
#define VDSO_USEFUL
|
||||
#define VDSO_CGT_SYM "__vdso_clock_gettime"
|
||||
#define VDSO_CGT_VER "LINUX_5.10"
|
||||
|
||||
#define IPC_64 0
|
|
@ -1,2 +0,0 @@
|
|||
#define POLLWRNORM POLLOUT
|
||||
#define POLLWRBAND 256
|
2
arch/m68k/bits/posix.h
Normal file
2
arch/m68k/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
|
@ -1,3 +1,5 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 32
|
||||
#define PT_D1 0
|
||||
#define PT_D2 1
|
||||
#define PT_D3 2
|
||||
|
|
20
arch/m68k/bits/stdint.h
Normal file
20
arch/m68k/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -405,19 +405,3 @@
|
|||
#define __NR_fsmount 432
|
||||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
return __syscall(SYS_get_thread_area);
|
||||
uintptr_t tp = __syscall(SYS_get_thread_area);
|
||||
return (pthread_t)(tp - 0x7000 - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 0
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + 0x7000)
|
||||
|
||||
#define TP_OFFSET 0x7000
|
||||
#define DTP_OFFSET 0x8000
|
||||
|
||||
#define MC_PC gregs[R_PC]
|
||||
|
|
|
@ -87,4 +87,5 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
|
|||
return d0;
|
||||
}
|
||||
|
||||
#define SYSCALL_USE_SOCKETCALL
|
||||
#define SYSCALL_IPC_BROKEN_MODE
|
||||
|
|
2
arch/microblaze/bits/posix.h
Normal file
2
arch/microblaze/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
3
arch/microblaze/bits/reg.h
Normal file
3
arch/microblaze/bits/reg.h
Normal file
|
@ -0,0 +1,3 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 32
|
||||
/* FIXME */
|
|
@ -46,6 +46,7 @@ typedef struct __ucontext {
|
|||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
#define SA_RESTORER 0x04000000
|
||||
|
||||
#endif
|
||||
|
||||
|
|
20
arch/microblaze/bits/stdint.h
Normal file
20
arch/microblaze/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -427,19 +427,4 @@
|
|||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
uintptr_t tp;
|
||||
__asm__ ("ori %0, r21, 0" : "=r" (tp) );
|
||||
return tp;
|
||||
struct pthread *self;
|
||||
__asm__ ("ori %0, r21, 0" : "=r" (self) );
|
||||
return self;
|
||||
}
|
||||
|
||||
#define TP_ADJ(p) (p)
|
||||
|
||||
#define MC_PC regs.pc
|
||||
|
|
|
@ -95,5 +95,3 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
|
|||
}
|
||||
|
||||
#define SYSCALL_IPC_BROKEN_MODE
|
||||
|
||||
#undef SYS_socketcall
|
||||
|
|
2
arch/mips/bits/posix.h
Normal file
2
arch/mips/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
|
@ -1,3 +1,6 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 32
|
||||
|
||||
#define EF_R0 6
|
||||
#define EF_R1 7
|
||||
#define EF_R2 8
|
||||
|
|
|
@ -66,6 +66,7 @@ typedef struct __ucontext {
|
|||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
#define SA_RESTORER 0x04000000
|
||||
|
||||
#undef SIG_BLOCK
|
||||
#undef SIG_UNBLOCK
|
||||
|
@ -92,7 +93,7 @@ typedef struct __ucontext {
|
|||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT SIGABRT
|
||||
#define SIGEMT 7
|
||||
#define SIGSTKFLT 7
|
||||
#define SIGFPE 8
|
||||
#define SIGKILL 9
|
||||
#define SIGBUS 10
|
||||
|
|
20
arch/mips/bits/stdint.h
Normal file
20
arch/mips/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -408,19 +408,4 @@
|
|||
#define __NR_fspick 4433
|
||||
#define __NR_pidfd_open 4434
|
||||
#define __NR_clone3 4435
|
||||
#define __NR_close_range 4436
|
||||
#define __NR_openat2 4437
|
||||
#define __NR_pidfd_getfd 4438
|
||||
#define __NR_faccessat2 4439
|
||||
#define __NR_process_madvise 4440
|
||||
#define __NR_epoll_pwait2 4441
|
||||
#define __NR_mount_setattr 4442
|
||||
#define __NR_landlock_create_ruleset 4444
|
||||
#define __NR_landlock_add_rule 4445
|
||||
#define __NR_landlock_restrict_self 4446
|
||||
#define __NR_process_mrelease 4448
|
||||
#define __NR_futex_waitv 4449
|
||||
#define __NR_set_mempolicy_home_node 4450
|
||||
#define __NR_cachestat 4451
|
||||
#define __NR_fchmodat2 4452
|
||||
|
||||
|
|
|
@ -4,7 +4,10 @@ struct k_sigaction {
|
|||
unsigned flags;
|
||||
void (*handler)(int);
|
||||
unsigned long mask[4];
|
||||
void *unused;
|
||||
/* The following field is past the end of the structure the
|
||||
* kernel will read or write, and exists only to avoid having
|
||||
* mips-specific preprocessor conditionals in sigaction.c. */
|
||||
void (*restorer)();
|
||||
};
|
||||
|
||||
hidden void __restore(), __restore_rt();
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
register uintptr_t tp __asm__("$3");
|
||||
#if __mips_isa_rev < 2
|
||||
register char *tp __asm__("$3");
|
||||
__asm__ (".word 0x7c03e83b" : "=r" (tp) );
|
||||
#else
|
||||
char *tp;
|
||||
__asm__ ("rdhwr %0, $29" : "=r" (tp) );
|
||||
#endif
|
||||
return tp;
|
||||
return (pthread_t)(tp - 0x7000 - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 0
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + 0x7000)
|
||||
|
||||
#define TP_OFFSET 0x7000
|
||||
#define DTP_OFFSET 0x8000
|
||||
|
||||
#define MC_PC pc
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
|
||||
#define NEED_MIPS_GOT_RELOCS 1
|
||||
#define DT_DEBUG_INDIRECT DT_MIPS_RLD_MAP
|
||||
#define DT_DEBUG_INDIRECT_REL DT_MIPS_RLD_MAP_REL
|
||||
#define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT))
|
||||
|
||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||
|
|
|
@ -18,26 +18,26 @@
|
|||
static inline long __syscall0(long n)
|
||||
{
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"addu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2)
|
||||
"syscall"
|
||||
: "+r"(r2), "=r"(r7)
|
||||
:
|
||||
: SYSCALL_CLOBBERLIST, "$8", "$9", "$10");
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall1(long n, long a)
|
||||
{
|
||||
register long r4 __asm__("$4") = a;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"addu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4)
|
||||
"syscall"
|
||||
: "+r"(r2), "=r"(r7)
|
||||
: "r"(r4)
|
||||
: SYSCALL_CLOBBERLIST, "$8", "$9", "$10");
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall2(long n, long a, long b)
|
||||
|
@ -45,13 +45,13 @@ static inline long __syscall2(long n, long a, long b)
|
|||
register long r4 __asm__("$4") = a;
|
||||
register long r5 __asm__("$5") = b;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"addu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5)
|
||||
"syscall"
|
||||
: "+r"(r2), "=r"(r7)
|
||||
: "r"(r4), "r"(r5)
|
||||
: SYSCALL_CLOBBERLIST, "$8", "$9", "$10");
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall3(long n, long a, long b, long c)
|
||||
|
@ -60,13 +60,13 @@ static inline long __syscall3(long n, long a, long b, long c)
|
|||
register long r5 __asm__("$5") = b;
|
||||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"addu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
"syscall"
|
||||
: "+r"(r2), "=r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST, "$8", "$9", "$10");
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall4(long n, long a, long b, long c, long d)
|
||||
|
@ -75,13 +75,13 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
|
|||
register long r5 __asm__("$5") = b;
|
||||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7") = d;
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"addu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "+r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
"syscall"
|
||||
: "+r"(r2), "+r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST, "$8", "$9", "$10");
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
||||
|
@ -91,15 +91,15 @@ static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
|||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7") = d;
|
||||
register long r8 __asm__("$8") = e;
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"subu $sp,$sp,32 ; sw $8,16($sp) ; "
|
||||
"addu $2,$0,%3 ; syscall ;"
|
||||
"syscall ;"
|
||||
"addu $sp,$sp,32"
|
||||
: "=&r"(r2), "+r"(r7), "+r"(r8)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
: "+r"(r2), "+r"(r7), "+r"(r8)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST, "$9", "$10");
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
|
||||
|
@ -110,15 +110,15 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
|
|||
register long r7 __asm__("$7") = d;
|
||||
register long r8 __asm__("$8") = e;
|
||||
register long r9 __asm__("$9") = f;
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"subu $sp,$sp,32 ; sw $8,16($sp) ; sw $9,20($sp) ; "
|
||||
"addu $2,$0,%4 ; syscall ;"
|
||||
"syscall ;"
|
||||
"addu $sp,$sp,32"
|
||||
: "=&r"(r2), "+r"(r7), "+r"(r8), "+r"(r9)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
: "+r"(r2), "+r"(r7), "+r"(r8), "+r"(r9)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST, "$10");
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall7(long n, long a, long b, long c, long d, long e, long f, long g)
|
||||
|
@ -130,15 +130,15 @@ static inline long __syscall7(long n, long a, long b, long c, long d, long e, lo
|
|||
register long r8 __asm__("$8") = e;
|
||||
register long r9 __asm__("$9") = f;
|
||||
register long r10 __asm__("$10") = g;
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"subu $sp,$sp,32 ; sw $8,16($sp) ; sw $9,20($sp) ; sw $10,24($sp) ; "
|
||||
"addu $2,$0,%5 ; syscall ;"
|
||||
"syscall ;"
|
||||
"addu $sp,$sp,32"
|
||||
: "=&r"(r2), "+r"(r7), "+r"(r8), "+r"(r9), "+r"(r10)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
: "+r"(r2), "+r"(r7), "+r"(r8), "+r"(r9), "+r"(r10)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
#define VDSO_USEFUL
|
||||
|
@ -149,5 +149,3 @@ static inline long __syscall7(long n, long a, long b, long c, long d, long e, lo
|
|||
|
||||
#define SO_SNDTIMEO_OLD 0x1005
|
||||
#define SO_RCVTIMEO_OLD 0x1006
|
||||
|
||||
#undef SYS_socketcall
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#define O_ASYNC 010000
|
||||
#define O_DIRECT 0100000
|
||||
#define O_LARGEFILE 020000
|
||||
#define O_LARGEFILE 0
|
||||
#define O_NOATIME 01000000
|
||||
#define O_PATH 010000000
|
||||
#define O_TMPFILE 020200000
|
||||
|
|
2
arch/mips64/bits/posix.h
Normal file
2
arch/mips64/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_LP64_OFFBIG 1
|
||||
#define _POSIX_V7_LP64_OFFBIG 1
|
|
@ -1,3 +1,6 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 64
|
||||
|
||||
#define EF_R0 0
|
||||
#define EF_R1 1
|
||||
#define EF_R2 2
|
||||
|
|
|
@ -85,6 +85,7 @@ typedef struct __ucontext {
|
|||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
#define SA_RESTORER 0x04000000
|
||||
|
||||
#undef SIG_BLOCK
|
||||
#undef SIG_UNBLOCK
|
||||
|
@ -111,7 +112,7 @@ typedef struct __ucontext {
|
|||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT SIGABRT
|
||||
#define SIGEMT 7
|
||||
#define SIGSTKFLT 7
|
||||
#define SIGFPE 8
|
||||
#define SIGKILL 9
|
||||
#define SIGBUS 10
|
||||
|
|
20
arch/mips64/bits/stdint.h
Normal file
20
arch/mips64/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT64_MIN
|
||||
#define INTPTR_MAX INT64_MAX
|
||||
#define UINTPTR_MAX UINT64_MAX
|
||||
#define PTRDIFF_MIN INT64_MIN
|
||||
#define PTRDIFF_MAX INT64_MAX
|
||||
#define SIZE_MAX UINT64_MAX
|
|
@ -338,19 +338,4 @@
|
|||
#define __NR_fspick 5433
|
||||
#define __NR_pidfd_open 5434
|
||||
#define __NR_clone3 5435
|
||||
#define __NR_close_range 5436
|
||||
#define __NR_openat2 5437
|
||||
#define __NR_pidfd_getfd 5438
|
||||
#define __NR_faccessat2 5439
|
||||
#define __NR_process_madvise 5440
|
||||
#define __NR_epoll_pwait2 5441
|
||||
#define __NR_mount_setattr 5442
|
||||
#define __NR_landlock_create_ruleset 5444
|
||||
#define __NR_landlock_add_rule 5445
|
||||
#define __NR_landlock_restrict_self 5446
|
||||
#define __NR_process_mrelease 5448
|
||||
#define __NR_futex_waitv 5449
|
||||
#define __NR_set_mempolicy_home_node 5450
|
||||
#define __NR_cachestat 5451
|
||||
#define __NR_fchmodat2 5452
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ struct k_sigaction {
|
|||
unsigned flags;
|
||||
void (*handler)(int);
|
||||
unsigned long mask[2];
|
||||
void *unused;
|
||||
void (*restorer)();
|
||||
};
|
||||
|
||||
hidden void __restore(), __restore_rt();
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
#if __mips_isa_rev < 2
|
||||
register uintptr_t tp __asm__("$3");
|
||||
register char *tp __asm__("$3");
|
||||
__asm__ (".word 0x7c03e83b" : "=r" (tp) );
|
||||
#else
|
||||
uintptr_t tp;
|
||||
char *tp;
|
||||
__asm__ ("rdhwr %0, $29" : "=r" (tp) );
|
||||
#endif
|
||||
return tp;
|
||||
return (pthread_t)(tp - 0x7000 - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 0
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + 0x7000)
|
||||
|
||||
#define TP_OFFSET 0x7000
|
||||
#define DTP_OFFSET 0x8000
|
||||
|
||||
#define MC_PC pc
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
|
||||
#define NEED_MIPS_GOT_RELOCS 1
|
||||
#define DT_DEBUG_INDIRECT DT_MIPS_RLD_MAP
|
||||
#define DT_DEBUG_INDIRECT_REL DT_MIPS_RLD_MAP_REL
|
||||
#define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT))
|
||||
|
||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||
|
|
|
@ -16,26 +16,26 @@
|
|||
static inline long __syscall0(long n)
|
||||
{
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
:
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall1(long n, long a)
|
||||
{
|
||||
register long r4 __asm__("$4") = a;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
: "r"(r4)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall2(long n, long a, long b)
|
||||
|
@ -43,14 +43,14 @@ static inline long __syscall2(long n, long a, long b)
|
|||
register long r4 __asm__("$4") = a;
|
||||
register long r5 __asm__("$5") = b;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
: "r"(r4), "r"(r5)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall3(long n, long a, long b, long c)
|
||||
|
@ -59,14 +59,14 @@ static inline long __syscall3(long n, long a, long b, long c)
|
|||
register long r5 __asm__("$5") = b;
|
||||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall4(long n, long a, long b, long c, long d)
|
||||
|
@ -75,14 +75,14 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
|
|||
register long r5 __asm__("$5") = b;
|
||||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7") = d;
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "+r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
"syscall"
|
||||
: "+&r"(r2), "+r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
||||
|
@ -92,14 +92,14 @@ static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
|||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7") = d;
|
||||
register long r8 __asm__("$8") = e;
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "+r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6), "r"(r8)
|
||||
"syscall"
|
||||
: "+&r"(r2), "+r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6), "r"(r8)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
|
||||
|
@ -110,14 +110,14 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
|
|||
register long r7 __asm__("$7") = d;
|
||||
register long r8 __asm__("$8") = e;
|
||||
register long r9 __asm__("$9") = f;
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "+r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6), "r"(r8), "r"(r9)
|
||||
"syscall"
|
||||
: "+&r"(r2), "+r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6), "r"(r8), "r"(r9)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
#define VDSO_USEFUL
|
||||
|
|
2
arch/mipsn32/bits/posix.h
Normal file
2
arch/mipsn32/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
|
@ -1,3 +1,6 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 64
|
||||
|
||||
#define EF_R0 0
|
||||
#define EF_R1 1
|
||||
#define EF_R2 2
|
||||
|
|
|
@ -85,6 +85,7 @@ typedef struct __ucontext {
|
|||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
#define SA_RESTORER 0x04000000
|
||||
|
||||
#undef SIG_BLOCK
|
||||
#undef SIG_UNBLOCK
|
||||
|
@ -111,7 +112,7 @@ typedef struct __ucontext {
|
|||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT SIGABRT
|
||||
#define SIGEMT 7
|
||||
#define SIGSTKFLT 7
|
||||
#define SIGFPE 8
|
||||
#define SIGKILL 9
|
||||
#define SIGBUS 10
|
||||
|
|
20
arch/mipsn32/bits/stdint.h
Normal file
20
arch/mipsn32/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -362,19 +362,4 @@
|
|||
#define __NR_fspick 6433
|
||||
#define __NR_pidfd_open 6434
|
||||
#define __NR_clone3 6435
|
||||
#define __NR_close_range 6436
|
||||
#define __NR_openat2 6437
|
||||
#define __NR_pidfd_getfd 6438
|
||||
#define __NR_faccessat2 6439
|
||||
#define __NR_process_madvise 6440
|
||||
#define __NR_epoll_pwait2 6441
|
||||
#define __NR_mount_setattr 6442
|
||||
#define __NR_landlock_create_ruleset 6444
|
||||
#define __NR_landlock_add_rule 6445
|
||||
#define __NR_landlock_restrict_self 6446
|
||||
#define __NR_process_mrelease 6448
|
||||
#define __NR_futex_waitv 6449
|
||||
#define __NR_set_mempolicy_home_node 6450
|
||||
#define __NR_cachestat 6451
|
||||
#define __NR_fchmodat2 6452
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ struct k_sigaction {
|
|||
unsigned flags;
|
||||
void (*handler)(int);
|
||||
unsigned long mask[4];
|
||||
void *unused;
|
||||
void (*restorer)();
|
||||
};
|
||||
|
||||
hidden void __restore(), __restore_rt();
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
#if __mips_isa_rev < 2
|
||||
register uintptr_t tp __asm__("$3");
|
||||
register char *tp __asm__("$3");
|
||||
__asm__ (".word 0x7c03e83b" : "=r" (tp) );
|
||||
#else
|
||||
uintptr_t tp;
|
||||
char *tp;
|
||||
__asm__ ("rdhwr %0, $29" : "=r" (tp) );
|
||||
#endif
|
||||
return tp;
|
||||
return (pthread_t)(tp - 0x7000 - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 0
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + 0x7000)
|
||||
|
||||
#define TP_OFFSET 0x7000
|
||||
#define DTP_OFFSET 0x8000
|
||||
|
||||
#define MC_PC pc
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
|
||||
#define NEED_MIPS_GOT_RELOCS 1
|
||||
#define DT_DEBUG_INDIRECT DT_MIPS_RLD_MAP
|
||||
#define DT_DEBUG_INDIRECT_REL DT_MIPS_RLD_MAP_REL
|
||||
#define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT))
|
||||
|
||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||
|
|
|
@ -16,26 +16,26 @@
|
|||
static inline long __syscall0(long n)
|
||||
{
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
:
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall1(long n, long a)
|
||||
{
|
||||
register long r4 __asm__("$4") = a;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
: "r"(r4)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall2(long n, long a, long b)
|
||||
|
@ -43,14 +43,13 @@ static inline long __syscall2(long n, long a, long b)
|
|||
register long r4 __asm__("$4") = a;
|
||||
register long r5 __asm__("$5") = b;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
: "r"(r4), "r"(r5)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall3(long n, long a, long b, long c)
|
||||
|
@ -59,14 +58,13 @@ static inline long __syscall3(long n, long a, long b, long c)
|
|||
register long r5 __asm__("$5") = b;
|
||||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7");
|
||||
register long r2 __asm__("$2");
|
||||
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "=r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
"syscall"
|
||||
: "+&r"(r2), "=r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall4(long n, long a, long b, long c, long d)
|
||||
|
@ -75,14 +73,13 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
|
|||
register long r5 __asm__("$5") = b;
|
||||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7") = d;
|
||||
register long r2 __asm__("$2");
|
||||
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "+r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6)
|
||||
"syscall"
|
||||
: "+&r"(r2), "+r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
||||
|
@ -92,14 +89,13 @@ static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
|||
register long r6 __asm__("$6") = c;
|
||||
register long r7 __asm__("$7") = d;
|
||||
register long r8 __asm__("$8") = e;
|
||||
register long r2 __asm__("$2");
|
||||
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "+r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6), "r"(r8)
|
||||
"syscall"
|
||||
: "+&r"(r2), "+r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6), "r"(r8)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
|
||||
|
@ -110,14 +106,13 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
|
|||
register long r7 __asm__("$7") = d;
|
||||
register long r8 __asm__("$8") = e;
|
||||
register long r9 __asm__("$9") = f;
|
||||
register long r2 __asm__("$2");
|
||||
|
||||
register long r2 __asm__("$2") = n;
|
||||
__asm__ __volatile__ (
|
||||
"daddu $2,$0,%2 ; syscall"
|
||||
: "=&r"(r2), "+r"(r7)
|
||||
: "ir"(n), "0"(r2), "r"(r4), "r"(r5), "r"(r6), "r"(r8), "r"(r9)
|
||||
"syscall"
|
||||
: "+&r"(r2), "+r"(r7)
|
||||
: "r"(r4), "r"(r5), "r"(r6), "r"(r8), "r"(r9)
|
||||
: SYSCALL_CLOBBERLIST);
|
||||
return r7 && r2>0 ? -r2 : r2;
|
||||
return r7 ? -r2 : r2;
|
||||
}
|
||||
|
||||
#define VDSO_USEFUL
|
||||
|
|
2
arch/or1k/bits/posix.h
Normal file
2
arch/or1k/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
3
arch/or1k/bits/reg.h
Normal file
3
arch/or1k/bits/reg.h
Normal file
|
@ -0,0 +1,3 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 32
|
||||
/* FIXME */
|
|
@ -43,6 +43,7 @@ typedef struct __ucontext {
|
|||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
#define SA_RESTORER 0x04000000
|
||||
|
||||
#endif
|
||||
|
||||
|
|
20
arch/or1k/bits/stdint.h
Normal file
20
arch/or1k/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -311,19 +311,4 @@
|
|||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
/* or1k use variant I, but with the twist that tp points to the end of TCB */
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
#ifdef __clang__
|
||||
uintptr_t tp;
|
||||
char *tp;
|
||||
__asm__ ("l.ori %0, r10, 0" : "=r" (tp) );
|
||||
#else
|
||||
register uintptr_t tp __asm__("r10");
|
||||
register char *tp __asm__("r10");
|
||||
__asm__ ("" : "=r" (tp) );
|
||||
#endif
|
||||
return tp;
|
||||
return (struct pthread *) (tp - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 0
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread))
|
||||
|
||||
#define MC_PC regs.pc
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__)
|
||||
#ifdef _SOFT_FLOAT
|
||||
#define FE_ALL_EXCEPT 0
|
||||
#define FE_TONEAREST 0
|
||||
#else
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#define MAP_NORESERVE 0x40
|
||||
#undef MAP_LOCKED
|
||||
#define MAP_LOCKED 0x80
|
||||
#undef MAP_SYNC
|
||||
|
||||
#undef MCL_CURRENT
|
||||
#define MCL_CURRENT 0x2000
|
||||
|
|
2
arch/powerpc/bits/posix.h
Normal file
2
arch/powerpc/bits/posix.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
#define _POSIX_V6_ILP32_OFFBIG 1
|
||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
3
arch/powerpc/bits/reg.h
Normal file
3
arch/powerpc/bits/reg.h
Normal file
|
@ -0,0 +1,3 @@
|
|||
#undef __WORDSIZE
|
||||
#define __WORDSIZE 32
|
||||
/* FIXME */
|
|
@ -8,11 +8,11 @@ struct shmid_ds {
|
|||
unsigned long __shm_dtime_lo;
|
||||
unsigned long __shm_ctime_hi;
|
||||
unsigned long __shm_ctime_lo;
|
||||
unsigned long __pad1;
|
||||
size_t shm_segsz;
|
||||
pid_t shm_cpid;
|
||||
pid_t shm_lpid;
|
||||
unsigned long shm_nattch;
|
||||
unsigned long __pad1;
|
||||
unsigned long __pad2;
|
||||
time_t shm_atime;
|
||||
time_t shm_dtime;
|
||||
|
|
20
arch/powerpc/bits/stdint.h
Normal file
20
arch/powerpc/bits/stdint.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
typedef int32_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef uint32_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
|
||||
#define INT_FAST16_MIN INT32_MIN
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
|
||||
#define INT_FAST16_MAX INT32_MAX
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
|
||||
#define UINT_FAST16_MAX UINT32_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
|
||||
#define INTPTR_MIN INT32_MIN
|
||||
#define INTPTR_MAX INT32_MAX
|
||||
#define UINTPTR_MAX UINT32_MAX
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
|
@ -415,19 +415,4 @@
|
|||
#define __NR_fspick 433
|
||||
#define __NR_pidfd_open 434
|
||||
#define __NR_clone3 435
|
||||
#define __NR_close_range 436
|
||||
#define __NR_openat2 437
|
||||
#define __NR_pidfd_getfd 438
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
#define __NR_process_mrelease 448
|
||||
#define __NR_futex_waitv 449
|
||||
#define __NR_set_mempolicy_home_node 450
|
||||
#define __NR_cachestat 451
|
||||
#define __NR_fchmodat2 452
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
static inline uintptr_t __get_tp()
|
||||
static inline struct pthread *__pthread_self()
|
||||
{
|
||||
register uintptr_t tp __asm__("r2");
|
||||
register char *tp __asm__("r2");
|
||||
__asm__ ("" : "=r" (tp) );
|
||||
return tp;
|
||||
return (pthread_t)(tp - 0x7000 - sizeof(struct pthread));
|
||||
}
|
||||
|
||||
#define TLS_ABOVE_TP
|
||||
#define GAP_ABOVE_TP 0
|
||||
#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + 0x7000)
|
||||
|
||||
#define TP_OFFSET 0x7000
|
||||
#define DTP_OFFSET 0x8000
|
||||
|
||||
// the kernel calls the ip "nip", it's the first saved value after the 32
|
||||
// GPRs.
|
||||
#define MC_PC gregs[32]
|
||||
|
||||
#define CANARY canary_at_end
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__)
|
||||
#ifdef _SOFT_FLOAT
|
||||
#define FP_SUFFIX "-sf"
|
||||
#else
|
||||
#define FP_SUFFIX ""
|
||||
|
|
|
@ -92,9 +92,3 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
|
|||
|
||||
#define SO_RCVTIMEO_OLD 18
|
||||
#define SO_SNDTIMEO_OLD 19
|
||||
|
||||
#define VDSO_USEFUL
|
||||
#define VDSO_CGT32_SYM "__kernel_clock_gettime"
|
||||
#define VDSO_CGT32_VER "LINUX_2.6.15"
|
||||
#define VDSO_CGT_SYM "__kernel_clock_gettime64"
|
||||
#define VDSO_CGT_VER "LINUX_5.11"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue