⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pci.c

📁 ml-rsim 多处理器模拟器 支持类bsd操作系统
💻 C
📖 第 1 页 / 共 2 页
字号:
	      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 + -