diff options
Diffstat (limited to 'kernel/features/load.c')
-rw-r--r-- | kernel/features/load.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/kernel/features/load.c b/kernel/features/load.c new file mode 100644 index 0000000..cc1a094 --- /dev/null +++ b/kernel/features/load.c @@ -0,0 +1,19 @@ +// MIT License, Copyright (c) 2020 Marvin Borner + +#include <def.h> +#include <fs.h> +#include <load.h> +#include <mem.h> +#include <print.h> +#include <proc.h> + +void bin_load(char *path, struct proc *proc) +{ + char *data = read_file(path); + u32 stack = (u32)malloc(0x1000) + 0x1000; + + proc->regs.ebp = (u32)stack; + proc->regs.esp = (u32)stack; + proc->regs.useresp = (u32)stack; + proc->regs.eip = (u32)data; +} |