test-smi-rs 0.1.2

APIs for managing and monitoring FuriosaAI NPUs
Documentation
use crate::generated::binding::FuriosaSmiDeviceErrorInfo;

pub(crate) fn new_device_error_info(raw: FuriosaSmiDeviceErrorInfo) -> DeviceErrorInfo {
    DeviceErrorInfo { raw }
}

/// A struct for device error information
pub struct DeviceErrorInfo {
    raw: FuriosaSmiDeviceErrorInfo,
}

impl DeviceErrorInfo {
    /// Get a axi post error count
    pub fn axi_post_error_count(&self) -> u32 {
        self.raw.axi_post_error_count
    }

    /// Get a axi fetch error count
    pub fn axi_fetch_error_count(&self) -> u32 {
        self.raw.axi_fetch_error_count
    }

    /// Get a axi discard error count
    pub fn axi_discard_error_count(&self) -> u32 {
        self.raw.axi_discard_error_count
    }

    /// Get a axi doorbell error count
    pub fn axi_doorbell_error_count(&self) -> u32 {
        self.raw.axi_doorbell_error_count
    }

    /// Get a pcie post error count
    pub fn pcie_post_error_count(&self) -> u32 {
        self.raw.pcie_post_error_count
    }

    /// Get a pcie fetch error count
    pub fn pcie_fetch_error_count(&self) -> u32 {
        self.raw.pcie_fetch_error_count
    }

    /// Get a pcie discard error count
    pub fn pcie_discard_error_count(&self) -> u32 {
        self.raw.pcie_discard_error_count
    }

    /// Get a pcie doorbell error count
    pub fn pcie_doorbell_error_count(&self) -> u32 {
        self.raw.pcie_doorbell_error_count
    }

    /// Get a device error count
    pub fn device_error_count(&self) -> u32 {
        self.raw.device_error_count
    }
}

pub(crate) fn default_device_error_info() -> FuriosaSmiDeviceErrorInfo {
    FuriosaSmiDeviceErrorInfo {
        axi_post_error_count: 0,
        axi_fetch_error_count: 0,
        axi_discard_error_count: 0,
        axi_doorbell_error_count: 0,
        pcie_post_error_count: 0,
        pcie_fetch_error_count: 0,
        pcie_discard_error_count: 0,
        pcie_doorbell_error_count: 0,
        device_error_count: 0,
    }
}