1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:37:34 +00:00

Kernel/aarch64: Implement copying of kernel regs into ptrace regs

And also vice versa. Contributed by konrad, thanks for that.
This commit is contained in:
Timon Kruiper 2023-02-23 00:06:20 +01:00 committed by Idan Horowitz
parent 200e91cd7f
commit 36362b9679

View file

@ -56,16 +56,20 @@ static_assert(AssertSize<RegisterState, REGISTER_STATE_SIZE>());
inline void copy_kernel_registers_into_ptrace_registers(PtraceRegisters& ptrace_regs, RegisterState const& kernel_regs) inline void copy_kernel_registers_into_ptrace_registers(PtraceRegisters& ptrace_regs, RegisterState const& kernel_regs)
{ {
(void)ptrace_regs; for (auto i = 0; i < 31; i++)
(void)kernel_regs; ptrace_regs.x[i] = kernel_regs.x[i];
TODO_AARCH64();
ptrace_regs.sp = kernel_regs.userspace_sp();
ptrace_regs.pc = kernel_regs.ip();
} }
inline void copy_ptrace_registers_into_kernel_registers(RegisterState& kernel_regs, PtraceRegisters const& ptrace_regs) inline void copy_ptrace_registers_into_kernel_registers(RegisterState& kernel_regs, PtraceRegisters const& ptrace_regs)
{ {
(void)kernel_regs; for (auto i = 0; i < 31; i++)
(void)ptrace_regs; kernel_regs.x[i] = ptrace_regs.x[i];
TODO_AARCH64();
kernel_regs.set_userspace_sp(ptrace_regs.sp);
kernel_regs.set_ip(ptrace_regs.pc);
} }
struct DebugRegisterState { struct DebugRegisterState {