summaryrefslogtreecommitdiff
path: root/src/unix/linux_like/linux
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-01-28 02:45:30 +0000
committerbors <bors@rust-lang.org>2023-01-28 02:45:30 +0000
commit62897a7f23444a68eec7267c00b05342844c64e4 (patch)
tree049011719e6ee017a35f587a0a31395a6bdc4a15 /src/unix/linux_like/linux
parentf4d5a669c44fa302cdf7c047ae1923c0f19b861e (diff)
parentd36bf06698f4407f7d735dd8dbe00dceffa3f12a (diff)
downloadrust-libc-62897a7f23444a68eec7267c00b05342844c64e4.tar.gz
Auto merge of #3072 - Freax13:arm/user_regs, r=JohnTitor
add `user_regs` for linux on arm This struct is used for `PTRACE_GETREGS` & `PTRACE_SETREGS`. We mirror the name used in `glibc`. This struct is called `pt_regs` in the kernel. Instead of a `uregs` array, we use separate named fields. > - \[ ] Edit corresponding file(s) under `libc-test/semver` when you add/remove item(s) AFAICT there's no file for linux on arm (not aarch64). Am I missing something here?
Diffstat (limited to 'src/unix/linux_like/linux')
-rw-r--r--src/unix/linux_like/linux/gnu/b32/arm/mod.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
index e0ac0dfc34..ea905eb7ca 100644
--- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
@@ -191,6 +191,27 @@ s! {
pub arm_cpsr: ::c_ulong,
pub fault_address: ::c_ulong,
}
+
+ pub struct user_regs {
+ pub arm_r0: ::c_ulong,
+ pub arm_r1: ::c_ulong,
+ pub arm_r2: ::c_ulong,
+ pub arm_r3: ::c_ulong,
+ pub arm_r4: ::c_ulong,
+ pub arm_r5: ::c_ulong,
+ pub arm_r6: ::c_ulong,
+ pub arm_r7: ::c_ulong,
+ pub arm_r8: ::c_ulong,
+ pub arm_r9: ::c_ulong,
+ pub arm_r10: ::c_ulong,
+ pub arm_fp: ::c_ulong,
+ pub arm_ip: ::c_ulong,
+ pub arm_sp: ::c_ulong,
+ pub arm_lr: ::c_ulong,
+ pub arm_pc: ::c_ulong,
+ pub arm_cpsr: ::c_ulong,
+ pub arm_orig_r0: ::c_ulong,
+ }
}
pub const VEOF: usize = 4;