enum MemoryServiceResult { } @alignment(4096) type PageAlignedPointer = pointer; type RID = u64; @nonexhaustive @version 1.0 protocol MemoryService { @validator(page_count, Range(1..16)) fn map_pages(page_count: u8, ptr: Optional<PageAlignedPointer>) -> MemoryServiceResult; fn unmap_pages(ptr: PageAlignedPointer) -> MemoryServiceResult; // ptr must be page aligned and already mapped from map_pages fn map_hardware(hw: RID, ptr: PageAlignedPointer) -> MemoryServiceResult; fn unmap_hardware(hw: RID) -> MemoryServiceResult; }