之前有找到过一下class code分类,收集起来以备用。
可能在写PCI scan的程序时候,能排的上用场吧。
另外提供一个PCI Device Scan程序的头文件
pci_c_head.h
,以供参考.
Class Code Table
Class Codes
Class
|
Description
|
0x00
|
Devices built before class codes (i.e. pre PCI 2.0)
|
0x01
|
Mass storage controller
|
0x02
|
Network controller
|
0x03
|
Display controller
|
0x04
|
Multimedia device
|
0x05
|
Memory Controller
|
0x06
|
Bridge Device
|
0x07
|
Simple communications controllers
|
0x08
|
Base system peripherals
|
0x09
|
Inupt devices
|
0x0A
|
Docking Stations
|
0x0B
|
Processorts
|
0x0C
|
Serial bus controllers
|
0x0D-0xFE
|
Reserved
|
0xFF
|
Misc
|
Class Code 0: Pre 2.0
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
All devices other than VGA
|
0x01
|
0x01
|
VGA device
|
Class Code 1: Mass Storage Controllers
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
SCSI Controller
|
0x01
|
0xXX
|
IDE controller. The
Prog I/F
is defined as follows:
bits
|
Desc
|
0
|
Operating mode (primary)
|
1
|
Programmable indicator (primary)
|
2
|
Operating mode (secondary)
|
3
|
Programmable indicator (secondary)
|
6..4
|
Reserved (zero)
|
7
|
Master IDE device
|
|
0x02
|
0x00
|
Floppy disk controller
|
0x03
|
0x00
|
IPI controller
|
0x04
|
0x00
|
RAID controller
|
0x80
|
0x00
|
Other mass storage controller
|
Class Code 2: Network Controllers
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Ethernet controller
|
0x01
|
0x00
|
Token ring
|
0x02
|
0x00
|
FDDI controller
|
0x03
|
0x00
|
ATM controller
|
0x80
|
0x00
|
Other network conteroller
|
Class Code 3: Display Controllers
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
VGA compatable controller. Has mapping for 0xA0000..0xBFFFF and io addresses 0x3B0..0x3BB.
|
0x01
|
8514 compatable
|
0x01
|
0x00
|
XGA controller
|
0x80
|
0x80
|
Other display controller
|
Class Code 4: Multimedia Devices
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Video device
|
0x01
|
0x00
|
Audio device
|
0x80
|
0x00
|
Other multimedia device
|
Class Code 5: Memory Controllers
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
RAM controller
|
0x01
|
0x00
|
Flash memory controller
|
0x80
|
0x00
|
Other memory controller
|
Class Code 6: Bridge Devices
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Host/PCI bridge
|
0x01
|
0x00
|
PCI/ISA bridge
|
0x02
|
0x00
|
PCI/EISA bridge
|
0x03
|
0x00
|
PCI/Micro Channel bridge
|
0x04
|
0x00
|
PCI/PCI bridge
|
0x05
|
0x00
|
PCI/PCMCIA bridge
|
0x06
|
0x00
|
PCI/NuBus bridge
|
0x07
|
0x00
|
PCI/CardBus bridge
|
0x80
|
0x00
|
Other bridge type
|
Class Code 7: Simple Communications Controllers
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Generic XT compatable serial controller
|
0x01
|
16450 compatable serial controller
|
0x02
|
16550 compatable serial controller
|
0x01
|
0x00
|
Parallel port
|
0x01
|
Bi-directional parallel port
|
0x02
|
ECP 1.X parallel port
|
0x80
|
0x00
|
Other commonications device
|
Class Code 8: Base System Peripherals
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Generic 8259 programmable interrupt controller (PIC)
|
0x01
|
ISA PIC
|
0x02
|
EISA PIC
|
0x01
|
0x00
|
Generic 8237 DMA controller
|
0x01
|
ISA DMA controller
|
0x02
|
EISA DMA controller
|
0x02
|
0x00
|
Generic 8254 timer
|
0x01
|
ISA system timer
|
0x02
|
EISA system timer
|
0x03
|
0x00
|
Generic RTC controller
|
0x01
|
ISA RTC controller
|
0x80
|
0x00
|
Other system peripheral
|
Class Code 9: Input Devices
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Keyboard controller
|
0x01
|
0x00
|
Digitizer (pen)
|
0x02
|
0x00
|
Mouse controller
|
0x80
|
0x00
|
Other input controller
|
Class Code A: Docking Stations
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Generic docking station
|
0x80
|
0x00
|
Other type of docking station
|
Class Code B: Processors
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
386
|
0x01
|
0x00
|
486
|
0x02
|
0x00
|
Pentium
|
0x10
|
0x00
|
Alpha
|
0x20
|
0x00
|
PowerPC
|
0x40
|
0x00
|
Co-Processor
|
Class Code C: Serial Bus Controllers
Sub-Class
|
Prog. I/F
|
Description
|
0x00
|
0x00
|
Firewire (IEEE 1394)
|
0x01
|
0x00
|
ACCESS bus
|
0x02
|
0x00
|
SSA (Serial Storage Architecture)
|
0x03
|
0x00
|
USB (Universal Serial Bus)
|