107 lines
2.4 KiB
PHP
107 lines
2.4 KiB
PHP
MULTIBOOT_HDR_MAGIC = 0x1BADB002
|
|
MULTIBOOT_MAGIC = 0x2BADB002
|
|
|
|
MULTIBOOT_HDR_ALIGN = 0x1
|
|
MULTIBOOT_HDR_MEMINFO = 0x2
|
|
MULTIBOOT_HDR_VIDEO = 0x4
|
|
|
|
struc MultibootHeader flags,addr,width,height,depth
|
|
{
|
|
.magic dd MULTIBOOT_HDR_MAGIC
|
|
.flags dd flags
|
|
.checksum dd -(MULTIBOOT_HDR_MAGIC + flags)
|
|
|
|
; address fields (we'll just skip them)
|
|
.header_addr dd addr
|
|
.load_addr dd 0x100000
|
|
.load_end_addr dd _edata - KBASE
|
|
.bss_end_addr dd _end - KBASE
|
|
.entry_addr dd _start
|
|
|
|
; Video mode
|
|
.mode_type dd 0x0
|
|
.width dd width
|
|
.height dd height
|
|
.depth dd depth
|
|
}
|
|
|
|
struc MultibootData
|
|
{
|
|
.flags dd ?
|
|
|
|
; if flags[0] is set
|
|
.mem_lower dd ?
|
|
.mem_upper dd ?
|
|
|
|
; if flags[1] is set
|
|
.boot_device dd ?
|
|
|
|
; if flags[2] is set
|
|
.cmdline dd ?
|
|
|
|
; if flags[3] is set
|
|
.mods_count dd ?
|
|
.mods_addr dd ?
|
|
|
|
; if flags[4] is set
|
|
.syms dd 4 dup ?
|
|
|
|
; if flags[6] is set
|
|
.mmap_length dd ?
|
|
.mmap_addr dd ?
|
|
|
|
; if flags[7] is set
|
|
.drives_length dd ?
|
|
.drives_addr dd ?
|
|
|
|
; if flags[8] is set
|
|
.config_table dd ?
|
|
|
|
; if flags[9] is set
|
|
.bootloader_name dd ?
|
|
|
|
; if flags[10] is set
|
|
.apm_table dd ?
|
|
|
|
; if flags[11] is set
|
|
.vbe_control_info dd ?
|
|
.vbe_mode_info dd ?
|
|
.vbe_mode dw ?
|
|
.vbe_if_seg dw ?
|
|
.vbe_if_off dw ?
|
|
.vbe_if_length dw ?
|
|
|
|
; if flags[12] is set
|
|
.fb_addr dq ?
|
|
.fb_pitch dd ?
|
|
.fb_width dd ?
|
|
.fb_height dd ?
|
|
.fb_bpp db ?
|
|
.fb_type db ?
|
|
.fb_misc dw 3 dup ?
|
|
}
|
|
|
|
MULTIBOOT_DATA_MEM = 0x0001
|
|
MULTIBOOT_DATA_BOOTDEV = 0x0002
|
|
MULTIBOOT_DATA_CMDLINE = 0x0004
|
|
MULTIBOOT_DATA_MODULES = 0x0008
|
|
MULTIBOOT_DATA_MMAP = 0x0040
|
|
MULTIBOOT_DATA_DRIVES = 0x0080
|
|
MULTIBOOT_DATA_BOOTLOADER_NAME = 0x0200
|
|
MULTIBOOT_DATA_VBE = 0x0800
|
|
MULTIBOOT_DATA_FB = 0x1000
|
|
|
|
struc MultibootMMap
|
|
{
|
|
.size dd ?
|
|
.addr dq ?
|
|
.length dq ?
|
|
.type dd ?
|
|
}
|
|
|
|
MULTIBOOT_MEMORY_AVAILABLE = 0x1
|
|
MULTIBOOT_MEMORY_RESERVED = 0x2
|
|
MULTIBOOT_MEMORY_ACPI = 0x3
|
|
MULTIBOOT_MEMORY_NVS = 0x4
|
|
MULTIBOOT_MEMORY_BADPARAM = 0x5
|