diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-10-10 23:03:20 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-10-10 23:03:20 +0300 |
| commit | d2ff961a2a08229e1f2245e8dba9b2275016133c (patch) | |
| tree | cffab8f0586b05a059715b2fa9676b8310bd297e /include/apos | |
| parent | b30ee14270a44e48167934b9b3923b4280bdc855 (diff) | |
| download | kmi-d2ff961a2a08229e1f2245e8dba9b2275016133c.tar.gz kmi-d2ff961a2a08229e1f2245e8dba9b2275016133c.zip | |
Prepare proper jump to kernel
Diffstat (limited to 'include/apos')
| -rw-r--r-- | include/apos/attrs.h | 2 | ||||
| -rw-r--r-- | include/apos/init.h | 25 | ||||
| -rw-r--r-- | include/apos/main.h | 8 | ||||
| -rw-r--r-- | include/apos/mem.h | 5 |
4 files changed, 29 insertions, 11 deletions
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 <apos/attrs.h> +#include <apos/pmem.h> -#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 <apos/attrs.h> - -#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 */ |
