summaryrefslogtreecommitdiff
path: root/src/kernel/arch/generic.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/arch/generic.h')
-rw-r--r--src/kernel/arch/generic.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/kernel/arch/generic.h b/src/kernel/arch/generic.h
index a6a14c9..c9431eb 100644
--- a/src/kernel/arch/generic.h
+++ b/src/kernel/arch/generic.h
@@ -27,8 +27,7 @@ uint64_t uptime_ns(void);
void timer_schedule(Proc *p, uint64_t ns);
void timer_deschedule(Proc *p);
-// src/arch/i386/sysenter.s
-_Noreturn void sysexit(CpuRegs);
+_Noreturn void sysexit(UserRegs *, char sse[512]);
// all of those can allocate memory
Pagedir *pagedir_new(void);
@@ -52,3 +51,7 @@ int kprintf(const char *fmt, ...);
void *debug_caller(size_t depth);
void debug_stacktrace(void);
+
+/** "Applies" an UserRegs struct received from userland over another UserRegs
+ * without overriding privileged registers. */
+void regs_safecopy(UserRegs *, const UserRegs *);