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 | |