GitOS
Operating system exercise
Loading...
Searching...
No Matches
Multiboot.hpp
Go to the documentation of this file.
1//
2// Created by Pawel Reich on 2/15/25.
3//
5#pragma once
6#include <stdint-gcc.h>
7#include "../Bootloader.hpp"
8
9#include "multiboot.h"
10
11
12class Multiboot : public Bootloader {
13public:
14 void init(uint32_t magic, void* info_ptr) override;
15 const char* get_cmdline() const override;
16 const char* get_bootloader_name() const override;
17 uint64_t get_heap_base_address() const override;
18 uint64_t get_heap_size() const override;
28
29
30 uint64_t m_base_address = 0;
31 uint64_t m_len = 0;
32
33private:
34 __attribute__((section(".multiboot2"), used)) static const multiboot2_header m_mb2_header;
35
36 char* m_cmdline;
37 char* m_bootloader_name;
38 bool m_is_multiboot;
39
40 void parse_tags(multiboot_tag* tag);
41
42};
uint32_t magic
Definition Multiboot.hpp:0
Definition Bootloader.hpp:11
Definition Multiboot.hpp:12
const char * get_bootloader_name() const override
Definition Multiboot.cpp:59
void init(uint32_t magic, void *info_ptr) override
Definition Multiboot.cpp:27
const char * get_cmdline() const override
Definition Multiboot.cpp:55
uint64_t get_heap_base_address() const override
Definition Multiboot.cpp:47
bool is_multiboot() const
Definition Multiboot.cpp:63
uint64_t get_heap_size() const override
Definition Multiboot.cpp:51
uint64_t m_len
Definition Multiboot.hpp:31
uint64_t m_base_address
Definition Multiboot.hpp:30
struct fat_directory __attribute__
Definition Multiboot.hpp:21
uint32_t header_length
Definition Multiboot.hpp:24
uint32_t magic
Definition Multiboot.hpp:22
uint32_t architecture
Definition Multiboot.hpp:23
multiboot_header_tag_framebuffer framebuffer_tag
Definition Multiboot.hpp:26
uint32_t checksum
Definition Multiboot.hpp:25
Definition multiboot.h:155
Definition multiboot.h:204