亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sysd_s.cpp

?? 小型的操作系統開發的原代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		NULL,
		TIMER_FLAGS_ONCE);
	if(NULL == lpTimerObject)    //Failed to set timer.
	{
		PrintLine("  Can not set timer,please try again.");
		return SYS_DIAG_CMD_PARSER_FAILED;
	}

	//
	//Begin to beep.
	//
	ReadByteFromPort(&ucCtrlByte,0x61);
	ucCtrlByte |= 0x03;
	WriteByteToPort(ucCtrlByte,0x61);
	
	while(TRUE)
	{
		if(GetMessage(&Msg))
		{
			if((Msg.wCommand == KERNEL_MESSAGE_TIMER) &&   //Beep time is over.
			   (Msg.dwParam  == dwTimerID))
			{
				ucCtrlByte &= ~0x03;
				WriteByteToPort(ucCtrlByte,0x61);  //Stop the beep.
				PrintLine("  Beep over");
				goto __TERMINAL;
			}
		}
	}

__TERMINAL:
	return SYS_DIAG_CMD_PARSER_SUCCESS;
}

//
//The implementation of pcilist.
//This routine is the handler of 'pcilist' command.
//

static VOID  OutputDevInfo(__PHYSICAL_DEVICE* lpPhyDev);  //Helper routine.

static DWORD pcilist(__CMD_PARA_OBJ* lpParamObj)
{
	DWORD                  dwLoop          = 0L;
	__PHYSICAL_DEVICE*     lpPhyDev        = NULL;

	PrintLine("    Device ID/Vendor ID    Bus Number    Description");

	for(dwLoop = 0;dwLoop < MAX_BUS_NUM;dwLoop ++)
	{
		if(DeviceManager.SystemBus[dwLoop].dwBusType == BUS_TYPE_PCI)
		{
			lpPhyDev = DeviceManager.SystemBus[dwLoop].lpDevListHdr;
			while(lpPhyDev)  //Travel all list
			{
				OutputDevInfo(lpPhyDev);
				lpPhyDev = lpPhyDev->lpNext;
			}
		}
	}
	return SYS_DIAG_CMD_PARSER_SUCCESS;
}

static struct __PCI_DEV_DESC{
	WORD         wClasscode;
	LPSTR        lpszDesc;
}PciDevDesc[] = {
	{0x0000,     "Old devices(no-PCI device)."},
	{0x0001,     "VGA-Compatible devices."},

	{0x0100,     "SCSI Bus controller."},
	{0x0101,     "IDE controller."},
	{0x0102,     "Floppy disk controller."},
	{0x0103,     "IPI Bus controller."},
	{0x0104,     "RAID controller."},
	{0x0180,     "Mass storage controller."},

	{0x0200,     "Ethernet controller."},
	{0x0201,     "Token ring controller."},
	{0x0202,     "FDDI controller."},
	{0x0203,     "ATM controller."},
	{0x0204,     "ISDN controller."},
	{0x0280,     "Other network controller."},

	{0x0300,     "VGA controller."},
	{0x0301,     "XGA controller."},
	{0x0302,     "3D controller."},
	{0x0380,     "Other display controller."},

	{0x0400,     "Video device."},
	{0x0401,     "Audio device."},
	{0x0402,     "Computer telephony device."},
	{0x0480,     "Other multimedia device."},

	{0x0500,     "RAM device."},
	{0x0501,     "Flash device."},
	{0x0580,     "Other memory controller."},

	{0x0600,     "PCI-Host bridge."},
	{0x0601,     "ISA bridge."},
	{0x0602,     "EISA bridge."},
	{0x0603,     "MAC bridge."},
	{0x0604,     "PCI-PCI bridge."},
	{0x0605,     "PCMCIA bridge."},
	{0x0606,     "NuBus bridge."},
	{0x0607,     "CardBus bridge."},
	{0x0608,     "RACEway bridge."},
	{0x0680,     "Other bridge device."},

	{0x0700,     "Serial controller."},
	{0x0701,     "Parallel port."},
	{0x0702,     "Multiport serial controller."},
	{0x0703,     "Generic modem."},
	{0x0780,     "Other communications device."},

	{0x0800,     "Programmable Interrupt Controller."},
	{0x0801,     "DMA controller."},
	{0x0802,     "System timer."},
	{0x0803,     "RTC controller."},
	{0x0804,     "Hot-plug controller."},
	{0x0880,     "Other system device."},

	{0x0900,     "Keyboard controller."},
	{0x0901,     "Digitizer pen."},
	{0x0902,     "Mouse controller."},
	{0x0903,     "Scanner controller."},
	{0x0904,     "Gameport controller."},
	{0x0980,     "Other input controller."},

	{0x0A00,     "Generic docking station."},
	{0x0A80,     "Other type of docking station."},

	{0x0B00,     "386 processor."},
	{0x0B01,     "486 processor."},
	{0x0B02,     "Pentium processor."},
	{0x0B10,     "Alpha processor."},
	{0x0B20,     "PowerPC processor."},
	{0x0B30,     "MIPS processor."},
	{0x0B40,     "Co-processor."},

	{0x0C00,     "IEEE 1394."},
	{0x0C01,     "ACCESS BUS."},
	{0x0C02,     "SSA."},
	{0x0C03,     "USB controller or device."},
	{0x0C04,     "Fibre channel."},
	{0x0C05,     "System management bus."},

	{0xFFFF,     NULL}    //This is the last entry of this array.
};

