List PCI devices
This commit is contained in:
113
kernel/pci/reg.c
Normal file
113
kernel/pci/reg.c
Normal file
@ -0,0 +1,113 @@
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include "pci/reg.h"
|
||||
|
||||
const char *pci_devname(uint32_t vendorid, uint32_t deviceid) {
|
||||
return "Unknown Device";
|
||||
}
|
||||
|
||||
const char *pci_classname(uint32_t classcode, uint32_t subclass, uint32_t progintf) {
|
||||
switch ((classcode << 8) | subclass)
|
||||
{
|
||||
case PCI_VGA_COMPATIBLE: return "VGA-Compatible Device";
|
||||
case PCI_STORAGE_SCSI: return "SCSI Storage Controller";
|
||||
case PCI_STORAGE_IDE: return "IDE Interface";
|
||||
case PCI_STORAGE_FLOPPY: return "Floppy Disk Controller";
|
||||
case PCI_STORAGE_IPI: return "IPI Bus Controller";
|
||||
case PCI_STORAGE_RAID: return "RAID Bus Controller";
|
||||
case PCI_STORAGE_ATA: return "ATA Controller";
|
||||
case PCI_STORAGE_SATA: return "SATA Controller";
|
||||
case PCI_STORAGE_OTHER: return "Mass Storage Controller";
|
||||
case PCI_NETWORK_ETHERNET: return "Ethernet Controller";
|
||||
case PCI_NETWORK_TOKEN_RING: return "Token Ring Controller";
|
||||
case PCI_NETWORK_FDDI: return "FDDI Controller";
|
||||
case PCI_NETWORK_ATM: return "ATM Controller";
|
||||
case PCI_NETWORK_ISDN: return "ISDN Controller";
|
||||
case PCI_NETWORK_WORLDFIP: return "WorldFip Controller";
|
||||
case PCI_NETWORK_PICGMG: return "PICMG Controller";
|
||||
case PCI_NETWORK_OTHER: return "Network Controller";
|
||||
case PCI_DISPLAY_VGA: return "VGA-Compatible Controller";
|
||||
case PCI_DISPLAY_XGA: return "XGA-Compatible Controller";
|
||||
case PCI_DISPLAY_3D: return "3D Controller";
|
||||
case PCI_DISPLAY_OTHER: return "Display Controller";
|
||||
case PCI_MULTIMEDIA_VIDEO: return "Multimedia Video Controller";
|
||||
case PCI_MULTIMEDIA_AUDIO: return "Multimedia Audio Controller";
|
||||
case PCI_MULTIMEDIA_PHONE: return "Computer Telephony Device";
|
||||
case PCI_MULTIMEDIA_AUDIO_DEVICE: return "Audio Device";
|
||||
case PCI_MULTIMEDIA_OTHER: return "Multimedia Controller";
|
||||
case PCI_MEMORY_RAM: return "RAM Memory";
|
||||
case PCI_MEMORY_FLASH: return "Flash Memory";
|
||||
case PCI_MEMORY_OTHER: return "Memory Controller";
|
||||
case PCI_BRIDGE_HOST: return "Host Bridge";
|
||||
case PCI_BRIDGE_ISA: return "ISA Bridge";
|
||||
case PCI_BRIDGE_EISA: return "EISA Bridge";
|
||||
case PCI_BRIDGE_MCA: return "MicroChannel Bridge";
|
||||
case PCI_BRIDGE_PCI: return "PCI Bridge";
|
||||
case PCI_BRIDGE_PCMCIA: return "PCMCIA Bridge";
|
||||
case PCI_BRIDGE_NUBUS: return "NuBus Bridge";
|
||||
case PCI_BRIDGE_CARDBUS: return "CardBus Bridge";
|
||||
case PCI_BRIDGE_RACEWAY: return "RACEway Bridge";
|
||||
case PCI_BRIDGE_OTHER: return "Bridge Device";
|
||||
case PCI_COMM_SERIAL: return "Serial Controller";
|
||||
case PCI_COMM_PARALLEL: return "Parallel Controller";
|
||||
case PCI_COMM_MULTIPORT: return "Multiport Serial Controller";
|
||||
case PCI_COMM_MODEM: return "Modem";
|
||||
case PCI_COMM_OTHER: return "Communication Controller";
|
||||
case PCI_SYSTEM_PIC: return "PIC";
|
||||
case PCI_SYSTEM_DMA: return "DMA Controller";
|
||||
case PCI_SYSTEM_TIMER: return "Timer";
|
||||
case PCI_SYSTEM_RTC: return "RTC";
|
||||
case PCI_SYSTEM_PCI_HOTPLUG: return "PCI Hot-Plug Controller";
|
||||
case PCI_SYSTEM_SD: return "SD Host Controller";
|
||||
case PCI_SYSTEM_OTHER: return "System Peripheral";
|
||||
case PCI_INPUT_KEYBOARD: return "Keyboard Controller";
|
||||
case PCI_INPUT_PEN: return "Pen Controller";
|
||||
case PCI_INPUT_MOUSE: return "Mouse Controller";
|
||||
case PCI_INPUT_SCANNER: return "Scanner Controller";
|
||||
case PCI_INPUT_GAMEPORT: return "Gameport Controller";
|
||||
case PCI_INPUT_OTHER: return "Input Controller";
|
||||
case PCI_DOCKING_GENERIC: return "Generic Docking Station";
|
||||
case PCI_DOCKING_OTHER: return "Docking Station";
|
||||
case PCI_PROCESSOR_386: return "386";
|
||||
case PCI_PROCESSOR_486: return "486";
|
||||
case PCI_PROCESSOR_PENTIUM: return "Pentium";
|
||||
case PCI_PROCESSOR_ALPHA: return "Alpha";
|
||||
case PCI_PROCESSOR_MIPS: return "MIPS";
|
||||
case PCI_PROCESSOR_CO: return "CO-Processor";
|
||||
case PCI_SERIAL_FIREWIRE: return "FireWire (IEEE 1394)";
|
||||
case PCI_SERIAL_SSA: return "SSA";
|
||||
case PCI_SERIAL_USB:
|
||||
switch (progintf)
|
||||
{
|
||||
case PCI_SERIAL_USB_UHCI: return "USB (UHCI)";
|
||||
case PCI_SERIAL_USB_OHCI: return "USB (OHCI)";
|
||||
case PCI_SERIAL_USB_EHCI: return "USB2";
|
||||
case PCI_SERIAL_USB_XHCI: return "USB3";
|
||||
case PCI_SERIAL_USB_OTHER: return "USB Controller";
|
||||
default: return "Unknown USB Class";
|
||||
}
|
||||
break;
|
||||
case PCI_SERIAL_FIBER: return "Fiber Channel";
|
||||
case PCI_SERIAL_SMBUS: return "SMBus";
|
||||
case PCI_WIRELESS_IRDA: return "iRDA Compatible Controller";
|
||||
case PCI_WIRLESSS_IR: return "Consumer IR Controller";
|
||||
case PCI_WIRLESSS_RF: return "RF Controller";
|
||||
case PCI_WIRLESSS_BLUETOOTH: return "Bluetooth";
|
||||
case PCI_WIRLESSS_BROADBAND: return "Broadband";
|
||||
case PCI_WIRLESSS_ETHERNET_A: return "802.1a Controller";
|
||||
case PCI_WIRLESSS_ETHERNET_B: return "802.1b Controller";
|
||||
case PCI_WIRELESS_OTHER: return "Wireless Controller";
|
||||
case PCI_INTELLIGENT_I2O: return "I2O Controller";
|
||||
case PCI_SATELLITE_TV: return "Satellite TV Controller";
|
||||
case PCI_SATELLITE_AUDIO: return "Satellite Audio Controller";
|
||||
case PCI_SATELLITE_VOICE: return "Satellite Voice Controller";
|
||||
case PCI_SATELLITE_DATA: return "Satellite Data Controller";
|
||||
case PCI_CRYPT_NETWORK: return "Network and Computing Encryption Device";
|
||||
case PCI_CRYPT_ENTERTAINMENT: return "Entertainment Encryption Device";
|
||||
case PCI_CRYPT_OTHER: return "Encryption Device";
|
||||
case PCI_SP_DPIO: return "DPIO Modules";
|
||||
case PCI_SP_OTHER: return "Signal Processing Controller";
|
||||
}
|
||||
|
||||
return "Unknown PCI Class";
|
||||
}
|
||||
Reference in New Issue
Block a user