Struct hal_x86_64::segment::Descriptor
source · pub struct Descriptor(/* private fields */);
Expand description
A 64-bit mode user segment descriptor.
A segment descriptor is an entry in a GDT or LDT that provides the processor with the size and location of a segment, as well as access control and status information.
Refer to section 3.4.5 in Vol. 3A of the Intel® 64 and IA-32 Architectures Developer’s Manual for details.
Implementations§
source§impl Descriptor
impl Descriptor
sourcepub const fn from_bits(bits: u64) -> Self
pub const fn from_bits(bits: u64) -> Self
Constructs a new instance of Self
from the provided raw bits.
sourcepub fn with<T>(self, field: Pack64<T, Self>, value: T) -> Selfwhere
T: FromBits<u64>,
pub fn with<T>(self, field: Pack64<T, Self>, value: T) -> Selfwhere
T: FromBits<u64>,
Packs the bit representation of value
into self
at the bit
range designated by field
, returning a new bitfield.
sourcepub fn set<T>(&mut self, field: Pack64<T, Self>, value: T) -> &mut Selfwhere
T: FromBits<u64>,
pub fn set<T>(&mut self, field: Pack64<T, Self>, value: T) -> &mut Selfwhere
T: FromBits<u64>,
Packs the bit representation of value
into self
at the range
designated by field
, mutating self
in place.
sourcepub fn get<T>(self, field: Pack64<T, Self>) -> Twhere
T: FromBits<u64>,
pub fn get<T>(self, field: Pack64<T, Self>) -> Twhere
T: FromBits<u64>,
Unpacks the bit range represented by field
from self
, and
converts it into a T
-typed value.
Panics
This method panics if self
does not contain a valid bit
pattern for a T
-typed value, as determined by T
’s
FromBits::try_from_bits
implementation.
sourcepub fn try_get<T>(self, field: Pack64<T, Self>) -> Result<T, T::Error>where
T: FromBits<u64>,
pub fn try_get<T>(self, field: Pack64<T, Self>) -> Result<T, T::Error>where
T: FromBits<u64>,
Unpacks the bit range represented by field
from self
and attempts to convert it into a T
-typed value.
Returns
Ok(T)
if aT
-typed value could be constructed from the bits insrc
Err(T::Error)
ifsrc
does not contain a valid bit pattern for aT
-typed value, as determined byT
’s [FromBits::try_from_bits
implementation.
sourcepub fn assert_valid()
pub fn assert_valid()
Asserts that all the packing specs for this type are valid.
This is intended to be used in unit tests.
sourcepub fn display_ascii(&self) -> impl Display
pub fn display_ascii(&self) -> impl Display
Returns a value that formats this bitfield in a multi-line format, using only ASCII characters.
This is equivalent to formatting this bitfield using a {}
display specifier, but will never use Unicode box-drawing
characters, even when an upstream formatter uses the {:#}
fmt::Display
specifier. This is intended for use on platforms
where Unicode box drawing characters are never available.
sourcepub fn display_unicode(&self) -> impl Display
pub fn display_unicode(&self) -> impl Display
Returns a value that formats this bitfield in a multi-line format, always using Unicode box-drawing characters.
This is equivalent to formatting this bitfield using a {:#}
format specifier, but will always use Unicode box-drawing
characters, even when an upstream formatter uses the {}
fmt::Display
specifier.
Trait Implementations§
source§impl Binary for Descriptor
impl Binary for Descriptor
source§impl Clone for Descriptor
impl Clone for Descriptor
source§fn clone(&self) -> Descriptor
fn clone(&self) -> Descriptor
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for Descriptor
impl Debug for Descriptor
source§impl Display for Descriptor
impl Display for Descriptor
source§impl From<Descriptor> for u64
impl From<Descriptor> for u64
source§fn from(Descriptor: Descriptor) -> Self
fn from(Descriptor: Descriptor) -> Self
source§impl From<u64> for Descriptor
impl From<u64> for Descriptor
source§impl LowerHex for Descriptor
impl LowerHex for Descriptor
source§impl PartialEq for Descriptor
impl PartialEq for Descriptor
source§fn eq(&self, other: &Descriptor) -> bool
fn eq(&self, other: &Descriptor) -> bool
self
and other
values to be equal, and is used
by ==
.