crate::kernel_test!( fn rsdp_is_present() { let addr = crate::arch::boot::rsdp_address(); assert!(addr.is_some(), "bootloader did not provide RSDP address"); assert!(addr.unwrap() != 0, "RSDP address is zero"); } ); crate::kernel_test!( fn ioapic_has_redirections() { let max = crate::arch::ioapic::max_redirections(); assert!(max > 0, "IOAPIC max_redir is 0 (not initialized or broken)"); } ); crate::kernel_test!( fn com1_routed_to_expected_vector() { let com1_gsi = crate::arch::ioapic::Gsi::new(4); let vector = crate::arch::ioapic::read_redir_vector(com1_gsi); assert!( vector == Some(crate::arch::idt::COM1_VECTOR), "COM1 GSI {} vector is {:?}, expected {}", com1_gsi, vector, crate::arch::idt::COM1_VECTOR ); } );