raw-acpi 0.0.2

Simply ACPI, in Rust.
Documentation
#[derive(Copy, Clone)]
#[repr(C, packed)]
/// ## Bridge I/O Programmable Interrupt Controller (BIO PIC) Structure
///
/// BIO PIC (Bridge I/O Programmable Interrupt Controller) manages legacy IRQs of chipset devices, and routed them to HT PIC or EIO PIC.
pub struct BridgeIOProgrammableInterruptController {
    /// 22 - Bridge I/O Programmable Interrupt Controller Structure
    pub r#type: u8,
    /// Length of the Bridge I/O Programmable Interrupt Controller Structure in bytes.
    ///
    /// **JJ's Note: There doesn't seem to be any variable-sized fields in this struct.  The size is 17 bytes...**
    pub length: u8,
    /// - **0x00** - Invalid
    /// - **0x01** - BIO PIC v1
    ///
    /// Other values are reserved.
    pub version: u8,
    /// The base address of BIO PIC registers.
    pub base_address: u64,
    /// The register space size of BIO PIC.
    pub size: u16,
    /// The hardware ID of BIO PIC.
    pub hardware_id: u16,
    /// The global system interrupt number from which this BIO PIC’s interrupt inputs start.
    ///
    /// For GSI of each interrupt input, GSI = GSI base + interrupt input vector of BIO PIC.
    pub gsi_base: u16,
}