Create a memory module with a Frame struct and FrameAllocator trait

master
Philipp Oppermann 8 years ago
parent 98d97703f4
commit 84c337e6f0

@ -11,6 +11,7 @@ extern crate multiboot2;
#[macro_use]
mod vga_buffer;
mod memory;
#[no_mangle]
pub extern fn rust_main(multiboot_information_address: usize) {

@ -0,0 +1,17 @@
pub const PAGE_SIZE: usize = 4096;
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
pub struct Frame {
number: usize,
}
impl Frame {
fn containing_address(address: usize) -> Frame {
Frame{ number: address / PAGE_SIZE }
}
}
pub trait FrameAllocator {
fn allocate_frame(&mut self) -> Option<Frame>;
fn deallocate_frame(&mut self, frame: Frame);
}
Loading…
Cancel
Save