#[repr(C, packed)]
#[derive(Debug, Clone, Copy)]
pub struct VBEInfo {
pub mode_attributes: u16,
pub win_a_attributes: u8,
pub win_b_attributes: u8,
pub win_granularity: u16,
pub win_size: u16,
pub win_a_segment: u16,
pub win_b_segment: u16,
pub win_func_ptr: u32,
pub bytes_per_scan_line: u16,
pub x_resolution: u16,
pub y_resolution: u16,
pub x_char_size: u8,
pub y_char_size: u8,
pub number_of_planes: u8,
pub bits_per_pixel: u8,
pub number_of_banks: u8,
pub memory_model: u8,
pub bank_size: u8,
pub number_of_image_pages: u8,
pub _reserved1: u8,
pub red_mask_size: u8,
pub red_field_position: u8,
pub green_mask_size: u8,
pub green_field_position: u8,
pub blue_mask_size: u8,
pub blue_field_position: u8,
pub rsvd_mask_size: u8,
pub rsvd_field_position: u8,
pub direct_color_mode_info: u8,
pub phys_base_ptr: u32,
pub off_screen_mem_offset: u32,
pub off_screen_mem_size: u16,
pub _reserved2: [u8; 206],
}
impl VBEInfo {
pub fn load(addr: u32) -> &'static Self {
unsafe { &*(addr as *const Self) }
}
}