#define DEFAULT_PCI_DESC    "Unknown PCI device."

static VOID OutputDevInfo(__PHYSICAL_DEVICE* lpPhyDev)
{
	BYTE                 strBuff[80];
	DWORD                dwVendor          = 0L;
	DWORD                dwDevice          = 0L;
	DWORD                dwBusNum          = 0L;
	LPSTR                lpszDes           = NULL;
	WORD                 wClassCode        = 0;
	DWORD                dwLoop            = 0L;
	LPVOID               lpParam[4];

	if(NULL == lpPhyDev)
		return;
	dwDevice = (DWORD)lpPhyDev->DevId.PCI_Identifier.wDevice;
	dwVendor = (DWORD)lpPhyDev->DevId.PCI_Identifier.wVendor;
	dwBusNum = lpPhyDev->lpHomeBus->dwBusNum;
	wClassCode = (WORD)(lpPhyDev->DevId.PCI_Identifier.dwClass >> 16);

	while(PciDevDesc[dwLoop].lpszDesc)
	{
		if(PciDevDesc[dwLoop].wClasscode == wClassCode)
		{
			lpszDes = PciDevDesc[dwLoop].lpszDesc;
			break;
		}
		dwLoop ++;
	}
	if(NULL == lpszDes)
		lpszDes = DEFAULT_PCI_DESC;

	lpParam[0]  = (LPVOID)&dwDevice;
	lpParam[1]  = (LPVOID)&dwVendor;
	lpParam[2]  = (LPVOID)&dwBusNum;
	lpParam[3]  = (LPVOID)lpszDes;

	FormString(strBuff,"    %x/%x      %d             %s",lpParam);
	PrintLine(strBuff);
}

