aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-12-20 12:28:30 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-12-20 12:37:55 +0200
commitdc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa (patch)
treeee12863bb4aab536810bbe13638bf21317b37658 /common
parent98255910aa82c27d04ba79704086eca2310b3075 (diff)
downloadkmi-dc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa.tar.gz
kmi-dc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa.zip
Added init back
Diffstat (limited to 'common')
-rw-r--r--common/elf.c2
-rw-r--r--common/initrd.c2
-rw-r--r--common/vmem.c5
3 files changed, 5 insertions, 4 deletions
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;