use { core::{ptr::NonNull}, virtio_drivers::{BufferDirection, Hal, PhysAddr}, }; 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 }