summaryrefslogtreecommitdiffstats
path: root/boot/boot.h
diff options
context:
space:
mode:
Diffstat (limited to 'boot/boot.h')
-rw-r--r--boot/boot.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/boot/boot.h b/boot/boot.h
new file mode 100644
index 0000000..d7571d8
--- /dev/null
+++ b/boot/boot.h
@@ -0,0 +1,40 @@
+#ifndef JOVE_BOOT_H
+#define JOVE_BOOT_H 1
+
+#include <stdint.h>
+#include <stddef.h>
+#include <stdbool.h>
+
+struct MemoryMapEntry {
+ uintptr_t base;
+ size_t length;
+ bool usable;
+};
+
+#define MEMORY_MAP_MAX_ENTRIES 64
+struct MemoryMap {
+ size_t count;
+ struct MemoryMapEntry entries[MEMORY_MAP_MAX_ENTRIES];
+};
+
+#define BOOT_MODULE_MAX_ENTRIES 4
+struct BootModule {
+ char *path;
+ char *cmdline;
+ size_t size;
+ uintptr_t addr;
+};
+
+#define KERNEL_INITIAL_STACK_WIDTH (0x1000 * 4)
+extern void *boot_kernel_initial_stack_base;
+extern uintptr_t boot_kernel_physical_address;
+extern const char *boot_kernel_cmdline;
+
+extern struct MemoryMap boot_memorymap;
+
+extern struct BootModule boot_modules[BOOT_MODULE_MAX_ENTRIES];
+extern size_t boot_module_count;
+
+#define boot_kernel_virtual_base 0xFFFFFFFF80000000ULL
+
+#endif