Virtual memory api
This commit is contained in:
parent
44288828a2
commit
a613309440
@ -4,6 +4,7 @@ mod general;
|
|||||||
mod pages;
|
mod pages;
|
||||||
mod stack;
|
mod stack;
|
||||||
mod typed;
|
mod typed;
|
||||||
|
pub mod virtual_memory;
|
||||||
|
|
||||||
pub fn panicOOM() -> ! {
|
pub fn panicOOM() -> ! {
|
||||||
panic!("Out of memory");
|
panic!("Out of memory");
|
||||||
|
|||||||
18
src/virtual_memory.rs
Normal file
18
src/virtual_memory.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
use std::ptr::{NonNull, null};
|
||||||
|
|
||||||
|
pub unsafe trait VirtualMemoryApi: Sized + Drop {
|
||||||
|
type Reservation: Reservation;
|
||||||
|
|
||||||
|
fn getPageSize(&self) -> usize;
|
||||||
|
|
||||||
|
fn reserveMemory(
|
||||||
|
&mut self,
|
||||||
|
extend: Option<&Self::Reservation>,
|
||||||
|
pagesCount: usize,
|
||||||
|
) -> Self::Reservation;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub unsafe trait Reservation: Sized + Ord + Drop {
|
||||||
|
fn commitPages(&mut self, indexOfFirst: usize, count: usize) -> *mut [u8];
|
||||||
|
fn decommitPages(&mut self, indexOfFirst: usize, count: usize);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user