//! Disposable queue-budget rejection followed by real block progress. 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/K1500-GET")?; let mut first = [0xa5u8; 512]; let mut second = [0xa5u8; 512]; disk.read(0, &mut first)?; if !disk.backpressure_rejected() { return Err("k1500-no-eagain"); } disk.read(1, &mut second)?; if first.iter().any(|&byte| byte != 0) || second.iter().any(|&byte| byte != 0) { return Err("k1500-read-data"); } disk.close(allocator)?; write_line("TURKOS/OS/K1500-BACKPRESSURE: QSIZE=4 FIRST=3 EXTRA=EAGAIN RETRY=COMPLETE GETS=2 DATA=ZERO OWNERS=0 FRAMES=RETURNED"); Ok(()) }