diff options
Diffstat (limited to 'apps/init')
-rw-r--r-- | apps/init/arch/x86_64/paging.c | 8 | ||||
-rw-r--r-- | apps/init/main.c | 13 |
2 files changed, 10 insertions, 11 deletions
diff --git a/apps/init/arch/x86_64/paging.c b/apps/init/arch/x86_64/paging.c index 36fe950..1423bec 100644 --- a/apps/init/arch/x86_64/paging.c +++ b/apps/init/arch/x86_64/paging.c @@ -5,12 +5,10 @@ #include <jove/arch/x86_64/pager.h> #include <stdbool.h> +extern void __libjove_pager_init(uint8_t); + void pager_setup(void) { - _jove_alloc_pagemap_inplace(&__jove_pagemap, &__rootdir, INIT_OBJECT_PAGEMAP); - - size_t lastfree = jove_objdir_lastmemb(&__rootdir) + 1; - __jove_work_obj.membi = lastfree; - __jove_work_obj.parent = &__rootdir; + __libjove_pager_init(INIT_OBJECT_PAGEMAP); } diff --git a/apps/init/main.c b/apps/init/main.c index 6deb12c..b802bf4 100644 --- a/apps/init/main.c +++ b/apps/init/main.c @@ -14,18 +14,19 @@ spin_fail(void) for(;;); } -extern void __libc_heap_init(uintptr_t); +extern void __libjove_init(uint8_t, void*); +extern void __libjove_init_untypeddir(uint8_t); +extern void __libjove_heap_init(uintptr_t); void main(void *message_ptr) { - __jove_syscall_obj = INIT_OBJECT_MESSAGE; - __jove_syscall_ptr = message_ptr; - _jove_alloc_objdir_inplace(&__jove_untyped_directory, &__rootdir, INIT_OBJECT_UNTYPED_DIR); + __libjove_init(INIT_OBJECT_MESSAGE, message_ptr); + __libjove_init_untypeddir(INIT_OBJECT_UNTYPED_DIR); + pager_setup(); + __libjove_heap_init((uintptr_t)message_ptr + KO_MESSAGE_BYTES); jove_kprintf("Hello, Userland!\n"); - pager_setup(); - __libc_heap_init((uintptr_t)message_ptr + KO_MESSAGE_BYTES); for(;;); } |