//! Disposable real block completions with exact DMA owner matching. use super::*; pub fn run(boot: &BootData, allocator: &mut memory::FrameAllocator) -> Result<(), &'static str> { let mut disk = virtio_ro_turkfs::RoDisk::open( boot, allocator, "TURKOS/OS/K1495-GET")?; let mut first = [0xa5u8; 512]; let mut second = [0xa5u8; 512]; disk.read(0, &mut first)?; disk.reject_duplicate_completion()?; disk.read(1, &mut second)?; if first.iter().any(|&byte| byte != 0) || second.iter().any(|&byte| byte != 0) { return Err("k1495-read-data"); } disk.close(allocator)?; write_line("TURKOS/OS/K1495-COMPLETIONS: FOREIGN=REJECTED REPLAY=REJECTED GETS=2 DATA=ZERO OWNERS=0 FRAMES=RETURNED"); Ok(()) }