summaryrefslogtreecommitdiffstats
path: root/boot/boot.h
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2024-03-11 21:30:31 -0400
committerJon Santmyer <jon@jonsantmyer.com>2024-03-11 21:30:31 -0400
commitd1ff7bcc91886626dc9060ec5fb67ee102ab7c1d (patch)
tree8f0b5cd8aad31089131785dc6e37b659490f9955 /boot/boot.h
downloadjove-kernel-d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d.tar.gz
jove-kernel-d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d.tar.bz2
jove-kernel-d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d.zip
usermode capable kernel with logging syscall
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