#[repr(transparent)]
pub struct SegmentSelector(u16);
Expand description

Specifies which element to load into a segment from descriptor tables (i.e., is a index to LDT or GDT table with some additional flags).

See Intel 3a, Section 3.4.2 “Segment Selectors”

Tuple Fields§

§0: u16

Implementations§

source§

impl SegmentSelector

source

pub const fn new() -> Self

Creates a new default initialized bitfield.

source

const PRIVILEGE_BITS: usize = 2usize

source

const PRIVILEGE_OFFSET: usize = 0usize

source

pub const fn with_privilege(self, value: Ring) -> Self

Requested privilege level

Bits: 0..2

source

pub const fn privilege(&self) -> Ring

Requested privilege level

Bits: 0..2

source

pub fn set_privilege(&mut self, value: Ring)

Requested privilege level

Bits: 0..2

source

const LOCAL_BITS: usize = 1usize

source

const LOCAL_OFFSET: usize = 2usize

source

pub const fn with_local(self, value: bool) -> Self

Whether this selector corresponds to a global or local descriptor table

Bits: 2..3

source

pub const fn local(&self) -> bool

Whether this selector corresponds to a global or local descriptor table

Bits: 2..3

source

pub fn set_local(&mut self, value: bool)

Whether this selector corresponds to a global or local descriptor table

Bits: 2..3

source

const INDEX_BITS: usize = 13usize

source

const INDEX_OFFSET: usize = 3usize

source

pub const fn with_index(self, value: u16) -> Self

Index within the descriptor table

Bits: 3..16

source

pub const fn index(&self) -> u16

Index within the descriptor table

Bits: 3..16

source

pub fn set_index(&mut self, value: u16)

Index within the descriptor table

Bits: 3..16

Trait Implementations§

source§

impl Clone for SegmentSelector

source§

fn clone(&self) -> SegmentSelector

Returns a copy of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SegmentSelector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SegmentSelector

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<SegmentSelector> for u16

source§

fn from(v: SegmentSelector) -> u16

Converts to this type from the input type.
source§

impl From<u16> for SegmentSelector

source§

fn from(v: u16) -> Self

Converts to this type from the input type.
source§

impl PartialEq for SegmentSelector

source§

fn eq(&self, other: &SegmentSelector) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for SegmentSelector

source§

impl Eq for SegmentSelector

source§

impl StructuralEq for SegmentSelector

source§

impl StructuralPartialEq for SegmentSelector

Auto Trait Implementations§

§

impl RefUnwindSafe for SegmentSelector

§

impl Send for SegmentSelector

§

impl Sync for SegmentSelector

§

impl Unpin for SegmentSelector

§

impl UnwindSafe for SegmentSelector

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.