#[allow(non_camel_case_types)]
#[derive(Copy, Clone, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "pci_subclass_debug_strings", derive(Debug))]
pub enum PciDeviceSubclass {
Unclassified_Generic,
Unclassified_VgaCompatible,
Unclassified_Unknown(u8),
MassStorageController_Scsi,
MassStorageController_Ide,
MassStorageController_FloppyDisk,
MassStorageController_IpiBus,
MassStorageController_Raid,
MassStorageController_AtaWithAdma,
MassStorageController_SerialAta,
MassStorageController_SerialAttachedScsi,
MassStorageController_NonVolatileMemory,
MassStorageController_UniversalFlashStorage,
MassStorageController_Other,
MassStorageController_Unknown(u8),
NetworkController_Ethernet,
NetworkController_TokenRing,
NetworkController_Fddi,
NetworkController_Atm,
NetworkController_Isdn,
NetworkController_WorldFip,
NetworkController_PicMg214MultiComputing,
NetworkController_InfiniBand,
NetworkController_Other,
NetworkController_Unknown(u8),
DisplayController_VgaCompatible,
DisplayController_Xga,
DisplayController_NonVga3D,
DisplayController_Other,
DisplayController_Unknown(u8),
MultimediaDevice_VideoDevice,
MultimediaDevice_AudioDevice,
MultimediaDevice_ComputerTelephony,
MultimediaDevice_HdaCompatible,
MultimediaDevice_Other,
MultimediaDevice_Unknown(u8),
MemoryController_Ram,
MemoryController_Flash,
MemoryController_CxlMemory,
MemoryController_Other,
MemoryController_Unknown(u8),
Bridge_HostBridge,
Bridge_IsaBridge,
Bridge_EisaBridge,
Bridge_McaBridge,
Bridge_PciToPciBridge,
Bridge_PcmciaBridge,
Bridge_NuBusBridge,
Bridge_CardBusBridge,
Bridge_RacewayBridge,
Bridge_SemiTransparentPciToPciBridge,
Bridge_InfiniBandtoPciHostBridge,
Bridge_AdvancedSwitchingToPciHostBridge,
Bridge_Other,
Bridge_Unknown(u8),
CommunicationController_Serial,
CommunicationController_Parallel,
CommunicationController_MultiportSerialController,
CommunicationController_Modem,
CommunicationController_GpibController,
CommunicationController_Smartcard,
CommunicationController_Other,
CommunicationController_Unknown(u8),
BaseSystemPeripheral_PIC,
BaseSystemPeripheral_DmaController,
BaseSystemPeripheral_SystemTimer,
BaseSystemPeripheral_RealTimeClockController,
BaseSystemPeripheral_GenericPciHotPlugController,
BaseSystemPeripheral_SdHostController,
BaseSystemPeripheral_IOMMU,
BaseSystemPeripheral_RootComplexEventCollector,
BaseSystemPeripheral_Other,
BaseSystemPeripheral_Unknown(u8),
InputDevice_KeyboardController,
InputDevice_DigitizerPenController,
InputDevice_MouseController,
InputDevice_ScannerController,
InputDevice_GameportController,
InputDevice_Other,
InputDevice_Unknown(u8),
DockingStation_Generic,
DockingStation_Other,
DockingStation_Unknown(u8),
Processor_Intel386,
Processor_Intel486,
Processor_IntelPentium,
Processor_DecAlpha,
Processor_PowerPc,
Processor_Mips,
Processor_Coprocessor,
Processor_Other,
Processor_Unknown(u8),
SerialBusController_Ieee1394,
SerialBusController_ACCESSbus,
SerialBusController_SSA,
SerialBusController_USB,
SerialBusController_FibreChannel,
SerialBusController_SystemManagementBus,
SerialBusController_InfiniBandDeprecated,
SerialBusController_Ipmi,
SerialBusController_SERCOS,
SerialBusController_CANbus,
SerialBusController_MipiI3C,
SerialBusController_Other,
SerialBusController_Unknown(u8),
WirelessController_iRDA,
WirelessController_Radio,
WirelessController_RFController,
WirelessController_Bluetooth,
WirelessController_Broadband,
WirelessController_Wifi802_11A,
WirelessController_Wifi802_11B,
WirelessController_CellularController,
WirelessController_CellularControllerWithEthernet,
WirelessController_Other,
WirelessController_Unknown(u8),
IntelligentIoController_IntelligentIoController,
IntelligentIoController_Unknown(u8),
SatelliteCommController_Tv,
SatelliteCommController_Audio,
SatelliteCommController_Voice,
SatelliteCommController_Data,
SatelliteCommController_Other,
SatelliteCommController_Unknown(u8),
EncryptionController_NetworkandComputingEncrpytionDecryption,
EncryptionController_EntertainmentEncryptionDecryption,
EncryptionController_Other,
EncryptionController_Unknown(u8),
SignalProcessingController_DpIoModule,
SignalProcessingController_PerformanceCounters,
SignalProcessingController_CommunicationSynchronization,
SignalProcessingController_ManagementCard,
SignalProcessingController_Other,
SignalProcessingController_Unknown(u8),
ProcessingAccelerator_VendorSpecific,
ProcessingAccelerator_SniaSdxiController,
ProcessingAccelerator_Unknown(u8),
NonEssentialInstrumentation_VendorSpecific,
NonEssentialInstrumentation_Unknown(u8),
Unknown(u8, u8),
}
impl PciDeviceSubclass {
pub fn from_codes(class_code: u8, subclass_code: u8) -> Self {
match (class_code, subclass_code) {
(0x00, 0x00) => Self::Unclassified_Generic,
(0x00, 0x01) => Self::Unclassified_VgaCompatible,
(0x00, unk_s) => Self::Unclassified_Unknown(unk_s),
(0x01, 0x00) => Self::MassStorageController_Scsi,
(0x01, 0x01) => Self::MassStorageController_Ide,
(0x01, 0x02) => Self::MassStorageController_FloppyDisk,
(0x01, 0x03) => Self::MassStorageController_IpiBus,
(0x01, 0x04) => Self::MassStorageController_Raid,
(0x01, 0x05) => Self::MassStorageController_AtaWithAdma,
(0x01, 0x06) => Self::MassStorageController_SerialAta,
(0x01, 0x07) => Self::MassStorageController_SerialAttachedScsi,
(0x01, 0x08) => Self::MassStorageController_NonVolatileMemory,
(0x01, 0x09) => Self::MassStorageController_UniversalFlashStorage,
(0x01, 0x80) => Self::MassStorageController_Other,
(0x01, unk_s) => Self::MassStorageController_Unknown(unk_s),
(0x02, 0x00) => Self::NetworkController_Ethernet,
(0x02, 0x01) => Self::NetworkController_TokenRing,
(0x02, 0x02) => Self::NetworkController_Fddi,
(0x02, 0x03) => Self::NetworkController_Atm,
(0x02, 0x04) => Self::NetworkController_Isdn,
(0x02, 0x05) => Self::NetworkController_WorldFip,
(0x02, 0x06) => Self::NetworkController_PicMg214MultiComputing,
(0x02, 0x07) => Self::NetworkController_InfiniBand,
(0x02, 0x80) => Self::NetworkController_Other,
(0x02, unk_s) => Self::NetworkController_Unknown(unk_s),
(0x03, 0x00) => Self::DisplayController_VgaCompatible,
(0x03, 0x01) => Self::DisplayController_Xga,
(0x03, 0x02) => Self::DisplayController_NonVga3D,
(0x03, 0x80) => Self::DisplayController_Other,
(0x03, unk_s) => Self::DisplayController_Unknown(unk_s),
(0x04, 0x00) => Self::MultimediaDevice_VideoDevice,
(0x04, 0x01) => Self::MultimediaDevice_AudioDevice,
(0x04, 0x02) => Self::MultimediaDevice_ComputerTelephony,
(0x04, 0x03) => Self::MultimediaDevice_HdaCompatible,
(0x04, 0x80) => Self::MultimediaDevice_Other,
(0x04, unk_s) => Self::MultimediaDevice_Unknown(unk_s),
(0x05, 0x00) => Self::MemoryController_Ram,
(0x05, 0x01) => Self::MemoryController_Flash,
(0x05, 0x02) => Self::MemoryController_CxlMemory,
(0x05, 0x80) => Self::MemoryController_Other,
(0x05, unk_s) => Self::MemoryController_Unknown(unk_s),
(0x06, 0x00) => Self::Bridge_HostBridge,
(0x06, 0x01) => Self::Bridge_IsaBridge,
(0x06, 0x02) => Self::Bridge_EisaBridge,
(0x06, 0x03) => Self::Bridge_McaBridge,
(0x06, 0x04) => Self::Bridge_PciToPciBridge,
(0x06, 0x05) => Self::Bridge_PcmciaBridge,
(0x06, 0x06) => Self::Bridge_NuBusBridge,
(0x06, 0x07) => Self::Bridge_CardBusBridge,
(0x06, 0x08) => Self::Bridge_RacewayBridge,
(0x06, 0x09) => Self::Bridge_SemiTransparentPciToPciBridge,
(0x06, 0x0a) => Self::Bridge_InfiniBandtoPciHostBridge,
(0x06, 0x0b) => Self::Bridge_AdvancedSwitchingToPciHostBridge,
(0x06, 0x80) => Self::Bridge_Other,
(0x06, unk_s) => Self::Bridge_Unknown(unk_s),
(0x07, 0x00) => Self::CommunicationController_Serial,
(0x07, 0x01) => Self::CommunicationController_Parallel,
(0x07, 0x02) => Self::CommunicationController_MultiportSerialController,
(0x07, 0x03) => Self::CommunicationController_Modem,
(0x07, 0x04) => Self::CommunicationController_GpibController,
(0x07, 0x05) => Self::CommunicationController_Smartcard,
(0x07, 0x80) => Self::CommunicationController_Other,
(0x07, unk_s) => Self::CommunicationController_Unknown(unk_s),
(0x08, 0x00) => Self::BaseSystemPeripheral_PIC,
(0x08, 0x01) => Self::BaseSystemPeripheral_DmaController,
(0x08, 0x02) => Self::BaseSystemPeripheral_SystemTimer,
(0x08, 0x03) => Self::BaseSystemPeripheral_RealTimeClockController,
(0x08, 0x04) => Self::BaseSystemPeripheral_GenericPciHotPlugController,
(0x08, 0x05) => Self::BaseSystemPeripheral_SdHostController,
(0x08, 0x06) => Self::BaseSystemPeripheral_IOMMU,
(0x08, 0x07) => Self::BaseSystemPeripheral_RootComplexEventCollector,
(0x08, 0x80) => Self::BaseSystemPeripheral_Other,
(0x08, unk_s) => Self::BaseSystemPeripheral_Unknown(unk_s),
(0x09, 0x00) => Self::InputDevice_KeyboardController,
(0x09, 0x01) => Self::InputDevice_DigitizerPenController,
(0x09, 0x02) => Self::InputDevice_MouseController,
(0x09, 0x03) => Self::InputDevice_ScannerController,
(0x09, 0x04) => Self::InputDevice_GameportController,
(0x09, 0x80) => Self::InputDevice_Other,
(0x09, unk_s) => Self::InputDevice_Unknown(unk_s),
(0x0a, 0x00) => Self::DockingStation_Generic,
(0x0a, 0x80) => Self::DockingStation_Other,
(0x0a, unk_s) => Self::DockingStation_Unknown(unk_s),
(0x0b, 0x00) => Self::Processor_Intel386,
(0x0b, 0x01) => Self::Processor_Intel486,
(0x0b, 0x02) => Self::Processor_IntelPentium,
(0x0b, 0x10) => Self::Processor_DecAlpha,
(0x0b, 0x20) => Self::Processor_PowerPc,
(0x0b, 0x30) => Self::Processor_Mips,
(0x0b, 0x40) => Self::Processor_Coprocessor,
(0x0b, 0x80) => Self::Processor_Other,
(0x0b, unk_s) => Self::Processor_Unknown(unk_s),
(0x0c, 0x00) => Self::SerialBusController_Ieee1394,
(0x0c, 0x01) => Self::SerialBusController_ACCESSbus,
(0x0c, 0x02) => Self::SerialBusController_SSA,
(0x0c, 0x03) => Self::SerialBusController_USB,
(0x0c, 0x04) => Self::SerialBusController_FibreChannel,
(0x0c, 0x05) => Self::SerialBusController_SystemManagementBus,
(0x0c, 0x06) => Self::SerialBusController_InfiniBandDeprecated,
(0x0c, 0x07) => Self::SerialBusController_Ipmi,
(0x0c, 0x08) => Self::SerialBusController_SERCOS,
(0x0c, 0x09) => Self::SerialBusController_CANbus,
(0x0c, 0x0a) => Self::SerialBusController_MipiI3C,
(0x0c, 0x80) => Self::SerialBusController_Other,
(0x0c, unk_s) => Self::SerialBusController_Unknown(unk_s),
(0x0d, 0x00) => Self::WirelessController_iRDA,
(0x0d, 0x01) => Self::WirelessController_Radio,
(0x0d, 0x10) => Self::WirelessController_RFController,
(0x0d, 0x11) => Self::WirelessController_Bluetooth,
(0x0d, 0x12) => Self::WirelessController_Broadband,
(0x0d, 0x20) => Self::WirelessController_Wifi802_11A,
(0x0d, 0x21) => Self::WirelessController_Wifi802_11B,
(0x0d, 0x40) => Self::WirelessController_CellularController,
(0x0d, 0x41) => Self::WirelessController_CellularControllerWithEthernet,
(0x0d, 0x80) => Self::WirelessController_Other,
(0x0d, unk_s) => Self::WirelessController_Unknown(unk_s),
(0x0e, 0x00) => Self::IntelligentIoController_IntelligentIoController,
(0x0e, unk_s) => Self::IntelligentIoController_Unknown(unk_s),
(0x0f, 0x01) => Self::SatelliteCommController_Tv,
(0x0f, 0x02) => Self::SatelliteCommController_Audio,
(0x0f, 0x03) => Self::SatelliteCommController_Voice,
(0x0f, 0x04) => Self::SatelliteCommController_Data,
(0x0f, 0x80) => Self::SatelliteCommController_Other,
(0x0f, unk_s) => Self::SatelliteCommController_Unknown(unk_s),
(0x10, 0x00) => Self::EncryptionController_NetworkandComputingEncrpytionDecryption,
(0x10, 0x10) => Self::EncryptionController_EntertainmentEncryptionDecryption,
(0x10, 0x80) => Self::EncryptionController_Other,
(0x10, unk_s) => Self::EncryptionController_Unknown(unk_s),
(0x11, 0x00) => Self::SignalProcessingController_DpIoModule,
(0x11, 0x01) => Self::SignalProcessingController_PerformanceCounters,
(0x11, 0x10) => Self::SignalProcessingController_CommunicationSynchronization,
(0x11, 0x20) => Self::SignalProcessingController_ManagementCard,
(0x11, 0x80) => Self::SignalProcessingController_Other,
(0x11, unk_s) => Self::SignalProcessingController_Unknown(unk_s),
(0x12, 0x00) => Self::ProcessingAccelerator_VendorSpecific,
(0x12, 0x01) => Self::ProcessingAccelerator_SniaSdxiController,
(0x12, unk_s) => Self::ProcessingAccelerator_Unknown(unk_s),
(0x13, 0x00) => Self::NonEssentialInstrumentation_VendorSpecific,
(0x13, unk_s) => Self::NonEssentialInstrumentation_Unknown(unk_s),
(unk_c, unk_s) => Self::Unknown(unk_c, unk_s),
}
}
pub fn as_codes(&self) -> (u8, u8) {
match self {
Self::Unclassified_Generic => (0x00, 0x00),
Self::Unclassified_VgaCompatible => (0x00, 0x01),
Self::Unclassified_Unknown(unk) => (0x00, *unk),
Self::MassStorageController_Scsi => (0x01, 0x00),
Self::MassStorageController_Ide => (0x01, 0x01),
Self::MassStorageController_FloppyDisk => (0x01, 0x02),
Self::MassStorageController_IpiBus => (0x01, 0x03),
Self::MassStorageController_Raid => (0x01, 0x04),
Self::MassStorageController_AtaWithAdma => (0x01, 0x05),
Self::MassStorageController_SerialAta => (0x01, 0x06),
Self::MassStorageController_SerialAttachedScsi => (0x01, 0x07),
Self::MassStorageController_NonVolatileMemory => (0x01, 0x08),
Self::MassStorageController_UniversalFlashStorage => (0x01, 0x09),
Self::MassStorageController_Other => (0x01, 0x80),
Self::MassStorageController_Unknown(unk) => (0x01, *unk),
Self::NetworkController_Ethernet => (0x02, 0x00),
Self::NetworkController_TokenRing => (0x02, 0x01),
Self::NetworkController_Fddi => (0x02, 0x02),
Self::NetworkController_Atm => (0x02, 0x03),
Self::NetworkController_Isdn => (0x02, 0x04),
Self::NetworkController_WorldFip => (0x02, 0x05),
Self::NetworkController_PicMg214MultiComputing => (0x02, 0x06),
Self::NetworkController_InfiniBand => (0x02, 0x07),
Self::NetworkController_Other => (0x02, 0x80),
Self::NetworkController_Unknown(unk) => (0x02, *unk),
Self::DisplayController_VgaCompatible => (0x03, 0x00),
Self::DisplayController_Xga => (0x03, 0x01),
Self::DisplayController_NonVga3D => (0x03, 0x02),
Self::DisplayController_Other => (0x03, 0x80),
Self::DisplayController_Unknown(unk) => (0x03, *unk),
Self::MultimediaDevice_VideoDevice => (0x04, 0x00),
Self::MultimediaDevice_AudioDevice => (0x04, 0x01),
Self::MultimediaDevice_ComputerTelephony => (0x04, 0x02),
Self::MultimediaDevice_HdaCompatible => (0x04, 0x03),
Self::MultimediaDevice_Other => (0x04, 0x80),
Self::MultimediaDevice_Unknown(unk) => (0x04, *unk),
Self::MemoryController_Ram => (0x05, 0x00),
Self::MemoryController_Flash => (0x05, 0x01),
Self::MemoryController_CxlMemory => (0x05, 0x02),
Self::MemoryController_Other => (0x05, 0x80),
Self::MemoryController_Unknown(unk) => (0x05, *unk),
Self::Bridge_HostBridge => (0x06, 0x00),
Self::Bridge_IsaBridge => (0x06, 0x01),
Self::Bridge_EisaBridge => (0x06, 0x02),
Self::Bridge_McaBridge => (0x06, 0x03),
Self::Bridge_PciToPciBridge => (0x06, 0x04),
Self::Bridge_PcmciaBridge => (0x06, 0x05),
Self::Bridge_NuBusBridge => (0x06, 0x06),
Self::Bridge_CardBusBridge => (0x06, 0x07),
Self::Bridge_RacewayBridge => (0x06, 0x08),
Self::Bridge_SemiTransparentPciToPciBridge => (0x06, 0x09),
Self::Bridge_InfiniBandtoPciHostBridge => (0x06, 0x0a),
Self::Bridge_AdvancedSwitchingToPciHostBridge => (0x06, 0x0b),
Self::Bridge_Other => (0x06, 0x80),
Self::Bridge_Unknown(unk) => (0x06, *unk),
Self::CommunicationController_Serial => (0x07, 0x00),
Self::CommunicationController_Parallel => (0x07, 0x01),
Self::CommunicationController_MultiportSerialController => (0x07, 0x02),
Self::CommunicationController_Modem => (0x07, 0x03),
Self::CommunicationController_GpibController => (0x07, 0x04),
Self::CommunicationController_Smartcard => (0x07, 0x05),
Self::CommunicationController_Other => (0x07, 0x80),
Self::CommunicationController_Unknown(unk) => (0x07, *unk),
Self::BaseSystemPeripheral_PIC => (0x08, 0x00),
Self::BaseSystemPeripheral_DmaController => (0x08, 0x01),
Self::BaseSystemPeripheral_SystemTimer => (0x08, 0x02),
Self::BaseSystemPeripheral_RealTimeClockController => (0x08, 0x03),
Self::BaseSystemPeripheral_GenericPciHotPlugController => (0x08, 0x04),
Self::BaseSystemPeripheral_SdHostController => (0x08, 0x05),
Self::BaseSystemPeripheral_IOMMU => (0x08, 0x06),
Self::BaseSystemPeripheral_RootComplexEventCollector => (0x08, 0x07),
Self::BaseSystemPeripheral_Other => (0x08, 0x80),
Self::BaseSystemPeripheral_Unknown(unk) => (0x08, *unk),
Self::InputDevice_KeyboardController => (0x09, 0x00),
Self::InputDevice_DigitizerPenController => (0x09, 0x01),
Self::InputDevice_MouseController => (0x09, 0x02),
Self::InputDevice_ScannerController => (0x09, 0x03),
Self::InputDevice_GameportController => (0x09, 0x04),
Self::InputDevice_Other => (0x09, 0x80),
Self::InputDevice_Unknown(unk) => (0x09, *unk),
Self::DockingStation_Generic => (0x0a, 0x00),
Self::DockingStation_Other => (0x0a, 0x80),
Self::DockingStation_Unknown(unk) => (0x0a, *unk),
Self::Processor_Intel386 => (0x0b, 0x00),
Self::Processor_Intel486 => (0x0b, 0x01),
Self::Processor_IntelPentium => (0x0b, 0x02),
Self::Processor_DecAlpha => (0x0b, 0x10),
Self::Processor_PowerPc => (0x0b, 0x20),
Self::Processor_Mips => (0x0b, 0x30),
Self::Processor_Coprocessor => (0x0b, 0x40),
Self::Processor_Other => (0x0b, 0x80),
Self::Processor_Unknown(unk) => (0x0b, *unk),
Self::SerialBusController_Ieee1394 => (0x0c, 0x00),
Self::SerialBusController_ACCESSbus => (0x0c, 0x01),
Self::SerialBusController_SSA => (0x0c, 0x02),
Self::SerialBusController_USB => (0x0c, 0x03),
Self::SerialBusController_FibreChannel => (0x0c, 0x04),
Self::SerialBusController_SystemManagementBus => (0x0c, 0x05),
Self::SerialBusController_InfiniBandDeprecated => (0x0c, 0x06),
Self::SerialBusController_Ipmi => (0x0c, 0x07),
Self::SerialBusController_SERCOS => (0x0c, 0x08),
Self::SerialBusController_CANbus => (0x0c, 0x09),
Self::SerialBusController_MipiI3C => (0x0c, 0x0a),
Self::SerialBusController_Other => (0x0c, 0x80),
Self::SerialBusController_Unknown(unk) => (0x0c, *unk),
Self::WirelessController_iRDA => (0x0d, 0x00),
Self::WirelessController_Radio => (0x0d, 0x01),
Self::WirelessController_RFController => (0x0d, 0x10),
Self::WirelessController_Bluetooth => (0x0d, 0x11),
Self::WirelessController_Broadband => (0x0d, 0x12),
Self::WirelessController_Wifi802_11A => (0x0d, 0x20),
Self::WirelessController_Wifi802_11B => (0x0d, 0x21),
Self::WirelessController_CellularController => (0x0d, 0x40),
Self::WirelessController_CellularControllerWithEthernet => (0x0d, 0x41),
Self::WirelessController_Other => (0x0d, 0x80),
Self::WirelessController_Unknown(unk) => (0x0d, *unk),
Self::IntelligentIoController_IntelligentIoController => (0x0e, 0x00),
Self::IntelligentIoController_Unknown(unk) => (0x0e, *unk),
Self::SatelliteCommController_Tv => (0x0f, 0x01),
Self::SatelliteCommController_Audio => (0x0f, 0x02),
Self::SatelliteCommController_Voice => (0x0f, 0x03),
Self::SatelliteCommController_Data => (0x0f, 0x04),
Self::SatelliteCommController_Other => (0x0f, 0x80),
Self::SatelliteCommController_Unknown(unk) => (0x0f, *unk),
Self::EncryptionController_NetworkandComputingEncrpytionDecryption => (0x10, 0x00),
Self::EncryptionController_EntertainmentEncryptionDecryption => (0x10, 0x10),
Self::EncryptionController_Other => (0x10, 0x80),
Self::EncryptionController_Unknown(unk) => (0x10, *unk),
Self::SignalProcessingController_DpIoModule => (0x11, 0x00),
Self::SignalProcessingController_PerformanceCounters => (0x11, 0x01),
Self::SignalProcessingController_CommunicationSynchronization => (0x11, 0x10),
Self::SignalProcessingController_ManagementCard => (0x11, 0x20),
Self::SignalProcessingController_Other => (0x11, 0x80),
Self::SignalProcessingController_Unknown(unk) => (0x11, *unk),
Self::ProcessingAccelerator_VendorSpecific => (0x12, 0x00),
Self::ProcessingAccelerator_SniaSdxiController => (0x12, 0x01),
Self::ProcessingAccelerator_Unknown(unk) => (0x12, *unk),
Self::NonEssentialInstrumentation_VendorSpecific => (0x13, 0x00),
Self::NonEssentialInstrumentation_Unknown(unk) => (0x13, *unk),
Self::Unknown(unk_c, unk_s) => (*unk_c, *unk_s),
}
}
}
impl From<PciDeviceSubclass> for u8 {
fn from(value: PciDeviceSubclass) -> Self {
value.as_codes().1
}
}
#[cfg(not(feature = "pci_subclass_debug_strings"))]
impl std::fmt::Debug for PciDeviceSubclass {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let v = self.as_codes();
write!(f, "(clss:{:02X}h subc:{:02X}h)", v.0, v.1)
}
}