summaryrefslogtreecommitdiff
path: root/include/multiboot2.h
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksav013@gmail.com>2022-08-03 21:28:15 +0200
committerAleksa Vuckovic <aleksav013@gmail.com>2022-08-03 21:28:15 +0200
commitd4349352a57eb00ce411b4c0542d3207357aecbe (patch)
tree5bf1883ce59cfefedb2e8873e203b381cb7573f3 /include/multiboot2.h
parentc0a8113ba0b7cd6984cc685ec63f79bef3bc9899 (diff)
drawing lines to fb
Diffstat (limited to 'include/multiboot2.h')
-rw-r--r--include/multiboot2.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/multiboot2.h b/include/multiboot2.h
new file mode 100644
index 0000000..f22fd8e
--- /dev/null
+++ b/include/multiboot2.h
@@ -0,0 +1,40 @@
+#ifndef MULTIBOOT2_H
+#define MULTIBOOT2_H
+
+#include <stdint.h>
+
+struct mb2_tag_header {
+ uint32_t type;
+ uint32_t size;
+} __attribute__((packed, aligned(8)));
+typedef struct mb2_tag_header mb2_tag_header;
+
+struct mb2_tag_fb {
+ uint32_t type;
+ uint32_t size;
+ uint64_t framebuffer_addr;
+ uint32_t framebuffer_pitch;
+ uint32_t framebuffer_width;
+ uint32_t framebuffer_height;
+ uint8_t framebuffer_bpp;
+ uint8_t framebuffer_type;
+} __attribute__((packed, aligned(8)));
+typedef struct mb2_tag_fb mb2_tag_fb;
+
+// multiboot2 magic check
+#define MB2_MAGIC 0x36D76289
+
+// multiboot2 tag
+#define MB2_TAG_END 0
+#define MB2_TAG_CMDLINE 1
+#define MB2_TAG_BOOTLOADER 2
+#define MB2_TAG_MODULES 3
+#define MB2_TAG_MEM 4
+#define MB2_TAG_BIOS 5
+#define MB2_TAG_MMAP 6
+#define MB2_TAG_VBE 7
+#define MB2_TAG_FB 8
+
+void init_fb(mb2_tag_header* multiboot_bootinfo, uint32_t multiboot_magic);
+
+#endif