Struct ExtendedProcessorFeatureIdentifiers
pub struct ExtendedProcessorFeatureIdentifiers {
vendor: Vendor,
eax: u32,
ebx: u32,
ecx: ExtendedFunctionInfoEcx,
edx: ExtendedFunctionInfoEdx,
}
Expand description
Fields§
§vendor: Vendor
§eax: u32
§ebx: u32
§ecx: ExtendedFunctionInfoEcx
§edx: ExtendedFunctionInfoEdx
Implementations§
§impl ExtendedProcessorFeatureIdentifiers
impl ExtendedProcessorFeatureIdentifiers
pub fn extended_signature(&self) -> u32
pub fn extended_signature(&self) -> u32
pub fn pkg_type(&self) -> u32
pub fn pkg_type(&self) -> u32
Returns package type on AMD.
Package type. If (Family[7:0] >= 10h)
, this field is valid. If
(Family[7:0]<10h)
, this field is reserved
§Platforms
✅ AMD ❌ Intel (reserved)
pub fn brand_id(&self) -> u32
pub fn brand_id(&self) -> u32
Returns brand ID on AMD.
This field, in conjunction with CPUID LEAF=0x0000_0001_EBX[8BitBrandId]
, and used
by firmware to generate the processor name string.
§Platforms
✅ AMD ❌ Intel (reserved)
pub fn has_lahf_sahf(&self) -> bool
pub fn has_lahf_sahf(&self) -> bool
pub fn has_cmp_legacy(&self) -> bool
pub fn has_cmp_legacy(&self) -> bool
pub fn has_ext_apic_space(&self) -> bool
pub fn has_ext_apic_space(&self) -> bool
Extended APIC space.
This bit indicates the presence of extended APIC register space starting at offset 400h from the “APIC Base Address Register,” as specified in the BKDG.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_alt_mov_cr8(&self) -> bool
pub fn has_alt_mov_cr8(&self) -> bool
pub fn has_sse4a(&self) -> bool
pub fn has_sse4a(&self) -> bool
XTRQ, INSERTQ, MOVNTSS, and MOVNTSD instruction support.
See “EXTRQ”, “INSERTQ”,“MOVNTSS”, and “MOVNTSD” in APM4.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_misaligned_sse_mode(&self) -> bool
pub fn has_misaligned_sse_mode(&self) -> bool
Misaligned SSE mode. See “Misaligned Access Support Added for SSE Instructions” in APM1.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_prefetchw(&self) -> bool
pub fn has_prefetchw(&self) -> bool
pub fn has_skinit(&self) -> bool
pub fn has_skinit(&self) -> bool
SKINIT and STGI are supported.
Indicates support for SKINIT and STGI, independent of the value of
MSRC000_0080[SVME]
.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_wdt(&self) -> bool
pub fn has_wdt(&self) -> bool
Watchdog timer support.
Indicates support for MSRC001_0074.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_topology_extensions(&self) -> bool
pub fn has_topology_extensions(&self) -> bool
Topology extensions support.
Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX
.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_perf_cntr_extensions(&self) -> bool
pub fn has_perf_cntr_extensions(&self) -> bool
Processor performance counter extensions support.
Indicates support for MSRC001_020[A,8,6,4,2,0]
and MSRC001_020[B,9,7,5,3,1]
.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_nb_perf_cntr_extensions(&self) -> bool
pub fn has_nb_perf_cntr_extensions(&self) -> bool
NB performance counter extensions support.
Indicates support for MSRC001_024[6,4,2,0]
and MSRC001_024[7,5,3,1]
.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_data_access_bkpt_extension(&self) -> bool
pub fn has_data_access_bkpt_extension(&self) -> bool
Data access breakpoint extension.
Indicates support for MSRC001_1027
and MSRC001_101[B:9]
.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_perf_tsc(&self) -> bool
pub fn has_perf_tsc(&self) -> bool
Performance time-stamp counter.
Indicates support for MSRC001_0280
[Performance Time Stamp Counter]
.
§Platform
✅ AMD ❌ Intel (will return false)
pub fn has_perf_cntr_llc_extensions(&self) -> bool
pub fn has_perf_cntr_llc_extensions(&self) -> bool
pub fn has_monitorx_mwaitx(&self) -> bool
pub fn has_monitorx_mwaitx(&self) -> bool
pub fn has_addr_mask_extension(&self) -> bool
pub fn has_addr_mask_extension(&self) -> bool
pub fn has_syscall_sysret(&self) -> bool
pub fn has_syscall_sysret(&self) -> bool
pub fn has_execute_disable(&self) -> bool
pub fn has_execute_disable(&self) -> bool
pub fn has_mmx_extensions(&self) -> bool
pub fn has_mmx_extensions(&self) -> bool
pub fn has_fast_fxsave_fxstor(&self) -> bool
pub fn has_fast_fxsave_fxstor(&self) -> bool
pub fn has_1gib_pages(&self) -> bool
pub fn has_1gib_pages(&self) -> bool
pub fn has_rdtscp(&self) -> bool
pub fn has_rdtscp(&self) -> bool
pub fn has_64bit_mode(&self) -> bool
pub fn has_64bit_mode(&self) -> bool
pub fn has_amd_3dnow_extensions(&self) -> bool
pub fn has_amd_3dnow_extensions(&self) -> bool
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ExtendedProcessorFeatureIdentifiers
impl RefUnwindSafe for ExtendedProcessorFeatureIdentifiers
impl Send for ExtendedProcessorFeatureIdentifiers
impl Sync for ExtendedProcessorFeatureIdentifiers
impl Unpin for ExtendedProcessorFeatureIdentifiers
impl UnwindSafe for ExtendedProcessorFeatureIdentifiers
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.