#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; JoveError jove_errno; KernelObjectDirectory __jove_untyped_directory; KernelObjectTyped __jove_work_obj; 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); }