summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc-test/semver/linux-gnu-loongarch64.txt6
-rw-r--r--libc-test/semver/linux-loongarch64.txt136
-rw-r--r--libc-test/semver/redox.txt2
-rw-r--r--src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs8
-rw-r--r--src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs23
-rw-r--r--src/unix/linux_like/linux/musl/b32/powerpc.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b32/x86/mod.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b64/powerpc64.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b64/s390x.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b64/x86_64/mod.rs3
-rw-r--r--src/unix/redox/mod.rs6
11 files changed, 191 insertions, 5 deletions
diff --git a/libc-test/semver/linux-gnu-loongarch64.txt b/libc-test/semver/linux-gnu-loongarch64.txt
new file mode 100644
index 0000000000..4d60496082
--- /dev/null
+++ b/libc-test/semver/linux-gnu-loongarch64.txt
@@ -0,0 +1,6 @@
+PTRACE_GETFPREGS
+PTRACE_SETFPREGS
+PTRACE_GETFPXREGS
+PTRACE_SETFPXREGS
+PTRACE_GETREGS
+PTRACE_SETREGS
diff --git a/libc-test/semver/linux-loongarch64.txt b/libc-test/semver/linux-loongarch64.txt
new file mode 100644
index 0000000000..9dddfd962d
--- /dev/null
+++ b/libc-test/semver/linux-loongarch64.txt
@@ -0,0 +1,136 @@
+B2500000
+B3000000
+B3500000
+B4000000
+BPF_ABS
+BPF_ADD
+BPF_ALU
+BPF_B
+BPF_DIV
+BPF_H
+BPF_IMM
+BPF_IND
+BPF_JA
+BPF_JEQ
+BPF_JGE
+BPF_JGT
+BPF_JMP
+BPF_JUMP
+BPF_K
+BPF_LD
+BPF_LDX
+BPF_LEN
+BPF_LL_OFF
+BPF_MEM
+BPF_MISC
+BPF_MISCOP
+BPF_MOD
+BPF_MSH
+BPF_NEG
+BPF_NET_OFF
+BPF_RET
+BPF_RVAL
+BPF_ST
+BPF_STMT
+BPF_STX
+BPF_SUB
+BPF_W
+BPF_X
+BPF_XOR
+CIBAUD
+FICLONE
+FICLONERANGE
+flock64
+KEYCTL_CAPABILITIES
+KEYCTL_CAPS0_BIG_KEY
+KEYCTL_CAPS0_CAPABILITIES
+KEYCTL_CAPS0_DIFFIE_HELLMAN
+KEYCTL_CAPS0_INVALIDATE
+KEYCTL_CAPS0_MOVE
+KEYCTL_CAPS0_PERSISTENT_KEYRINGS
+KEYCTL_CAPS0_PUBLIC_KEY
+KEYCTL_CAPS0_RESTRICT_KEYRING
+KEYCTL_CAPS1_NS_KEYRING_NAME
+KEYCTL_CAPS1_NS_KEY_TAG
+KEYCTL_MOVE
+MADV_SOFT_OFFLINE
+MAP_SYNC
+NFT_MSG_DELOBJ
+NFT_MSG_GETOBJ
+NFT_MSG_GETOBJ_RESET
+NFT_MSG_NEWOBJ
+PTRACE_SYSEMU
+PTRACE_SYSEMU_SINGLESTEP
+SCM_TIMESTAMPNS
+SCM_WIFI_STATUS
+SIGSTKFLT
+SIGUNUSED
+SKF_AD_ALU_XOR_X
+SKF_AD_CPU
+SKF_AD_HATYPE
+SKF_AD_MARK
+SKF_AD_MAX
+SKF_AD_NLATTR
+SKF_AD_NLATTR_NEST
+SKF_AD_OFF
+SKF_AD_PAY_OFFSET
+SKF_AD_PKTTYPE
+SKF_AD_PROTOCOL
+SKF_AD_QUEUE
+SKF_AD_RANDOM
+SKF_AD_RXHASH
+SKF_AD_VLAN_TAG
+SKF_AD_VLAN_TAG_PRESENT
+SKF_AD_VLAN_TPID
+SKF_LL_OFF
+SKF_NET_OFF
+SO_ATTACH_BPF
+SO_ATTACH_FILTER
+SO_BPF_EXTENSIONS
+SO_BSDCOMPAT
+SO_DETACH_BPF
+SO_DETACH_FILTER
+SO_GET_FILTER
+SO_INCOMING_CPU
+SO_LOCK_FILTER
+SO_MAX_PACING_RATE
+SO_NO_CHECK
+SO_NOFCS
+SO_PEERNAME
+SO_PRIORITY
+SO_PROTOCOL
+SO_SECURITY_AUTHENTICATION
+SO_SECURITY_ENCRYPTION_NETWORK
+SO_SECURITY_ENCRYPTION_TRANSPORT
+SO_SELECT_ERR_QUEUE
+SO_TIMESTAMPNS
+SO_WIFI_STATUS
+SYS_accept
+SYS_msgctl
+SYS_msgget
+SYS_msgrcv
+SYS_msgsnd
+SYS_pkey_alloc
+SYS_pkey_free
+SYS_pkey_mprotect
+SYS_semctl
+SYS_semget
+SYS_semop
+SYS_semtimedop
+SYS_sendfile
+SYS_shmat
+SYS_shmctl
+SYS_shmdt
+SYS_shmget
+SYS_sync_file_range
+termios2
+TIOCCBRK
+TIOCGRS485
+TIOCSBRK
+TIOCSRS485
+XCASE
+max_align_t
+mcontext_t
+ucontext_t
+user_regs_struct
+user_fp_struct
diff --git a/libc-test/semver/redox.txt b/libc-test/semver/redox.txt
index cd07660cc4..6e73d0ac25 100644
--- a/libc-test/semver/redox.txt
+++ b/libc-test/semver/redox.txt
@@ -215,6 +215,8 @@ reallocarray
setpwent
setrlimit
setservent
+sigtimedwait
+sigwait
strcasecmp
strcasestr
strlcat
diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs
index 4cae9c1c35..dc191f51fd 100644
--- a/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs
+++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs
@@ -17,10 +17,10 @@ s! {
#[repr(align(16))]
pub struct mcontext_t {
- pub sc_pc: ::c_ulonglong,
- pub sc_regs: [::c_ulonglong; 32],
- pub sc_flags: ::c_ulong,
- pub sc_extcontext: [u64; 0],
+ pub __pc: ::c_ulonglong,
+ pub __gregs: [::c_ulonglong; 32],
+ pub __flags: ::c_uint,
+ pub __extcontext: [::c_ulonglong; 0],
}
#[repr(align(8))]
diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs
index af2825b600..ea59181bcd 100644
--- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs
@@ -189,6 +189,21 @@ s! {
__unused4: ::c_ulong,
__unused5: ::c_ulong
}
+
+ pub struct user_regs_struct {
+ pub regs: [u64; 32],
+ pub orig_a0: u64,
+ pub csr_era: u64,
+ pub csr_badv: u64,
+ pub reserved: [u64; 10],
+
+ }
+
+ pub struct user_fp_struct {
+ pub fpr: [u64; 32],
+ pub fcc: u64,
+ pub fcsr: u32,
+ }
}
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
@@ -549,7 +564,7 @@ pub const SYS_landlock_add_rule: ::c_long = 445;
pub const SYS_landlock_restrict_self: ::c_long = 446;
pub const SYS_process_mrelease: ::c_long = 448;
pub const SYS_futex_waitv: ::c_long = 449;
-//pub const SYS_set_mempolicy_home_node: ::c_long = 450;
+pub const SYS_set_mempolicy_home_node: ::c_long = 450;
pub const POSIX_FADV_DONTNEED: ::c_int = 4;
pub const POSIX_FADV_NOREUSE: ::c_int = 5;
@@ -684,6 +699,8 @@ pub const ENOTRECOVERABLE: ::c_int = 131;
pub const ERFKILL: ::c_int = 132;
pub const EHWPOISON: ::c_int = 133;
+pub const MADV_SOFT_OFFLINE: ::c_int = 101;
+
pub const MAP_NORESERVE: ::c_int = 0x4000;
pub const MAP_ANONYMOUS: ::c_int = 0x0020;
pub const MAP_ANON: ::c_int = 0x0020;
@@ -695,6 +712,7 @@ pub const MAP_POPULATE: ::c_int = 0x8000;
pub const MAP_NONBLOCK: ::c_int = 0x10000;
pub const MAP_STACK: ::c_int = 0x20000;
pub const MAP_HUGETLB: ::c_int = 0x40000;
+pub const MAP_SYNC: ::c_int = 0x080000;
pub const MCL_CURRENT: ::c_int = 0x0001;
pub const MCL_FUTURE: ::c_int = 0x0002;
pub const MCL_ONFAULT: ::c_int = 0x0004;
@@ -746,6 +764,8 @@ pub const PTRACE_GETFPXREGS: ::c_uint = 18;
pub const PTRACE_SETFPXREGS: ::c_uint = 19;
pub const PTRACE_GETREGS: ::c_uint = 12;
pub const PTRACE_SETREGS: ::c_uint = 13;
+pub const PTRACE_SYSEMU: ::c_uint = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32;
pub const RTLD_DEEPBIND: ::c_int = 0x8;
pub const RTLD_GLOBAL: ::c_int = 0x100;
@@ -846,6 +866,7 @@ pub const ECHOPRT: ::tcflag_t = 0x00000400;
pub const ECHOCTL: ::tcflag_t = 0x00000200;
pub const ISIG: ::tcflag_t = 0x00000001;
pub const ICANON: ::tcflag_t = 0x00000002;
+pub const XCASE: ::tcflag_t = 0x00000004;
pub const PENDIN: ::tcflag_t = 0x00004000;
pub const NOFLSH: ::tcflag_t = 0x00000080;
diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs
index 3b998329bb..b1669ade7f 100644
--- a/src/unix/linux_like/linux/musl/b32/powerpc.rs
+++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs
@@ -257,6 +257,9 @@ pub const MAP_STACK: ::c_int = 0x020000;
pub const MAP_HUGETLB: ::c_int = 0x040000;
pub const MAP_SYNC: ::c_int = 0x080000;
+pub const PTRACE_SYSEMU: ::c_int = 0x1d;
+pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e;
+
pub const SOCK_STREAM: ::c_int = 1;
pub const SOCK_DGRAM: ::c_int = 2;
pub const SOCK_SEQPACKET: ::c_int = 5;
diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
index c319b91b61..aaca917fa0 100644
--- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
@@ -456,6 +456,9 @@ pub const FLUSHO: ::tcflag_t = 0x00001000;
pub const POLLWRNORM: ::c_short = 0x100;
pub const POLLWRBAND: ::c_short = 0x200;
+pub const PTRACE_SYSEMU: ::c_int = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32;
+
// Syscall table
pub const SYS_restart_syscall: ::c_long = 0;
pub const SYS_exit: ::c_long = 1;
diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs
index 0bb4cf837d..c9bd94135c 100644
--- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs
+++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs
@@ -173,6 +173,9 @@ pub const MAP_STACK: ::c_int = 0x020000;
pub const MAP_HUGETLB: ::c_int = 0x040000;
pub const MAP_SYNC: ::c_int = 0x080000;
+pub const PTRACE_SYSEMU: ::c_int = 0x1d;
+pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 0x1e;
+
pub const SOCK_STREAM: ::c_int = 1;
pub const SOCK_DGRAM: ::c_int = 2;
diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs
index d7dcce615c..c7d6b1bd2c 100644
--- a/src/unix/linux_like/linux/musl/b64/s390x.rs
+++ b/src/unix/linux_like/linux/musl/b64/s390x.rs
@@ -179,6 +179,9 @@ pub const MAP_STACK: ::c_int = 0x020000;
pub const MAP_HUGETLB: ::c_int = 0x040000;
pub const MAP_SYNC: ::c_int = 0x080000;
+pub const PTRACE_SYSEMU: ::c_int = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32;
+
pub const EDEADLOCK: ::c_int = 35;
pub const ENAMETOOLONG: ::c_int = 36;
pub const ENOLCK: ::c_int = 37;
diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs
index 8198dc2f35..9decf91bcc 100644
--- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs
+++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs
@@ -682,6 +682,9 @@ pub const O_RSYNC: ::c_int = 1052672;
pub const O_DSYNC: ::c_int = 4096;
pub const O_ASYNC: ::c_int = 0x2000;
+pub const PTRACE_SYSEMU: ::c_int = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: ::c_int = 32;
+
pub const SIGSTKSZ: ::size_t = 8192;
pub const MINSIGSTKSZ: ::size_t = 2048;
diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs
index d946f46524..61c4debb77 100644
--- a/src/unix/redox/mod.rs
+++ b/src/unix/redox/mod.rs
@@ -1080,6 +1080,12 @@ extern "C" {
) -> ::c_int;
pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int;
pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int;
+ pub fn sigtimedwait(
+ set: *const sigset_t,
+ sig: *mut siginfo_t,
+ timeout: *const ::timespec,
+ ) -> ::c_int;
+ pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int;
// stdlib.h
pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void;