Added x86_64 paging and ELF loader
This commit is contained in:
parent
36ae3ec0b7
commit
a39e30d17e
6 changed files with 309 additions and 4 deletions
|
@ -19,23 +19,34 @@
|
|||
|
||||
#include <vfs/vfs.h>
|
||||
#include <mm/mman.h>
|
||||
#include <mm/vmm.h>
|
||||
#include <loader/elf.h>
|
||||
#include <print.h>
|
||||
|
||||
void axboot_init()
|
||||
{
|
||||
if (!vfs_init("\\")) {
|
||||
debug("axboot_init(): Failed to mount boot drive! Halting...");
|
||||
debug("axboot_init(): Failed to mount boot drive! Halting...\n");
|
||||
// TODO: Halt
|
||||
while (1);
|
||||
}
|
||||
|
||||
// read kernel -> test read
|
||||
char *buffer = NULL;
|
||||
vfs_read("\\System\\axkrnl", &buffer);
|
||||
char *kbuf = NULL;
|
||||
vfs_read("\\System\\axkrnl", &kbuf);
|
||||
|
||||
// TODO: Do something with the kernel :p
|
||||
uintptr_t *pm = create_pagemap();
|
||||
if (!pm) {
|
||||
debug("axboot_init(): Failed to create kernel pagemap! Halting...\n");
|
||||
// TODO: Halt
|
||||
while (1);
|
||||
}
|
||||
|
||||
mem_free(buffer);
|
||||
void *kernel_entry = (void *)elf_load(kbuf, pm);
|
||||
(void)kernel_entry;
|
||||
|
||||
mem_free(kbuf);
|
||||
|
||||
while (1);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue