Skip to content

Commit 6797d63

Browse files
author
Michael Jenny
committed
Provide a method to retrieve the null segment descriptor.
This may be useful when used to load into a data register in ring 0. e.g. ``` DS::set_reg(gdt.null_segment_descriptor()) ```
1 parent 8922d8d commit 6797d63

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/structures/gdt.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,14 @@ impl GlobalDescriptorTable {
9393
&self.table[..self.len]
9494
}
9595

96+
/// Get the GDT's null segment descriptor.
97+
///
98+
/// Can be used as a selector into a non-existent segment and assigned to segment registers.
99+
#[inline]
100+
pub fn null_segment_descriptor(&self) -> SegmentSelector {
101+
SegmentSelector::new(0u16, PrivilegeLevel::from_u16(0u16))
102+
}
103+
96104
/// Adds the given segment descriptor to the GDT, returning the segment selector.
97105
///
98106
/// Panics if the GDT doesn't have enough free entries to hold the Descriptor.

0 commit comments

Comments
 (0)