summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/libk/list.h14
-rw-r--r--kernel/include/multiboot2.h22
2 files changed, 35 insertions, 1 deletions
diff --git a/kernel/include/libk/list.h b/kernel/include/libk/list.h
new file mode 100644
index 0000000..f6a97f8
--- /dev/null
+++ b/kernel/include/libk/list.h
@@ -0,0 +1,14 @@
+#ifndef LIST_H
+#define LIST_H
+
+struct list_t {
+ struct list_t* next;
+ void* data;
+};
+typedef struct list_t list_t;
+
+void add_to_list_head(list_t** ptr, void* data);
+void add_to_list_tail(list_t** ptr, void* data);
+void free_list(list_t** ptr);
+
+#endif
diff --git a/kernel/include/multiboot2.h b/kernel/include/multiboot2.h
index e7935a6..6d4a86f 100644
--- a/kernel/include/multiboot2.h
+++ b/kernel/include/multiboot2.h
@@ -21,6 +21,23 @@ struct mb2_tag_fb {
} __attribute__((packed, aligned(8)));
typedef struct mb2_tag_fb mb2_tag_fb;
+struct mb2_tag_mmap {
+ uint32_t type;
+ uint32_t size;
+ uint32_t entry_size;
+ uint32_t entry_version;
+};
+typedef struct mb2_tag_mmap mb2_tag_mmap;
+
+struct mb2_tag_mmap_entry {
+ uint64_t base_addr;
+ uint64_t length;
+ uint32_t type;
+ uint32_t reserved;
+};
+typedef struct mb2_tag_mmap_entry mb2_tag_mmap_entry;
+
+
// multiboot2 magic check
#define MB2_MAGIC 0x36D76289
@@ -35,6 +52,9 @@ typedef struct mb2_tag_fb mb2_tag_fb;
#define MB2_TAG_VBE 7
#define MB2_TAG_FB 8
-void init_fb(mb2_tag_header* multiboot_bootinfo, uint32_t multiboot_magic);
+
+void read_mb2(mb2_tag_header* multiboot_bootinfo, uint32_t multiboot_magic);
+void init_fb(mb2_tag_fb* tag_fb);
+void init_mmap(mb2_tag_mmap* tag_mmap);
#endif