aboutsummaryrefslogtreecommitdiff
path: root/src/boot/multiboot2.hpp
blob: d36d593ac79162b80aedf62952d27dc0a4286e28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once

#include "core/types.hpp"
#include "boucane.hpp"

typedef struct TAG_HEADER {
    u32 type;
    u32 size;
}__attribute__((packed)) TAG_HEADER;

typedef struct FRAMEBUFFER {
    TAG_HEADER header;
    u64 addr;
    u32 pitch;
    u32 width;
    u32 height;
    u8 bpp;
    u8 type;
    u64 color_info_addr;
} __attribute__((packed)) FRAMEBUFFER;

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);