acpica_bindings/bindings/types/tables/
pptt.rs

1use crate::bindings::types::FfiAcpiTableHeader;
2
3use super::FfiAcpiSubtableHeader;
4
5///  PPTT - Processor Properties Topology Table (ACPI 6.2)
6///         Version 1
7///
8#[repr(C)]
9#[derive(Debug, Copy, Clone)]
10pub(crate) struct FfiAcpiTablePptt {
11    pub header: FfiAcpiTableHeader,
12}
13
14#[repr(u32)]
15#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
16#[allow(dead_code)] // FFI type so variants are not explicitly constructed
17pub enum FfiAcpiPpttType {
18    Processor = 0,
19    Cache = 1,
20    Id = 2,
21    Reserved = 3,
22}
23
24#[repr(C, packed)]
25#[derive(Debug, Copy, Clone)]
26pub(crate) struct FfiAcpiPpttProcessor {
27    pub header: FfiAcpiSubtableHeader,
28    pub reserved: u16,
29    pub flags: u32,
30    pub parent: u32,
31    pub acpi_processor_id: u32,
32    pub number_of_priv_resources: u32,
33}
34
35#[repr(C, packed)]
36#[derive(Debug, Copy, Clone)]
37pub(crate) struct FfiAcpiPpttCache {
38    pub header: FfiAcpiSubtableHeader,
39    pub reserved: u16,
40    pub flags: u32,
41    pub next_level_of_cache: u32,
42    pub size: u32,
43    pub number_of_sets: u32,
44    pub associativity: u8,
45    pub attributes: u8,
46    pub line_size: u16,
47}
48
49#[repr(C, packed)]
50#[derive(Debug, Copy, Clone)]
51pub(crate) struct FfiAcpiPpttCacheV1 {
52    pub cache_id: u32,
53}
54
55#[repr(C, packed)]
56#[derive(Debug, Copy, Clone)]
57pub(crate) struct FfiAcpiPpttId {
58    pub header: FfiAcpiSubtableHeader,
59    pub reserved: u16,
60    pub vendor_id: u32,
61    pub level1_id: u64,
62    pub level2_id: u64,
63    pub major_rev: u16,
64    pub minor_rev: u16,
65    pub spin_rev: u16,
66}