...
This commit is contained in:
58
src/multiboot.h
Normal file
58
src/multiboot.h
Normal file
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct multiboot_info
|
||||
{
|
||||
uint32_t flags; // required
|
||||
|
||||
// Available if flags[0] is set
|
||||
uint32_t mem_lower;
|
||||
uint32_t mem_upper;
|
||||
|
||||
// Available if flags[1] is set
|
||||
uint32_t boot_device;
|
||||
|
||||
// Available if flags[2] is set
|
||||
uint32_t cmdline;
|
||||
|
||||
// Available if flags[3] is set
|
||||
uint32_t mods_count;
|
||||
uint32_t mods_addr;
|
||||
|
||||
// Available if flags[4] or flags[5] is set
|
||||
uint8_t syms[16]; // 28 - 40 bytes, exact layout may differ depending on a.out or ELF
|
||||
|
||||
// Available if flags[6] is set
|
||||
uint32_t mmap_length;
|
||||
uint32_t mmap_addr;
|
||||
|
||||
// Available if flags[7] is set
|
||||
uint32_t drives_length;
|
||||
uint32_t drives_addr;
|
||||
|
||||
// Available if flags[8] is set
|
||||
uint32_t config_table;
|
||||
|
||||
// Available if flags[9] is set
|
||||
uint32_t boot_loader_name;
|
||||
|
||||
// Available if flags[10] is set
|
||||
uint32_t apm_table;
|
||||
|
||||
// Available if flags[11] is set
|
||||
uint32_t vbe_control_info;
|
||||
uint32_t vbe_mode_info;
|
||||
uint16_t vbe_mode;
|
||||
uint16_t vbe_interface_seg;
|
||||
uint16_t vbe_interface_off;
|
||||
uint16_t vbe_interface_len;
|
||||
|
||||
// Available if flags[12] is set
|
||||
uint64_t framebuffer_addr; // 64-bit for large memory addresses
|
||||
uint32_t framebuffer_pitch;
|
||||
uint32_t framebuffer_width;
|
||||
uint32_t framebuffer_height;
|
||||
uint8_t framebuffer_bpp;
|
||||
uint8_t framebuffer_type;
|
||||
uint8_t color_info[6]; // 110-115 bytes
|
||||
} __attribute__((packed)) multiboot_info_t;
|
||||
Reference in New Issue
Block a user