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