//
//A helper routine,used to print out information of a PCI device.
//
static VOID PrintDevInfo(__PHYSICAL_DEVICE* lpPhyDev)
{
	__PCI_DEVICE_INFO*   lpPciInfo           = NULL;
	BYTE                 strBuff[80];
	DWORD                dwLoop              = 0L;
	DWORD                dwDevNum            = 0L;
	DWORD                dwFuncNum           = 0L;
	DWORD                dwVector            = 0xFF;
	UCHAR                ucResType           = 0;
	DWORD                dwStartAddr         = 0L;
	DWORD                dwEndAddr           = 0L;
	LPVOID               lppParam[6];
	
	if(NULL == lpPhyDev)  //Invalid parameter.
		return;

	lpPciInfo      = (__PCI_DEVICE_INFO*)lpPhyDev->lpPrivateInfo;
	dwDevNum       = lpPciInfo->DeviceNum;
	dwFuncNum      = lpPciInfo->FunctionNum;
	for(dwLoop = 0;dwLoop < MAX_RESOURCE_NUM;dwLoop ++)
	{
		if(RESOURCE_TYPE_INTERRUPT == lpPhyDev->Resource[dwLoop].dwResType)
		{
			dwVector = (DWORD)lpPhyDev->Resource[dwLoop].ucVector;
			break;
		}
	}
	if(RESOURCE_TYPE_EMPTY != lpPhyDev->Resource[0].dwResType)
	{
		switch(lpPhyDev->Resource[0].dwResType)
		{
		case RESOURCE_TYPE_MEMORY:
			ucResType = 'M';        //Memory.
			dwStartAddr = (DWORD)lpPhyDev->Resource[0].MemoryRegion.lpStartAddr;
			dwEndAddr   = (DWORD)lpPhyDev->Resource[0].MemoryRegion.lpEndAddr;
			break;
		case RESOURCE_TYPE_IO:
			ucResType = 'I';        //Memory.
			dwStartAddr = (DWORD)lpPhyDev->Resource[0].IOPort.wStartPort;
			dwEndAddr   = (DWORD)lpPhyDev->Resource[0].IOPort.wEndPort;
			break;
		default:
			break;
		}
	}
	//
	//Now,we shall print out all device information.
	//
	lppParam[0] = (LPVOID)&dwDevNum;
	lppParam[1] = (LPVOID)&dwFuncNum;
	lppParam[2] = (LPVOID)&dwVector;
	lppParam[3] = (LPVOID)&ucResType;
	lppParam[4] = (LPVOID)&dwStartAddr;
	lppParam[5] = (LPVOID)&dwEndAddr;

	PrintLine("    Dev/Func    IntVector    ResType    ResStart      ResEnd");
	FormString(strBuff,"         %d/%d           %d          %c    0x%x    0x%x",lppParam);
	PrintLine(strBuff);
	//
	//Print out the rest resource information.
	//
	for(dwLoop = 1;dwLoop < MAX_RESOURCE_NUM;dwLoop ++)
	{
		if(lpPhyDev->Resource[dwLoop].dwResType == RESOURCE_TYPE_EMPTY)
			break;

		switch(lpPhyDev->Resource[dwLoop].dwResType)
		{
		case RESOURCE_TYPE_MEMORY:
			ucResType = 'M';        //Memory.
			dwStartAddr = (DWORD)lpPhyDev->Resource[dwLoop].MemoryRegion.lpStartAddr;
			dwEndAddr   = (DWORD)lpPhyDev->Resource[dwLoop].MemoryRegion.lpEndAddr;
			break;
		case RESOURCE_TYPE_IO:
			ucResType = 'I';        //Memory.
			dwStartAddr = (DWORD)lpPhyDev->Resource[dwLoop].IOPort.wStartPort;
			dwEndAddr   = (DWORD)lpPhyDev->Resource[dwLoop].IOPort.wEndPort;
			break;
		default:
			continue;    //Continue to process another.
		}
		lppParam[0] = (LPVOID)&ucResType;
		lppParam[1] = (LPVOID)&dwStartAddr;
		lppParam[2] = (LPVOID)&dwEndAddr;
		FormString(strBuff,"                                   %c    0x%x    0x%x",lppParam);
		PrintLine(strBuff);
	}
	return;
}

//
//The handler of devinfo command.
//
static DWORD devinfo(__CMD_PARA_OBJ* lpCmdObj)
{
	__PHYSICAL_DEVICE*          lpPhyDev       = NULL;
	DWORD                       dwVendor       = 0;
	DWORD                       dwDevice       = 0;
	__IDENTIFIER                DevId;

	if((NULL == lpCmdObj) || (lpCmdObj->byParameterNum < 3))  //Parameter check.
	{
		PrintLine("  Usage: devinfo vendor_id device_id.");
		return SYS_DIAG_CMD_PARSER_INVALID;
	}

	if(!Str2Hex(lpCmdObj->Parameter[1],&dwVendor))  //Get the time span to beep.
	{
		PrintLine("  Invalid vendor ID parameter.");
		return SYS_DIAG_CMD_PARSER_INVALID;
	}

	if(!Str2Hex(lpCmdObj->Parameter[2],&dwDevice))  //Get the time span to beep.
	{
		PrintLine("  Invalid device ID parameter.");
		return SYS_DIAG_CMD_PARSER_INVALID;
	}
	
	DevId.dwBusType   = BUS_TYPE_PCI;
	DevId.PCI_Identifier.ucMask  = PCI_IDENTIFIER_MASK_VENDOR | PCI_IDENTIFIER_MASK_DEVICE;
	DevId.PCI_Identifier.wVendor = (WORD)dwVendor;
	DevId.PCI_Identifier.wDevice = (WORD)dwDevice;
	lpPhyDev = DeviceManager.GetDevice(
		&DeviceManager,
		BUS_TYPE_PCI,
		&DevId,
		NULL);
	if(NULL == lpPhyDev)
	{
		PrintLine("Can not find proper device.");
		return SYS_DIAG_CMD_PARSER_SUCCESS;
	}
	while(lpPhyDev)
	{
		PrintDevInfo(lpPhyDev);  //Print out the device information.
		lpPhyDev = DeviceManager.GetDevice(
			&DeviceManager,
			BUS_TYPE_PCI,
			&DevId,
			lpPhyDev);
	}
	return SYS_DIAG_CMD_PARSER_SUCCESS;
}

