aboutsummaryrefslogtreecommitdiff
path: root/src/bits64/paging.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bits64/paging.rs')
-rw-r--r--src/bits64/paging.rs30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/bits64/paging.rs b/src/bits64/paging.rs
index f08442a..0fbbf28 100644
--- a/src/bits64/paging.rs
+++ b/src/bits64/paging.rs
@@ -17,7 +17,7 @@ macro_rules! check_flag {
/// A wrapper for a physical address.
#[repr(transparent)]
-#[derive(Copy, Clone, Debug, Eq, Ord, PartialEq, PartialOrd)]
+#[derive(Copy, Clone, Eq, Ord, PartialEq, PartialOrd)]
pub struct PAddr(pub u64);
impl PAddr {
@@ -185,6 +185,12 @@ impl fmt::Display for PAddr {
}
}
+impl fmt::Debug for PAddr {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ self.0.fmt(f)
+ }
+}
+
impl fmt::LowerHex for PAddr {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
self.0.fmt(f)
@@ -203,9 +209,16 @@ impl fmt::UpperHex for PAddr {
}
}
+impl fmt::Pointer for PAddr {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ use core::fmt::LowerHex;
+ self.0.fmt(f)
+ }
+}
+
/// A wrapper for a virtual address.
#[repr(transparent)]
-#[derive(Copy, Clone, Debug, Eq, Ord, PartialEq, PartialOrd)]
+#[derive(Copy, Clone, Eq, Ord, PartialEq, PartialOrd)]
pub struct VAddr(pub u64);
impl VAddr {
@@ -404,6 +417,12 @@ impl fmt::Display for VAddr {
}
}
+impl fmt::Debug for VAddr {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ self.0.fmt(f)
+ }
+}
+
impl fmt::LowerHex for VAddr {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
self.0.fmt(f)
@@ -422,6 +441,13 @@ impl fmt::UpperHex for VAddr {
}
}
+impl fmt::Pointer for VAddr {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ use core::fmt::LowerHex;
+ self.0.fmt(f)
+ }
+}
+
/// Log2 of base page size (12 bits).
pub const BASE_PAGE_SHIFT: usize = 12;