亚洲欧美第一页_禁久久精品乱码_粉嫩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精品一区二区三区| 欧美精品亚洲二区| 福利电影一区二区| 久久激情综合网| 日本成人在线电影网| 亚洲第一综合色| 亚洲愉拍自拍另类高清精品| 日韩美女啊v在线免费观看| 国产午夜精品在线观看| 26uuu国产电影一区二区| 精品日韩99亚洲| 日韩欧美中文一区| 精品久久久久99| 亚洲va中文字幕| 一本一道久久a久久精品| 99国产精品一区| 91精彩视频在线观看| 在线观看视频欧美| 欧美一级在线视频| 亚洲精品一线二线三线无人区| 久久九九全国免费| 麻豆精品一区二区av白丝在线| 97超碰欧美中文字幕| 国产校园另类小说区| 91蜜桃在线免费视频| 91一区一区三区| 国产精品婷婷午夜在线观看| 亚洲黄网站在线观看| 91网站在线播放| 亚洲欧美日韩电影| 久久综合综合久久综合| 日韩欧美色电影| 亚洲人成亚洲人成在线观看图片 | 国产aⅴ精品一区二区三区色成熟| 欧美精品电影在线播放| 丝袜诱惑制服诱惑色一区在线观看| 亚洲电影在线播放| 国产精一品亚洲二区在线视频| 不卡视频一二三| 51精品国自产在线| 中文字幕制服丝袜一区二区三区 | 亚洲欧美日韩国产另类专区| 91视频精品在这里| 亚洲国产中文字幕在线视频综合| 日本高清视频一区二区| 丝袜美腿成人在线| 日韩一区和二区| 激情综合网激情| 欧美中文字幕亚洲一区二区va在线 | 成人性生交大片免费看视频在线| 欧美天堂亚洲电影院在线播放| 久久这里都是精品| 国产黄色精品网站| 欧美一区二区日韩一区二区| 麻豆91在线观看| 国产亚洲综合av| 色综合 综合色| 日韩精品亚洲一区二区三区免费| 精品捆绑美女sm三区| 风间由美一区二区av101| 亚洲丝袜精品丝袜在线| 精品1区2区3区| 亚洲精品成人少妇| 欧美老肥妇做.爰bbww| 黄色精品一二区| 91精品国产综合久久小美女| 精品一区二区三区免费毛片爱 | 欧美精品色综合| 国产高清不卡二三区| 亚洲欧美一区二区三区极速播放| 欧美肥妇毛茸茸| 成人性生交大片免费看视频在线 | 亚洲综合色视频| 精品福利二区三区| 91浏览器打开| 国模少妇一区二区三区| 亚洲制服丝袜在线| 亚洲成人免费观看| 久久久久久久久久久久久久久99 | 日韩精品一区二区在线观看| 成人久久视频在线观看| 天堂影院一区二区| 中文一区在线播放| www.日本不卡| 亚洲乱码国产乱码精品精小说| 日韩精品一区二| 一本到三区不卡视频| 国产传媒日韩欧美成人| 天堂精品中文字幕在线| 国产精品亲子乱子伦xxxx裸| 日韩欧美国产高清| 精品视频在线免费看| 91丝袜美腿高跟国产极品老师 | 91一区二区在线| 国产在线播精品第三| 久久综合九色综合97_久久久| 欧美视频三区在线播放| 成人午夜视频免费看| 免费成人在线网站| 国产剧情一区二区| 日韩不卡一二三区| 亚洲国产一区二区在线播放| 亚洲美女在线一区| 国产精品传媒在线| 国产精品久久久久久久第一福利| 精品国产乱码久久久久久牛牛| 这里只有精品视频在线观看| 欧美日韩一区二区三区视频| 欧美天堂一区二区三区| 欧美少妇bbb| 欧美在线视频全部完| 欧美性一级生活| 在线不卡的av| 欧美一区二区免费视频| 91精品国产免费| 日韩欧美国产不卡| 国产视频一区不卡| 中文字幕第一区| 自拍偷拍亚洲综合| 一区二区国产视频| 久久网站最新地址| 久久精品网站免费观看| 国产日韩欧美一区二区三区乱码 | 蜜桃久久av一区| 久久国产尿小便嘘嘘尿| 免费观看在线综合| 极品美女销魂一区二区三区免费| 国模一区二区三区白浆| 国产成人在线视频播放| 国产精品亚洲午夜一区二区三区| 国产综合久久久久久久久久久久| 国产精品一级在线| 97精品久久久久中文字幕| 色综合久久中文字幕综合网| 精品视频在线看| 精品久久国产老人久久综合| 日本一区二区不卡视频| 亚洲精品视频在线看| 青青草97国产精品免费观看| 精品一区二区成人精品| 成人精品鲁一区一区二区| 色94色欧美sute亚洲线路一ni| 欧美日韩国产天堂| 91麻豆国产福利在线观看| 欧美色图一区二区三区| 亚洲欧美日韩国产另类专区 | 国产在线观看一区二区| av在线不卡网| 91精品国产综合久久久久久久久久 | 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 777午夜精品免费视频| 精品99一区二区| 亚洲精品少妇30p| 久久精品国产亚洲一区二区三区 | 国产麻豆9l精品三级站| 91麻豆视频网站| 欧美成人精品1314www| 亚洲色图在线看| 久久99国产精品麻豆| 色婷婷综合久久| 日本一区二区不卡视频| 青青草97国产精品免费观看无弹窗版| 成人免费毛片a| 精品免费日韩av| 亚洲激情网站免费观看| 国产美女精品人人做人人爽| 欧美三级一区二区| 中文字幕高清不卡| 日本中文字幕一区二区视频 | 国产精品免费视频网站| 日产国产高清一区二区三区 | 2022国产精品视频| 亚洲国产精品麻豆| 91一区二区在线| 久久先锋影音av| 麻豆91精品91久久久的内涵| 日本二三区不卡| 亚洲天堂免费看| 国产成人精品免费| 欧美成人a在线| 午夜精品久久久久影视| 三级久久三级久久| 色噜噜夜夜夜综合网| 国产欧美日韩综合| 国产真实乱对白精彩久久| 制服视频三区第一页精品| 亚洲精品视频免费看| 91在线国产福利| 亚洲婷婷综合久久一本伊一区| 国产福利一区在线观看| 久久久久久亚洲综合| 激情都市一区二区| 精品精品欲导航| 裸体一区二区三区| 欧美精品一区男女天堂| 精久久久久久久久久久| 精品国产伦一区二区三区免费 | 精品sm在线观看| 国产精品2024|