static DWORD cpuload(__CMD_PARA_OBJ*)
{
	__KERNEL_THREAD_MESSAGE msg;

	msg.wCommand = STAT_MSG_SHOWSTATINFO;
	SendMessage((__COMMON_OBJECT*)lpStatKernelThread,
		&msg);
	return SYS_DIAG_CMD_PARSER_SUCCESS;
}

static DWORD devlist(__CMD_PARA_OBJ*)
{
	__KERNEL_THREAD_MESSAGE msg;

	msg.wCommand = STAT_MSG_LISTDEV;
	SendMessage((__COMMON_OBJECT*)lpStatKernelThread,
		&msg);
	return SYS_DIAG_CMD_PARSER_SUCCESS;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩高清在线| 亚洲欧美一区二区三区久本道91| 国产亚洲精品福利| 一区二区三区欧美亚洲| 激情五月婷婷综合| 欧美日韩一区视频| 中文字幕一区二区在线观看| 日韩福利电影在线观看| 欧美综合视频在线观看| 国产精品久久一级| 国产超碰在线一区| 久久免费精品国产久精品久久久久| 午夜天堂影视香蕉久久| 色哟哟一区二区在线观看| 国产精品女主播在线观看| 精品一区二区三区免费播放| 欧美精品在线视频| 亚洲一区免费观看| 日本高清成人免费播放| 成人欧美一区二区三区小说 | 国产三级一区二区| 国内精品视频666| 日韩欧美亚洲国产精品字幕久久久| 亚洲国产毛片aaaaa无费看| 色一情一伦一子一伦一区| 中文字幕日本不卡| 一本色道a无线码一区v| 综合电影一区二区三区 | 日韩午夜精品视频| 日韩成人免费电影| 在线观看91av| 久久精品噜噜噜成人av农村| 日韩三级伦理片妻子的秘密按摩| 性欧美疯狂xxxxbbbb| 欧美精品日韩一本| 日本三级亚洲精品| 欧美一级片在线看| 黄色精品一二区| 国产丝袜美腿一区二区三区| fc2成人免费人成在线观看播放| 国产精品毛片a∨一区二区三区| 丰满白嫩尤物一区二区| 国产精品不卡在线| 欧美色区777第一页| 蜜臀av性久久久久蜜臀aⅴ四虎| 制服.丝袜.亚洲.另类.中文| 久久精品免费看| 国产精品天干天干在线综合| 91啪在线观看| 无吗不卡中文字幕| 久久婷婷国产综合精品青草| 成人一区二区三区| 一区二区在线电影| 日韩一级精品视频在线观看| 国产乱码精品一区二区三区忘忧草 | 99久久精品久久久久久清纯| 亚洲黄色录像片| 日韩精品自拍偷拍| 成人免费va视频| 亚洲精品视频在线观看网站| 这里只有精品99re| 国产v综合v亚洲欧| 亚洲一级不卡视频| 久久精品欧美日韩| 欧美日免费三级在线| 国产最新精品免费| 怡红院av一区二区三区| 精品国产一区二区亚洲人成毛片| 欧美成人r级一区二区三区| 国产精品18久久久久久vr| 亚洲伦理在线免费看| 亚洲精品一线二线三线| 色素色在线综合| 国产精品自产自拍| 午夜精品久久久久久不卡8050| 久久婷婷久久一区二区三区| 欧美日韩免费观看一区三区| 国产一区二区三区免费| 午夜av一区二区| 专区另类欧美日韩| 国产亚洲短视频| 欧美成人激情免费网| 欧美系列日韩一区| 成人美女视频在线观看18| 日本欧美一区二区三区乱码| 亚洲精品成人天堂一二三| 久久久国产精品麻豆 | 成a人片国产精品| 日韩精品久久久久久| 亚洲欧洲成人精品av97| 精品欧美一区二区三区精品久久| 91成人在线精品| 91女人视频在线观看| 国产成人精品三级麻豆| 国内外成人在线| 蜜臀av性久久久久av蜜臀妖精 | 欧美在线一区二区三区| 成人在线综合网| 国产一区二区精品在线观看| 日本vs亚洲vs韩国一区三区 | 国产精品美女久久久久久2018| 欧美一区二区三区免费| 欧美国产日韩一二三区| 精品人在线二区三区| 欧美群妇大交群中文字幕| 欧美日韩一级二级| 91成人免费电影| 色婷婷激情综合| 91久久精品国产91性色tv| 91久久精品午夜一区二区| 色综合久久88色综合天天免费| 99免费精品视频| 色天使色偷偷av一区二区| 欧美在线播放高清精品| 欧美午夜在线一二页| 91麻豆精品国产91| 日韩三级在线免费观看| 日韩欧美一二三四区| 久久综合久久综合九色| 久久精品免视看| 日韩毛片一二三区| 亚洲一区av在线| 青娱乐精品视频| 国产在线精品一区二区夜色| 国产成人亚洲综合a∨猫咪| 成人黄色a**站在线观看| 99视频有精品| 欧美日韩久久久| 欧美一级欧美三级| 国产日韩欧美麻豆| 亚洲免费观看在线观看| 婷婷一区二区三区| 国产又黄又大久久| 99久久99久久综合| 在线观看91av| 国产女人aaa级久久久级| 一区二区三区在线播放| 秋霞午夜鲁丝一区二区老狼| 国产福利不卡视频| 色偷偷成人一区二区三区91| 欧美一区二区三区日韩| 国产日韩精品视频一区| 亚洲欧美精品午睡沙发| 日韩国产精品久久久久久亚洲| 国产专区综合网| 色激情天天射综合网| 日韩欧美一区二区在线视频| 国产欧美一区二区三区在线老狼| 亚洲精品少妇30p| 久久er99热精品一区二区| 不卡大黄网站免费看| 欧美一区二区视频在线观看| 国产精品乱人伦| 久久国产夜色精品鲁鲁99| 91丨porny丨国产入口| 日韩视频免费观看高清完整版在线观看 | 国产喂奶挤奶一区二区三区| 亚洲乱码国产乱码精品精可以看| 欧美aⅴ一区二区三区视频| 99视频有精品| 久久久综合视频| 亚洲一区二区偷拍精品| 国产成a人亚洲精| 日韩欧美激情四射| 一区二区三区欧美| 国产suv精品一区二区三区| 欧美精品乱码久久久久久| 国产精品伦理一区二区| 激情综合五月天| 欧美电影一区二区| 一区二区三区91| 波多野结衣在线一区| 欧美变态tickling挠脚心| 亚洲一级不卡视频| 91美女视频网站| 国产清纯白嫩初高生在线观看91 | 国产色一区二区| 久久狠狠亚洲综合| 91精品国产一区二区三区蜜臀 | 亚洲视频一区在线观看| 国产一区二区精品久久91| 欧美男同性恋视频网站| 亚洲色图都市小说| 成人精品一区二区三区四区| 久久久欧美精品sm网站| 久久成人免费电影| 欧美一级在线免费| 蜜臀91精品一区二区三区| 欧美精选午夜久久久乱码6080| 一区二区欧美在线观看| 色综合久久六月婷婷中文字幕| 国产精品久久久久久福利一牛影视| 国产一区二区三区在线观看精品| 欧美大黄免费观看| 久久精品噜噜噜成人88aⅴ| 精品日韩欧美一区二区| 久久99久久精品欧美| xfplay精品久久| 国产精品羞羞答答xxdd| 国产日本亚洲高清|