blob: ef5d7e60b925f7f3253ef98aab7c9a5fc317eff9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#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);
}
|