Skip to content

Commit ddcd68f

Browse files
authored
Merge pull request #400 from TornaxO7/page_table_level_next_higher_level
Adding next_higher_level to PageLevelIndex
2 parents 922c557 + a569dd8 commit ddcd68f

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/structures/paging/page_table.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,16 @@ impl PageTableLevel {
389389
}
390390
}
391391

392+
/// Returns the next higher level or `None` for level 4
393+
pub const fn next_higher_level(self) -> Option<Self> {
394+
match self {
395+
PageTableLevel::Four => None,
396+
PageTableLevel::Three => Some(PageTableLevel::Four),
397+
PageTableLevel::Two => Some(PageTableLevel::Three),
398+
PageTableLevel::One => Some(PageTableLevel::Two),
399+
}
400+
}
401+
392402
/// Returns the alignment for the address space described by a table of this level.
393403
pub const fn table_address_space_alignment(self) -> u64 {
394404
1u64 << (self as u8 * 9 + 12)

0 commit comments

Comments
 (0)