aboutsummaryrefslogtreecommitdiff
path: root/src/boot/multiboot2.hpp
blob: f86c8940f69dbddc9e14ac9cddcda2d23bd707d1 (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
27
28
29
30
31
32
33
34
#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;
    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);
char mb2_find_mem(u32* mb2_info_addr, MEM_INFO *mem);