Skip to content

Commit fe563a8

Browse files
committed
Auto merge of #3246 - loongarch-rs:fix-loongarch, r=JohnTitor
Fix loongarch64 bindings This PR aims to fix the LoongArch64 bindings and incorporate tests for LoongArch. - libc-test: PASSED
2 parents e1c4a38 + d6967dd commit fe563a8

File tree

4 files changed

+168
-5
lines changed

4 files changed

+168
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
PTRACE_GETFPREGS
2+
PTRACE_SETFPREGS
3+
PTRACE_GETFPXREGS
4+
PTRACE_SETFPXREGS
5+
PTRACE_GETREGS
6+
PTRACE_SETREGS
+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
B2500000
2+
B3000000
3+
B3500000
4+
B4000000
5+
BPF_ABS
6+
BPF_ADD
7+
BPF_ALU
8+
BPF_B
9+
BPF_DIV
10+
BPF_H
11+
BPF_IMM
12+
BPF_IND
13+
BPF_JA
14+
BPF_JEQ
15+
BPF_JGE
16+
BPF_JGT
17+
BPF_JMP
18+
BPF_JUMP
19+
BPF_K
20+
BPF_LD
21+
BPF_LDX
22+
BPF_LEN
23+
BPF_LL_OFF
24+
BPF_MEM
25+
BPF_MISC
26+
BPF_MISCOP
27+
BPF_MOD
28+
BPF_MSH
29+
BPF_NEG
30+
BPF_NET_OFF
31+
BPF_RET
32+
BPF_RVAL
33+
BPF_ST
34+
BPF_STMT
35+
BPF_STX
36+
BPF_SUB
37+
BPF_W
38+
BPF_X
39+
BPF_XOR
40+
CIBAUD
41+
FICLONE
42+
FICLONERANGE
43+
flock64
44+
KEYCTL_CAPABILITIES
45+
KEYCTL_CAPS0_BIG_KEY
46+
KEYCTL_CAPS0_CAPABILITIES
47+
KEYCTL_CAPS0_DIFFIE_HELLMAN
48+
KEYCTL_CAPS0_INVALIDATE
49+
KEYCTL_CAPS0_MOVE
50+
KEYCTL_CAPS0_PERSISTENT_KEYRINGS
51+
KEYCTL_CAPS0_PUBLIC_KEY
52+
KEYCTL_CAPS0_RESTRICT_KEYRING
53+
KEYCTL_CAPS1_NS_KEYRING_NAME
54+
KEYCTL_CAPS1_NS_KEY_TAG
55+
KEYCTL_MOVE
56+
MADV_SOFT_OFFLINE
57+
MAP_SYNC
58+
NFT_MSG_DELOBJ
59+
NFT_MSG_GETOBJ
60+
NFT_MSG_GETOBJ_RESET
61+
NFT_MSG_NEWOBJ
62+
PTRACE_SYSEMU
63+
PTRACE_SYSEMU_SINGLESTEP
64+
SCM_TIMESTAMPNS
65+
SCM_WIFI_STATUS
66+
SIGSTKFLT
67+
SIGUNUSED
68+
SKF_AD_ALU_XOR_X
69+
SKF_AD_CPU
70+
SKF_AD_HATYPE
71+
SKF_AD_MARK
72+
SKF_AD_MAX
73+
SKF_AD_NLATTR
74+
SKF_AD_NLATTR_NEST
75+
SKF_AD_OFF
76+
SKF_AD_PAY_OFFSET
77+
SKF_AD_PKTTYPE
78+
SKF_AD_PROTOCOL
79+
SKF_AD_QUEUE
80+
SKF_AD_RANDOM
81+
SKF_AD_RXHASH
82+
SKF_AD_VLAN_TAG
83+
SKF_AD_VLAN_TAG_PRESENT
84+
SKF_AD_VLAN_TPID
85+
SKF_LL_OFF
86+
SKF_NET_OFF
87+
SO_ATTACH_BPF
88+
SO_ATTACH_FILTER
89+
SO_BPF_EXTENSIONS
90+
SO_BSDCOMPAT
91+
SO_DETACH_BPF
92+
SO_DETACH_FILTER
93+
SO_GET_FILTER
94+
SO_INCOMING_CPU
95+
SO_LOCK_FILTER
96+
SO_MAX_PACING_RATE
97+
SO_NO_CHECK
98+
SO_NOFCS
99+
SO_PEERNAME
100+
SO_PRIORITY
101+
SO_PROTOCOL
102+
SO_SECURITY_AUTHENTICATION
103+
SO_SECURITY_ENCRYPTION_NETWORK
104+
SO_SECURITY_ENCRYPTION_TRANSPORT
105+
SO_SELECT_ERR_QUEUE
106+
SO_TIMESTAMPNS
107+
SO_WIFI_STATUS
108+
SYS_accept
109+
SYS_msgctl
110+
SYS_msgget
111+
SYS_msgrcv
112+
SYS_msgsnd
113+
SYS_pkey_alloc
114+
SYS_pkey_free
115+
SYS_pkey_mprotect
116+
SYS_semctl
117+
SYS_semget
118+
SYS_semop
119+
SYS_semtimedop
120+
SYS_sendfile
121+
SYS_shmat
122+
SYS_shmctl
123+
SYS_shmdt
124+
SYS_shmget
125+
SYS_sync_file_range
126+
termios2
127+
TIOCCBRK
128+
TIOCGRS485
129+
TIOCSBRK
130+
TIOCSRS485
131+
XCASE
132+
max_align_t
133+
mcontext_t
134+
ucontext_t
135+
user_regs_struct
136+
user_fp_struct

