diff options
author | bors <bors@rust-lang.org> | 2023-01-28 02:45:30 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2023-01-28 02:45:30 +0000 |
commit | 62897a7f23444a68eec7267c00b05342844c64e4 (patch) | |
tree | 049011719e6ee017a35f587a0a31395a6bdc4a15 /src/unix/linux_like/linux | |
parent | f4d5a669c44fa302cdf7c047ae1923c0f19b861e (diff) | |
parent | d36bf06698f4407f7d735dd8dbe00dceffa3f12a (diff) | |
download | rust-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.rs | 21 |
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; |