From dc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa Mon Sep 17 00:00:00 2001 From: Kimplul Date: Mon, 20 Dec 2021 12:28:30 +0200 Subject: Added init back --- common/elf.c | 2 +- common/initrd.c | 2 +- common/vmem.c | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'common') diff --git a/common/elf.c b/common/elf.c index 7531bd1..83411e9 100644 --- a/common/elf.c +++ b/common/elf.c @@ -5,5 +5,5 @@ vm_t bin_entry(vm_t bin) { struct elf_header *e = (struct elf_header *)bin; /* TODO: check that address points to a valid ELF executable */ - return (vm_t)e->e_entry; + return ((vm_t)e->e_entry) + bin; } diff --git a/common/initrd.c b/common/initrd.c index f625209..6dd698d 100644 --- a/common/initrd.c +++ b/common/initrd.c @@ -75,7 +75,7 @@ pm_t get_initrdbase(void *fdt) } static char init_n[] = "init"; -static size_t init_nlen = ARRAY_SIZE(init_n); +static size_t init_nlen = ARRAY_SIZE(init_n) - 1; /* ignore trailing NULL */ size_t get_init_size(void *fdt) { diff --git a/common/vmem.c b/common/vmem.c index 25a8617..6d2b7dc 100644 --- a/common/vmem.c +++ b/common/vmem.c @@ -101,10 +101,11 @@ static struct sp_mem *sp_used_insert_region(struct sp_reg_root *r, struct sp_mem return m; } -int sp_mem_init(struct sp_reg_root *r, size_t arena_size) +int sp_mem_init(struct sp_reg_root *r, vm_t start, size_t arena_size) { struct sp_mem *m = get_mem_node(); - m->end = arena_size; + m->start = start; + m->end = start + arena_size; sp_free_insert_region(r, m); return 0; -- cgit v1.3