#[repr(C)]pub struct HTMOSBootInformation64 {
pub magic: u64,
pub boot_mode: u64,
pub memory_map_addr: u64,
pub memory_map_size: u64,
pub memory_desc_size: u64,
pub framebuffer_addr: u64,
pub framebuffer_size: u64,
pub framebuffer_width: u32,
pub framebuffer_height: u32,
pub framebuffer_pitch: u32,
pub framebuffer_format: u32,
pub more_info: u64,
}Expand description
Boot Information required for successful boot of the HyperText Markup Operation System on 64-bit systems.
Fields§
§magic: u64“HTMLBOOT” - 0x48544D4C424F4F54
HTMOS is forced to panic at the very beginning if this value is not presented correctly.
boot_mode: u64Boot mode indicator
- 0 - BIOS
- 1 - UEFI
memory_map_addr: u64Address to the Memory Map.
- BIOS - HTMOS only has support for the E820 Memory Map entries.
- UEFI - The memory map will be given to you close to exiting boot services.
memory_map_size: u64Size of the Memory Map
memory_desc_size: u64Size of a Memory Description
framebuffer_addr: u64Base address for the Framebuffer
HTMOS does not have support for VGA text (0xB8000) or the VGA buffer (0xA0000).
framebuffer_size: u64Size of the Framebuffer (can be 0 for now, I will change it in the future to require a number > 0)
framebuffer_width: u32Number of pixels on a horizontal line
framebuffer_height: u32Number of pixels on a vertical line
framebuffer_pitch: u32Number of pixels per scan line
framebuffer_format: u32Pixel format (UEFI) or Bits Per Pixel (BIOS) of the Framebuffer
- BIOS - This is bbp (BITS per pixel); it should come straight from the information given when converting to the framebuffer.
- UEFI - As of right now, I’m only aware of UEFI values 0x0 and 0x1.
more_info: u64BIOS - Address to raw config tables (if 0, HTMOS will find it manually)
UEFI - Address to the System Table given at the UEFI entry point