1use kernel_info::boot::{BootPixelFormat, KernelBootInfo};
4use kernel_qemu::qemu_trace;
5
6pub fn trace_boot_info(boot_info: &KernelBootInfo) {
7    qemu_trace!("Boot Info in UEFI Loader:\n");
8    qemu_trace!(
9        "   BI ptr = {:018x}",
10        core::ptr::from_ref(boot_info) as usize
11    );
12    qemu_trace!("\n");
13    qemu_trace!(" MMAP ptr = {:018x}", boot_info.mmap.mmap_ptr);
14    qemu_trace!(", MMAP len = {}", boot_info.mmap.mmap_len);
15    qemu_trace!(", MMAP desc size = {}", boot_info.mmap.mmap_desc_size);
16    qemu_trace!(
17        ", MMAP desc version = {}",
18        usize::try_from(boot_info.mmap.mmap_desc_version).unwrap_or_default()
19    );
20    qemu_trace!(
21        ", rsdp addr = {}",
22        usize::try_from(boot_info.rsdp_addr).unwrap_or_default()
23    );
24    qemu_trace!("\n");
25    qemu_trace!("   FB ptr = {:018x}", boot_info.fb.framebuffer_ptr);
26    qemu_trace!(", FB size = {}", boot_info.fb.framebuffer_size);
27    qemu_trace!(", FB width = {}", boot_info.fb.framebuffer_width);
28    qemu_trace!(", FB height = {}", boot_info.fb.framebuffer_height);
29    qemu_trace!(", FB stride = {}", boot_info.fb.framebuffer_stride);
30    qemu_trace!(", FB format = ");
31    match boot_info.fb.framebuffer_format {
32        BootPixelFormat::Rgb => qemu_trace!("RGB"),
33        BootPixelFormat::Bgr => qemu_trace!("BGR"),
34        BootPixelFormat::Bitmask => qemu_trace!("Bitmask"),
35        BootPixelFormat::BltOnly => qemu_trace!("BltOnly"),
36    }
37    qemu_trace!("\n");
38}