From d99d8b535963adbf8235dbb1579436bef54e9b21 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 23 Sep 2021 20:18:43 +0100 Subject: [PATCH] linux/android aarch64 add user_regs_struct. --- libc-test/build.rs | 1 + libc-test/semver/android-aarch64.txt | 1 + libc-test/semver/linux-aarch64.txt | 1 + src/unix/linux_like/android/b64/aarch64/mod.rs | 7 +++++++ src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 7 +++++++ src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 7 +++++++ 6 files changed, 24 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index c24986ff8d0d8..2e4128c77ede7 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1527,6 +1527,7 @@ fn test_android(target: &str) { "sys/ucontext.h", "sys/uio.h", "sys/un.h", + "sys/user.h", "sys/utsname.h", "sys/vfs.h", "sys/xattr.h", diff --git a/libc-test/semver/android-aarch64.txt b/libc-test/semver/android-aarch64.txt index 4e706c9db21e1..0036c2d743906 100644 --- a/libc-test/semver/android-aarch64.txt +++ b/libc-test/semver/android-aarch64.txt @@ -11,3 +11,4 @@ SYS_arch_specific_syscall SYS_syscalls SYS_fcntl __system_property_wait +user_regs_struct diff --git a/libc-test/semver/linux-aarch64.txt b/libc-test/semver/linux-aarch64.txt index cec47c02bd6c5..6170c8d2a6cdd 100644 --- a/libc-test/semver/linux-aarch64.txt +++ b/libc-test/semver/linux-aarch64.txt @@ -37,3 +37,4 @@ ip_mreqn max_align_t mcontext_t ucontext_t +user_regs_struct diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index aed9e74452ff8..0416267c2859f 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -48,6 +48,13 @@ s! { __unused4: ::c_uint, __unused5: ::c_uint, } + + pub struct user_regs_struct { + pub regs: [u64; 31], + pub sp: u64, + pub pc: u64, + pub pstate: u64, + } } pub const O_DIRECT: ::c_int = 0x10000; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 35fe306122014..957b9f17fd686 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -142,6 +142,13 @@ s! { __size: [usize; 8] } + pub struct user_regs_struct { + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + } + pub struct ipc_perm { pub __key: ::key_t, pub uid: ::uid_t, diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 73162c94ad9f3..c52f0d496a1e3 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -49,6 +49,13 @@ s! { __unused: [::c_uint; 2], } + pub struct user_regs_struct { + pub regs: [::c_ulonglong; 31], + pub sp: ::c_ulonglong, + pub pc: ::c_ulonglong, + pub pstate: ::c_ulonglong, + } + pub struct ipc_perm { pub __ipc_perm_key: ::key_t, pub uid: ::uid_t,