[sq] add Page caps implementations
This commit is contained in:
parent
abc84ec6aa
commit
8d8a1c819a
|
@ -35,3 +35,21 @@ capdef! { PageDirectory }
|
||||||
//=====================
|
//=====================
|
||||||
// Cap implementation
|
// 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
|
// 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
|
// 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!()
|
todo!()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<PhysAddr> for PageGlobalDirectory {}
|
||||||
|
|
Loading…
Reference in New Issue