#[allow(non_camel_case_types)]
#[derive(Copy, Clone, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "pci_interface_func_debug_strings", derive(Debug))]
pub enum PciDeviceInterfaceFunc {
Unclassified_Generic_VendorSpecific,
Unclassified_Generic_Unknown(u8),
Unclassified_VgaCompatible_VendorSpecific,
Unclassified_VgaCompatible_Unknown(u8),
Unclassified_Unknown(u8, u8),
MassStorageController_Scsi_VendorSpecific,
MassStorageController_Scsi_StorageDevice,
MassStorageController_Scsi_HostBusAdapter,
MassStorageController_Scsi_StorageDeviceAndController,
MassStorageController_Scsi_StorageDeviceOverPciE,
MassStorageController_Scsi_Unknown(u8),
MassStorageController_Ide_AtaInterface(u8),
MassStorageController_FloppyDisk_VendorSpecific,
MassStorageController_FloppyDisk_Unknown(u8),
MassStorageController_IpiBus_VendorSpecific,
MassStorageController_IpiBus_Unknown(u8),
MassStorageController_Raid_VendorSpecific,
MassStorageController_Raid_Unknown(u8),
MassStorageController_AtaWithAdma_SingleStepping,
MassStorageController_AtaWithAdma_ContinuousOperation,
MassStorageController_AtaWithAdma_Unknown(u8),
MassStorageController_SerialAta_VendorSpecific,
MassStorageController_SerialAta_Ahci,
MassStorageController_SerialAta_SerialStorageBus,
MassStorageController_SerialAta_Unknown(u8),
MassStorageController_SerialAttachedScsi_VendorSpecific,
MassStorageController_SerialAttachedScsi_Obsolete,
MassStorageController_SerialAttachedScsi_Unknown(u8),
MassStorageController_NonVolatileMemory_VendorSpecific,
MassStorageController_NonVolatileMemory_NvmHci,
MassStorageController_NonVolatileMemory_NVMeIoController,
MassStorageController_NonVolatileMemory_NVMeAdministrativeController,
MassStorageController_NonVolatileMemory_Unknown(u8),
MassStorageController_UniversalFlashStorage_VendorSpecific,
MassStorageController_UniversalFlashStorage_UfsHci,
MassStorageController_UniversalFlashStorage_Unknown(u8),
MassStorageController_Other_VendorSpecific,
MassStorageController_Other_Unknown(u8),
MassStorageController_Unknown(u8, u8),
NetworkController_Ethernet_Default,
NetworkController_Ethernet_Unknown(u8),
NetworkController_TokenRing_Default,
NetworkController_TokenRing_Unknown(u8),
NetworkController_Fddi_Default,
NetworkController_Fddi_Unknown(u8),
NetworkController_Atm_Default,
NetworkController_Atm_Unknown(u8),
NetworkController_Isdn_Default,
NetworkController_Isdn_Unknown(u8),
NetworkController_WorldFip_Default,
NetworkController_WorldFip_Unknown(u8),
NetworkController_PicMg214MultiComputing_PicMg(u8),
NetworkController_InfiniBand_Default,
NetworkController_InfiniBand_Unknown(u8),
NetworkController_Other_VendorSpecific,
NetworkController_Other_Unknown(u8),
NetworkController_Unknown(u8, u8),
DisplayController_VgaCompatible_Vga,
DisplayController_VgaCompatible_Ibm8514,
DisplayController_VgaCompatible_Unknown(u8),
DisplayController_Xga_Default,
DisplayController_Xga_Unknown(u8),
DisplayController_NonVga3D_VendorSpecific,
DisplayController_NonVga3D_Unknown(u8),
DisplayController_Other_VendorSpecific,
DisplayController_Other_Unknown(u8),
DisplayController_Unknown(u8, u8),
MultimediaDevice_VideoDevice_VendorSpecific,
MultimediaDevice_VideoDevice_Unknown(u8),
MultimediaDevice_AudioDevice_VendorSpecific,
MultimediaDevice_AudioDevice_Unknown(u8),
MultimediaDevice_ComputerTelephony_VendorSpecific,
MultimediaDevice_ComputerTelephony_Unknown(u8),
MultimediaDevice_HdaCompatible_HighDefinitionAudio,
MultimediaDevice_HdaCompatible_HighDefinitionAudioWithVendorExtension,
MultimediaDevice_HdaCompatible_Unknown(u8),
MultimediaDevice_Other_VendorSpecific,
MultimediaDevice_Other_Unknown(u8),
MultimediaDevice_Unknown(u8, u8),
MemoryController_Ram_Default,
MemoryController_Ram_Unknown(u8),
MemoryController_Flash_Default,
MemoryController_Flash_Unknown(u8),
MemoryController_CxlMemory_VendorSpecific,
MemoryController_CxlMemory_Cxl2Specifications,
MemoryController_CxlMemory_Unknown(u8),
MemoryController_Other_VendorSpecific,
MemoryController_Other_Unknown(u8),
MemoryController_Unknown(u8, u8),
Bridge_HostBridge_Default,
Bridge_HostBridge_Unknown(u8),
Bridge_IsaBridge_Default,
Bridge_IsaBridge_Unknown(u8),
Bridge_EisaBridge_Default,
Bridge_EisaBridge_Unknown(u8),
Bridge_McaBridge_Default,
Bridge_McaBridge_Unknown(u8),
Bridge_PciToPciBridge_PciToPci,
Bridge_PciToPciBridge_SubtractiveDecodePciToPci,
Bridge_PciToPciBridge_Unknown(u8),
Bridge_PcmciaBridge_Default,
Bridge_PcmciaBridge_Unknown(u8),
Bridge_NuBusBridge_Default,
Bridge_NuBusBridge_Unknown(u8),
Bridge_CardBusBridge_Default,
Bridge_CardBusBridge_Unknown(u8),
Bridge_RacewayBridge_Default,
Bridge_RacewayBridge_Unknown(u8),
Bridge_SemiTransparentPciToPciBridge_Primary,
Bridge_SemiTransparentPciToPciBridge_Secondary,
Bridge_SemiTransparentPciToPciBridge_Unknown(u8),
Bridge_InfiniBandtoPciHostBridge_Default,
Bridge_InfiniBandtoPciHostBridge_Unknown(u8),
Bridge_AdvancedSwitchingToPciHostBridge_VendorSpecific,
Bridge_AdvancedSwitchingToPciHostBridge_AsiSigInterface,
Bridge_AdvancedSwitchingToPciHostBridge_Unknown(u8),
Bridge_Other_VendorSpecific,
Bridge_Other_Unknown(u8),
Bridge_Unknown(u8, u8),
CommunicationController_Serial_Uart8250,
CommunicationController_Serial_Uart16450,
CommunicationController_Serial_Uart16550,
CommunicationController_Serial_Uart16650,
CommunicationController_Serial_Uart16750,
CommunicationController_Serial_Uart16850,
CommunicationController_Serial_Uart16950,
CommunicationController_Serial_Unknown(u8),
CommunicationController_Parallel_ParallelPort,
CommunicationController_Parallel_BidirectionalParallelPort,
CommunicationController_Parallel_EcpParallelPort,
CommunicationController_Parallel_Ieee1284Controller,
CommunicationController_Parallel_Ieee1284TargetDevice,
CommunicationController_Parallel_Unknown(u8),
CommunicationController_MultiportSerialController_Default,
CommunicationController_MultiportSerialController_Unknown(u8),
CommunicationController_Modem_Generic,
CommunicationController_Modem_Hayes16450Compatible,
CommunicationController_Modem_Hayes16550Compatible,
CommunicationController_Modem_Hayes16650Compatible,
CommunicationController_Modem_Hayes16750Compatible,
CommunicationController_Modem_Unknown(u8),
CommunicationController_GpibController_Default,
CommunicationController_GpibController_Unknown(u8),
CommunicationController_Smartcard_Default,
CommunicationController_Smartcard_Unknown(u8),
CommunicationController_Other_VendorSpecific,
CommunicationController_Other_Unknown(u8),
CommunicationController_Unknown(u8, u8),
BaseSystemPeripheral_PIC_Generic8259,
BaseSystemPeripheral_PIC_Isa,
BaseSystemPeripheral_PIC_Eisa,
BaseSystemPeripheral_PIC_IoApic,
BaseSystemPeripheral_PIC_IoXApic,
BaseSystemPeripheral_PIC_Unknown(u8),
BaseSystemPeripheral_DmaController_Generic8237,
BaseSystemPeripheral_DmaController_Isa,
BaseSystemPeripheral_DmaController_Eisa,
BaseSystemPeripheral_DmaController_Unknown(u8),
BaseSystemPeripheral_SystemTimer_Generic8254,
BaseSystemPeripheral_SystemTimer_Isa,
BaseSystemPeripheral_SystemTimer_Eisa,
BaseSystemPeripheral_SystemTimer_HighPerformanceEventTimer,
BaseSystemPeripheral_SystemTimer_Unknown(u8),
BaseSystemPeripheral_RealTimeClockController_GenericRtc,
BaseSystemPeripheral_RealTimeClockController_Isa,
BaseSystemPeripheral_RealTimeClockController_Unknown(u8),
BaseSystemPeripheral_GenericPciHotPlugController_Default,
BaseSystemPeripheral_GenericPciHotPlugController_Unknown(u8),
BaseSystemPeripheral_SdHostController_Default,
BaseSystemPeripheral_SdHostController_Unknown(u8),
BaseSystemPeripheral_IOMMU_Default,
BaseSystemPeripheral_IOMMU_Unknown(u8),
BaseSystemPeripheral_RootComplexEventCollector_Default,
BaseSystemPeripheral_RootComplexEventCollector_Unknown(u8),
BaseSystemPeripheral_Other_VendorSpecific,
BaseSystemPeripheral_Other_Unknown(u8),
BaseSystemPeripheral_Unknown(u8, u8),
InputDevice_KeyboardController_Default,
InputDevice_KeyboardController_Unknown(u8),
InputDevice_DigitizerPenController_Default,
InputDevice_DigitizerPenController_Unknown(u8),
InputDevice_MouseController_Default,
InputDevice_MouseController_Unknown(u8),
InputDevice_ScannerController_Default,
InputDevice_ScannerController_Unknown(u8),
InputDevice_GameportController_Generic,
InputDevice_GameportController_LegacyGamePort,
InputDevice_GameportController_Unknown(u8),
InputDevice_Other_VendorSpecific,
InputDevice_Other_Unknown(u8),
InputDevice_Unknown(u8, u8),
DockingStation_Generic_VendorSpecific,
DockingStation_Generic_Unknown(u8),
DockingStation_Other_VendorSpecific,
DockingStation_Other_Unknown(u8),
DockingStation_Unknown(u8, u8),
Processor_Intel386_VendorSpecific,
Processor_Intel386_Unknown(u8),
Processor_Intel486_VendorSpecific,
Processor_Intel486_Unknown(u8),
Processor_IntelPentium_VendorSpecific,
Processor_IntelPentium_Unknown(u8),
Processor_DecAlpha_VendorSpecific,
Processor_DecAlpha_Unknown(u8),
Processor_PowerPc_VendorSpecific,
Processor_PowerPc_Unknown(u8),
Processor_Mips_VendorSpecific,
Processor_Mips_Unknown(u8),
Processor_Coprocessor_VendorSpecific,
Processor_Coprocessor_Unknown(u8),
Processor_Other_VendorSpecific,
Processor_Other_Unknown(u8),
Processor_Unknown(u8, u8),
SerialBusController_Ieee1394_FireWire,
SerialBusController_Ieee1394_Ieee1394OpenHCI,
SerialBusController_Ieee1394_Unknown(u8),
SerialBusController_ACCESSbus_Default,
SerialBusController_ACCESSbus_Unknown(u8),
SerialBusController_SSA_Default,
SerialBusController_SSA_Unknown(u8),
SerialBusController_USB_UhcsController,
SerialBusController_USB_OhcsController,
SerialBusController_USB_Usb2Ehci,
SerialBusController_USB_Usb3Xhci,
SerialBusController_USB_Usb4HostInterface,
SerialBusController_USB_UsbGeneric,
SerialBusController_USB_UsbDevice,
SerialBusController_USB_Unknown(u8),
SerialBusController_FibreChannel_Default,
SerialBusController_FibreChannel_Unknown(u8),
SerialBusController_SystemManagementBus_Default,
SerialBusController_SystemManagementBus_Unknown(u8),
SerialBusController_InfiniBandDeprecated_Default,
SerialBusController_InfiniBandDeprecated_Unknown(u8),
SerialBusController_Ipmi_Smic,
SerialBusController_Ipmi_KeyboardControllerStyle,
SerialBusController_Ipmi_BlockTransferInterface,
SerialBusController_Ipmi_Unknown(u8),
SerialBusController_SERCOS_Default,
SerialBusController_SERCOS_Unknown(u8),
SerialBusController_CANbus_Default,
SerialBusController_CANbus_Unknown(u8),
SerialBusController_MipiI3C_Default,
SerialBusController_MipiI3C_Unknown(u8),
SerialBusController_Other_VendorSpecific,
SerialBusController_Other_Unknown(u8),
SerialBusController_Unknown(u8, u8),
WirelessController_iRDA_Default,
WirelessController_iRDA_Unknown(u8),
WirelessController_Radio_ConsumerIR,
WirelessController_Radio_UWB,
WirelessController_Radio_Unknown(u8),
WirelessController_RFController_Default,
WirelessController_RFController_Unknown(u8),
WirelessController_Bluetooth_Default,
WirelessController_Bluetooth_Unknown(u8),
WirelessController_Broadband_Default,
WirelessController_Broadband_Unknown(u8),
WirelessController_Wifi802_11A_Default,
WirelessController_Wifi802_11A_Unknown(u8),
WirelessController_Wifi802_11B_Default,
WirelessController_Wifi802_11B_Unknown(u8),
WirelessController_CellularController_Default,
WirelessController_CellularController_Unknown(u8),
WirelessController_CellularControllerWithEthernet_Default,
WirelessController_CellularControllerWithEthernet_Unknown(u8),
WirelessController_Other_VendorSpecific,
WirelessController_Other_Unknown(u8),
WirelessController_Unknown(u8, u8),
IntelligentIoController_IntelligentIoController_VendorSpecific,
IntelligentIoController_IntelligentIoController_Unknown(u8),
IntelligentIoController_Unknown(u8, u8),
SatelliteCommController_Tv_VendorSpecific,
SatelliteCommController_Tv_Unknown(u8),
SatelliteCommController_Audio_VendorSpecific,
SatelliteCommController_Audio_Unknown(u8),
SatelliteCommController_Voice_VendorSpecific,
SatelliteCommController_Voice_Unknown(u8),
SatelliteCommController_Data_VendorSpecific,
SatelliteCommController_Data_Unknown(u8),
SatelliteCommController_Other_VendorSpecific,
SatelliteCommController_Other_Unknown(u8),
SatelliteCommController_Unknown(u8, u8),
EncryptionController_NetworkandComputingEncrpytionDecryption_VendorSpecific,
EncryptionController_NetworkandComputingEncrpytionDecryption_Unknown(u8),
EncryptionController_EntertainmentEncryptionDecryption_VendorSpecific,
EncryptionController_EntertainmentEncryptionDecryption_Unknown(u8),
EncryptionController_Other_VendorSpecific,
EncryptionController_Other_Unknown(u8),
EncryptionController_Unknown(u8, u8),
SignalProcessingController_DpIoModule_VendorSpecific,
SignalProcessingController_DpIoModule_Unknown(u8),
SignalProcessingController_PerformanceCounters_VendorSpecific,
SignalProcessingController_PerformanceCounters_Unknown(u8),
SignalProcessingController_CommunicationSynchronization_VendorSpecific,
SignalProcessingController_CommunicationSynchronization_Unknown(u8),
SignalProcessingController_ManagementCard_VendorSpecific,
SignalProcessingController_ManagementCard_Unknown(u8),
SignalProcessingController_Other_VendorSpecific,
SignalProcessingController_Other_Unknown(u8),
SignalProcessingController_Unknown(u8, u8),
ProcessingAccelerator_VendorSpecific_VendorSpecific,
ProcessingAccelerator_VendorSpecific_Unknown(u8),
ProcessingAccelerator_SniaSdxiController_VendorSpecific,
ProcessingAccelerator_SniaSdxiController_Unknown(u8),
ProcessingAccelerator_Unknown(u8, u8),
NonEssentialInstrumentation_VendorSpecific_VendorSpecific,
NonEssentialInstrumentation_VendorSpecific_Unknown(u8),
NonEssentialInstrumentation_Unknown(u8, u8),
Unknown(u8, u8, u8),
}
impl PciDeviceInterfaceFunc {
pub fn from_codes(class_code: u8, subclass_code: u8, interface_func: u8) -> Self {
match (class_code, subclass_code, interface_func) {
(0x00, 0x00, 0x00) => Self::Unclassified_Generic_VendorSpecific,
(0x00, 0x00, unk_i) => Self::Unclassified_Generic_Unknown(unk_i),
(0x00, 0x01, 0x00) => Self::Unclassified_VgaCompatible_VendorSpecific,
(0x00, 0x01, unk_i) => Self::Unclassified_VgaCompatible_Unknown(unk_i),
(0x00, unk_s, unk_i) => Self::Unclassified_Unknown(unk_s, unk_i),
(0x01, 0x00, 0x00) => Self::MassStorageController_Scsi_VendorSpecific,
(0x01, 0x00, 0x11) => Self::MassStorageController_Scsi_StorageDevice,
(0x01, 0x00, 0x12) => Self::MassStorageController_Scsi_HostBusAdapter,
(0x01, 0x00, 0x13) => Self::MassStorageController_Scsi_StorageDeviceAndController,
(0x01, 0x00, 0x21) => Self::MassStorageController_Scsi_StorageDeviceOverPciE,
(0x01, 0x00, unk_i) => Self::MassStorageController_Scsi_Unknown(unk_i),
(0x01, 0x01, if_code) => Self::MassStorageController_Ide_AtaInterface(if_code),
(0x01, 0x02, 0x00) => Self::MassStorageController_FloppyDisk_VendorSpecific,
(0x01, 0x02, unk_i) => Self::MassStorageController_FloppyDisk_Unknown(unk_i),
(0x01, 0x03, 0x00) => Self::MassStorageController_IpiBus_VendorSpecific,
(0x01, 0x03, unk_i) => Self::MassStorageController_IpiBus_Unknown(unk_i),
(0x01, 0x04, 0x00) => Self::MassStorageController_Raid_VendorSpecific,
(0x01, 0x04, unk_i) => Self::MassStorageController_Raid_Unknown(unk_i),
(0x01, 0x05, 0x20) => Self::MassStorageController_AtaWithAdma_SingleStepping,
(0x01, 0x05, 0x30) => Self::MassStorageController_AtaWithAdma_ContinuousOperation,
(0x01, 0x05, unk_i) => Self::MassStorageController_AtaWithAdma_Unknown(unk_i),
(0x01, 0x06, 0x00) => Self::MassStorageController_SerialAta_VendorSpecific,
(0x01, 0x06, 0x01) => Self::MassStorageController_SerialAta_Ahci,
(0x01, 0x06, 0x02) => Self::MassStorageController_SerialAta_SerialStorageBus,
(0x01, 0x06, unk_i) => Self::MassStorageController_SerialAta_Unknown(unk_i),
(0x01, 0x07, 0x00) => Self::MassStorageController_SerialAttachedScsi_VendorSpecific,
(0x01, 0x07, 0x01) => Self::MassStorageController_SerialAttachedScsi_Obsolete,
(0x01, 0x07, unk_i) => Self::MassStorageController_SerialAttachedScsi_Unknown(unk_i),
(0x01, 0x08, 0x00) => Self::MassStorageController_NonVolatileMemory_VendorSpecific,
(0x01, 0x08, 0x01) => Self::MassStorageController_NonVolatileMemory_NvmHci,
(0x01, 0x08, 0x02) => Self::MassStorageController_NonVolatileMemory_NVMeIoController,
(0x01, 0x08, 0x03) => Self::MassStorageController_NonVolatileMemory_NVMeAdministrativeController,
(0x01, 0x08, unk_i) => Self::MassStorageController_NonVolatileMemory_Unknown(unk_i),
(0x01, 0x09, 0x00) => Self::MassStorageController_UniversalFlashStorage_VendorSpecific,
(0x01, 0x09, 0x01) => Self::MassStorageController_UniversalFlashStorage_UfsHci,
(0x01, 0x09, unk_i) => Self::MassStorageController_UniversalFlashStorage_Unknown(unk_i),
(0x01, 0x80, 0x00) => Self::MassStorageController_Other_VendorSpecific,
(0x01, 0x80, unk_i) => Self::MassStorageController_Other_Unknown(unk_i),
(0x01, unk_s, unk_i) => Self::MassStorageController_Unknown(unk_s, unk_i),
(0x02, 0x00, 0x00) => Self::NetworkController_Ethernet_Default,
(0x02, 0x00, unk_i) => Self::NetworkController_Ethernet_Unknown(unk_i),
(0x02, 0x01, 0x00) => Self::NetworkController_TokenRing_Default,
(0x02, 0x01, unk_i) => Self::NetworkController_TokenRing_Unknown(unk_i),
(0x02, 0x02, 0x00) => Self::NetworkController_Fddi_Default,
(0x02, 0x02, unk_i) => Self::NetworkController_Fddi_Unknown(unk_i),
(0x02, 0x03, 0x00) => Self::NetworkController_Atm_Default,
(0x02, 0x03, unk_i) => Self::NetworkController_Atm_Unknown(unk_i),
(0x02, 0x04, 0x00) => Self::NetworkController_Isdn_Default,
(0x02, 0x04, unk_i) => Self::NetworkController_Isdn_Unknown(unk_i),
(0x02, 0x05, 0x00) => Self::NetworkController_WorldFip_Default,
(0x02, 0x05, unk_i) => Self::NetworkController_WorldFip_Unknown(unk_i),
(0x02, 0x06, if_code) => Self::NetworkController_PicMg214MultiComputing_PicMg(if_code),
(0x02, 0x07, 0x00) => Self::NetworkController_InfiniBand_Default,
(0x02, 0x07, unk_i) => Self::NetworkController_InfiniBand_Unknown(unk_i),
(0x02, 0x80, 0x00) => Self::NetworkController_Other_VendorSpecific,
(0x02, 0x80, unk_i) => Self::NetworkController_Other_Unknown(unk_i),
(0x02, unk_s, unk_i) => Self::NetworkController_Unknown(unk_s, unk_i),
(0x03, 0x00, 0x00) => Self::DisplayController_VgaCompatible_Vga,
(0x03, 0x00, 0x01) => Self::DisplayController_VgaCompatible_Ibm8514,
(0x03, 0x00, unk_i) => Self::DisplayController_VgaCompatible_Unknown(unk_i),
(0x03, 0x01, 0x00) => Self::DisplayController_Xga_Default,
(0x03, 0x01, unk_i) => Self::DisplayController_Xga_Unknown(unk_i),
(0x03, 0x02, 0x00) => Self::DisplayController_NonVga3D_VendorSpecific,
(0x03, 0x02, unk_i) => Self::DisplayController_NonVga3D_Unknown(unk_i),
(0x03, 0x80, 0x00) => Self::DisplayController_Other_VendorSpecific,
(0x03, 0x80, unk_i) => Self::DisplayController_Other_Unknown(unk_i),
(0x03, unk_s, unk_i) => Self::DisplayController_Unknown(unk_s, unk_i),
(0x04, 0x00, 0x00) => Self::MultimediaDevice_VideoDevice_VendorSpecific,
(0x04, 0x00, unk_i) => Self::MultimediaDevice_VideoDevice_Unknown(unk_i),
(0x04, 0x01, 0x00) => Self::MultimediaDevice_AudioDevice_VendorSpecific,
(0x04, 0x01, unk_i) => Self::MultimediaDevice_AudioDevice_Unknown(unk_i),
(0x04, 0x02, 0x00) => Self::MultimediaDevice_ComputerTelephony_VendorSpecific,
(0x04, 0x02, unk_i) => Self::MultimediaDevice_ComputerTelephony_Unknown(unk_i),
(0x04, 0x03, 0x00) => Self::MultimediaDevice_HdaCompatible_HighDefinitionAudio,
(0x04, 0x03, 0x80) => Self::MultimediaDevice_HdaCompatible_HighDefinitionAudioWithVendorExtension,
(0x04, 0x03, unk_i) => Self::MultimediaDevice_HdaCompatible_Unknown(unk_i),
(0x04, 0x80, 0x00) => Self::MultimediaDevice_Other_VendorSpecific,
(0x04, 0x80, unk_i) => Self::MultimediaDevice_Other_Unknown(unk_i),
(0x04, unk_s, unk_i) => Self::MultimediaDevice_Unknown(unk_s, unk_i),
(0x05, 0x00, 0x00) => Self::MemoryController_Ram_Default,
(0x05, 0x00, unk_i) => Self::MemoryController_Ram_Unknown(unk_i),
(0x05, 0x01, 0x00) => Self::MemoryController_Flash_Default,
(0x05, 0x01, unk_i) => Self::MemoryController_Flash_Unknown(unk_i),
(0x05, 0x02, 0x00) => Self::MemoryController_CxlMemory_VendorSpecific,
(0x05, 0x02, 0x10) => Self::MemoryController_CxlMemory_Cxl2Specifications,
(0x05, 0x02, unk_i) => Self::MemoryController_CxlMemory_Unknown(unk_i),
(0x05, 0x80, 0x00) => Self::MemoryController_Other_VendorSpecific,
(0x05, 0x80, unk_i) => Self::MemoryController_Other_Unknown(unk_i),
(0x05, unk_s, unk_i) => Self::MemoryController_Unknown(unk_s, unk_i),
(0x06, 0x00, 0x00) => Self::Bridge_HostBridge_Default,
(0x06, 0x00, unk_i) => Self::Bridge_HostBridge_Unknown(unk_i),
(0x06, 0x01, 0x00) => Self::Bridge_IsaBridge_Default,
(0x06, 0x01, unk_i) => Self::Bridge_IsaBridge_Unknown(unk_i),
(0x06, 0x02, 0x00) => Self::Bridge_EisaBridge_Default,
(0x06, 0x02, unk_i) => Self::Bridge_EisaBridge_Unknown(unk_i),
(0x06, 0x03, 0x00) => Self::Bridge_McaBridge_Default,
(0x06, 0x03, unk_i) => Self::Bridge_McaBridge_Unknown(unk_i),
(0x06, 0x04, 0x00) => Self::Bridge_PciToPciBridge_PciToPci,
(0x06, 0x04, 0x01) => Self::Bridge_PciToPciBridge_SubtractiveDecodePciToPci,
(0x06, 0x04, unk_i) => Self::Bridge_PciToPciBridge_Unknown(unk_i),
(0x06, 0x05, 0x00) => Self::Bridge_PcmciaBridge_Default,
(0x06, 0x05, unk_i) => Self::Bridge_PcmciaBridge_Unknown(unk_i),
(0x06, 0x06, 0x00) => Self::Bridge_NuBusBridge_Default,
(0x06, 0x06, unk_i) => Self::Bridge_NuBusBridge_Unknown(unk_i),
(0x06, 0x07, 0x00) => Self::Bridge_CardBusBridge_Default,
(0x06, 0x07, unk_i) => Self::Bridge_CardBusBridge_Unknown(unk_i),
(0x06, 0x08, 0x00) => Self::Bridge_RacewayBridge_Default,
(0x06, 0x08, unk_i) => Self::Bridge_RacewayBridge_Unknown(unk_i),
(0x06, 0x09, 0x40) => Self::Bridge_SemiTransparentPciToPciBridge_Primary,
(0x06, 0x09, 0x80) => Self::Bridge_SemiTransparentPciToPciBridge_Secondary,
(0x06, 0x09, unk_i) => Self::Bridge_SemiTransparentPciToPciBridge_Unknown(unk_i),
(0x06, 0x0a, 0x00) => Self::Bridge_InfiniBandtoPciHostBridge_Default,
(0x06, 0x0a, unk_i) => Self::Bridge_InfiniBandtoPciHostBridge_Unknown(unk_i),
(0x06, 0x0b, 0x00) => Self::Bridge_AdvancedSwitchingToPciHostBridge_VendorSpecific,
(0x06, 0x0b, 0x01) => Self::Bridge_AdvancedSwitchingToPciHostBridge_AsiSigInterface,
(0x06, 0x0b, unk_i) => Self::Bridge_AdvancedSwitchingToPciHostBridge_Unknown(unk_i),
(0x06, 0x80, 0x00) => Self::Bridge_Other_VendorSpecific,
(0x06, 0x80, unk_i) => Self::Bridge_Other_Unknown(unk_i),
(0x06, unk_s, unk_i) => Self::Bridge_Unknown(unk_s, unk_i),
(0x07, 0x00, 0x00) => Self::CommunicationController_Serial_Uart8250,
(0x07, 0x00, 0x01) => Self::CommunicationController_Serial_Uart16450,
(0x07, 0x00, 0x02) => Self::CommunicationController_Serial_Uart16550,
(0x07, 0x00, 0x03) => Self::CommunicationController_Serial_Uart16650,
(0x07, 0x00, 0x04) => Self::CommunicationController_Serial_Uart16750,
(0x07, 0x00, 0x05) => Self::CommunicationController_Serial_Uart16850,
(0x07, 0x00, 0x06) => Self::CommunicationController_Serial_Uart16950,
(0x07, 0x00, unk_i) => Self::CommunicationController_Serial_Unknown(unk_i),
(0x07, 0x01, 0x00) => Self::CommunicationController_Parallel_ParallelPort,
(0x07, 0x01, 0x01) => Self::CommunicationController_Parallel_BidirectionalParallelPort,
(0x07, 0x01, 0x02) => Self::CommunicationController_Parallel_EcpParallelPort,
(0x07, 0x01, 0x03) => Self::CommunicationController_Parallel_Ieee1284Controller,
(0x07, 0x01, 0xfe) => Self::CommunicationController_Parallel_Ieee1284TargetDevice,
(0x07, 0x01, unk_i) => Self::CommunicationController_Parallel_Unknown(unk_i),
(0x07, 0x02, 0x00) => Self::CommunicationController_MultiportSerialController_Default,
(0x07, 0x02, unk_i) => Self::CommunicationController_MultiportSerialController_Unknown(unk_i),
(0x07, 0x03, 0x00) => Self::CommunicationController_Modem_Generic,
(0x07, 0x03, 0x01) => Self::CommunicationController_Modem_Hayes16450Compatible,
(0x07, 0x03, 0x02) => Self::CommunicationController_Modem_Hayes16550Compatible,
(0x07, 0x03, 0x03) => Self::CommunicationController_Modem_Hayes16650Compatible,
(0x07, 0x03, 0x04) => Self::CommunicationController_Modem_Hayes16750Compatible,
(0x07, 0x03, unk_i) => Self::CommunicationController_Modem_Unknown(unk_i),
(0x07, 0x04, 0x00) => Self::CommunicationController_GpibController_Default,
(0x07, 0x04, unk_i) => Self::CommunicationController_GpibController_Unknown(unk_i),
(0x07, 0x05, 0x00) => Self::CommunicationController_Smartcard_Default,
(0x07, 0x05, unk_i) => Self::CommunicationController_Smartcard_Unknown(unk_i),
(0x07, 0x80, 0x00) => Self::CommunicationController_Other_VendorSpecific,
(0x07, 0x80, unk_i) => Self::CommunicationController_Other_Unknown(unk_i),
(0x07, unk_s, unk_i) => Self::CommunicationController_Unknown(unk_s, unk_i),
(0x08, 0x00, 0x00) => Self::BaseSystemPeripheral_PIC_Generic8259,
(0x08, 0x00, 0x01) => Self::BaseSystemPeripheral_PIC_Isa,
(0x08, 0x00, 0x02) => Self::BaseSystemPeripheral_PIC_Eisa,
(0x08, 0x00, 0x10) => Self::BaseSystemPeripheral_PIC_IoApic,
(0x08, 0x00, 0x20) => Self::BaseSystemPeripheral_PIC_IoXApic,
(0x08, 0x00, unk_i) => Self::BaseSystemPeripheral_PIC_Unknown(unk_i),
(0x08, 0x01, 0x00) => Self::BaseSystemPeripheral_DmaController_Generic8237,
(0x08, 0x01, 0x01) => Self::BaseSystemPeripheral_DmaController_Isa,
(0x08, 0x01, 0x02) => Self::BaseSystemPeripheral_DmaController_Eisa,
(0x08, 0x01, unk_i) => Self::BaseSystemPeripheral_DmaController_Unknown(unk_i),
(0x08, 0x02, 0x00) => Self::BaseSystemPeripheral_SystemTimer_Generic8254,
(0x08, 0x02, 0x01) => Self::BaseSystemPeripheral_SystemTimer_Isa,
(0x08, 0x02, 0x02) => Self::BaseSystemPeripheral_SystemTimer_Eisa,
(0x08, 0x02, 0x03) => Self::BaseSystemPeripheral_SystemTimer_HighPerformanceEventTimer,
(0x08, 0x02, unk_i) => Self::BaseSystemPeripheral_SystemTimer_Unknown(unk_i),
(0x08, 0x03, 0x00) => Self::BaseSystemPeripheral_RealTimeClockController_GenericRtc,
(0x08, 0x03, 0x01) => Self::BaseSystemPeripheral_RealTimeClockController_Isa,
(0x08, 0x03, unk_i) => Self::BaseSystemPeripheral_RealTimeClockController_Unknown(unk_i),
(0x08, 0x04, 0x00) => Self::BaseSystemPeripheral_GenericPciHotPlugController_Default,
(0x08, 0x04, unk_i) => Self::BaseSystemPeripheral_GenericPciHotPlugController_Unknown(unk_i),
(0x08, 0x05, 0x00) => Self::BaseSystemPeripheral_SdHostController_Default,
(0x08, 0x05, unk_i) => Self::BaseSystemPeripheral_SdHostController_Unknown(unk_i),
(0x08, 0x06, 0x00) => Self::BaseSystemPeripheral_IOMMU_Default,
(0x08, 0x06, unk_i) => Self::BaseSystemPeripheral_IOMMU_Unknown(unk_i),
(0x08, 0x07, 0x00) => Self::BaseSystemPeripheral_RootComplexEventCollector_Default,
(0x08, 0x07, unk_i) => Self::BaseSystemPeripheral_RootComplexEventCollector_Unknown(unk_i),
(0x08, 0x80, 0x00) => Self::BaseSystemPeripheral_Other_VendorSpecific,
(0x08, 0x80, unk_i) => Self::BaseSystemPeripheral_Other_Unknown(unk_i),
(0x08, unk_s, unk_i) => Self::BaseSystemPeripheral_Unknown(unk_s, unk_i),
(0x09, 0x00, 0x00) => Self::InputDevice_KeyboardController_Default,
(0x09, 0x00, unk_i) => Self::InputDevice_KeyboardController_Unknown(unk_i),
(0x09, 0x01, 0x00) => Self::InputDevice_DigitizerPenController_Default,
(0x09, 0x01, unk_i) => Self::InputDevice_DigitizerPenController_Unknown(unk_i),
(0x09, 0x02, 0x00) => Self::InputDevice_MouseController_Default,
(0x09, 0x02, unk_i) => Self::InputDevice_MouseController_Unknown(unk_i),
(0x09, 0x03, 0x00) => Self::InputDevice_ScannerController_Default,
(0x09, 0x03, unk_i) => Self::InputDevice_ScannerController_Unknown(unk_i),
(0x09, 0x04, 0x00) => Self::InputDevice_GameportController_Generic,
(0x09, 0x04, 0x10) => Self::InputDevice_GameportController_LegacyGamePort,
(0x09, 0x04, unk_i) => Self::InputDevice_GameportController_Unknown(unk_i),
(0x09, 0x80, 0x00) => Self::InputDevice_Other_VendorSpecific,
(0x09, 0x80, unk_i) => Self::InputDevice_Other_Unknown(unk_i),
(0x09, unk_s, unk_i) => Self::InputDevice_Unknown(unk_s, unk_i),
(0x0a, 0x00, 0x00) => Self::DockingStation_Generic_VendorSpecific,
(0x0a, 0x00, unk_i) => Self::DockingStation_Generic_Unknown(unk_i),
(0x0a, 0x80, 0x00) => Self::DockingStation_Other_VendorSpecific,
(0x0a, 0x80, unk_i) => Self::DockingStation_Other_Unknown(unk_i),
(0x0a, unk_s, unk_i) => Self::DockingStation_Unknown(unk_s, unk_i),
(0x0b, 0x00, 0x00) => Self::Processor_Intel386_VendorSpecific,
(0x0b, 0x00, unk_i) => Self::Processor_Intel386_Unknown(unk_i),
(0x0b, 0x01, 0x00) => Self::Processor_Intel486_VendorSpecific,
(0x0b, 0x01, unk_i) => Self::Processor_Intel486_Unknown(unk_i),
(0x0b, 0x02, 0x00) => Self::Processor_IntelPentium_VendorSpecific,
(0x0b, 0x02, unk_i) => Self::Processor_IntelPentium_Unknown(unk_i),
(0x0b, 0x10, 0x00) => Self::Processor_DecAlpha_VendorSpecific,
(0x0b, 0x10, unk_i) => Self::Processor_DecAlpha_Unknown(unk_i),
(0x0b, 0x20, 0x00) => Self::Processor_PowerPc_VendorSpecific,
(0x0b, 0x20, unk_i) => Self::Processor_PowerPc_Unknown(unk_i),
(0x0b, 0x30, 0x00) => Self::Processor_Mips_VendorSpecific,
(0x0b, 0x30, unk_i) => Self::Processor_Mips_Unknown(unk_i),
(0x0b, 0x40, 0x00) => Self::Processor_Coprocessor_VendorSpecific,
(0x0b, 0x40, unk_i) => Self::Processor_Coprocessor_Unknown(unk_i),
(0x0b, 0x80, 0x00) => Self::Processor_Other_VendorSpecific,
(0x0b, 0x80, unk_i) => Self::Processor_Other_Unknown(unk_i),
(0x0b, unk_s, unk_i) => Self::Processor_Unknown(unk_s, unk_i),
(0x0c, 0x00, 0x00) => Self::SerialBusController_Ieee1394_FireWire,
(0x0c, 0x00, 0x10) => Self::SerialBusController_Ieee1394_Ieee1394OpenHCI,
(0x0c, 0x00, unk_i) => Self::SerialBusController_Ieee1394_Unknown(unk_i),
(0x0c, 0x01, 0x00) => Self::SerialBusController_ACCESSbus_Default,
(0x0c, 0x01, unk_i) => Self::SerialBusController_ACCESSbus_Unknown(unk_i),
(0x0c, 0x02, 0x00) => Self::SerialBusController_SSA_Default,
(0x0c, 0x02, unk_i) => Self::SerialBusController_SSA_Unknown(unk_i),
(0x0c, 0x03, 0x00) => Self::SerialBusController_USB_UhcsController,
(0x0c, 0x03, 0x10) => Self::SerialBusController_USB_OhcsController,
(0x0c, 0x03, 0x20) => Self::SerialBusController_USB_Usb2Ehci,
(0x0c, 0x03, 0x30) => Self::SerialBusController_USB_Usb3Xhci,
(0x0c, 0x03, 0x40) => Self::SerialBusController_USB_Usb4HostInterface,
(0x0c, 0x03, 0x80) => Self::SerialBusController_USB_UsbGeneric,
(0x0c, 0x03, 0xfe) => Self::SerialBusController_USB_UsbDevice,
(0x0c, 0x03, unk_i) => Self::SerialBusController_USB_Unknown(unk_i),
(0x0c, 0x04, 0x00) => Self::SerialBusController_FibreChannel_Default,
(0x0c, 0x04, unk_i) => Self::SerialBusController_FibreChannel_Unknown(unk_i),
(0x0c, 0x05, 0x00) => Self::SerialBusController_SystemManagementBus_Default,
(0x0c, 0x05, unk_i) => Self::SerialBusController_SystemManagementBus_Unknown(unk_i),
(0x0c, 0x06, 0x00) => Self::SerialBusController_InfiniBandDeprecated_Default,
(0x0c, 0x06, unk_i) => Self::SerialBusController_InfiniBandDeprecated_Unknown(unk_i),
(0x0c, 0x07, 0x00) => Self::SerialBusController_Ipmi_Smic,
(0x0c, 0x07, 0x01) => Self::SerialBusController_Ipmi_KeyboardControllerStyle,
(0x0c, 0x07, 0x02) => Self::SerialBusController_Ipmi_BlockTransferInterface,
(0x0c, 0x07, unk_i) => Self::SerialBusController_Ipmi_Unknown(unk_i),
(0x0c, 0x08, 0x00) => Self::SerialBusController_SERCOS_Default,
(0x0c, 0x08, unk_i) => Self::SerialBusController_SERCOS_Unknown(unk_i),
(0x0c, 0x09, 0x00) => Self::SerialBusController_CANbus_Default,
(0x0c, 0x09, unk_i) => Self::SerialBusController_CANbus_Unknown(unk_i),
(0x0c, 0x0a, 0x00) => Self::SerialBusController_MipiI3C_Default,
(0x0c, 0x0a, unk_i) => Self::SerialBusController_MipiI3C_Unknown(unk_i),
(0x0c, 0x80, 0x00) => Self::SerialBusController_Other_VendorSpecific,
(0x0c, 0x80, unk_i) => Self::SerialBusController_Other_Unknown(unk_i),
(0x0c, unk_s, unk_i) => Self::SerialBusController_Unknown(unk_s, unk_i),
(0x0d, 0x00, 0x00) => Self::WirelessController_iRDA_Default,
(0x0d, 0x00, unk_i) => Self::WirelessController_iRDA_Unknown(unk_i),
(0x0d, 0x01, 0x00) => Self::WirelessController_Radio_ConsumerIR,
(0x0d, 0x01, 0x10) => Self::WirelessController_Radio_UWB,
(0x0d, 0x01, unk_i) => Self::WirelessController_Radio_Unknown(unk_i),
(0x0d, 0x10, 0x00) => Self::WirelessController_RFController_Default,
(0x0d, 0x10, unk_i) => Self::WirelessController_RFController_Unknown(unk_i),
(0x0d, 0x11, 0x00) => Self::WirelessController_Bluetooth_Default,
(0x0d, 0x11, unk_i) => Self::WirelessController_Bluetooth_Unknown(unk_i),
(0x0d, 0x12, 0x00) => Self::WirelessController_Broadband_Default,
(0x0d, 0x12, unk_i) => Self::WirelessController_Broadband_Unknown(unk_i),
(0x0d, 0x20, 0x00) => Self::WirelessController_Wifi802_11A_Default,
(0x0d, 0x20, unk_i) => Self::WirelessController_Wifi802_11A_Unknown(unk_i),
(0x0d, 0x21, 0x00) => Self::WirelessController_Wifi802_11B_Default,
(0x0d, 0x21, unk_i) => Self::WirelessController_Wifi802_11B_Unknown(unk_i),
(0x0d, 0x40, 0x00) => Self::WirelessController_CellularController_Default,
(0x0d, 0x40, unk_i) => Self::WirelessController_CellularController_Unknown(unk_i),
(0x0d, 0x41, 0x00) => Self::WirelessController_CellularControllerWithEthernet_Default,
(0x0d, 0x41, unk_i) => Self::WirelessController_CellularControllerWithEthernet_Unknown(unk_i),
(0x0d, 0x80, 0x00) => Self::WirelessController_Other_VendorSpecific,
(0x0d, 0x80, unk_i) => Self::WirelessController_Other_Unknown(unk_i),
(0x0d, unk_s, unk_i) => Self::WirelessController_Unknown(unk_s, unk_i),
(0x0e, 0x00, 0x00) => Self::IntelligentIoController_IntelligentIoController_VendorSpecific,
(0x0e, 0x00, unk_i) => Self::IntelligentIoController_IntelligentIoController_Unknown(unk_i),
(0x0e, unk_s, unk_i) => Self::IntelligentIoController_Unknown(unk_s, unk_i),
(0x0f, 0x01, 0x00) => Self::SatelliteCommController_Tv_VendorSpecific,
(0x0f, 0x01, unk_i) => Self::SatelliteCommController_Tv_Unknown(unk_i),
(0x0f, 0x02, 0x00) => Self::SatelliteCommController_Audio_VendorSpecific,
(0x0f, 0x02, unk_i) => Self::SatelliteCommController_Audio_Unknown(unk_i),
(0x0f, 0x03, 0x00) => Self::SatelliteCommController_Voice_VendorSpecific,
(0x0f, 0x03, unk_i) => Self::SatelliteCommController_Voice_Unknown(unk_i),
(0x0f, 0x04, 0x00) => Self::SatelliteCommController_Data_VendorSpecific,
(0x0f, 0x04, unk_i) => Self::SatelliteCommController_Data_Unknown(unk_i),
(0x0f, 0x80, 0x00) => Self::SatelliteCommController_Other_VendorSpecific,
(0x0f, 0x80, unk_i) => Self::SatelliteCommController_Other_Unknown(unk_i),
(0x0f, unk_s, unk_i) => Self::SatelliteCommController_Unknown(unk_s, unk_i),
(0x10, 0x00, 0x00) => Self::EncryptionController_NetworkandComputingEncrpytionDecryption_VendorSpecific,
(0x10, 0x00, unk_i) => Self::EncryptionController_NetworkandComputingEncrpytionDecryption_Unknown(unk_i),
(0x10, 0x10, 0x00) => Self::EncryptionController_EntertainmentEncryptionDecryption_VendorSpecific,
(0x10, 0x10, unk_i) => Self::EncryptionController_EntertainmentEncryptionDecryption_Unknown(unk_i),
(0x10, 0x80, 0x00) => Self::EncryptionController_Other_VendorSpecific,
(0x10, 0x80, unk_i) => Self::EncryptionController_Other_Unknown(unk_i),
(0x10, unk_s, unk_i) => Self::EncryptionController_Unknown(unk_s, unk_i),
(0x11, 0x00, 0x00) => Self::SignalProcessingController_DpIoModule_VendorSpecific,
(0x11, 0x00, unk_i) => Self::SignalProcessingController_DpIoModule_Unknown(unk_i),
(0x11, 0x01, 0x00) => Self::SignalProcessingController_PerformanceCounters_VendorSpecific,
(0x11, 0x01, unk_i) => Self::SignalProcessingController_PerformanceCounters_Unknown(unk_i),
(0x11, 0x10, 0x00) => Self::SignalProcessingController_CommunicationSynchronization_VendorSpecific,
(0x11, 0x10, unk_i) => Self::SignalProcessingController_CommunicationSynchronization_Unknown(unk_i),
(0x11, 0x20, 0x00) => Self::SignalProcessingController_ManagementCard_VendorSpecific,
(0x11, 0x20, unk_i) => Self::SignalProcessingController_ManagementCard_Unknown(unk_i),
(0x11, 0x80, 0x00) => Self::SignalProcessingController_Other_VendorSpecific,
(0x11, 0x80, unk_i) => Self::SignalProcessingController_Other_Unknown(unk_i),
(0x11, unk_s, unk_i) => Self::SignalProcessingController_Unknown(unk_s, unk_i),
(0x12, 0x00, 0x00) => Self::ProcessingAccelerator_VendorSpecific_VendorSpecific,
(0x12, 0x00, unk_i) => Self::ProcessingAccelerator_VendorSpecific_Unknown(unk_i),
(0x12, 0x01, 0x00) => Self::ProcessingAccelerator_SniaSdxiController_VendorSpecific,
(0x12, 0x01, unk_i) => Self::ProcessingAccelerator_SniaSdxiController_Unknown(unk_i),
(0x12, unk_s, unk_i) => Self::ProcessingAccelerator_Unknown(unk_s, unk_i),
(0x13, 0x00, 0x00) => Self::NonEssentialInstrumentation_VendorSpecific_VendorSpecific,
(0x13, 0x00, unk_i) => Self::NonEssentialInstrumentation_VendorSpecific_Unknown(unk_i),
(0x13, unk_s, unk_i) => Self::NonEssentialInstrumentation_Unknown(unk_s, unk_i),
(unk_c, unk_s, unk_i) => Self::Unknown(unk_c, unk_s, unk_i),
}
}
pub fn as_codes(&self) -> (u8, u8, u8) {
match self {
Self::Unclassified_Generic_VendorSpecific => (0x00, 0x00, 0x00),
Self::Unclassified_Generic_Unknown(unk_i) => (0x00, 0x00, *unk_i),
Self::Unclassified_VgaCompatible_VendorSpecific => (0x00, 0x01, 0x00),
Self::Unclassified_VgaCompatible_Unknown(unk_i) => (0x00, 0x01, *unk_i),
Self::Unclassified_Unknown(unk_s, unk_i) => (0x00, *unk_s, *unk_i),
Self::MassStorageController_Scsi_VendorSpecific => (0x01, 0x00, 0x00),
Self::MassStorageController_Scsi_StorageDevice => (0x01, 0x00, 0x11),
Self::MassStorageController_Scsi_HostBusAdapter => (0x01, 0x00, 0x12),
Self::MassStorageController_Scsi_StorageDeviceAndController => (0x01, 0x00, 0x13),
Self::MassStorageController_Scsi_StorageDeviceOverPciE => (0x01, 0x00, 0x21),
Self::MassStorageController_Scsi_Unknown(unk_i) => (0x01, 0x00, *unk_i),
Self::MassStorageController_Ide_AtaInterface(if_code) => (0x01, 0x01, *if_code),
Self::MassStorageController_FloppyDisk_VendorSpecific => (0x01, 0x02, 0x00),
Self::MassStorageController_FloppyDisk_Unknown(unk_i) => (0x01, 0x02, *unk_i),
Self::MassStorageController_IpiBus_VendorSpecific => (0x01, 0x03, 0x00),
Self::MassStorageController_IpiBus_Unknown(unk_i) => (0x01, 0x03, *unk_i),
Self::MassStorageController_Raid_VendorSpecific => (0x01, 0x04, 0x00),
Self::MassStorageController_Raid_Unknown(unk_i) => (0x01, 0x04, *unk_i),
Self::MassStorageController_AtaWithAdma_SingleStepping => (0x01, 0x05, 0x20),
Self::MassStorageController_AtaWithAdma_ContinuousOperation => (0x01, 0x05, 0x30),
Self::MassStorageController_AtaWithAdma_Unknown(unk_i) => (0x01, 0x05, *unk_i),
Self::MassStorageController_SerialAta_VendorSpecific => (0x01, 0x06, 0x00),
Self::MassStorageController_SerialAta_Ahci => (0x01, 0x06, 0x01),
Self::MassStorageController_SerialAta_SerialStorageBus => (0x01, 0x06, 0x02),
Self::MassStorageController_SerialAta_Unknown(unk_i) => (0x01, 0x06, *unk_i),
Self::MassStorageController_SerialAttachedScsi_VendorSpecific => (0x01, 0x07, 0x00),
Self::MassStorageController_SerialAttachedScsi_Obsolete => (0x01, 0x07, 0x01),
Self::MassStorageController_SerialAttachedScsi_Unknown(unk_i) => (0x01, 0x07, *unk_i),
Self::MassStorageController_NonVolatileMemory_VendorSpecific => (0x01, 0x08, 0x00),
Self::MassStorageController_NonVolatileMemory_NvmHci => (0x01, 0x08, 0x01),
Self::MassStorageController_NonVolatileMemory_NVMeIoController => (0x01, 0x08, 0x02),
Self::MassStorageController_NonVolatileMemory_NVMeAdministrativeController => (0x01, 0x08, 0x03),
Self::MassStorageController_NonVolatileMemory_Unknown(unk_i) => (0x01, 0x08, *unk_i),
Self::MassStorageController_UniversalFlashStorage_VendorSpecific => (0x01, 0x09, 0x00),
Self::MassStorageController_UniversalFlashStorage_UfsHci => (0x01, 0x09, 0x01),
Self::MassStorageController_UniversalFlashStorage_Unknown(unk_i) => (0x01, 0x09, *unk_i),
Self::MassStorageController_Other_VendorSpecific => (0x01, 0x80, 0x00),
Self::MassStorageController_Other_Unknown(unk_i) => (0x01, 0x80, *unk_i),
Self::MassStorageController_Unknown(unk_s, unk_i) => (0x01, *unk_s, *unk_i),
Self::NetworkController_Ethernet_Default => (0x02, 0x00, 0x00),
Self::NetworkController_Ethernet_Unknown(unk_i) => (0x02, 0x00, *unk_i),
Self::NetworkController_TokenRing_Default => (0x02, 0x01, 0x00),
Self::NetworkController_TokenRing_Unknown(unk_i) => (0x02, 0x01, *unk_i),
Self::NetworkController_Fddi_Default => (0x02, 0x02, 0x00),
Self::NetworkController_Fddi_Unknown(unk_i) => (0x02, 0x02, *unk_i),
Self::NetworkController_Atm_Default => (0x02, 0x03, 0x00),
Self::NetworkController_Atm_Unknown(unk_i) => (0x02, 0x03, *unk_i),
Self::NetworkController_Isdn_Default => (0x02, 0x04, 0x00),
Self::NetworkController_Isdn_Unknown(unk_i) => (0x02, 0x04, *unk_i),
Self::NetworkController_WorldFip_Default => (0x02, 0x05, 0x00),
Self::NetworkController_WorldFip_Unknown(unk_i) => (0x02, 0x05, *unk_i),
Self::NetworkController_PicMg214MultiComputing_PicMg(if_code) => (0x02, 0x06, *if_code),
Self::NetworkController_InfiniBand_Default => (0x02, 0x07, 0x00),
Self::NetworkController_InfiniBand_Unknown(unk_i) => (0x02, 0x07, *unk_i),
Self::NetworkController_Other_VendorSpecific => (0x02, 0x80, 0x00),
Self::NetworkController_Other_Unknown(unk_i) => (0x02, 0x80, *unk_i),
Self::NetworkController_Unknown(unk_s, unk_i) => (0x02, *unk_s, *unk_i),
Self::DisplayController_VgaCompatible_Vga => (0x03, 0x00, 0x00),
Self::DisplayController_VgaCompatible_Ibm8514 => (0x03, 0x00, 0x01),
Self::DisplayController_VgaCompatible_Unknown(unk_i) => (0x03, 0x00, *unk_i),
Self::DisplayController_Xga_Default => (0x03, 0x01, 0x00),
Self::DisplayController_Xga_Unknown(unk_i) => (0x03, 0x01, *unk_i),
Self::DisplayController_NonVga3D_VendorSpecific => (0x03, 0x02, 0x00),
Self::DisplayController_NonVga3D_Unknown(unk_i) => (0x03, 0x02, *unk_i),
Self::DisplayController_Other_VendorSpecific => (0x03, 0x80, 0x00),
Self::DisplayController_Other_Unknown(unk_i) => (0x03, 0x80, *unk_i),
Self::DisplayController_Unknown(unk_s, unk_i) => (0x03, *unk_s, *unk_i),
Self::MultimediaDevice_VideoDevice_VendorSpecific => (0x04, 0x00, 0x00),
Self::MultimediaDevice_VideoDevice_Unknown(unk_i) => (0x04, 0x00, *unk_i),
Self::MultimediaDevice_AudioDevice_VendorSpecific => (0x04, 0x01, 0x00),
Self::MultimediaDevice_AudioDevice_Unknown(unk_i) => (0x04, 0x01, *unk_i),
Self::MultimediaDevice_ComputerTelephony_VendorSpecific => (0x04, 0x02, 0x00),
Self::MultimediaDevice_ComputerTelephony_Unknown(unk_i) => (0x04, 0x02, *unk_i),
Self::MultimediaDevice_HdaCompatible_HighDefinitionAudio => (0x04, 0x03, 0x00),
Self::MultimediaDevice_HdaCompatible_HighDefinitionAudioWithVendorExtension => (0x04, 0x03, 0x80),
Self::MultimediaDevice_HdaCompatible_Unknown(unk_i) => (0x04, 0x03, *unk_i),
Self::MultimediaDevice_Other_VendorSpecific => (0x04, 0x80, 0x00),
Self::MultimediaDevice_Other_Unknown(unk_i) => (0x04, 0x80, *unk_i),
Self::MultimediaDevice_Unknown(unk_s, unk_i) => (0x04, *unk_s, *unk_i),
Self::MemoryController_Ram_Default => (0x05, 0x00, 0x00),
Self::MemoryController_Ram_Unknown(unk_i) => (0x05, 0x00, *unk_i),
Self::MemoryController_Flash_Default => (0x05, 0x01, 0x00),
Self::MemoryController_Flash_Unknown(unk_i) => (0x05, 0x01, *unk_i),
Self::MemoryController_CxlMemory_VendorSpecific => (0x05, 0x02, 0x00),
Self::MemoryController_CxlMemory_Cxl2Specifications => (0x05, 0x02, 0x10),
Self::MemoryController_CxlMemory_Unknown(unk_i) => (0x05, 0x02, *unk_i),
Self::MemoryController_Other_VendorSpecific => (0x05, 0x80, 0x00),
Self::MemoryController_Other_Unknown(unk_i) => (0x05, 0x80, *unk_i),
Self::MemoryController_Unknown(unk_s, unk_i) => (0x05, *unk_s, *unk_i),
Self::Bridge_HostBridge_Default => (0x06, 0x00, 0x00),
Self::Bridge_HostBridge_Unknown(unk_i) => (0x06, 0x00, *unk_i),
Self::Bridge_IsaBridge_Default => (0x06, 0x01, 0x00),
Self::Bridge_IsaBridge_Unknown(unk_i) => (0x06, 0x01, *unk_i),
Self::Bridge_EisaBridge_Default => (0x06, 0x02, 0x00),
Self::Bridge_EisaBridge_Unknown(unk_i) => (0x06, 0x02, *unk_i),
Self::Bridge_McaBridge_Default => (0x06, 0x03, 0x00),
Self::Bridge_McaBridge_Unknown(unk_i) => (0x06, 0x03, *unk_i),
Self::Bridge_PciToPciBridge_PciToPci => (0x06, 0x04, 0x00),
Self::Bridge_PciToPciBridge_SubtractiveDecodePciToPci => (0x06, 0x04, 0x01),
Self::Bridge_PciToPciBridge_Unknown(unk_i) => (0x06, 0x04, *unk_i),
Self::Bridge_PcmciaBridge_Default => (0x06, 0x05, 0x00),
Self::Bridge_PcmciaBridge_Unknown(unk_i) => (0x06, 0x05, *unk_i),
Self::Bridge_NuBusBridge_Default => (0x06, 0x06, 0x00),
Self::Bridge_NuBusBridge_Unknown(unk_i) => (0x06, 0x06, *unk_i),
Self::Bridge_CardBusBridge_Default => (0x06, 0x07, 0x00),
Self::Bridge_CardBusBridge_Unknown(unk_i) => (0x06, 0x07, *unk_i),
Self::Bridge_RacewayBridge_Default => (0x06, 0x08, 0x00),
Self::Bridge_RacewayBridge_Unknown(unk_i) => (0x06, 0x08, *unk_i),
Self::Bridge_SemiTransparentPciToPciBridge_Primary => (0x06, 0x09, 0x40),
Self::Bridge_SemiTransparentPciToPciBridge_Secondary => (0x06, 0x09, 0x80),
Self::Bridge_SemiTransparentPciToPciBridge_Unknown(unk_i) => (0x06, 0x09, *unk_i),
Self::Bridge_InfiniBandtoPciHostBridge_Default => (0x06, 0x0a, 0x00),
Self::Bridge_InfiniBandtoPciHostBridge_Unknown(unk_i) => (0x06, 0x0a, *unk_i),
Self::Bridge_AdvancedSwitchingToPciHostBridge_VendorSpecific => (0x06, 0x0b, 0x00),
Self::Bridge_AdvancedSwitchingToPciHostBridge_AsiSigInterface => (0x06, 0x0b, 0x01),
Self::Bridge_AdvancedSwitchingToPciHostBridge_Unknown(unk_i) => (0x06, 0x0b, *unk_i),
Self::Bridge_Other_VendorSpecific => (0x06, 0x80, 0x00),
Self::Bridge_Other_Unknown(unk_i) => (0x06, 0x80, *unk_i),
Self::Bridge_Unknown(unk_s, unk_i) => (0x06, *unk_s, *unk_i),
Self::CommunicationController_Serial_Uart8250 => (0x07, 0x00, 0x00),
Self::CommunicationController_Serial_Uart16450 => (0x07, 0x00, 0x01),
Self::CommunicationController_Serial_Uart16550 => (0x07, 0x00, 0x02),
Self::CommunicationController_Serial_Uart16650 => (0x07, 0x00, 0x03),
Self::CommunicationController_Serial_Uart16750 => (0x07, 0x00, 0x04),
Self::CommunicationController_Serial_Uart16850 => (0x07, 0x00, 0x05),
Self::CommunicationController_Serial_Uart16950 => (0x07, 0x00, 0x06),
Self::CommunicationController_Serial_Unknown(unk_i) => (0x07, 0x00, *unk_i),
Self::CommunicationController_Parallel_ParallelPort => (0x07, 0x01, 0x00),
Self::CommunicationController_Parallel_BidirectionalParallelPort => (0x07, 0x01, 0x01),
Self::CommunicationController_Parallel_EcpParallelPort => (0x07, 0x01, 0x02),
Self::CommunicationController_Parallel_Ieee1284Controller => (0x07, 0x01, 0x03),
Self::CommunicationController_Parallel_Ieee1284TargetDevice => (0x07, 0x01, 0xfe),
Self::CommunicationController_Parallel_Unknown(unk_i) => (0x07, 0x01, *unk_i),
Self::CommunicationController_MultiportSerialController_Default => (0x07, 0x02, 0x00),
Self::CommunicationController_MultiportSerialController_Unknown(unk_i) => (0x07, 0x02, *unk_i),
Self::CommunicationController_Modem_Generic => (0x07, 0x03, 0x00),
Self::CommunicationController_Modem_Hayes16450Compatible => (0x07, 0x03, 0x01),
Self::CommunicationController_Modem_Hayes16550Compatible => (0x07, 0x03, 0x02),
Self::CommunicationController_Modem_Hayes16650Compatible => (0x07, 0x03, 0x03),
Self::CommunicationController_Modem_Hayes16750Compatible => (0x07, 0x03, 0x04),
Self::CommunicationController_Modem_Unknown(unk_i) => (0x07, 0x03, *unk_i),
Self::CommunicationController_GpibController_Default => (0x07, 0x04, 0x00),
Self::CommunicationController_GpibController_Unknown(unk_i) => (0x07, 0x04, *unk_i),
Self::CommunicationController_Smartcard_Default => (0x07, 0x05, 0x00),
Self::CommunicationController_Smartcard_Unknown(unk_i) => (0x07, 0x05, *unk_i),
Self::CommunicationController_Other_VendorSpecific => (0x07, 0x80, 0x00),
Self::CommunicationController_Other_Unknown(unk_i) => (0x07, 0x80, *unk_i),
Self::CommunicationController_Unknown(unk_s, unk_i) => (0x07, *unk_s, *unk_i),
Self::BaseSystemPeripheral_PIC_Generic8259 => (0x08, 0x00, 0x00),
Self::BaseSystemPeripheral_PIC_Isa => (0x08, 0x00, 0x01),
Self::BaseSystemPeripheral_PIC_Eisa => (0x08, 0x00, 0x02),
Self::BaseSystemPeripheral_PIC_IoApic => (0x08, 0x00, 0x10),
Self::BaseSystemPeripheral_PIC_IoXApic => (0x08, 0x00, 0x20),
Self::BaseSystemPeripheral_PIC_Unknown(unk_i) => (0x08, 0x00, *unk_i),
Self::BaseSystemPeripheral_DmaController_Generic8237 => (0x08, 0x01, 0x00),
Self::BaseSystemPeripheral_DmaController_Isa => (0x08, 0x01, 0x01),
Self::BaseSystemPeripheral_DmaController_Eisa => (0x08, 0x01, 0x02),
Self::BaseSystemPeripheral_DmaController_Unknown(unk_i) => (0x08, 0x01, *unk_i),
Self::BaseSystemPeripheral_SystemTimer_Generic8254 => (0x08, 0x02, 0x00),
Self::BaseSystemPeripheral_SystemTimer_Isa => (0x08, 0x02, 0x01),
Self::BaseSystemPeripheral_SystemTimer_Eisa => (0x08, 0x02, 0x02),
Self::BaseSystemPeripheral_SystemTimer_HighPerformanceEventTimer => (0x08, 0x02, 0x03),
Self::BaseSystemPeripheral_SystemTimer_Unknown(unk_i) => (0x08, 0x02, *unk_i),
Self::BaseSystemPeripheral_RealTimeClockController_GenericRtc => (0x08, 0x03, 0x00),
Self::BaseSystemPeripheral_RealTimeClockController_Isa => (0x08, 0x03, 0x01),
Self::BaseSystemPeripheral_RealTimeClockController_Unknown(unk_i) => (0x08, 0x03, *unk_i),
Self::BaseSystemPeripheral_GenericPciHotPlugController_Default => (0x08, 0x04, 0x00),
Self::BaseSystemPeripheral_GenericPciHotPlugController_Unknown(unk_i) => (0x08, 0x04, *unk_i),
Self::BaseSystemPeripheral_SdHostController_Default => (0x08, 0x05, 0x00),
Self::BaseSystemPeripheral_SdHostController_Unknown(unk_i) => (0x08, 0x05, *unk_i),
Self::BaseSystemPeripheral_IOMMU_Default => (0x08, 0x06, 0x00),
Self::BaseSystemPeripheral_IOMMU_Unknown(unk_i) => (0x08, 0x06, *unk_i),
Self::BaseSystemPeripheral_RootComplexEventCollector_Default => (0x08, 0x07, 0x00),
Self::BaseSystemPeripheral_RootComplexEventCollector_Unknown(unk_i) => (0x08, 0x07, *unk_i),
Self::BaseSystemPeripheral_Other_VendorSpecific => (0x08, 0x80, 0x00),
Self::BaseSystemPeripheral_Other_Unknown(unk_i) => (0x08, 0x80, *unk_i),
Self::BaseSystemPeripheral_Unknown(unk_s, unk_i) => (0x08, *unk_s, *unk_i),
Self::InputDevice_KeyboardController_Default => (0x09, 0x00, 0x00),
Self::InputDevice_KeyboardController_Unknown(unk_i) => (0x09, 0x00, *unk_i),
Self::InputDevice_DigitizerPenController_Default => (0x09, 0x01, 0x00),
Self::InputDevice_DigitizerPenController_Unknown(unk_i) => (0x09, 0x01, *unk_i),
Self::InputDevice_MouseController_Default => (0x09, 0x02, 0x00),
Self::InputDevice_MouseController_Unknown(unk_i) => (0x09, 0x02, *unk_i),
Self::InputDevice_ScannerController_Default => (0x09, 0x03, 0x00),
Self::InputDevice_ScannerController_Unknown(unk_i) => (0x09, 0x03, *unk_i),
Self::InputDevice_GameportController_Generic => (0x09, 0x04, 0x00),
Self::InputDevice_GameportController_LegacyGamePort => (0x09, 0x04, 0x10),
Self::InputDevice_GameportController_Unknown(unk_i) => (0x09, 0x04, *unk_i),
Self::InputDevice_Other_VendorSpecific => (0x09, 0x80, 0x00),
Self::InputDevice_Other_Unknown(unk_i) => (0x09, 0x80, *unk_i),
Self::InputDevice_Unknown(unk_s, unk_i) => (0x09, *unk_s, *unk_i),
Self::DockingStation_Generic_VendorSpecific => (0x0a, 0x00, 0x00),
Self::DockingStation_Generic_Unknown(unk_i) => (0x0a, 0x00, *unk_i),
Self::DockingStation_Other_VendorSpecific => (0x0a, 0x80, 0x00),
Self::DockingStation_Other_Unknown(unk_i) => (0x0a, 0x80, *unk_i),
Self::DockingStation_Unknown(unk_s, unk_i) => (0x0a, *unk_s, *unk_i),
Self::Processor_Intel386_VendorSpecific => (0x0b, 0x00, 0x00),
Self::Processor_Intel386_Unknown(unk_i) => (0x0b, 0x00, *unk_i),
Self::Processor_Intel486_VendorSpecific => (0x0b, 0x01, 0x00),
Self::Processor_Intel486_Unknown(unk_i) => (0x0b, 0x01, *unk_i),
Self::Processor_IntelPentium_VendorSpecific => (0x0b, 0x02, 0x00),
Self::Processor_IntelPentium_Unknown(unk_i) => (0x0b, 0x02, *unk_i),
Self::Processor_DecAlpha_VendorSpecific => (0x0b, 0x10, 0x00),
Self::Processor_DecAlpha_Unknown(unk_i) => (0x0b, 0x10, *unk_i),
Self::Processor_PowerPc_VendorSpecific => (0x0b, 0x20, 0x00),
Self::Processor_PowerPc_Unknown(unk_i) => (0x0b, 0x20, *unk_i),
Self::Processor_Mips_VendorSpecific => (0x0b, 0x30, 0x00),
Self::Processor_Mips_Unknown(unk_i) => (0x0b, 0x30, *unk_i),
Self::Processor_Coprocessor_VendorSpecific => (0x0b, 0x40, 0x00),
Self::Processor_Coprocessor_Unknown(unk_i) => (0x0b, 0x40, *unk_i),
Self::Processor_Other_VendorSpecific => (0x0b, 0x80, 0x00),
Self::Processor_Other_Unknown(unk_i) => (0x0b, 0x80, *unk_i),
Self::Processor_Unknown(unk_s, unk_i) => (0x0b, *unk_s, *unk_i),
Self::SerialBusController_Ieee1394_FireWire => (0x0c, 0x00, 0x00),
Self::SerialBusController_Ieee1394_Ieee1394OpenHCI => (0x0c, 0x00, 0x10),
Self::SerialBusController_Ieee1394_Unknown(unk_i) => (0x0c, 0x00, *unk_i),
Self::SerialBusController_ACCESSbus_Default => (0x0c, 0x01, 0x00),
Self::SerialBusController_ACCESSbus_Unknown(unk_i) => (0x0c, 0x01, *unk_i),
Self::SerialBusController_SSA_Default => (0x0c, 0x02, 0x00),
Self::SerialBusController_SSA_Unknown(unk_i) => (0x0c, 0x02, *unk_i),
Self::SerialBusController_USB_UhcsController => (0x0c, 0x03, 0x00),
Self::SerialBusController_USB_OhcsController => (0x0c, 0x03, 0x10),
Self::SerialBusController_USB_Usb2Ehci => (0x0c, 0x03, 0x20),
Self::SerialBusController_USB_Usb3Xhci => (0x0c, 0x03, 0x30),
Self::SerialBusController_USB_Usb4HostInterface => (0x0c, 0x03, 0x40),
Self::SerialBusController_USB_UsbGeneric => (0x0c, 0x03, 0x80),
Self::SerialBusController_USB_UsbDevice => (0x0c, 0x03, 0xfe),
Self::SerialBusController_USB_Unknown(unk_i) => (0x0c, 0x03, *unk_i),
Self::SerialBusController_FibreChannel_Default => (0x0c, 0x04, 0x00),
Self::SerialBusController_FibreChannel_Unknown(unk_i) => (0x0c, 0x04, *unk_i),
Self::SerialBusController_SystemManagementBus_Default => (0x0c, 0x05, 0x00),
Self::SerialBusController_SystemManagementBus_Unknown(unk_i) => (0x0c, 0x05, *unk_i),
Self::SerialBusController_InfiniBandDeprecated_Default => (0x0c, 0x06, 0x00),
Self::SerialBusController_InfiniBandDeprecated_Unknown(unk_i) => (0x0c, 0x06, *unk_i),
Self::SerialBusController_Ipmi_Smic => (0x0c, 0x07, 0x00),
Self::SerialBusController_Ipmi_KeyboardControllerStyle => (0x0c, 0x07, 0x01),
Self::SerialBusController_Ipmi_BlockTransferInterface => (0x0c, 0x07, 0x02),
Self::SerialBusController_Ipmi_Unknown(unk_i) => (0x0c, 0x07, *unk_i),
Self::SerialBusController_SERCOS_Default => (0x0c, 0x08, 0x00),
Self::SerialBusController_SERCOS_Unknown(unk_i) => (0x0c, 0x08, *unk_i),
Self::SerialBusController_CANbus_Default => (0x0c, 0x09, 0x00),
Self::SerialBusController_CANbus_Unknown(unk_i) => (0x0c, 0x09, *unk_i),
Self::SerialBusController_MipiI3C_Default => (0x0c, 0x0a, 0x00),
Self::SerialBusController_MipiI3C_Unknown(unk_i) => (0x0c, 0x0a, *unk_i),
Self::SerialBusController_Other_VendorSpecific => (0x0c, 0x80, 0x00),
Self::SerialBusController_Other_Unknown(unk_i) => (0x0c, 0x80, *unk_i),
Self::SerialBusController_Unknown(unk_s, unk_i) => (0x0c, *unk_s, *unk_i),
Self::WirelessController_iRDA_Default => (0x0d, 0x00, 0x00),
Self::WirelessController_iRDA_Unknown(unk_i) => (0x0d, 0x00, *unk_i),
Self::WirelessController_Radio_ConsumerIR => (0x0d, 0x01, 0x00),
Self::WirelessController_Radio_UWB => (0x0d, 0x01, 0x10),
Self::WirelessController_Radio_Unknown(unk_i) => (0x0d, 0x01, *unk_i),
Self::WirelessController_RFController_Default => (0x0d, 0x10, 0x00),
Self::WirelessController_RFController_Unknown(unk_i) => (0x0d, 0x10, *unk_i),
Self::WirelessController_Bluetooth_Default => (0x0d, 0x11, 0x00),
Self::WirelessController_Bluetooth_Unknown(unk_i) => (0x0d, 0x11, *unk_i),
Self::WirelessController_Broadband_Default => (0x0d, 0x12, 0x00),
Self::WirelessController_Broadband_Unknown(unk_i) => (0x0d, 0x12, *unk_i),
Self::WirelessController_Wifi802_11A_Default => (0x0d, 0x20, 0x00),
Self::WirelessController_Wifi802_11A_Unknown(unk_i) => (0x0d, 0x20, *unk_i),
Self::WirelessController_Wifi802_11B_Default => (0x0d, 0x21, 0x00),
Self::WirelessController_Wifi802_11B_Unknown(unk_i) => (0x0d, 0x21, *unk_i),
Self::WirelessController_CellularController_Default => (0x0d, 0x40, 0x00),
Self::WirelessController_CellularController_Unknown(unk_i) => (0x0d, 0x40, *unk_i),
Self::WirelessController_CellularControllerWithEthernet_Default => (0x0d, 0x41, 0x00),
Self::WirelessController_CellularControllerWithEthernet_Unknown(unk_i) => (0x0d, 0x41, *unk_i),
Self::WirelessController_Other_VendorSpecific => (0x0d, 0x80, 0x00),
Self::WirelessController_Other_Unknown(unk_i) => (0x0d, 0x80, *unk_i),
Self::WirelessController_Unknown(unk_s, unk_i) => (0x0d, *unk_s, *unk_i),
Self::IntelligentIoController_IntelligentIoController_VendorSpecific => (0x0e, 0x00, 0x00),
Self::IntelligentIoController_IntelligentIoController_Unknown(unk_i) => (0x0e, 0x00, *unk_i),
Self::IntelligentIoController_Unknown(unk_s, unk_i) => (0x0e, *unk_s, *unk_i),
Self::SatelliteCommController_Tv_VendorSpecific => (0x0f, 0x01, 0x00),
Self::SatelliteCommController_Tv_Unknown(unk_i) => (0x0f, 0x01, *unk_i),
Self::SatelliteCommController_Audio_VendorSpecific => (0x0f, 0x02, 0x00),
Self::SatelliteCommController_Audio_Unknown(unk_i) => (0x0f, 0x02, *unk_i),
Self::SatelliteCommController_Voice_VendorSpecific => (0x0f, 0x03, 0x00),
Self::SatelliteCommController_Voice_Unknown(unk_i) => (0x0f, 0x03, *unk_i),
Self::SatelliteCommController_Data_VendorSpecific => (0x0f, 0x04, 0x00),
Self::SatelliteCommController_Data_Unknown(unk_i) => (0x0f, 0x04, *unk_i),
Self::SatelliteCommController_Other_VendorSpecific => (0x0f, 0x80, 0x00),
Self::SatelliteCommController_Other_Unknown(unk_i) => (0x0f, 0x80, *unk_i),
Self::SatelliteCommController_Unknown(unk_s, unk_i) => (0x0f, *unk_s, *unk_i),
Self::EncryptionController_NetworkandComputingEncrpytionDecryption_VendorSpecific => (0x10, 0x00, 0x00),
Self::EncryptionController_NetworkandComputingEncrpytionDecryption_Unknown(unk_i) => (0x10, 0x00, *unk_i),
Self::EncryptionController_EntertainmentEncryptionDecryption_VendorSpecific => (0x10, 0x10, 0x00),
Self::EncryptionController_EntertainmentEncryptionDecryption_Unknown(unk_i) => (0x10, 0x10, *unk_i),
Self::EncryptionController_Other_VendorSpecific => (0x10, 0x80, 0x00),
Self::EncryptionController_Other_Unknown(unk_i) => (0x10, 0x80, *unk_i),
Self::EncryptionController_Unknown(unk_s, unk_i) => (0x10, *unk_s, *unk_i),
Self::SignalProcessingController_DpIoModule_VendorSpecific => (0x11, 0x00, 0x00),
Self::SignalProcessingController_DpIoModule_Unknown(unk_i) => (0x11, 0x00, *unk_i),
Self::SignalProcessingController_PerformanceCounters_VendorSpecific => (0x11, 0x01, 0x00),
Self::SignalProcessingController_PerformanceCounters_Unknown(unk_i) => (0x11, 0x01, *unk_i),
Self::SignalProcessingController_CommunicationSynchronization_VendorSpecific => (0x11, 0x10, 0x00),
Self::SignalProcessingController_CommunicationSynchronization_Unknown(unk_i) => (0x11, 0x10, *unk_i),
Self::SignalProcessingController_ManagementCard_VendorSpecific => (0x11, 0x20, 0x00),
Self::SignalProcessingController_ManagementCard_Unknown(unk_i) => (0x11, 0x20, *unk_i),
Self::SignalProcessingController_Other_VendorSpecific => (0x11, 0x80, 0x00),
Self::SignalProcessingController_Other_Unknown(unk_i) => (0x11, 0x80, *unk_i),
Self::SignalProcessingController_Unknown(unk_s, unk_i) => (0x11, *unk_s, *unk_i),
Self::ProcessingAccelerator_VendorSpecific_VendorSpecific => (0x12, 0x00, 0x00),
Self::ProcessingAccelerator_VendorSpecific_Unknown(unk_i) => (0x12, 0x00, *unk_i),
Self::ProcessingAccelerator_SniaSdxiController_VendorSpecific => (0x12, 0x01, 0x00),
Self::ProcessingAccelerator_SniaSdxiController_Unknown(unk_i) => (0x12, 0x01, *unk_i),
Self::ProcessingAccelerator_Unknown(unk_s, unk_i) => (0x12, *unk_s, *unk_i),
Self::NonEssentialInstrumentation_VendorSpecific_VendorSpecific => (0x13, 0x00, 0x00),
Self::NonEssentialInstrumentation_VendorSpecific_Unknown(unk_i) => (0x13, 0x00, *unk_i),
Self::NonEssentialInstrumentation_Unknown(unk_s, unk_i) => (0x13, *unk_s, *unk_i),
Self::Unknown(unk_c, unk_s, unk_i) => (*unk_c, *unk_s, *unk_i),
}
}
}
impl From<PciDeviceInterfaceFunc> for u8 {
fn from(value: PciDeviceInterfaceFunc) -> Self {
value.as_codes().2
}
}
#[cfg(not(feature = "pci_interface_func_debug_strings"))]
impl std::fmt::Debug for PciDeviceInterfaceFunc {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let v = self.as_codes();
write!(f, "(clss:{:02X}h subc:{:02X}h if:{:02X}h)", v.0, v.1, v.2)
}
}