Nothing to see here, move along meow
1use lancer_user::syscall;
2
3#[derive(Debug)]
4pub struct DmaRegion {
5 pub vaddr: usize,
6 pub iova: u64,
7 #[allow(dead_code)]
8 pub page_count: u64,
9}
10
11pub fn alloc(pci_cap: u64, pages: u64, vaddr: u64) -> DmaRegion {
12 let ret = syscall::dma_alloc(pci_cap, pages, vaddr);
13 if ret < 0 {
14 lancer_user::show!(nvme, error, "dma_alloc failed");
15 syscall::exit();
16 }
17 DmaRegion {
18 vaddr: vaddr as usize,
19 iova: ret as u64,
20 page_count: pages,
21 }
22}