src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ s! {
1717

1818
#[repr(align(16))]
1919
pub struct mcontext_t {
20-
pub sc_pc: ::c_ulonglong,
21-
pub sc_regs: [::c_ulonglong; 32],
22-
pub sc_flags: ::c_ulong,
23-
pub sc_extcontext: [u64; 0],
20+
pub __pc: ::c_ulonglong,
21+
pub __gregs: [::c_ulonglong; 32],
22+
pub __flags: ::c_uint,
23+
pub __extcontext: [::c_ulonglong; 0],
2424
}
2525

2626
#[repr(align(8))]

src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs

+22-1
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,21 @@ s! {
189189
__unused4: ::c_ulong,
190190
__unused5: ::c_ulong
191191
}
192+
193+
pub struct user_regs_struct {
194+
pub regs: [u64; 32],
195+
pub orig_a0: u64,
196+
pub csr_era: u64,
197+
pub csr_badv: u64,
198+
pub reserved: [u64; 10],
199+
200+
}
201+
202+
pub struct user_fp_struct {
203+
pub fpr: [u64; 32],
204+
pub fcc: u64,
205+
pub fcsr: u32,
206+
}
192207
}
193208

194209
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
@@ -549,7 +564,7 @@ pub const SYS_landlock_add_rule: ::c_long = 445;
549564
pub const SYS_landlock_restrict_self: ::c_long = 446;
550565
pub const SYS_process_mrelease: ::c_long = 448;
551566
pub const SYS_futex_waitv: ::c_long = 449;
552-
//pub const SYS_set_mempolicy_home_node: ::c_long = 450;
567+
pub const SYS_set_mempolicy_home_node: ::c_long = 450;
553568

554569
pub const POSIX_FADV_DONTNEED: ::c_int = 4;
555570
pub const POSIX_FADV_NOREUSE: ::c_int = 5;
@@ -684,6 +699,8 @@ pub const ENOTRECOVERABLE: ::c_int = 131;
684699
pub const ERFKILL: ::c_int = 132;
685700
pub const EHWPOISON: ::c_int = 133;
686701

702+
pub const MADV_SOFT_OFFLINE: ::c_int = 101;
703+
687704
pub const MAP_NORESERVE: ::c_int = 0x4000;
688705
pub const MAP_ANONYMOUS: ::c_int = 0x0020;
689706
pub const MAP_ANON: ::c_int = 0x0020;
@@ -695,6 +712,7 @@ pub const MAP_POPULATE: ::c_int = 0x8000;
695712
pub const MAP_NONBLOCK: ::c_int = 0x10000;
696713
pub const MAP_STACK: ::c_int = 0x20000;
697714
pub const MAP_HUGETLB: ::c_int = 0x40000;
715+
pub const MAP_SYNC: ::c_int = 0x080000;
698716
pub const MCL_CURRENT: ::c_int = 0x0001;
699717
pub const MCL_FUTURE: ::c_int = 0x0002;
700718
pub const MCL_ONFAULT: ::c_int = 0x0004;
@@ -746,6 +764,8 @@ pub const PTRACE_GETFPXREGS: ::c_uint = 18;
746764
pub const PTRACE_SETFPXREGS: ::c_uint = 19;
747765
pub const PTRACE_GETREGS: ::c_uint = 12;
748766
pub const PTRACE_SETREGS: ::c_uint = 13;
767+
pub const PTRACE_SYSEMU: ::c_uint = 31;
768+
pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32;
749769

750770
pub const RTLD_DEEPBIND: ::c_int = 0x8;
751771
pub const RTLD_GLOBAL: ::c_int = 0x100;
@@ -846,6 +866,7 @@ pub const ECHOPRT: ::tcflag_t = 0x00000400;
846866
pub const ECHOCTL: ::tcflag_t = 0x00000200;
847867
pub const ISIG: ::tcflag_t = 0x00000001;
848868
pub const ICANON: ::tcflag_t = 0x00000002;
869+
pub const XCASE: ::tcflag_t = 0x00000004;
849870
pub const PENDIN: ::tcflag_t = 0x00004000;
850871
pub const NOFLSH: ::tcflag_t = 0x00000080;
851872

0 commit comments

Comments
 (0)