[OpenBIOS] r439 - in openbios-devel: drivers include/openbios

svn at openbios.org svn at openbios.org
Mon Feb 2 18:40:30 CET 2009


Author: blueswirl
Date: 2009-02-02 18:40:29 +0100 (Mon, 02 Feb 2009)
New Revision: 439

Modified:
   openbios-devel/drivers/pci.c
   openbios-devel/drivers/pci_database.c
   openbios-devel/include/openbios/pci.h
Log:
Add #defines for PCI classes and subclasses

Modified: openbios-devel/drivers/pci.c
===================================================================
--- openbios-devel/drivers/pci.c	2009-02-02 17:06:37 UTC (rev 438)
+++ openbios-devel/drivers/pci.c	2009-02-02 17:40:29 UTC (rev 439)
@@ -734,7 +734,9 @@
                         ob_pci_configure(addr, &config, mem_base, io_base);
 			ob_pci_add_properties(addr, pci_dev, &config);
 
-			if (ccode == 0x0600 || ccode == 0x0604) {
+                        if (class == PCI_BASE_CLASS_BRIDGE &&
+                            (subclass == PCI_SUBCLASS_BRIDGE_HOST ||
+                             subclass == PCI_SUBCLASS_BRIDGE_PCI)) {
 				/* host or bridge */
 				free(*path);
 				*path = strdup(config.path);

Modified: openbios-devel/drivers/pci_database.c
===================================================================
--- openbios-devel/drivers/pci_database.c	2009-02-02 17:06:37 UTC (rev 438)
+++ openbios-devel/drivers/pci_database.c	2009-02-02 17:40:29 UTC (rev 439)
@@ -63,35 +63,43 @@
 
 static const pci_subclass_t mass_subclass[] = {
     {
-        0x00, "SCSI bus controller",        NULL,  NULL, NULL,
+        PCI_SUBCLASS_STORAGE_SCSI, "SCSI bus controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "IDE controller",             "ide", ide_devices, NULL,
+        PCI_SUBCLASS_STORAGE_IDE, "IDE controller",
+        "ide", ide_devices, NULL,
         NULL, NULL,
     },
     {
-        0x02, "Floppy disk controller",     NULL,  NULL, NULL,
+        PCI_SUBCLASS_STORAGE_FLOPPY, "Floppy disk controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x03, "IPI bus controller",         NULL,  NULL, NULL,
+        PCI_SUBCLASS_STORAGE_IPI, "IPI bus controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x04, "RAID controller",            NULL,  NULL, NULL,
+        PCI_SUBCLASS_STORAGE_RAID, "RAID controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x05, "ATA controller",             "ata", NULL, NULL,
+        PCI_SUBCLASS_STORAGE_ATA, "ATA controller",
+        "ata", NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc mass-storage controller", NULL, NULL, NULL,
+        PCI_SUBCLASS_STORAGE_OTHER, "misc mass-storage controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
@@ -113,39 +121,48 @@
 
 static const pci_subclass_t net_subclass[] = {
     {
-        0x00, "ethernet controller",       NULL, eth_devices, NULL,
+        PCI_SUBCLASS_NETWORK_ETHERNET, "ethernet controller",
+        NULL, eth_devices, NULL,
         eth_config_cb, "ethernet",
     },
     {
-        0x01, "token ring controller",      NULL,  NULL, NULL,
+        PCI_SUBCLASS_NETWORK_TOKEN_RING, "token ring controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "FDDI controller",            NULL,  NULL, NULL,
+        PCI_SUBCLASS_NETWORK_FDDI, "FDDI controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x03, "ATM controller",             NULL,  NULL, NULL,
+        PCI_SUBCLASS_NETWORK_ATM, "ATM controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x04, "ISDN controller",            NULL,  NULL, NULL,
+        PCI_SUBCLASS_NETWORK_ISDN, "ISDN controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x05, "WordFip controller",         NULL,  NULL, NULL,
+        PCI_SUBCLASS_NETWORK_WORDFIP, "WordFip controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x06, "PICMG 2.14 controller",      NULL,  NULL, NULL,
+        PCI_SUBCLASS_NETWORK_PICMG214, "PICMG 2.14 controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc network controller",    NULL,  NULL, NULL,
+        PCI_SUBCLASS_NETWORK_OTHER, "misc network controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
@@ -188,61 +205,74 @@
 
 static const pci_subclass_t displ_subclass[] = {
     {
-        0x00, "display controller",         NULL,  NULL, vga_iface,
+        PCI_SUBCLASS_DISPLAY_VGA, "display controller",
+        NULL, NULL, vga_iface,
         NULL, NULL,
     },
     {
-        0x01, "XGA display controller",     NULL,  NULL, NULL,
+        PCI_SUBCLASS_DISPLAY_XGA, "XGA display controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "3D display controller",      NULL,  NULL, NULL,
+        PCI_SUBCLASS_DISPLAY_3D, "3D display controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc display controller",    NULL,  NULL, NULL,
+        PCI_SUBCLASS_DISPLAY_OTHER, "misc display controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t media_subclass[] = {
     {
-        0x00, "video device",              NULL,  NULL, NULL,
+        PCI_SUBCLASS_MULTIMEDIA_VIDEO, "video device",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "audio device",              NULL,  NULL, NULL,
+        PCI_SUBCLASS_MULTIMEDIA_AUDIO, "audio device",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "computer telephony device", NULL,  NULL, NULL,
+        PCI_SUBCLASS_MULTIMEDIA_PHONE, "computer telephony device",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc multimedia device",    NULL,  NULL, NULL,
+        PCI_SUBCLASS_MULTIMEDIA_OTHER, "misc multimedia device",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t mem_subclass[] = {
     {
-        0x00, "RAM controller",             NULL,  NULL, NULL,
+        PCI_SUBCLASS_MEMORY_RAM, "RAM controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "flash controller",           NULL,  NULL, NULL,
+        PCI_SUBCLASS_MEMORY_FLASH, "flash controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
@@ -331,55 +361,68 @@
 
 static const pci_subclass_t bridg_subclass[] = {
     {
-        0x00, "PCI host bridge",           NULL,  hbrg_devices, NULL,
+        PCI_SUBCLASS_BRIDGE_HOST, "PCI host bridge",
+        NULL, hbrg_devices, NULL,
         NULL, NULL,
     },
     {
-        0x01, "ISA bridge",                NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_ISA, "ISA bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "EISA bridge",               NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_EISA, "EISA bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x03, "MCA bridge",                NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_MC, "MCA bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x04, "PCI-to-PCI bridge",         NULL,  PCIbrg_devices, NULL,
+        PCI_SUBCLASS_BRIDGE_PCI, "PCI-to-PCI bridge",
+        NULL, PCIbrg_devices, NULL,
         NULL, NULL,
     },
     {
-        0x05, "PCMCIA bridge",             NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_PCMCIA, "PCMCIA bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x06, "NUBUS bridge",              NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_NUBUS, "NUBUS bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x07, "cardbus bridge",            NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_CARDBUS, "cardbus bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x08, "raceway bridge",            NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_RACEWAY, "raceway bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x09, "semi-transparent PCI-to-PCI bridge", NULL, NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_PCI_SEMITP, "semi-transparent PCI-to-PCI bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x0A, "infiniband-to-PCI bridge",  NULL,  NULL, NULL,
+        PCI_SUBCLASS_BRIDGE_IB_PCI, "infiniband-to-PCI bridge",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc PCI bridge",           NULL,  miscbrg_devices, NULL,
+        PCI_SUBCLASS_BRIDGE_OTHER, "misc PCI bridge",
+        NULL, miscbrg_devices, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
@@ -475,35 +518,43 @@
 
 static const pci_subclass_t comm_subclass[] = {
     {
-        0x00, "serial controller",          NULL, NULL, serial_iface,
+        PCI_SUBCLASS_COMMUNICATION_SERIAL, "serial controller",
+        NULL, NULL, serial_iface,
         NULL, NULL,
     },
     {
-        0x01, "parallel port",             NULL, NULL, par_iface,
+        PCI_SUBCLASS_COMMUNICATION_PARALLEL, "parallel port",
+        NULL, NULL, par_iface,
         NULL, NULL,
     },
     {
-        0x02, "multiport serial controller", NULL, NULL, NULL,
+        PCI_SUBCLASS_COMMUNICATION_MULTISERIAL, "multiport serial controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x03, "modem",                     NULL, NULL, modem_iface,
+        PCI_SUBCLASS_COMMUNICATION_MODEM, "modem",
+        NULL, NULL, modem_iface,
         NULL, NULL,
     },
     {
-        0x04, "GPIB controller",           NULL, NULL, NULL,
+        PCI_SUBCLASS_COMMUNICATION_GPIB, "GPIB controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x05, "smart card",                NULL, NULL, NULL,
+        PCI_SUBCLASS_COMMUNICATION_SC, "smart card",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc communication device", NULL, NULL, NULL,
+        PCI_SUBCLASS_COMMUNICATION_OTHER, "misc communication device",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL, NULL, NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
@@ -613,112 +664,137 @@
 
 static const pci_subclass_t sys_subclass[] = {
     {
-        0x00, "PIC",                       NULL, NULL, pic_iface,
+        PCI_SUBCLASS_SYSTEM_PIC, "PIC",
+        NULL, NULL, pic_iface,
         NULL, NULL,
     },
     {
-        0x01, "DMA controller",             NULL, NULL, dma_iface,
+        PCI_SUBCLASS_SYSTEM_DMA, "DMA controller",
+        NULL, NULL, dma_iface,
         NULL, NULL,
     },
     {
-        0x02, "system timer",              NULL, NULL, tmr_iface,
+        PCI_SUBCLASS_SYSTEM_TIMER, "system timer",
+        NULL, NULL, tmr_iface,
         NULL, NULL,
     },
     {
-        0x03, "RTC controller",             NULL, NULL, rtc_iface,
+        PCI_SUBCLASS_SYSTEM_RTC, "RTC controller",
+        NULL, NULL, rtc_iface,
         NULL, NULL,
     },
     {
-        0x04, "PCI hotplug controller",     NULL, NULL, NULL,
+        PCI_SUBCLASS_SYSTEM_PCI_HOTPLUG, "PCI hotplug controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc system peripheral",    NULL, sys_devices, NULL,
+        PCI_SUBCLASS_SYSTEM_OTHER, "misc system peripheral",
+        NULL, sys_devices, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t inp_subclass[] = {
     {
-        0x00, "keyboard controller",        NULL, NULL, NULL,
+        PCI_SUBCLASS_INPUT_KEYBOARD, "keyboard controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "digitizer",                 NULL, NULL, NULL,
+        PCI_SUBCLASS_INPUT_PEN, "digitizer",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "mouse controller",           NULL, NULL, NULL,
+        PCI_SUBCLASS_INPUT_MOUSE, "mouse controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x03, "scanner controller",         NULL, NULL, NULL,
+        PCI_SUBCLASS_INPUT_SCANNER, "scanner controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x04, "gameport controller",        NULL, NULL, NULL,
+        PCI_SUBCLASS_INPUT_GAMEPORT, "gameport controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc input device",         NULL, NULL, NULL,
+        PCI_SUBCLASS_INPUT_OTHER, "misc input device",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t dock_subclass[] = {
     {
-        0x00, "generic docking station",   NULL, NULL,  NULL,
+        PCI_SUBCLASS_DOCKING_GENERIC, "generic docking station",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc docking station",      NULL, NULL,  NULL,
+        PCI_SUBCLASS_DOCKING_OTHER, "misc docking station",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t cpu_subclass[] = {
     {
-        0x00, "i386 processor",            NULL, NULL,  NULL,
+        PCI_SUBCLASS_PROCESSOR_386, "i386 processor",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "i486 processor",            NULL, NULL,  NULL,
+        PCI_SUBCLASS_PROCESSOR_486, "i486 processor",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "pentium processor",         NULL, NULL,  NULL,
+        PCI_SUBCLASS_PROCESSOR_PENTIUM, "pentium processor",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x10, "alpha processor",           NULL, NULL,  NULL,
+        PCI_SUBCLASS_PROCESSOR_ALPHA, "alpha processor",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x20, "PowerPC processor",         NULL, NULL,  NULL,
+        PCI_SUBCLASS_PROCESSOR_POWERPC, "PowerPC processor",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x30, "MIPS processor",            NULL, NULL,  NULL,
+        PCI_SUBCLASS_PROCESSOR_MIPS, "MIPS processor",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x40, "co-processor",              NULL, NULL,  NULL,
+        PCI_SUBCLASS_PROCESSOR_CO, "co-processor",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
@@ -771,147 +847,181 @@
 
 static const pci_subclass_t ser_subclass[] = {
     {
-        0x00, "Firewire bus controller",    "ieee1394", NULL, NULL,
+        PCI_SUBCLASS_SERIAL_FIREWIRE, "Firewire bus controller",
+        "ieee1394", NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "ACCESS bus controller",      NULL, NULL,  NULL,
+        PCI_SUBCLASS_SERIAL_ACCESS, "ACCESS bus controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "SSA controller",             NULL, NULL,  NULL,
+        PCI_SUBCLASS_SERIAL_SSA, "SSA controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x03, "USB controller",             "usb", NULL, usb_iface,
+        PCI_SUBCLASS_SERIAL_USB, "USB controller",
+        "usb", NULL, usb_iface,
         NULL, NULL,
     },
     {
-        0x04, "fibre channel controller",   NULL, NULL,  NULL,
+        PCI_SUBCLASS_SERIAL_FIBER, "fibre channel controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x05, "SMBus controller",           NULL, NULL,  NULL,
+        PCI_SUBCLASS_SERIAL_SMBUS, "SMBus controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x06, "InfiniBand controller",      NULL, NULL,  NULL,
+        PCI_SUBCLASS_SERIAL_IB, "InfiniBand controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x07, "IPMI interface",            NULL, NULL,  ipmi_iface,
+        PCI_SUBCLASS_SERIAL_IPMI, "IPMI interface",
+        NULL, NULL, ipmi_iface,
         NULL, NULL,
     },
     {
-        0x08, "SERCOS controller",          NULL, NULL,  ipmi_iface,
+        PCI_SUBCLASS_SERIAL_SERCOS, "SERCOS controller",
+        NULL, NULL, ipmi_iface,
         NULL, NULL,
     },
     {
-        0x09, "CANbus controller",          NULL, NULL,  ipmi_iface,
+        PCI_SUBCLASS_SERIAL_CANBUS, "CANbus controller",
+        NULL, NULL, ipmi_iface,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t wrl_subclass[] = {
     {
-        0x00, "IRDA controller",           NULL, NULL,  NULL,
+        PCI_SUBCLASS_WIRELESS_IRDA, "IRDA controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "consumer IR controller",    NULL, NULL,  NULL,
+        PCI_SUBCLASS_WIRELESS_CIR, "consumer IR controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x10, "RF controller",             NULL, NULL,  NULL,
+        PCI_SUBCLASS_WIRELESS_RF_CONTROLLER, "RF controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x11, "bluetooth controller",      NULL, NULL,  NULL,
+        PCI_SUBCLASS_WIRELESS_BLUETOOTH, "bluetooth controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x12, "broadband controller",      NULL, NULL,  NULL,
+        PCI_SUBCLASS_WIRELESS_BROADBAND, "broadband controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc wireless controller",  NULL, NULL,  NULL,
+        PCI_SUBCLASS_WIRELESS_OTHER, "misc wireless controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t sat_subclass[] = {
     {
-        0x01, "satellite TV controller",   NULL, NULL,  NULL,
+        PCI_SUBCLASS_SATELLITE_TV, "satellite TV controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x02, "satellite audio controller", NULL, NULL, NULL,
+        PCI_SUBCLASS_SATELLITE_AUDIO, "satellite audio controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x03, "satellite voice controller", NULL, NULL, NULL,
+        PCI_SUBCLASS_SATELLITE_VOICE, "satellite voice controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x04, "satellite data controller", NULL, NULL,  NULL,
+        PCI_SUBCLASS_SATELLITE_DATA, "satellite data controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t crypt_subclass[] = {
     {
-        0x00, "cryptographic network controller", NULL, NULL, NULL,
+        PCI_SUBCLASS_CRYPT_NETWORK, "cryptographic network controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x10, "cryptographic entertainment controller", NULL, NULL, NULL,
+        PCI_SUBCLASS_CRYPT_ENTERTAINMENT,
+        "cryptographic entertainment controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc cryptographic controller",    NULL, NULL, NULL,
+        PCI_SUBCLASS_CRYPT_OTHER, "misc cryptographic controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };
 
 static const pci_subclass_t spc_subclass[] = {
     {
-        0x00, "DPIO module",               NULL, NULL,  NULL,
+        PCI_SUBCLASS_SP_DPIO, "DPIO module",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x01, "performances counters",     NULL, NULL,  NULL,
+        PCI_SUBCLASS_SP_PERF, "performances counters",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x10, "communication synchronisation", NULL, NULL, NULL,
+        PCI_SUBCLASS_SP_SYNCH, "communication synchronisation",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x20, "management card",           NULL, NULL,  NULL,
+        PCI_SUBCLASS_SP_MANAGEMENT, "management card",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0x80, "misc signal processing controller", NULL, NULL, NULL,
+        PCI_SUBCLASS_SP_OTHER, "misc signal processing controller",
+        NULL, NULL, NULL,
         NULL, NULL,
     },
     {
-        0xFF, NULL,                        NULL,  NULL,  NULL,
+        0xFF, NULL,
+        NULL, NULL, NULL,
         NULL, NULL,
     },
 };

Modified: openbios-devel/include/openbios/pci.h
===================================================================
--- openbios-devel/include/openbios/pci.h	2009-02-02 17:06:37 UTC (rev 438)
+++ openbios-devel/include/openbios/pci.h	2009-02-02 17:40:29 UTC (rev 439)
@@ -24,6 +24,138 @@
 
 extern const pci_arch_t *arch;
 
+/* Device classes and subclasses */
+
+#define PCI_BASE_CLASS_STORAGE           0x01
+#define PCI_SUBCLASS_STORAGE_SCSI        0x00
+#define PCI_SUBCLASS_STORAGE_IDE         0x01
+#define PCI_SUBCLASS_STORAGE_FLOPPY      0x02
+#define PCI_SUBCLASS_STORAGE_IPI         0x03
+#define PCI_SUBCLASS_STORAGE_RAID        0x04
+#define PCI_SUBCLASS_STORAGE_ATA         0x05
+#define PCI_SUBCLASS_STORAGE_SAS         0x07
+#define PCI_SUBCLASS_STORAGE_OTHER       0x80
+
+#define PCI_BASE_CLASS_NETWORK           0x02
+#define PCI_SUBCLASS_NETWORK_ETHERNET    0x00
+#define PCI_SUBCLASS_NETWORK_TOKEN_RING  0x01
+#define PCI_SUBCLASS_NETWORK_FDDI        0x02
+#define PCI_SUBCLASS_NETWORK_ATM         0x03
+#define PCI_SUBCLASS_NETWORK_ISDN        0x04
+#define PCI_SUBCLASS_NETWORK_WORDFIP     0x05
+#define PCI_SUBCLASS_NETWORK_PICMG214    0x06
+#define PCI_SUBCLASS_NETWORK_OTHER       0x80
+
+#define PCI_BASE_CLASS_DISPLAY           0x03
+#define PCI_SUBCLASS_DISPLAY_VGA         0x00
+#define PCI_SUBCLASS_DISPLAY_XGA         0x01
+#define PCI_SUBCLASS_DISPLAY_3D          0x02
+#define PCI_SUBCLASS_DISPLAY_OTHER       0x80
+
+#define PCI_BASE_CLASS_MULTIMEDIA        0x04
+#define PCI_SUBCLASS_MULTIMEDIA_VIDEO    0x00
+#define PCI_SUBCLASS_MULTIMEDIA_AUDIO    0x01
+#define PCI_SUBCLASS_MULTIMEDIA_PHONE    0x02
+#define PCI_SUBCLASS_MULTIMEDIA_OTHER    0x80
+
+#define PCI_BASE_CLASS_MEMORY            0x05
+#define PCI_SUBCLASS_MEMORY_RAM          0x00
+#define PCI_SUBCLASS_MEMORY_FLASH        0x01
+
+#define PCI_BASE_CLASS_BRIDGE            0x06
+#define PCI_SUBCLASS_BRIDGE_HOST         0x00
+#define PCI_SUBCLASS_BRIDGE_ISA          0x01
+#define PCI_SUBCLASS_BRIDGE_EISA         0x02
+#define PCI_SUBCLASS_BRIDGE_MC           0x03
+#define PCI_SUBCLASS_BRIDGE_PCI          0x04
+#define PCI_SUBCLASS_BRIDGE_PCMCIA       0x05
+#define PCI_SUBCLASS_BRIDGE_NUBUS        0x06
+#define PCI_SUBCLASS_BRIDGE_CARDBUS      0x07
+#define PCI_SUBCLASS_BRIDGE_RACEWAY      0x08
+#define PCI_SUBCLASS_BRIDGE_PCI_SEMITP   0x09
+#define PCI_SUBCLASS_BRIDGE_IB_PCI       0x0a
+#define PCI_SUBCLASS_BRIDGE_OTHER        0x80
+
+#define PCI_BASE_CLASS_COMMUNICATION     0x07
+#define PCI_SUBCLASS_COMMUNICATION_SERIAL 0x00
+#define PCI_SUBCLASS_COMMUNICATION_PARALLEL 0x01
+#define PCI_SUBCLASS_COMMUNICATION_MULTISERIAL 0x02
+#define PCI_SUBCLASS_COMMUNICATION_MODEM 0x03
+#define PCI_SUBCLASS_COMMUNICATION_GPIB  0x04
+#define PCI_SUBCLASS_COMMUNICATION_SC    0x05
+#define PCI_SUBCLASS_COMMUNICATION_OTHER 0x80
+
+#define PCI_BASE_CLASS_SYSTEM            0x08
+#define PCI_SUBCLASS_SYSTEM_PIC          0x00
+#define PCI_SUBCLASS_SYSTEM_DMA          0x01
+#define PCI_SUBCLASS_SYSTEM_TIMER        0x02
+#define PCI_SUBCLASS_SYSTEM_RTC          0x03
+#define PCI_SUBCLASS_SYSTEM_PCI_HOTPLUG  0x04
+#define PCI_SUBCLASS_SYSTEM_OTHER        0x80
+
+#define PCI_BASE_CLASS_INPUT             0x09
+#define PCI_SUBCLASS_INPUT_KEYBOARD      0x00
+#define PCI_SUBCLASS_INPUT_PEN           0x01
+#define PCI_SUBCLASS_INPUT_MOUSE         0x02
+#define PCI_SUBCLASS_INPUT_SCANNER       0x03
+#define PCI_SUBCLASS_INPUT_GAMEPORT      0x04
+#define PCI_SUBCLASS_INPUT_OTHER         0x80
+
+#define PCI_BASE_CLASS_DOCKING           0x0a
+#define PCI_SUBCLASS_DOCKING_GENERIC     0x00
+#define PCI_SUBCLASS_DOCKING_OTHER       0x80
+
+#define PCI_BASE_CLASS_PROCESSOR         0x0b
+#define PCI_SUBCLASS_PROCESSOR_386       0x00
+#define PCI_SUBCLASS_PROCESSOR_486       0x01
+#define PCI_SUBCLASS_PROCESSOR_PENTIUM   0x02
+#define PCI_SUBCLASS_PROCESSOR_ALPHA     0x10
+#define PCI_SUBCLASS_PROCESSOR_POWERPC   0x20
+#define PCI_SUBCLASS_PROCESSOR_MIPS      0x30
+#define PCI_SUBCLASS_PROCESSOR_CO        0x40
+
+#define PCI_BASE_CLASS_SERIAL            0x0c
+#define PCI_SUBCLASS_SERIAL_FIREWIRE     0x00
+#define PCI_SUBCLASS_SERIAL_ACCESS       0x01
+#define PCI_SUBCLASS_SERIAL_SSA          0x02
+#define PCI_SUBCLASS_SERIAL_USB          0x03
+#define PCI_SUBCLASS_SERIAL_FIBER        0x04
+#define PCI_SUBCLASS_SERIAL_SMBUS        0x05
+#define PCI_SUBCLASS_SERIAL_IB           0x06
+#define PCI_SUBCLASS_SERIAL_IPMI         0x07
+#define PCI_SUBCLASS_SERIAL_SERCOS       0x08
+#define PCI_SUBCLASS_SERIAL_CANBUS       0x09
+
+#define PCI_BASE_CLASS_WIRELESS          0x0d
+#define PCI_SUBCLASS_WIRELESS_IRDA       0x00
+#define PCI_SUBCLASS_WIRELESS_CIR        0x01
+#define PCI_SUBCLASS_WIRELESS_RF_CONTROLLER 0x10
+#define PCI_SUBCLASS_WIRELESS_BLUETOOTH  0x11
+#define PCI_SUBCLASS_WIRELESS_BROADBAND  0x12
+#define PCI_SUBCLASS_WIRELESS_OTHER      0x80
+
+#define PCI_BASE_CLASS_SATELLITE         0x0f
+#define PCI_SUBCLASS_SATELLITE_TV        0x00
+#define PCI_SUBCLASS_SATELLITE_AUDIO     0x01
+#define PCI_SUBCLASS_SATELLITE_VOICE     0x03
+#define PCI_SUBCLASS_SATELLITE_DATA      0x04
+
+#define PCI_BASE_CLASS_CRYPT             0x10
+#define PCI_SUBCLASS_CRYPT_NETWORK       0x00
+#define PCI_SUBCLASS_CRYPT_ENTERTAINMENT 0x01
+#define PCI_SUBCLASS_CRYPT_OTHER         0x80
+
+#define PCI_BASE_CLASS_SIGNAL_PROCESSING 0x11
+#define PCI_SUBCLASS_SP_DPIO             0x00
+#define PCI_SUBCLASS_SP_PERF             0x01
+#define PCI_SUBCLASS_SP_SYNCH            0x10
+#define PCI_SUBCLASS_SP_MANAGEMENT       0x20
+#define PCI_SUBCLASS_SP_OTHER            0x80
+
+#define PCI_CLASS_OTHERS                 0xff
+
+/* Vendors and devices. */
+
 #define PCI_VENDOR_ID_ATI                0x1002
 #define PCI_DEVICE_ID_ATI_RAGE128_PF     0x5046
 




More information about the OpenBIOS mailing list