pub fn __cpuid_count(leaf: u32, sub_leaf: u32) -> CpuidResultExpand description
Returns the result of the cpuid instruction for a given leaf (EAX)
and sub_leaf (ECX).
There are two types of information leaves - basic leaves (with leaf < 0x8000000)
and extended leaves (with leaf >= 0x80000000). The highest supported basic and
extended leaves can be obtained by calling CPUID with 0 and 0x80000000,
respectively, and reading the value in the EAX register. If the leaf supports
more than one sub-leaf, then the procedure of obtaining the highest supported
sub-leaf, as well as the behavior if a invalid sub-leaf value is passed, depends
on the specific leaf.
If the leaf value is higher than the maximum supported basic or extended leaf
for the processor, this returns the information for the highest supported basic
information leaf (with the passed sub_leaf value). If the leaf value is less
than or equal to the highest basic or extended leaf value, but the leaf is not
supported on the processor, all zeros are returned.
The CPUID Wikipedia page contains information on how to query which
information using the EAX and ECX registers, and the interpretation of
the results returned in EAX, EBX, ECX, and EDX.
The references are: