From c92305221770bb1316d026c200d569ca4e930e42 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Thu, 28 Aug 2025 16:20:17 -0400 Subject: merge libc files, new init methods for libjove --- lib/libjove/libjove.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'lib/libjove/libjove.c') diff --git a/lib/libjove/libjove.c b/lib/libjove/libjove.c index 6b40a54..ef5d7e6 100644 --- a/lib/libjove/libjove.c +++ b/lib/libjove/libjove.c @@ -1,6 +1,7 @@ #include "include/jove.h" #include "include/object-untyped.h" #include "error.h" +#include "heap/heap.h" uintmax_t __jove_syscall_obj = 0; void *__jove_syscall_ptr = 0; @@ -15,3 +16,36 @@ uintptr_t __program_end; void *(*_jove_alloc)(size_t) = NULL; void (*_jove_free)(void*) = NULL; void *(*_jove_realloc)(void*, size_t) = NULL; + +extern void __libjove_arch_init(void); + +void +__libjove_init(uint8_t syscall_obj, void *syscall_ptr) +{ + __rootdir = (KernelObjectDirectory) { + .typed = { + .type = KO_OBJECT_DIRECTORY, + .membi = 0, + .parent = NULL + }, + .firstfree = -1, + .lastmemb = -1 + }; + + __jove_syscall_obj = syscall_obj; + __jove_syscall_ptr = syscall_ptr; + + __jove_work_obj = (KernelObjectTyped) { + .membi = jove_objdir_lastmemb(&__rootdir), + .parent = &__rootdir, + .type = KO_NONE + }; + + __libjove_arch_init(); +} + +void +__libjove_init_untypeddir(uint8_t diri) +{ + _jove_alloc_objdir_inplace(&__jove_untyped_directory, &__rootdir, diri); +} -- cgit v1.2.1