aboutsummaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2021-04-30 09:31:30 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2021-04-30 09:31:30 +0200
commit66f2ca62469eba4b46e1f19f54dde9476b08d956 (patch)
tree0a419a62a6af21c593e9f6b0d632b5953bc58721 /src/boot
parent717556178c2017e374ee1108e6b25a24507a1dde (diff)
Debug interrupts, allow to show bmp images
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/multiboot2.cc9
-rw-r--r--src/boot/multiboot2.hpp10
2 files changed, 18 insertions, 1 deletions
diff --git a/src/boot/multiboot2.cc b/src/boot/multiboot2.cc
index da247ad..0cc8a25 100644
--- a/src/boot/multiboot2.cc
+++ b/src/boot/multiboot2.cc
@@ -69,4 +69,13 @@ char mb2_find_framebuffer(u32* mb2_info_addr, FRAMEBUFFER *fb){
return 1;
}
return 0;
+}
+
+char mb2_find_mem(u32* mb2_info_addr, MEM_INFO *mem){
+ u32* addr=mb2_find_tag(mb2_info_addr,4);
+ if(addr){
+ memcpy(addr, mem, sizeof(MEM_INFO));
+ return 1;
+ }
+ return 0;
} \ No newline at end of file
diff --git a/src/boot/multiboot2.hpp b/src/boot/multiboot2.hpp
index f340269..f86c894 100644
--- a/src/boot/multiboot2.hpp
+++ b/src/boot/multiboot2.hpp
@@ -19,8 +19,16 @@ typedef struct FRAMEBUFFER {
u8 reserved;
} __attribute__((packed)) FRAMEBUFFER;
+typedef struct {
+ TAG_HEADER header;
+ u32 mem_lower;
+ u32 mem_upper;
+} __attribute__((packed)) MEM_INFO;
+
+
u32* mb2_find_tag(u32 *mb2_info_addr, char type);
char mb2_find_bootloader_name(u32* mb2_info_addr, char *return_name);
char mb2_find_new_rsdp(u32* mb2_info_addr, u64 *return_addr, u32 *return_size);
char mb2_find_old_rsdp(u32* mb2_info_addr, u64 *return_addr, u32 *return_size);
-char mb2_find_framebuffer(u32* mb2_info_addr, FRAMEBUFFER *fb); \ No newline at end of file
+char mb2_find_framebuffer(u32* mb2_info_addr, FRAMEBUFFER *fb);
+char mb2_find_mem(u32* mb2_info_addr, MEM_INFO *mem); \ No newline at end of file