From d2ff961a2a08229e1f2245e8dba9b2275016133c Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 10 Oct 2021 23:03:20 +0300 Subject: Prepare proper jump to kernel --- include/apos/attrs.h | 2 ++ include/apos/init.h | 25 ++++++++++++++++++++++--- include/apos/main.h | 8 -------- include/apos/mem.h | 5 +++++ 4 files changed, 29 insertions(+), 11 deletions(-) delete mode 100644 include/apos/main.h (limited to 'include') diff --git a/include/apos/attrs.h b/include/apos/attrs.h index ae936d9..469b7bd 100644 --- a/include/apos/attrs.h +++ b/include/apos/attrs.h @@ -7,4 +7,6 @@ #define __packed __attribute__((packed)) #define __weak __attribute__((weak)) +#define __main __section(".kernel.start") __noinline + #endif /* APOS_COMPILER_ATTRIBUTES_H */ diff --git a/include/apos/init.h b/include/apos/init.h index 1bf6a9e..1d687cb 100644 --- a/include/apos/init.h +++ b/include/apos/init.h @@ -1,9 +1,28 @@ #ifndef APOS_INIT_H #define APOS_INIT_H -#include +#include -#define __init -#define __initdata +struct init_data_t { + paddr_t init_base; + paddr_t init_top; + + paddr_t initrd_base; + paddr_t initrd_top; + + paddr_t fdt_base; + paddr_t fdt_top; + + paddr_t stack_base; + paddr_t stack_top; + + struct vm_branch_t *kernel_vm_base; + + /* + TODO: is this necessary? + paddr_t pmap_base; + paddr_t pmap_top; + */ +}; #endif /* APOS_INIT_H */ diff --git a/include/apos/main.h b/include/apos/main.h deleted file mode 100644 index 15fff73..0000000 --- a/include/apos/main.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef APOS_MAIN_H -#define APOS_MAIN_H - -#include - -#define __main __section(".kernel.start") __noinline - -#endif /* APOS_MAIN_H */ diff --git a/include/apos/mem.h b/include/apos/mem.h index 158ac5e..4846f5e 100644 --- a/include/apos/mem.h +++ b/include/apos/mem.h @@ -127,4 +127,9 @@ #define __o_container(idx) ((idx) / MM_OINFO_WIDTH) #define __o_bit(idx) ((idx) & (MM_OINFO_WIDTH - 1)) + +extern const size_t mm_shifts[10]; +extern const size_t mm_widths[10]; +extern const size_t mm_sizes[10]; + #endif /* APOS_MEM_H */ -- cgit v1.3