📄 pci.c
字号:
break; } break; case PCI_CLASS_MULTIMEDIA: YS__statmsg(node, "Multimedia/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_MULTIMEDIA_VIDEO: YS__statmsg(node, "Video"); break; case PCI_SUBCLASS_MULTIMEDIA_AUDIO: YS__statmsg(node, "Audio"); break; case PCI_SUBCLASS_MULTIMEDIA_TELEPHONE: YS__statmsg(node, "Telephone"); break; case PCI_SUBCLASS_MULTIMEDIA_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_MEMORY: YS__statmsg(node, "Memory/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_MEMORY_RAM: YS__statmsg(node, "RAM"); break; case PCI_SUBCLASS_MEMORY_FLASH: YS__statmsg(node, "Flash"); break; case PCI_SUBCLASS_MEMORY_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_BRIDGE: YS__statmsg(node, "Bridge/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_BRIDGE_HOST: YS__statmsg(node, "Host"); break; case PCI_SUBCLASS_BRIDGE_ISA: YS__statmsg(node, "ISA"); break; case PCI_SUBCLASS_BRIDGE_EISA: YS__statmsg(node, "EISA"); break; case PCI_SUBCLASS_BRIDGE_MC: YS__statmsg(node, "MC"); break; case PCI_SUBCLASS_BRIDGE_PCI: YS__statmsg(node, "PCI"); break; case PCI_SUBCLASS_BRIDGE_PCMCIA: YS__statmsg(node, "PCMCIA"); break; case PCI_SUBCLASS_BRIDGE_NUBUS: YS__statmsg(node, "NuBus"); break; case PCI_SUBCLASS_BRIDGE_CARDBUS: YS__statmsg(node, "CardBus"); break; case PCI_SUBCLASS_BRIDGE_RACEWAY: YS__statmsg(node, "RACEway"); break; case PCI_SUBCLASS_BRIDGE_STPCI: YS__statmsg(node, "PCI semitransparant"); break; case PCI_SUBCLASS_BRIDGE_INFINIBAND: YS__statmsg(node, "InfiniBand"); break; case PCI_SUBCLASS_BRIDGE_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_COMMUNICATIONS: YS__statmsg(node, "Communciations/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_COMMUNICATIONS_SERIAL: YS__statmsg(node, "Serial"); break; case PCI_SUBCLASS_COMMUNICATIONS_PARALLEL: YS__statmsg(node, "Parallel"); break; case PCI_SUBCLASS_COMMUNICATIONS_MPSERIAL: YS__statmsg(node, "Serial multiport"); break; case PCI_SUBCLASS_COMMUNICATIONS_MODEM: YS__statmsg(node, "Modem") ; break; case PCI_SUBCLASS_COMMUNICATIONS_GPIB: YS__statmsg(node, "Gigabit InfiniBand") ; break; case PCI_SUBCLASS_COMMUNICATIONS_SMARTCARD: YS__statmsg(node, "SmartCard") ; break; case PCI_SUBCLASS_COMMUNICATIONS_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_SYSTEM: YS__statmsg(node, "System/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_SYSTEM_PIC: YS__statmsg(node, "PIC"); break; case PCI_SUBCLASS_SYSTEM_DMA: YS__statmsg(node, "DMA"); break; case PCI_SUBCLASS_SYSTEM_TIMER: YS__statmsg(node, "Timer"); break; case PCI_SUBCLASS_SYSTEM_RTC: YS__statmsg(node, "Realtime Clock"); break; case PCI_SUBCLASS_SYSTEM_PCIHOTPLUG: YS__statmsg(node, "PCI Hotplug"); break; case PCI_SUBCLASS_SYSTEM_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_INPUT: YS__statmsg(node, "Input/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_INPUT_KEYBOARD: YS__statmsg(node, "Keyboard"); break; case PCI_SUBCLASS_INPUT_DIGITIZER: YS__statmsg(node, "Digitizer"); break; case PCI_SUBCLASS_INPUT_MOUSE: YS__statmsg(node, "Mouse"); break; case PCI_SUBCLASS_INPUT_SCANNER: YS__statmsg(node, "Scanner"); break; case PCI_SUBCLASS_INPUT_GAMEPORT: YS__statmsg(node, "Gameport"); break; case PCI_SUBCLASS_INPUT_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_DOCK: YS__statmsg(node, "Dock/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_DOCK_GENERIC: YS__statmsg(node, "Generic"); break; case PCI_SUBCLASS_DOCK_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_PROCESSOR: YS__statmsg(node, "Processor/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_PROCESSOR_386: YS__statmsg(node, "i386"); break; case PCI_SUBCLASS_PROCESSOR_486: YS__statmsg(node, "i486"); break; case PCI_SUBCLASS_PROCESSOR_PENTIUM: YS__statmsg(node, "Pentium"); break; case PCI_SUBCLASS_PROCESSOR_ALPHA: YS__statmsg(node, "Alpha"); break; case PCI_SUBCLASS_PROCESSOR_POWERPC: YS__statmsg(node, "PowerPC"); break; case PCI_SUBCLASS_PROCESSOR_MIPS: YS__statmsg(node, "MIPS"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_SERIALBUS: YS__statmsg(node, "Serial Bus/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_SERIALBUS_FIREWIRE: YS__statmsg(node, "Firewire"); break; case PCI_SUBCLASS_SERIALBUS_ACCESS: YS__statmsg(node, "ACCESS.bus"); break; case PCI_SUBCLASS_SERIALBUS_SSA: YS__statmsg(node, "SSA"); break; case PCI_SUBCLASS_SERIALBUS_USB: YS__statmsg(node, "USB"); break; case PCI_SUBCLASS_SERIALBUS_FIBER: YS__statmsg(node, "FibreChannel"); break; case PCI_SUBCLASS_SERIALBUS_SMBUS: YS__statmsg(node, "SM Bus"); break; case PCI_SUBCLASS_SERIALBUS_INFINIBAND: YS__statmsg(node, "InfiniBand"); break; case PCI_SUBCLASS_SERIALBUS_IPMI: YS__statmsg(node, "IPMI"); break; case PCI_SUBCLASS_SERIALBUS_SERCOS: YS__statmsg(node, "Sercos"); break; case PCI_SUBCLASS_SERIALBUS_CANBUS: YS__statmsg(node, "CAN Bus"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_WIRELESS: YS__statmsg(node, "Wireless/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_WIRELESS_IRDA: YS__statmsg(node, "iRDA"); break; case PCI_SUBCLASS_WIRELESS_CONSUMERIR: YS__statmsg(node, "InfraRed"); break; case PCI_SUBCLASS_WIRELESS_RF: YS__statmsg(node, "RF"); break; case PCI_SUBCLASS_WIRELESS_BLUETOOTH: YS__statmsg(node, "Bluetooth"); break; case PCI_SUBCLASS_WIRELESS_BROADBAND: YS__statmsg(node, "Broadband"); break; case PCI_SUBCLASS_WIRELESS_802_11A: YS__statmsg(node, "IEEE 802.11A"); break; case PCI_SUBCLASS_WIRELESS_802_11B: YS__statmsg(node, "IEEE 802.11B"); break; case PCI_SUBCLASS_WIRELESS_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_INTELLIO: YS__statmsg(node, "Intelligent IO/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_I2O_STANDARD: YS__statmsg(node, "I2O"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_SATELLITE: YS__statmsg(node, "Satellite/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_SATELLITE_TV: YS__statmsg(node, "TV"); break; case PCI_SUBCLASS_SATELLITE_AUDIO: YS__statmsg(node, "Audio"); break; case PCI_SUBCLASS_SATELLITE_VOICE: YS__statmsg(node, "Voice"); break; case PCI_SUBCLASS_SATELLITE_DATA: YS__statmsg(node, "Data"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_CRYPT: YS__statmsg(node, "Encryption/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_CRYPT_NETCOMP: YS__statmsg(node, "Network"); break; case PCI_SUBCLASS_CRYPT_ENTERTAINMENT: YS__statmsg(node, "Entertainment"); break; case PCI_SUBCLASS_CRYPT_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; case PCI_CLASS_DATA: YS__statmsg(node, "Data Acquisition/"); switch (PCI_SUBCLASS(class_rev)) { case PCI_SUBCLASS_DATA_DPIO: YS__statmsg(node, "DPIO"); break; case PCI_SUBCLASS_DASP_TIMEFREQ: YS__statmsg(node, "Timefreq"); break; case PCI_SUBCLASS_DASP_SYNC: YS__statmsg(node, "Sync"); break; case PCI_SUBCLASS_DASP_MGMT: YS__statmsg(node, "Management"); break; case PCI_SUBCLASS_DATA_MISC: YS__statmsg(node, "Miscellaneous"); break; default: YS__statmsg(node, "Unknown"); break; } break; default: YS__statmsg(node, "Undefined"); break; } YS__statmsg(node, "\n"); if (pdev[n].interrupt_pin) { if ((pdev[n].interrupt_line >> 4) == 0x0F) YS__statmsg(node, " Interrupt : all CPUs"); else YS__statmsg(node, " Interrupt : CPU %i", pdev[n].interrupt_line >> 4); YS__statmsg(node, " on IRQ %i\n", pdev[n].interrupt_line & 0x0F); } else YS__statmsg(node, " No interrupt\n"); YS__statmsg(node, " Address Regions\n"); for (m = 0; m < (PCI_MAPREG_END - PCI_MAPREG_START) / sizeof(unsigned); m++) { unsigned base_addr = swap_word(pdev[n].base_addr[m]); if ((PCI_MAPREG_MEM_ADDR(base_addr) == 0xFFFFFFFF) || (PCI_MAPREG_MEM_ADDR(base_addr) == 0x00000000)) continue; if (base_addr & PCI_MAPREG_TYPE_IO) YS__statmsg(node, " %i: 0x%08X (I/O)\n", m, PCI_MAPREG_IO_ADDR(base_addr)); else YS__statmsg(node, " %i: 0x%08X (Memory;%scacheable)\n", m, PCI_MAPREG_MEM_ADDR(base_addr), PCI_MAPREG_MEM_CACHEABLE(base_addr) ? " " : " non-"); } YS__statmsg(node, "\n"); }}/*=========================================================================*//*=========================================================================*/void PCI_BRIDGE_dump(int nid){ PCI_BUS *pci = &PCI_BUSES[nid]; IO_GENERIC *pio = PID2IO(nid, pci->mid); YS__logmsg(nid, "\n=============== PCI BRIDGE =================\n"); YS__logmsg(nid, "device_count(%d), module(%d)\n", pci->device_count, pci->mid); IO_dump(pio);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -