pub struct CacheTopologyA(/* private fields */);Expand description
The layout of EAX in Intel and AMD Cache Topology leaves.
Implementations§
Source§impl CacheTopologyA
impl CacheTopologyA
Sourcepub const RSVD1_MASK: u32
pub const RSVD1_MASK: u32
Mask of all reserved-as-1 bits.
Sourcepub const RSVD0_MASK: u32
pub const RSVD0_MASK: u32
Mask of all reserved-as-0 bits.
Sourcepub const DEFAULT: u32
pub const DEFAULT: u32
The default value of the layout, combining all field defaults and reserved-as values.
Sourcepub const MAX_CORES_MASK: u32
pub const MAX_CORES_MASK: u32
Unshifted bitmask of max_cores.
Sourcepub const MAX_CORES_SHIFT: usize = 26
pub const MAX_CORES_SHIFT: usize = 26
Bit shift (i.e., the low bit) of max_cores.
Sourcepub const MAX_SHARING_LOGICAL_PROCESSORS_MASK: u32
pub const MAX_SHARING_LOGICAL_PROCESSORS_MASK: u32
Unshifted bitmask of max_sharing_logical_processors.
Sourcepub const MAX_SHARING_LOGICAL_PROCESSORS_SHIFT: usize = 14
pub const MAX_SHARING_LOGICAL_PROCESSORS_SHIFT: usize = 14
Bit shift (i.e., the low bit) of max_sharing_logical_processors.
Sourcepub const FULLY_ASSOCIATIVE_MASK: u32
pub const FULLY_ASSOCIATIVE_MASK: u32
Unshifted bitmask of fully_associative.
Sourcepub const FULLY_ASSOCIATIVE_SHIFT: usize = 9
pub const FULLY_ASSOCIATIVE_SHIFT: usize = 9
Bit shift (i.e., the low bit) of fully_associative.
Sourcepub const SELF_INITIALIZING_MASK: u32
pub const SELF_INITIALIZING_MASK: u32
Unshifted bitmask of self_initializing.
Sourcepub const SELF_INITIALIZING_SHIFT: usize = 8
pub const SELF_INITIALIZING_SHIFT: usize = 8
Bit shift (i.e., the low bit) of self_initializing.
Sourcepub const CACHE_LEVEL_MASK: u32
pub const CACHE_LEVEL_MASK: u32
Unshifted bitmask of cache_level.
Sourcepub const CACHE_LEVEL_SHIFT: usize = 5
pub const CACHE_LEVEL_SHIFT: usize = 5
Bit shift (i.e., the low bit) of cache_level.
Sourcepub const CACHE_TYPE_MASK: u32
pub const CACHE_TYPE_MASK: u32
Unshifted bitmask of cache_type.
Sourcepub const CACHE_TYPE_SHIFT: usize = 0
pub const CACHE_TYPE_SHIFT: usize = 0
Bit shift (i.e., the low bit) of cache_type.
Sourcepub const FIELDS: [FieldMetadata<u32>; 6]
pub const FIELDS: [FieldMetadata<u32>; 6]
Metadata of all named fields in the layout.
Sourcepub const fn new() -> Self
pub const fn new() -> Self
Creates a new instance with reserved-as-1 bits set and
all other bits zeroed (i.e., with a value of
Self::RSVD1_MASK).
pub const fn bits(self) -> u32
Sourcepub const fn set_max_cores(&mut self, value: u8) -> &mut Self
pub const fn set_max_cores(&mut self, value: u8) -> &mut Self
Sets the value of CacheTopologyA[31:26].
Sourcepub const fn max_sharing_logical_processors(&self) -> u16
pub const fn max_sharing_logical_processors(&self) -> u16
The value of CacheTopologyA[25:14].
Sourcepub const fn set_max_sharing_logical_processors(
&mut self,
value: u16,
) -> &mut Self
pub const fn set_max_sharing_logical_processors( &mut self, value: u16, ) -> &mut Self
Sets the value of CacheTopologyA[25:14].
Sourcepub const fn fully_associative(&self) -> bool
pub const fn fully_associative(&self) -> bool
The value of CacheTopologyA9.
Sourcepub const fn set_fully_associative(&mut self, value: bool) -> &mut Self
pub const fn set_fully_associative(&mut self, value: bool) -> &mut Self
Sets the value of CacheTopologyA9.
Sourcepub const fn self_initializing(&self) -> bool
pub const fn self_initializing(&self) -> bool
The value of CacheTopologyA8.
Sourcepub const fn set_self_initializing(&mut self, value: bool) -> &mut Self
pub const fn set_self_initializing(&mut self, value: bool) -> &mut Self
Sets the value of CacheTopologyA8.
Sourcepub const fn cache_level(&self) -> u8
pub const fn cache_level(&self) -> u8
The value of CacheTopologyA[7:5].
Sourcepub const fn set_cache_level(&mut self, value: u8) -> &mut Self
pub const fn set_cache_level(&mut self, value: u8) -> &mut Self
Sets the value of CacheTopologyA[7:5].
Sourcepub fn cache_type(&self) -> CacheTypewhere
CacheType: TryFromBytes,
pub fn cache_type(&self) -> CacheTypewhere
CacheType: TryFromBytes,
The value of CacheTopologyA[4:0].
§Panics
Panics if the field’s bit pattern is not a valid value of the custom representation. Use Self::try_cache_type to recover from invalid bit patterns.
Sourcepub fn try_cache_type(&self) -> Result<CacheType, InvalidBits<u8>>where
CacheType: TryFromBytes,
pub fn try_cache_type(&self) -> Result<CacheType, InvalidBits<u8>>where
CacheType: TryFromBytes,
Fallible variant of Self::cache_type.
Trait Implementations§
Source§impl Binary for CacheTopologyA
impl Binary for CacheTopologyA
Source§impl Clone for CacheTopologyA
impl Clone for CacheTopologyA
Source§fn clone(&self) -> CacheTopologyA
fn clone(&self) -> CacheTopologyA
1.0.0 (const: unstable)§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CacheTopologyA
Source§impl Debug for CacheTopologyA
impl Debug for CacheTopologyA
Source§impl Default for CacheTopologyA
impl Default for CacheTopologyA
Source§fn default() -> Self
fn default() -> Self
Returns an instance with the default bits set (i.e,. with a
value of Self::DEFAULT.
impl Eq for CacheTopologyA
Source§impl From<CacheTopologyA> for u32
impl From<CacheTopologyA> for u32
Source§fn from(value: CacheTopologyA) -> Self
fn from(value: CacheTopologyA) -> Self
Source§impl From<u32> for CacheTopologyA
impl From<u32> for CacheTopologyA
Source§impl IntoIterator for CacheTopologyA
impl IntoIterator for CacheTopologyA
Source§impl<'a> IntoIterator for &'a CacheTopologyA
impl<'a> IntoIterator for &'a CacheTopologyA
Source§impl LowerHex for CacheTopologyA
impl LowerHex for CacheTopologyA
Source§impl Octal for CacheTopologyA
impl Octal for CacheTopologyA
Source§impl PartialEq for CacheTopologyA
impl PartialEq for CacheTopologyA
impl StructuralPartialEq for CacheTopologyA
Auto Trait Implementations§
impl Freeze for CacheTopologyA
impl RefUnwindSafe for CacheTopologyA
impl Send for CacheTopologyA
impl Sync for CacheTopologyA
impl Unpin for CacheTopologyA
impl UnsafeUnpin for CacheTopologyA
impl UnwindSafe for CacheTopologyA
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)