From cab725cdfb69669699c2dc80cb329622970531b2 Mon Sep 17 00:00:00 2001 From: Timon Kruiper Date: Wed, 25 Jan 2023 16:02:11 +0100 Subject: [PATCH] Kernel/aarch64: Implement set_return_reg and capture_syscall_params --- Kernel/Arch/aarch64/RegisterState.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Kernel/Arch/aarch64/RegisterState.h b/Kernel/Arch/aarch64/RegisterState.h index 6aa6e4452f..14b0fdaaed 100644 --- a/Kernel/Arch/aarch64/RegisterState.h +++ b/Kernel/Arch/aarch64/RegisterState.h @@ -40,6 +40,16 @@ struct RegisterState { { return ((spsr_el1 & 0b1111) == 0) ? ExecutionMode::User : ExecutionMode::Kernel; } + + void set_return_reg(FlatPtr value) { x[0] = value; } + void capture_syscall_params(FlatPtr& function, FlatPtr& arg1, FlatPtr& arg2, FlatPtr& arg3, FlatPtr& arg4) const + { + function = x[8]; + arg1 = x[1]; + arg2 = x[2]; + arg3 = x[3]; + arg4 = x[4]; + } }; inline void copy_kernel_registers_into_ptrace_registers(PtraceRegisters& ptrace_regs, RegisterState const& kernel_regs)