pub struct DescriptorBuilder { /* private fields */ }
Expand description
Makes building descriptors easier (hopefully).
Implementations§
Source§impl DescriptorBuilder
impl DescriptorBuilder
Sourcepub fn limit_granularity_4kb(self) -> DescriptorBuilder
pub fn limit_granularity_4kb(self) -> DescriptorBuilder
The segment limit is interpreted in 4-KByte units if this is set.
Sourcepub fn present(self) -> DescriptorBuilder
pub fn present(self) -> DescriptorBuilder
Indicates whether the segment is present in memory (set) or not present (clear).
Sourcepub fn dpl(self, dpl: Ring) -> DescriptorBuilder
pub fn dpl(self, dpl: Ring) -> DescriptorBuilder
Specifies the privilege level of the segment.
Sourcepub fn avl(self) -> DescriptorBuilder
pub fn avl(self) -> DescriptorBuilder
Toggle the AVL bit.
Sourcepub fn db(self) -> DescriptorBuilder
pub fn db(self) -> DescriptorBuilder
Set default operation size (false for 16bit segment, true for 32bit segments).
Sourcepub fn l(self) -> DescriptorBuilder
pub fn l(self) -> DescriptorBuilder
Set L bit if this descriptor is a 64-bit code segment. In IA-32e mode, bit 21 of the second doubleword of the segment descriptor indicates whether a code segment contains native 64-bit code. A value of 1 indicates instructions in this code segment are executed in 64-bit mode.
Sourcepub fn ist(self, index: u8) -> DescriptorBuilder
pub fn ist(self, index: u8) -> DescriptorBuilder
Set a the interrupt stack table index (only if this ends up being a 64-bit interrupt descriptor).
Trait Implementations§
Source§impl BuildDescriptor<Descriptor> for DescriptorBuilder
impl BuildDescriptor<Descriptor> for DescriptorBuilder
fn finish(&self) -> Descriptor
Source§impl BuildDescriptor<Descriptor64> for DescriptorBuilder
impl BuildDescriptor<Descriptor64> for DescriptorBuilder
fn finish(&self) -> Descriptor64
Source§impl Debug for DescriptorBuilder
impl Debug for DescriptorBuilder
Source§impl GateDescriptorBuilder<u16> for DescriptorBuilder
impl GateDescriptorBuilder<u16> for DescriptorBuilder
fn tss_descriptor(base: u64, limit: u64, available: bool) -> DescriptorBuilder
fn call_gate_descriptor( selector: SegmentSelector, offset: u16, ) -> DescriptorBuilder
fn interrupt_descriptor( selector: SegmentSelector, offset: u16, ) -> DescriptorBuilder
fn trap_gate_descriptor( selector: SegmentSelector, offset: u16, ) -> DescriptorBuilder
Source§impl GateDescriptorBuilder<u32> for DescriptorBuilder
impl GateDescriptorBuilder<u32> for DescriptorBuilder
fn tss_descriptor(base: u64, limit: u64, available: bool) -> DescriptorBuilder
fn call_gate_descriptor( selector: SegmentSelector, offset: u32, ) -> DescriptorBuilder
fn interrupt_descriptor( selector: SegmentSelector, offset: u32, ) -> DescriptorBuilder
fn trap_gate_descriptor( selector: SegmentSelector, offset: u32, ) -> DescriptorBuilder
Source§impl GateDescriptorBuilder<u64> for DescriptorBuilder
impl GateDescriptorBuilder<u64> for DescriptorBuilder
fn tss_descriptor(base: u64, limit: u64, available: bool) -> DescriptorBuilder
fn call_gate_descriptor( selector: SegmentSelector, offset: u64, ) -> DescriptorBuilder
fn interrupt_descriptor( selector: SegmentSelector, offset: u64, ) -> DescriptorBuilder
fn trap_gate_descriptor( selector: SegmentSelector, offset: u64, ) -> DescriptorBuilder
Source§impl LdtDescriptorBuilder<u32> for DescriptorBuilder
impl LdtDescriptorBuilder<u32> for DescriptorBuilder
fn ldt_descriptor(base: u32, limit: u32) -> DescriptorBuilder
Source§impl LdtDescriptorBuilder<u64> for DescriptorBuilder
impl LdtDescriptorBuilder<u64> for DescriptorBuilder
fn ldt_descriptor(base: u64, limit: u64) -> DescriptorBuilder
Source§impl SegmentDescriptorBuilder<u32> for DescriptorBuilder
impl SegmentDescriptorBuilder<u32> for DescriptorBuilder
fn code_descriptor( base: u32, limit: u32, cst: CodeSegmentType, ) -> DescriptorBuilder
fn data_descriptor( base: u32, limit: u32, dst: DataSegmentType, ) -> DescriptorBuilder
Source§impl TaskGateDescriptorBuilder for DescriptorBuilder
impl TaskGateDescriptorBuilder for DescriptorBuilder
fn task_gate_descriptor(selector: SegmentSelector) -> DescriptorBuilder
Auto Trait Implementations§
impl Freeze for DescriptorBuilder
impl RefUnwindSafe for DescriptorBuilder
impl Send for DescriptorBuilder
impl Sync for DescriptorBuilder
impl Unpin for DescriptorBuilder
impl UnwindSafe for DescriptorBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more