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

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

?? sysd_s.cpp

?? 小型的操作系統開發的原代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	//Now,the variable dwTimeSpan countains the time to beep.
	//
	lpTimerObject = System.SetTimer((__COMMON_OBJECT*)&System,
		KernelThreadManager.lpCurrentKernelThread,
		dwTimerID,
		dwTimeSpan,
		NULL,
		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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文幕一区二区三区久久蜜桃| 精品国产不卡一区二区三区| 成人午夜电影小说| 国产露脸91国语对白| 黄色精品一二区| 黄色精品一二区| 国产激情偷乱视频一区二区三区| 韩国三级中文字幕hd久久精品| 麻豆91在线观看| 国产一区视频导航| 99综合影院在线| 在线一区二区三区| 3atv一区二区三区| www国产亚洲精品久久麻豆| 欧美韩日一区二区三区四区| 亚洲天堂精品在线观看| 一区二区三区久久| 男人的j进女人的j一区| 久久 天天综合| 972aa.com艺术欧美| 在线免费观看日本欧美| 欧美日韩一区二区在线观看视频| 欧美二区乱c少妇| 久久久久久一二三区| 国产精品不卡在线观看| 亚洲一区二区三区影院| 免费的国产精品| av综合在线播放| 91麻豆精品国产91久久久久| 国产片一区二区三区| 亚洲免费色视频| 久久成人久久爱| 91福利精品第一导航| 精品三级在线观看| 中文字幕佐山爱一区二区免费| 日韩黄色在线观看| av不卡在线播放| 91精品国产综合久久福利| 欧美国产欧美综合| 日日夜夜免费精品| 成人app网站| 精品国产麻豆免费人成网站| 亚洲国产精品人人做人人爽| 国产馆精品极品| 欧美一级免费观看| 夜夜操天天操亚洲| 国产成人免费视频一区| 欧美一区二区三区在线视频| 国产精品国产三级国产专播品爱网| 日韩电影在线观看网站| 91福利国产精品| 国产精品初高中害羞小美女文| 黑人巨大精品欧美一区| 欧美精品丝袜中出| 一区二区三区四区视频精品免费| 国产在线不卡一区| 欧美本精品男人aⅴ天堂| 亚洲国产精品一区二区尤物区| 成人av在线播放网址| 26uuu色噜噜精品一区| 五月天丁香久久| 欧美色大人视频| 亚洲激情校园春色| 91蜜桃网址入口| 亚洲欧洲精品一区二区三区 | 麻豆成人在线观看| 91精品福利在线| 亚洲人一二三区| 波多野结衣中文字幕一区二区三区| 精品美女在线播放| 久久精品国产澳门| 日韩精品一区二区三区蜜臀| 丝袜脚交一区二区| 555夜色666亚洲国产免| 日韩精品亚洲一区| 日韩欧美综合一区| 蜜臀精品一区二区三区在线观看 | 色综合天天综合网天天狠天天| 欧美国产精品中文字幕| 成人美女在线视频| 最新热久久免费视频| 色综合一区二区| 亚洲国产精品一区二区www | 成人综合婷婷国产精品久久| 国产欧美日韩综合| 色综合久久中文字幕| 亚洲高清不卡在线观看| 欧美绝品在线观看成人午夜影视| 美女一区二区在线观看| 国产日本一区二区| 色域天天综合网| 天天射综合影视| 久久久蜜臀国产一区二区| 国产成人av一区二区三区在线观看| 中文字幕一区二区三区av| 精品视频全国免费看| 捆绑变态av一区二区三区| 国产欧美一区二区精品仙草咪| www.成人在线| 肉色丝袜一区二区| 日本一区二区三区四区在线视频| 一本色道亚洲精品aⅴ| 日韩经典一区二区| 国产精品久久久久久户外露出 | 精品少妇一区二区三区视频免付费| 国产一区二区三区在线观看免费 | 国产成人亚洲综合色影视| 中文字幕欧美激情一区| 欧美视频自拍偷拍| 国产成人亚洲综合a∨婷婷图片| 伊人婷婷欧美激情| 久久久蜜桃精品| 欧美高清激情brazzers| 成人国产一区二区三区精品| 青青草原综合久久大伊人精品优势| 中文字幕成人网| 欧美一卡二卡三卡四卡| 99re6这里只有精品视频在线观看| 日本伊人色综合网| 一级中文字幕一区二区| 久久精品夜夜夜夜久久| 制服丝袜亚洲色图| 在线观看网站黄不卡| 国产精品一色哟哟哟| 午夜影院久久久| 椎名由奈av一区二区三区| 欧美成人r级一区二区三区| 91免费小视频| 国产99精品在线观看| 免费一级欧美片在线观看| 亚洲自拍偷拍图区| 亚洲国产精品成人综合| 精品久久久三级丝袜| 欧美久久一二区| 欧美日韩精品欧美日韩精品一综合| 成人sese在线| 成人网页在线观看| 麻豆高清免费国产一区| 日韩成人免费看| 蜜臀久久99精品久久久久久9| 亚洲日本va午夜在线影院| 国产欧美日产一区| 久久天天做天天爱综合色| 制服丝袜中文字幕一区| 欧美蜜桃一区二区三区| 欧美亚洲综合久久| 91成人免费在线视频| 91麻豆免费看| 一本大道久久a久久精品综合 | 中文字幕一区二区在线播放| 国产欧美一区二区三区鸳鸯浴| 久久综合九色综合97_久久久| 日韩免费电影一区| 精品国精品自拍自在线| 精品久久久久香蕉网| 久久久欧美精品sm网站| 国产亚洲精品免费| 亚洲国产精品激情在线观看| 欧美高清在线视频| 成人欧美一区二区三区| 亚洲色图19p| 亚洲一区二区免费视频| 日韩中文字幕区一区有砖一区| 日韩在线a电影| 国产在线国偷精品免费看| 成人精品小蝌蚪| 91成人看片片| 日韩欧美一级二级| 国产精品色在线| 亚洲综合一区二区三区| 青娱乐精品视频| 成人中文字幕在线| 91国产丝袜在线播放| 欧美一区二区三区系列电影| 久久精品一二三| 亚洲一区二区三区中文字幕| 日韩二区在线观看| 丰满岳乱妇一区二区三区| 一本大道久久a久久精品综合| 欧美日韩亚洲另类| 国产午夜亚洲精品午夜鲁丝片| 国产精品人成在线观看免费| 亚洲国产日日夜夜| 精品午夜久久福利影院| 91热门视频在线观看| 欧美高清一级片在线| 国产女人18毛片水真多成人如厕| 夜夜爽夜夜爽精品视频| 精品一区二区免费看| 91麻豆产精品久久久久久| 制服丝袜亚洲精品中文字幕| 中文在线资源观看网站视频免费不卡 | 亚洲国产精品99久久久久久久久| 亚洲精品国产一区二区精华液| 免费人成黄页网站在线一区二区 | 亚洲国产va精品久久久不卡综合| 九九**精品视频免费播放| 91久久国产综合久久| 欧美经典一区二区三区| 秋霞电影网一区二区|