use { alloc::alloc::{alloc_zeroed, dealloc, handle_alloc_error}, core::{alloc::Layout, ptr::NonNull}, virtio_drivers::{BufferDirection, Hal, PhysAddr, PAGE_SIZE}, }; pub fn test() { let ps = virtio_drivers::PAGE_SIZE; } pub struct AbleosHal; unsafe impl Hal for AbleosHal { fn dma_alloc(pages: usize, _direction: BufferDirection) -> (PhysAddr, NonNull<u8>) { todo!(); } unsafe fn dma_dealloc(_paddr: PhysAddr, vaddr: NonNull<u8>, pages: usize) -> i32 { todo!() } unsafe fn mmio_phys_to_virt(paddr: PhysAddr, _size: usize) -> NonNull<u8> { NonNull::new(paddr as _).unwrap() } unsafe fn share(buffer: NonNull<[u8]>, _direction: BufferDirection) -> PhysAddr { todo!() } unsafe fn unshare(_paddr: PhysAddr, _buffer: NonNull<[u8]>, _direction: BufferDirection) { // Nothing to do, as the host already has access to all memory and we didn't copy the buffer // anywhere else. todo!() } } fn virt_to_phys(vaddr: usize) -> PhysAddr { vaddr }