#include "utils.h"
#include "errno.h"
#include "hal/cpu.h"
-#if defined(__i386__)
-#include "arch/x86/usermode.h"
-#endif
+#include "hal/usermode.h"
#include <stddef.h>
struct process* current_process = NULL;
}
static void fork_child_trampoline(void) {
-#if defined(__i386__)
if (!current_process || !current_process->has_user_regs) {
process_exit_notify(1);
schedule();
vmm_as_activate(current_process->addr_space);
}
- x86_enter_usermode_regs(¤t_process->user_regs);
-#else
- process_exit_notify(1);
- schedule();
- for (;;) hal_cpu_idle();
-#endif
+ hal_usermode_enter_regs(¤t_process->user_regs);
}
struct process* process_fork_create(uintptr_t child_as, const struct registers* child_regs) {