mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 22:37:49 +00:00
Add Frame::start_address
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
use memory::Frame;
|
use memory::Frame;
|
||||||
|
use memory::paging::PhysicalAddress;
|
||||||
|
|
||||||
pub struct Entry(u64);
|
pub struct Entry(u64);
|
||||||
|
|
||||||
@@ -24,8 +25,8 @@ impl Entry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn set(&mut self, frame: Frame, flags: EntryFlags) {
|
pub fn set(&mut self, frame: Frame, flags: EntryFlags) {
|
||||||
let frame_addr = (frame.number << 12) & 0x000fffff_fffff000;
|
assert!(frame.start_address() & !0x000fffff_fffff000 == 0);
|
||||||
self.0 = (frame_addr as u64) | flags.bits();
|
self.0 = (frame.start_address() as u64) | flags.bits();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,3 +44,9 @@ bitflags! {
|
|||||||
const NO_EXECUTE = 1 << 63,
|
const NO_EXECUTE = 1 << 63,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Frame {
|
||||||
|
fn start_address(&self) -> PhysicalAddress {
|
||||||
|
self.number << 12
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user