libcpuid_dump/
info_01h_ebx.rs1use crate::{cpuid, CpuidResult};
2
3#[derive(Debug, Clone)]
5pub struct Info01h {
6 pub local_apic_id: u8,
7 pub max_apic_id: u8,
8 pub clflush_size: u8,
9 pub brand_id: u8,
10}
11
12impl From<u32> for Info01h {
13 fn from(ebx: u32) -> Self {
14 Self {
15 local_apic_id: ((ebx >> 24) & 0xFF) as u8,
16 max_apic_id: ((ebx >> 16) & 0xFF) as u8,
17 clflush_size: (((ebx >> 8) & 0xFF) as u8).saturating_mul(8),
18 brand_id: (ebx & 0xFF) as u8,
19 }
20 }
21}
22
23impl From<&CpuidResult> for Info01h {
24 fn from(cpuid: &CpuidResult) -> Self {
25 Self::from(cpuid.ebx)
26 }
27}
28
29impl Info01h {
30 pub fn get() -> Self {
31 Self::from(&cpuid!(0x1, 0x0))
32 }
33}