| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | // #pragma once is not used here because this file is included multiple times in the same compilation unit |
| 4 | |
| 5 | // PCI Class Codes |
| 6 | // _X(CLASS, SUBCLASS, PROGIF, NAME) |
| 7 | // do note that the values are in hex, not decimal, although the '0x' prefix is not present |
| 8 | |
| 9 | #ifndef _X |
| 10 | #error "pci_classes.h must be included with _X defined" |
| 11 | #endif |
| 12 | |
| 13 | _X(0x00, 0x00, 0x00, "Unclassified device" ) |
| 14 | _X(0x00, 0x01, 0x00, "VGA compatible device" ) |
| 15 | _X(0x01, 0x00, 0x00, "SCSI bus controller" ) |
| 16 | _X(0x01, 0x01, 0x00, "IDE Controller, ISA Compatibility mode" ) |
| 17 | _X(0x01, 0x01, 0x05, "IDE Controller, PCI native mode" ) |
| 18 | _X(0x01, 0x01, 0x0a, "IDE Controller, ISA Compatibility mode, supports both channels switched to PCI native mode" ) |
| 19 | _X(0x01, 0x01, 0x0f, "IDE Controller, PCI native mode controller, supports both channels switched to ISA compatibility mode" ) |
| 20 | _X(0x01, 0x01, 0x80, "IDE Controller, ISA Compatibility mode-only controller, supports bus mastering" ) |
| 21 | _X(0x01, 0x01, 0x85, "IDE Controller, PCI native mode-only controller, supports bus mastering" ) |
| 22 | _X(0x01, 0x01, 0x8a, "IDE Controller, ISA Compatibility mode controller, supports both channels switched to PCI native mode, supports bus mastering" ) |
| 23 | _X(0x01, 0x01, 0x8f, "IDE Controller, PCI native mode controller, supports both channels switched to ISA compatibility mode, supports bus mastering " ) |
| 24 | _X(0x01, 0x02, 0x00, "Floppy disk controller" ) |
| 25 | _X(0x01, 0x03, 0x00, "IPI bus controller" ) |
| 26 | _X(0x01, 0x04, 0x00, "RAID bus controller" ) |
| 27 | _X(0x01, 0x05, 0x20, "ATA controller" ) |
| 28 | _X(0x01, 0x06, 0x00, "SATA controller" ) |
| 29 | _X(0x01, 0x07, 0x00, "Serial Attached SCSI controller" ) |
| 30 | _X(0x01, 0x08, 0x00, "NVMHCI controller" ) |
| 31 | _X(0x01, 0x08, 0x01, "NVM Express controller" ) |
| 32 | _X(0x01, 0x80, 0x00, "Other mass storage controller" ) |
| 33 | _X(0x02, 0x00, 0x00, "Ethernet controller" ) |
| 34 | _X(0x02, 0x07, 0x00, "InfiniBand controller" ) |
| 35 | _X(0x02, 0x80, 0x00, "Other network controller" ) |
| 36 | _X(0x03, 0x00, 0x00, "VGA compatible controller" ) |
| 37 | _X(0x03, 0x00, 0x01, "8514 controller" ) |
| 38 | _X(0x03, 0x01, 0x00, "XGA controller" ) |
| 39 | _X(0x03, 0x02, 0x00, "3D controller" ) |
| 40 | _X(0x03, 0x80, 0x00, "Other display controller" ) |
| 41 | _X(0x04, 0x00, 0x00, "Multimedia video controller" ) |
| 42 | _X(0x04, 0x01, 0x00, "Multimedia audio controller" ) |
| 43 | _X(0x04, 0x02, 0x00, "Computer telephony device" ) |
| 44 | _X(0x04, 0x03, 0x00, "Audio device" ) |
| 45 | _X(0x04, 0x80, 0x00, "Other multimedia controller" ) |
| 46 | _X(0x05, 0x00, 0x00, "RAM memory" ) |
| 47 | _X(0x05, 0x01, 0x00, "FLASH memory" ) |
| 48 | _X(0x05, 0x80, 0x00, "Other memory controller" ) |
| 49 | _X(0x06, 0x00, 0x00, "Host bridge" ) |
| 50 | _X(0x06, 0x01, 0x00, "ISA bridge" ) |
| 51 | _X(0x06, 0x02, 0x00, "EISA bridge" ) |
| 52 | _X(0x06, 0x03, 0x00, "MCA bridge" ) |
| 53 | _X(0x06, 0x04, 0x00, "PCI-to-PCI bridge" ) |
| 54 | _X(0x06, 0x04, 0x01, "PCI-to-PCI bridge (subtractive decoding)" ) |
| 55 | _X(0x06, 0x05, 0x00, "PCMCIA bridge" ) |
| 56 | _X(0x06, 0x06, 0x00, "NuBus bridge" ) |
| 57 | _X(0x06, 0x07, 0x00, "CardBus bridge" ) |
| 58 | _X(0x06, 0x08, 0x00, "RACEway bridge" ) |
| 59 | _X(0x06, 0x09, 0x40, "Semi-transparent PCI-to-PCI bridge, primary side" ) |
| 60 | _X(0x06, 0x09, 0x80, "Semi-transparent PCI-to-PCI bridge, secondary side" ) |
| 61 | _X(0x06, 0x0a, 0x00, "InfiniBand to PCI host bridge" ) |
| 62 | _X(0x06, 0x80, 0x00, "Other bridge device" ) |
| 63 | _X(0x07, 0x00, 0x00, "Serial controller" ) |
| 64 | _X(0x07, 0x01, 0x00, "Parallel controller" ) |
| 65 | _X(0x07, 0x05, 0x00, "Smart Card Controller" ) |
| 66 | _X(0x07, 0x80, 0x00, "Other communication controller" ) |
| 67 | _X(0x08, 0x00, 0x00, "Generic 8259 PIC" ) |
| 68 | _X(0x08, 0x00, 0x01, "ISA PIC" ) |
| 69 | _X(0x08, 0x00, 0x02, "EISA PIC" ) |
| 70 | _X(0x08, 0x00, 0x10, "I/O APIC" ) |
| 71 | _X(0x08, 0x00, 0x20, "I/O(x) APIC" ) |
| 72 | _X(0x08, 0x01, 0x00, "Generic 8237 DMA controller" ) |
| 73 | _X(0x08, 0x01, 0x01, "ISA DMA controller" ) |
| 74 | _X(0x08, 0x01, 0x02, "EISA DMA controller" ) |
| 75 | _X(0x08, 0x02, 0x00, "Generic 8254 system timer" ) |
| 76 | _X(0x08, 0x02, 0x01, "ISA system timer" ) |
| 77 | _X(0x08, 0x02, 0x02, "EISA system timer" ) |
| 78 | _X(0x08, 0x02, 0x03, "HPET" ) |
| 79 | _X(0x08, 0x03, 0x00, "Generic RTC controller" ) |
| 80 | _X(0x08, 0x03, 0x01, "ISA RTC controller" ) |
| 81 | _X(0x08, 0x04, 0x00, "Generic PCI Hot-plug controller" ) |
| 82 | _X(0x08, 0x05, 0x00, "SD Host controller" ) |
| 83 | _X(0x08, 0x06, 0x00, "IOMMU" ) |
| 84 | _X(0x08, 0x80, 0x00, "Other system peripheral" ) |
| 85 | _X(0x09, 0x00, 0x00, "Keyboard controller" ) |
| 86 | _X(0x09, 0x01, 0x00, "Digitizer Pen" ) |
| 87 | _X(0x09, 0x02, 0x00, "Mouse controller" ) |
| 88 | _X(0x09, 0x03, 0x00, "Scanner controller" ) |
| 89 | _X(0x09, 0x04, 0x00, "Gameport controller" ) |
| 90 | _X(0x09, 0x80, 0x00, "Other input controller" ) |
| 91 | _X(0x0a, 0x00, 0x00, "Generic Docking Station" ) |
| 92 | _X(0x0a, 0x80, 0x00, "Other type of docking station" ) |
| 93 | _X(0x0b, 0x00, 0x00, "CPU - 386" ) |
| 94 | _X(0x0b, 0x01, 0x00, "CPU - 486" ) |
| 95 | _X(0x0b, 0x02, 0x00, "CPU - Pentium" ) |
| 96 | _X(0x0b, 0x10, 0x00, "Alpha" ) |
| 97 | _X(0x0b, 0x20, 0x00, "PowerPC" ) |
| 98 | _X(0x0b, 0x30, 0x00, "MIPS" ) |
| 99 | _X(0x0b, 0x40, 0x00, "Co-processor" ) |
| 100 | _X(0x0b, 0x80, 0x00, "Other processor" ) |
| 101 | _X(0x0c, 0x00, 0x00, "FireWire (IEEE 1394)" ) |
| 102 | _X(0x0c, 0x03, 0x00, "USB controller (UHCI)" ) |
| 103 | _X(0x0c, 0x03, 0x10, "USB controller (OHCI)" ) |
| 104 | _X(0x0c, 0x03, 0x20, "USB controller (EHCI)" ) |
| 105 | _X(0x0c, 0x03, 0x30, "USB controller (XHCI)" ) |
| 106 | _X(0x0c, 0x03, 0x80, "USB controller (Unspecified)" ) |
| 107 | _X(0x0c, 0x03, 0xfe, "USB device" ) |
| 108 | _X(0x0c, 0x04, 0x00, "Fibre controller" ) |
| 109 | _X(0x0c, 0x05, 0x00, "SMBus" ) |
| 110 | _X(0x0c, 0x06, 0x00, "InfiniBand" ) |
| 111 | _X(0x0c, 0x07, 0x00, "IPMI SMIC interface" ) |
| 112 | _X(0x0c, 0x07, 0x01, "IPMI Kybd controller style interface" ) |
| 113 | _X(0x0c, 0x07, 0x02, "IPMI Block transfer interface" ) |
| 114 | _X(0x0c, 0x08, 0x00, "SERCOS interface standard (IEC 61491)" ) |
| 115 | _X(0x0c, 0x09, 0x40, "CANbus" ) |
| 116 | _X(0x0c, 0x80, 0x00, "Other system peripheral" ) |
| 117 | _X(0x0d, 0x00, 0x00, "iRDA compatible controller" ) |
| 118 | _X(0x0d, 0x01, 0x00, "Consumer IR controller" ) |
| 119 | _X(0x0d, 0x10, 0x00, "RF controller" ) |
| 120 | _X(0x0d, 0x11, 0x00, "Bluetooth controller" ) |
| 121 | _X(0x0d, 0x12, 0x00, "Broadband controller" ) |
| 122 | _X(0x0d, 0x20, 0x00, "Ethernet (802.11a)" ) |
| 123 | _X(0x0d, 0x21, 0x00, "Ethernet (802.11b)" ) |
| 124 | _X(0x0d, 0x80, 0x00, "Other network controller" ) |
| 125 | |