2026-06-13 20:43:09 -04:00
|
|
|
#ifndef KMULTIBOOT_H
|
|
|
|
|
#define KMULTIBOOT_H
|
|
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
2026-06-16 18:44:31 -05:00
|
|
|
typedef struct {
|
2026-06-13 20:43:09 -04:00
|
|
|
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 num;
|
|
|
|
|
uint32_t size;
|
|
|
|
|
uint32_t addr;
|
|
|
|
|
uint32_t shndx;
|
|
|
|
|
uint32_t mmap_length;
|
|
|
|
|
uint32_t mmap_addr;
|
2026-07-14 00:07:50 -05:00
|
|
|
uint32_t drives_length;
|
|
|
|
|
uint32_t drives_addr;
|
|
|
|
|
uint32_t config_table;
|
|
|
|
|
uint32_t boot_loader_name;
|
|
|
|
|
uint32_t apm_table;
|
|
|
|
|
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;
|
|
|
|
|
uint64_t framebuffer_addr;
|
|
|
|
|
uint32_t framebuffer_pitch;
|
|
|
|
|
uint32_t framebuffer_width;
|
|
|
|
|
uint32_t framebuffer_height;
|
|
|
|
|
uint8_t framebuffer_bpp;
|
|
|
|
|
uint8_t framebuffer_type;
|
|
|
|
|
uint8_t red_field_position;
|
|
|
|
|
uint8_t red_mask_size;
|
|
|
|
|
uint8_t green_field_position;
|
|
|
|
|
uint8_t green_mask_size;
|
|
|
|
|
uint8_t blue_field_position;
|
|
|
|
|
uint8_t blue_mask_size;
|
2026-06-16 18:44:31 -05:00
|
|
|
} __attribute__((packed)) multiboot_info;
|
2026-06-13 20:43:09 -04:00
|
|
|
|
2026-06-16 18:44:31 -05:00
|
|
|
typedef struct {
|
2026-06-13 20:43:09 -04:00
|
|
|
uint32_t size;
|
|
|
|
|
uint64_t addr;
|
|
|
|
|
uint64_t len;
|
|
|
|
|
uint32_t type;
|
2026-06-16 18:44:31 -05:00
|
|
|
} __attribute__((packed)) multiboot_mmap_entry;
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint32_t mod_start; // Physical start address of user.elf in memory
|
|
|
|
|
uint32_t mod_end; // Physical end address of user.elf
|
|
|
|
|
uint32_t cmdline; // Pointer to a string (e.g., "/boot/user.elf")
|
|
|
|
|
uint32_t pad;
|
2026-06-29 17:00:07 -05:00
|
|
|
} __attribute__((packed)) multiboot_module_t;
|
|
|
|
|
|
|
|
|
|
extern multiboot_module_t multiboot_module_info_table[32];
|
2026-06-13 20:43:09 -04:00
|
|
|
|
|
|
|
|
#endif
|