diff options
Diffstat (limited to 'kernel/include')
| -rw-r--r-- | kernel/include/libk/list.h | 14 | ||||
| -rw-r--r-- | kernel/include/multiboot2.h | 22 |
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 |
