From 582ed742216fd87bb3f4103d795dca19e3357ff4 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Sun, 30 Jun 2024 23:49:05 -0400 Subject: kernel/amd64: proc: Add setregs() This function will be useful for things like exec in order to setup registers which are machine dependent. Signed-off-by: Ian Moffett --- sys/arch/amd64/amd64/proc_machdep.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'sys/arch') diff --git a/sys/arch/amd64/amd64/proc_machdep.c b/sys/arch/amd64/amd64/proc_machdep.c index 7609379..ee38f21 100644 --- a/sys/arch/amd64/amd64/proc_machdep.c +++ b/sys/arch/amd64/amd64/proc_machdep.c @@ -38,6 +38,20 @@ #include #include +void +setregs(struct proc *td, struct exec_prog *prog, uintptr_t stack) +{ + struct trapframe *tfp = &td->tf; + struct auxval *auxvalp = &prog->auxval; + + memset(tfp, 0, sizeof(*tfp)); + tfp->rip = auxvalp->at_entry; + tfp->cs = USER_CS | 3; + tfp->ss = USER_DS | 3; + tfp->rsp = stack; + tfp->rflags = 0x202; +} + /* * MD thread init code * -- cgit v1.2.3