cpuid library in rust.
See the codeA library to parse the x86 CPUID instruction, written in rust with no external
dependencies. The implementation closely resembles the Intel CPUID manual
description. The library works in no_std environments. Some additional cargo
features require std (e.g., pretty printing, serialization).
use raw_cpuid::CpuId;
let cpuid = CpuId::new();
if let Some(vf) = cpuid.get_vendor_info() {
assert!(vf.as_str() == "GenuineIntel" || vf.as_str() == "AuthenticAMD");
}
let has_sse = cpuid.get_feature_info().map_or(false, |finfo| finfo.has_sse());
if has_sse {
println!("CPU supports SSE!");
}
if let Some(cparams) = cpuid.get_cache_parameters() {
for cache in cparams {
let size = cache.associativity() * cache.physical_line_partitions() * cache.coherency_line_size() * cache.sets();
println!("L{}-Cache size is {}", cache.level(), size);
}
} else {
println!("No cache parameter information available")
}
cpuid binaryraw-cpuid ships with a cpuid binary that can be installed to inspect the
output of the CPUID instruction on a host system.
To install, use:
cargo install raw-cpuid --features cli
The cli feature is currently required to build the binary version due to
cargo limitations.
2,591 followers · starred Mar 2022
330 followers · starred Jul 2017
575 followers · starred Mar 2016
151 followers · starred Jul 2017
cpuid library in rust.
See the codeA library to parse the x86 CPUID instruction, written in rust with no external
dependencies. The implementation closely resembles the Intel CPUID manual
description. The library works in no_std environments. Some additional cargo
features require std (e.g., pretty printing, serialization).
use raw_cpuid::CpuId;
let cpuid = CpuId::new();
if let Some(vf) = cpuid.get_vendor_info() {
assert!(vf.as_str() == "GenuineIntel" || vf.as_str() == "AuthenticAMD");
}
let has_sse = cpuid.get_feature_info().map_or(false, |finfo| finfo.has_sse());
if has_sse {
println!("CPU supports SSE!");
}
if let Some(cparams) = cpuid.get_cache_parameters() {
for cache in cparams {
let size = cache.associativity() * cache.physical_line_partitions() * cache.coherency_line_size() * cache.sets();
println!("L{}-Cache size is {}", cache.level(), size);
}
} else {
println!("No cache parameter information available")
}
cpuid binaryraw-cpuid ships with a cpuid binary that can be installed to inspect the
output of the CPUID instruction on a host system.
To install, use:
cargo install raw-cpuid --features cli
The cli feature is currently required to build the binary version due to
cargo limitations.
2,591 followers · starred Mar 2022
330 followers · starred Jul 2017
575 followers · starred Mar 2016
151 followers · starred Jul 2017