mirror of
https://github.com/Tom-on64/kern.git
synced 2026-11-03 18:22:22 +00:00
97 lines
1.8 KiB
C
97 lines
1.8 KiB
C
#ifndef _MULTIBOOT_H
|
|
#define _MULTIBOOT_H
|
|
|
|
#include "stdint.h"
|
|
|
|
#define __packed __attribute__ ((packed))
|
|
|
|
#define HEAD_MAGIC 0x1BADB002
|
|
#define BOOT_MAGIC 0x2BADB002
|
|
|
|
// Multiboot Header Flags
|
|
enum {
|
|
MBH_PAGE_ALIGN = (1<<0),
|
|
MBH_MEMORY_INFO = (1<<1),
|
|
MBH_GRAPH_INFO = (1<<2),
|
|
MBH_ADDR_FIELDS = (1<<16),
|
|
};
|
|
|
|
struct multiboot_header {
|
|
uint32_t magic;
|
|
uint32_t flags;
|
|
uint32_t checksum;
|
|
uint32_t header_addr;
|
|
uint32_t load_addr;
|
|
uint32_t load_end_addr;
|
|
uint32_t bss_end_addr;
|
|
uint32_t entry_addr;
|
|
uint32_t mode_type;
|
|
uint32_t width;
|
|
uint32_t height;
|
|
uint32_t depth;
|
|
} __packed;
|
|
|
|
// Multiboot Info Flags
|
|
enum {
|
|
MBI_MEMORY = (1<<0),
|
|
MBI_BOOT_DEV = (1<<1),
|
|
MBI_CMDLINE = (1<<2),
|
|
MBI_MODS = (1<<3),
|
|
MBI_SYMBOLS = (1<<4),
|
|
MBI_ELF_HEAD = (1<<5),
|
|
MBI_MEMMAP = (1<<6),
|
|
MBI_DRIVES = (1<<7),
|
|
MBI_CONF_TAB = (1<<8),
|
|
MBI_BOOTLD_NAME = (1<<9),
|
|
MBI_APM_TABLE = (1<<10),
|
|
MBI_VBE_TABLE = (1<<11),
|
|
MBI_FB_TABLE = (1<<12),
|
|
};
|
|
|
|
struct multiboot_info {
|
|
uint32_t flags;
|
|
uint32_t mem_lower;
|
|
uint32_t mem_upper;
|
|
uint32_t boot_device;
|
|
uint32_t cmdline;
|
|
uint32_t mods_count;
|
|
uint32_t mods_addr;
|
|
uint32_t syms[4];
|
|
uint32_t mmap_length;
|
|
uint32_t mmap_addr;
|
|
uint32_t drives_length;
|
|
uint32_t drives_addr;
|
|
uint32_t config_table;
|
|
uint32_t bootloader_name;
|
|
uint32_t apm_table;
|
|
uint32_t vbe_control_info;
|
|
uint32_t vbe_mode_info;
|
|
uint32_t vbe_mode;
|
|
uint32_t vbe_interface_seg;
|
|
uint32_t vbe_interface_off;
|
|
uint32_t vbe_interface_len;
|
|
uint32_t framebuffer_addr;
|
|
uint32_t framebuffer_pitch;
|
|
uint32_t framebuffer_width;
|
|
uint32_t framebuffer_height;
|
|
uint32_t framebuffer_bpp;
|
|
uint32_t framebuffer_type;
|
|
uint32_t color_info;
|
|
} __packed;
|
|
|
|
struct multiboot_module {
|
|
uint32_t start;
|
|
uint32_t end;
|
|
uint32_t cmdline;
|
|
uint32_t __reserved;
|
|
} __packed;
|
|
|
|
struct multiboot_memmap {
|
|
uint32_t size;
|
|
uint64_t base;
|
|
uint64_t len;
|
|
uint32_t type;
|
|
} __packed;
|
|
|
|
#endif
|