109f67678Sanish /* 209f67678Sanish * CDDL HEADER START 309f67678Sanish * 409f67678Sanish * The contents of this file are subject to the terms of the 5337fc9e2Sanish * Common Development and Distribution License (the "License"). 6337fc9e2Sanish * You may not use this file except in compliance with the License. 709f67678Sanish * 809f67678Sanish * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 909f67678Sanish * or http://www.opensolaris.org/os/licensing. 1009f67678Sanish * See the License for the specific language governing permissions 1109f67678Sanish * and limitations under the License. 1209f67678Sanish * 1309f67678Sanish * When distributing Covered Code, include this CDDL HEADER in each 1409f67678Sanish * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1509f67678Sanish * If applicable, add the following below this CDDL HEADER, with the 1609f67678Sanish * fields enclosed by brackets "[]" replaced with your own identifying 1709f67678Sanish * information: Portions Copyright [yyyy] [name of copyright owner] 1809f67678Sanish * 1909f67678Sanish * CDDL HEADER END 2009f67678Sanish */ 2109f67678Sanish 2209f67678Sanish /* 23337fc9e2Sanish * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2409f67678Sanish * Use is subject to license terms. 2509f67678Sanish */ 26*13c8743eSMarcel Telka /* 27*13c8743eSMarcel Telka * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28*13c8743eSMarcel Telka */ 2909f67678Sanish 3009f67678Sanish #include <sys/types.h> 3109f67678Sanish #include <sys/stat.h> 3209f67678Sanish #include "pci_strings.h" 3309f67678Sanish 3409f67678Sanish const pci_class_strings_t class_pci[] = { 3509f67678Sanish 0, 0, 0, "Unspecified class", "unknown", 3609f67678Sanish 0, 1, 0, "VGA compatible controller", "unknown", 3709f67678Sanish 3809f67678Sanish 1, 0, 0, "SCSI bus controller", "scsi", 3909f67678Sanish 1, 1, 0x80, "IDE controller", /* Special case */ "ide", 4009f67678Sanish 1, 2, 0, "Floppy controller", "flpydis", 4109f67678Sanish 1, 3, 0, "IPI bus controller", "ipi", 4209f67678Sanish 1, 4, 0, "RAID controller", "raid", 4309f67678Sanish 1, 5, 0x20, "ATA controller with single DMA", "ata", 4409f67678Sanish 1, 5, 0x30, "ATA controller with chained DMA", "ata", 4509f67678Sanish 1, 6, 0, "Serial ATA Direct Port Access (DPA)", "sata", 46*13c8743eSMarcel Telka 1, 6, 1, "SATA AHCI Interface", "sata", 47337fc9e2Sanish 1, 6, 2, "Serial Storage Bus Interface", "sata", 48337fc9e2Sanish 1, 7, 0, "Serial Attached SCSI Controller", "sas", 49337fc9e2Sanish 1, 7, 1, "Serial Storage Bus Interface", "sas", 5009f67678Sanish 1, 0x80, 0, "Mass storage controller", "unknown", 5109f67678Sanish 5209f67678Sanish 2, 0, 0, "Ethernet controller", "etherne", 5309f67678Sanish 2, 1, 0, "Token ring controller", "tokenrg", 5409f67678Sanish 2, 2, 0, "FDDI controller", "fddi", 5509f67678Sanish 2, 3, 0, "ATM controller", "atm", 5609f67678Sanish 2, 4, 0, "ISDN controller", "isdn", 5709f67678Sanish 2, 5, 0, "WorldFip controller", "unknown", 5809f67678Sanish 2, 6, 0, "PICMG 2.14 Multi computing controller", "mcd", 5909f67678Sanish 2, 0x80, 0, "Network controller", "unknown", 6009f67678Sanish 6109f67678Sanish 3, 0, 0, "VGA compatible controller", "vga", 6209f67678Sanish 3, 0, 1, "8514-compatible display controller", "vgs8514", 6309f67678Sanish 3, 1, 0, "XGA video controller", "xga", 6409f67678Sanish 3, 2, 0, "3D controller", "3d", 6509f67678Sanish 3, 0x80, 0, "Video controller", "unknown", 6609f67678Sanish 6709f67678Sanish 4, 0, 0, "Video device", "video", 6809f67678Sanish 4, 1, 0, "Audio device", "audio", 6909f67678Sanish 4, 2, 0, "Computer Telephony device", "teleph", 70337fc9e2Sanish 4, 3, 0, "Mixed Mode device", "mixed", 7109f67678Sanish 4, 0x80, 0, "Multimedia device", "unknown", 7209f67678Sanish 7309f67678Sanish 5, 0, 0, "Ram", "ram", 7409f67678Sanish 5, 1, 0, "Flash memory", "flash", 7509f67678Sanish 5, 0x80, 0, "Memory controller", "unknown", 7609f67678Sanish 7709f67678Sanish 6, 0, 0, "Host bridge", "hostpci", 7809f67678Sanish 6, 1, 0, "ISA bridge", "pci-isa", 7909f67678Sanish 6, 2, 0, "EISA bridge", "pcieisa", 8009f67678Sanish 6, 3, 0, "MCA bridge", "pci-mca", 8109f67678Sanish 6, 4, 0, "PCI-PCI bridge", "pci-pci", 8209f67678Sanish 6, 4, 1, "Subtractive Decode PCI-PCI bridge", "unknown", 8309f67678Sanish 6, 5, 0, "PCMCIA bridge", "pcipcmc", 8409f67678Sanish 6, 6, 0, "NuBus bridge", "pcinubu", 8509f67678Sanish 6, 7, 0, "CardBus bridge", "pcicard", 8609f67678Sanish 6, 8, 0, "RACE-way bridge transport mode", "pcirace", 8709f67678Sanish 6, 8, 1, "RACE-way bridge endpoint mode", "pcirace", 8809f67678Sanish 6, 9, 0x40, "Semi-transparent PCI-PCI primary bridge", "stpci", 8909f67678Sanish 6, 9, 0x80, "Semi-transparent PCI-PCI secondary bridge", "stpci", 9009f67678Sanish 6, 0xA, 0, "Infiniband-PCI bridge", "ib-pci", 91337fc9e2Sanish 6, 0xB, 0, "AS Custom Interface bridge", "as-pci", 92337fc9e2Sanish 6, 0xB, 1, "ASI-SIG Defined Portal Interface", "as-pci", 9309f67678Sanish 6, 0x80, 0, "Bridge device", "unknown", 9409f67678Sanish 9509f67678Sanish 7, 0, 0, "Serial controller", "serial", 9609f67678Sanish 7, 0, 1, "16450-compatible serial controller", "paralle", 9709f67678Sanish 7, 0, 2, "16550-compatible serial controller", "paralle", 9809f67678Sanish 7, 0, 3, "16650-compatible serial controller", "paralle", 9909f67678Sanish 7, 0, 4, "16750-compatible serial controller", "paralle", 10009f67678Sanish 7, 0, 5, "16850-compatible serial controller", "paralle", 10109f67678Sanish 7, 0, 6, "16950-compatible serial controller", "paralle", 10209f67678Sanish 7, 1, 0, "Parallel port", "paralle", 10309f67678Sanish 7, 1, 1, "Bidirectional parallel port", "paralle", 10409f67678Sanish 7, 1, 2, "ECP 1.X parallel port", "paralle", 10509f67678Sanish 7, 1, 3, "IEEE 1284 parallel port", "paralle", 10609f67678Sanish 7, 1, 0xFE, "IEEE 1284 target device", "1284tar", 10709f67678Sanish 7, 2, 0, "Multiport serial controller", "multise", 10809f67678Sanish 7, 3, 0, "Modem controller", "mdmctrl", 10909f67678Sanish 7, 3, 1, "Hayes 16450-compatible modem", "modem", 11009f67678Sanish 7, 3, 2, "Hayes 16550-compatible modem", "modem", 11109f67678Sanish 7, 3, 3, "Hayes 16650-compatible modem", "modem", 11209f67678Sanish 7, 3, 4, "Hayes 16750-compatible modem", "modem", 11309f67678Sanish 7, 4, 0, "GPIB controller", "gpibctl", 11409f67678Sanish 7, 5, 0, "Smartcard controller", "smctrlr", 11509f67678Sanish 7, 0x80, 0, "Communication device", "commdev", 11609f67678Sanish 11709f67678Sanish 8, 0, 0, "8259 PIC", "pic", 11809f67678Sanish 8, 0, 1, "ISA PIC", "pic", 11909f67678Sanish 8, 0, 2, "EISA PIC", "pic", 12009f67678Sanish 8, 0, 0x10, "I/O APIC", "pic", 12109f67678Sanish 8, 0, 0x20, "I/O(x) APIC", "iopic", 12209f67678Sanish 8, 1, 0, "8237 DMA controller", "dma", 12309f67678Sanish 8, 1, 1, "ISA DMA controller", "dma", 12409f67678Sanish 8, 1, 2, "EISA DMA controller", "dma", 12509f67678Sanish 8, 2, 0, "8254 system timer", "timer", 12609f67678Sanish 8, 2, 1, "ISA system timer", "timer", 12709f67678Sanish 8, 2, 2, "EISA system timers", "timer", 128337fc9e2Sanish 8, 2, 3, "High Performance Event timer", "timer", 12909f67678Sanish 8, 3, 0, "Real time clock", "rtc", 13009f67678Sanish 8, 3, 1, "ISA real time clock", "rtc", 13109f67678Sanish 8, 4, 0, "PCI Hot-Plug controller", "pcihp", 132337fc9e2Sanish 8, 5, 0, "SD Host controller", "sd-hc", 133337fc9e2Sanish 8, 6, 0, "IOMMU controller", "iommu", 13409f67678Sanish 8, 0x80, 0, "System peripheral", "unknown", 13509f67678Sanish 13609f67678Sanish 9, 0, 0, "Keyboard controller", "keyboar", 13709f67678Sanish 9, 1, 0, "Digitizer (pen)", "tablet", 13809f67678Sanish 9, 2, 0, "Mouse controller", "mouse", 13909f67678Sanish 9, 3, 0, "Scanner controller", "scanner", 14009f67678Sanish 9, 4, 0, "Gameport controller", "gamepor", 141337fc9e2Sanish 9, 4, 0x10, "Gameport Legacy controller", "gamepor", 14209f67678Sanish 9, 0x80, 0, "Input controller", "unknown", 14309f67678Sanish 14409f67678Sanish 10, 0, 0, "Generic Docking station", "docking", 14509f67678Sanish 10, 0x80, 0, "Docking station", "unknown", 14609f67678Sanish 14709f67678Sanish 11, 0, 0, "386", "386", 14809f67678Sanish 11, 1, 0, "486", "486", 14909f67678Sanish 11, 2, 0, "Pentium", "pentium", 15009f67678Sanish 11, 0x10, 0, "Alpha", "alpha", 15109f67678Sanish 11, 0x20, 0, "Power-PC", "powerpc", 15209f67678Sanish 11, 0x30, 0, "MIPS", "mips", 15309f67678Sanish 11, 0x40, 0, "Co-processor", "coproc", 154337fc9e2Sanish 11, 0x80, 0, "Processor", "unknown", 15509f67678Sanish 15609f67678Sanish 12, 0, 0, "FireWire (IEEE 1394)", "1394", 15709f67678Sanish 12, 0, 0x10, "FireWire (IEEE 1394) OpenHCI compliant", "1394", 15809f67678Sanish 12, 1, 0, "ACCESS.bus", "access", 15909f67678Sanish 12, 2, 0, "SSA", "ssa", 16009f67678Sanish 12, 3, 0, "Universal Serial Bus UHCI compliant", "usb", 16109f67678Sanish 12, 3, 0x10, "Universal Serial Bus OHCI compliant", "usb", 16209f67678Sanish 12, 3, 0x20, "Universal Serial Bus EHCI compliant", "usb", 16309f67678Sanish 12, 3, 0x80, "Universal Serial Bus generic HCD", "usb", 16409f67678Sanish 12, 3, 0xFE, "Universal Serial Bus device", "usb", 16509f67678Sanish 12, 4, 0, "Fibre Channel", "fibre", 16609f67678Sanish 12, 5, 0, "SMBus (System Management Bus)", "smbus", 16709f67678Sanish 12, 6, 0, "InfiniBand", "ib", 16809f67678Sanish 12, 7, 0, "IPMI SMIC Interface", "ipmi", 16909f67678Sanish 12, 7, 1, "IPMI Keyboard Controller Style Interface", "ipmi", 17009f67678Sanish 12, 7, 2, "IPMI Block Transfer Interface", "ipmi", 17109f67678Sanish 12, 8, 0, "SERCOS Interface Standard", "sercos", 17209f67678Sanish 12, 9, 0, "CANbus", "canbus", 173337fc9e2Sanish 12, 0x80, 0, "Serial Bus Controller", "unknown", 17409f67678Sanish 17509f67678Sanish 13, 0, 0, "IRDA Wireless controller", "irda", 17609f67678Sanish 13, 1, 0, "Consumer IR Wireless controller", "ir", 177337fc9e2Sanish 13, 1, 0x10, "UWB Radio controller", "ir-uwb", 17809f67678Sanish 13, 0x10, 0, "RF Wireless controller", "rf", 17909f67678Sanish 13, 0x11, 0, "Bluetooth Wireless controller", "btooth", 18009f67678Sanish 13, 0x12, 0, "Broadband Wireless controller", "brdband", 18109f67678Sanish 13, 0x20, 0, "802.11a Wireless controller", "802.11a", 18209f67678Sanish 13, 0x21, 0, "802.11b Wireless controller", "802.11b", 18309f67678Sanish 13, 0x80, 0, "Wireless controller", "unknown", 18409f67678Sanish 18509f67678Sanish 14, 0, 0, "I20 controller", "i2o", 186337fc9e2Sanish 14, 0, 1, "I20 Arch Specification 1.0", "i2o", 18709f67678Sanish 18809f67678Sanish 15, 1, 0, "TV Satellite controller", "tv", 18909f67678Sanish 15, 2, 0, "Audio Satellite controller", "audio", 19009f67678Sanish 15, 3, 0, "Voice Satellite controller", "voice", 19109f67678Sanish 15, 4, 0, "Data Satellite controller", "data", 192337fc9e2Sanish 15, 0x80, 0, "Satellite Comm controller", "unknown", 19309f67678Sanish 19409f67678Sanish 16, 0, 0, "Network and computing en/decryption", "netcryp", 19509f67678Sanish 16, 1, 0, "Entertainment en/decryption", "entcryp", 19609f67678Sanish 16, 0x80, 0, "En/decryption controller", "unknown", 19709f67678Sanish 19809f67678Sanish 17, 0, 0, "DPIO modules", "dpio", 19909f67678Sanish 17, 1, 0, "Performance counters", "perfcnt", 20009f67678Sanish 17, 0x10, 0, "Comm Synch time and freq test/measurement", "cstftm", 20109f67678Sanish 17, 0x20, 0, "Management card", "mgmtcrd", 20209f67678Sanish 17, 0x80, 0, "DSP/DAP controllers", "unknown" 20309f67678Sanish }; 20409f67678Sanish 20509f67678Sanish int class_pci_items = sizeof (class_pci) / sizeof (class_pci[0]); 206