[sq] add Page caps implementations
This commit is contained in:
parent
abc84ec6aa
commit
8d8a1c819a
|
@ -35,3 +35,21 @@ capdef! { PageDirectory }
|
|||
//=====================
|
||||
// Cap implementation
|
||||
//=====================
|
||||
|
||||
impl PageDirectoryCapability {
|
||||
pub(crate) fn base_address() -> PhysAddr {
|
||||
PhysAddr::new(self.0.read(PageDirectoryCap::BasePtr))
|
||||
}
|
||||
|
||||
pub(crate) fn is_mapped() -> bool {
|
||||
self.0.read(PageDirectoryCap::IsMapped) == 1
|
||||
}
|
||||
|
||||
pub(crate) fn mapped_address() -> VirtAddr {
|
||||
VirtAddr::new(self.0.read(PageDirectoryCap::MappedAddress))
|
||||
}
|
||||
|
||||
pub(crate) fn mapped_asid() -> ASID {
|
||||
self.0.read(PageDirectoryCap::MappedASID)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,3 +34,21 @@ capdef! { PageGlobalDirectory }
|
|||
//=====================
|
||||
// Cap implementation
|
||||
//=====================
|
||||
|
||||
impl PageGlobalDirectoryCapability {
|
||||
pub(crate) fn base_address() -> PhysAddr {
|
||||
PhysAddr::new(self.0.read(PageGlobalDirectoryCap::BasePtr))
|
||||
}
|
||||
|
||||
pub(crate) fn is_mapped() -> bool {
|
||||
self.0.read(PageGlobalDirectoryCap::IsMapped) == 1
|
||||
}
|
||||
|
||||
pub(crate) fn mapped_address() -> VirtAddr {
|
||||
VirtAddr::new(self.0.read(PageGlobalDirectoryCap::MappedAddress))
|
||||
}
|
||||
|
||||
pub(crate) fn mapped_asid() -> ASID {
|
||||
self.0.read(PageGlobalDirectoryCap::MappedASID)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,3 +35,21 @@ capdef! { PageTable }
|
|||
//=====================
|
||||
// Cap implementation
|
||||
//=====================
|
||||
|
||||
impl PageTableCapability {
|
||||
pub(crate) fn base_address() -> PhysAddr {
|
||||
PhysAddr::new(self.0.read(PageTableCap::BasePtr))
|
||||
}
|
||||
|
||||
pub(crate) fn is_mapped() -> bool {
|
||||
self.0.read(PageTableCap::IsMapped) == 1
|
||||
}
|
||||
|
||||
pub(crate) fn mapped_address() -> VirtAddr {
|
||||
VirtAddr::new(self.0.read(PageTableCap::MappedAddress))
|
||||
}
|
||||
|
||||
pub(crate) fn mapped_asid() -> ASID {
|
||||
self.0.read(PageTableCap::MappedASID)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,3 +26,5 @@ impl PageCacheManagement for PageGlobalDirectory {
|
|||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
impl From<PhysAddr> for PageGlobalDirectory {}
|
||||
|
|
Loading…
Reference in New Issue