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

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

?? timer.cpp

?? 小型的操作系統開發的原代碼
?? CPP
字號:
//***********************************************************************/
//    Author                    : Garry
//    Original Date             : May,31 2004
//    Module Name               : timer.h
//    Module Funciton           : 
//                                This module countains time handle source
//                                code.
//    Last modified Author      :
//    Last modified Date        :
//    Last modified Content     :
//                                1.
//                                2.
//    Lines number              :
//***********************************************************************/

#ifndef __STDAFX_H__
#include "..\INCLUDE\StdAfx.h"
#endif

//
//Global variables.
//

//Total time counter,it is combined by two parts,one is high part,which
//is a double word,and the other is low part,it is a word.
DWORD g_TimerCounterL = 0x00000000;
WORD  g_TimerCounterH = 0x0000;

//Time object slot array.
__TIME_SLOT_OBJECT TimeSlot[MAX_TIME_SLOT_OBJECT] = {0};

//Total time slot object number currently.
DWORD g_dwTimeObjectNum = 0x00000000;

BOOL AdjustSlot();
//Add a time object into slot.
BOOL SetTimer(__TASK_CTRL_BLOCK* pTCB,DWORD dwTimeSpan,WORD wTimerID)
{
	/*if(MAX_TIME_SLOT_OBJECT == g_dwTimeObjectNum)
		return FALSE;

	TimeSlot[g_dwTimeObjectNum].dwTimeSpan = dwTimeSpan;
	TimeSlot[g_dwTimeObjectNum].pTCB       = pTCB;
	TimeSlot[g_dwTimeObjectNum].wTimerID   = wTimerID;
	g_dwTimeObjectNum ++;*/

	WORD wr = 0x0000;
	for(wr = 0;wr < MAX_TIME_SLOT_OBJECT;wr ++)
	{
		if(0 == TimeSlot[wr].dwTimeSpan)
			break;
	}

	if(MAX_TIME_SLOT_OBJECT == wr)
		return FALSE;

	TimeSlot[wr].pTCB       = pTCB;
	TimeSlot[wr].dwTimeSpan = dwTimeSpan;
	TimeSlot[wr].wTimerID   = wTimerID;

	return TRUE;
}

//Adjust the time object slot,delete all free slots,and reorganize them.
BOOL AdjustSlot()
{
	WORD headptr  = 0x00;
	WORD trailptr = LOWORD(g_dwTimeObjectNum) - 1;

	while(headptr <= trailptr){                     //Adjust the time slot
		                                           //array.
		                                           //This algrithm keeps 2
		                                           //pointers:headptr and
		                                           //trailptr,the headptr
		                                           //points to the first 
		                                           //free slot,and the trail
		                                           //points to the last occupied
		                                           //time slot,then exchange them,
		                                           //repeat this.
		while((0 != TimeSlot[headptr].dwTimeSpan)
			&& (headptr < LOWORD(g_dwTimeObjectNum)))
			headptr ++;                            //Find the first free slot's
		                                           //index.
		while((0 == TimeSlot[trailptr].dwTimeSpan)
			   && trailptr)
			   trailptr --;                        //Find the first occupied slot.
		if(headptr > trailptr)
			break;

		TimeSlot[headptr].wTimerID    = TimeSlot[trailptr].wTimerID;
		TimeSlot[headptr].dwTimeSpan  = TimeSlot[trailptr].dwTimeSpan;  //Swap.
		TimeSlot[headptr].pTCB        = TimeSlot[trailptr].pTCB;
		TimeSlot[trailptr].dwTimeSpan = 0;
		g_dwTimeObjectNum --;
		headptr ++;
		if(trailptr)
			trailptr --;
	};

	return TRUE;
}

//
//Timer interrupt handler.
//The parameter,dwEsp,is the esp register's value before this procedure is
//called.So,the system can access the general registers by this pointer.
//
VOID TimerHandler(DWORD dwEsp)
{
	WORD  wr;
	__MSG msg;
	DWORD dwTmp = 0x00;
	//BYTE  Buffer[12];            //--------- ** debug ** ----------

	g_TimerCounterL ++;          //Increment the low part of timer counter.
	if(0xffffffff == g_TimerCounterL) 
	{
		g_TimerCounterL =  0;
		g_TimerCounterH += 1;
	}
	msg.wCommand = MSG_TIMER;    //Initialize the message.

	for(wr = 0;wr < /*LOWORD(g_dwTimeObjectNum)*/MAX_TIME_SLOT_OBJECT;wr ++)
	{
		if(0 == TimeSlot[wr].dwTimeSpan)
			continue;
		dwTmp = -- TimeSlot[wr].dwTimeSpan;
		if(0 == dwTmp)
		{
			msg.dwParam = TimeSlot[wr].wTimerID;
			SendMessage(TimeSlot[wr].pTCB,msg.wCommand,msg.dwParam);    //Send a message to the task.
		}

	}

	//ScheduleKThread(dwEsp);
	KernelThreadManager.ScheduleFromInt(
		(__COMMON_OBJECT*)&KernelThreadManager,
		(LPVOID)dwEsp);               //Re-schedule the kernal thread.

	//KernelThreadManager.ScheduleFromInt((__COMMON_OBJECT*)&KernelThreadManager,
	//	(LPVOID)dwEsp);

	//PrintLine("Timer handler called,g_dwTimeObjectNum = ");
	//Int2Str(g_dwTimeObjectNum,Buffer);
	//PrintStr(Buffer);

	//AdjustSlot();                //Readjust the time slot.
}

DWORD GetRunTime()
{
	return g_TimerCounterL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费三区一区二区| 色婷婷av一区二区三区大白胸| 婷婷激情综合网| 韩国午夜理伦三级不卡影院| 在线视频欧美区| 久久精品在这里| 免费在线一区观看| 91猫先生在线| 中文字幕国产一区| 毛片av一区二区| 欧美日韩一区国产| 国产精品色哟哟| 精品一区二区在线视频| 欧美日韩精品免费观看视频 | 中文字幕av不卡| 日韩av在线发布| 91福利视频在线| 国产精品久久久久久福利一牛影视 | 日本亚洲三级在线| 91久久久免费一区二区| 国产日韩精品视频一区| 久久超碰97中文字幕| 欧美色爱综合网| 亚洲高清视频中文字幕| 成av人片一区二区| 国产欧美一区二区三区在线看蜜臀| 麻豆一区二区99久久久久| 欧美日韩电影在线| 亚洲国产日产av| 欧美视频在线观看一区| 亚洲另类春色国产| 91精品1区2区| 亚洲成av人片在线观看| 色香蕉成人二区免费| 亚洲激情自拍偷拍| 在线亚洲一区二区| 亚洲曰韩产成在线| 欧美性大战久久久| 亚洲一区二区三区不卡国产欧美| 欧美性大战久久| 日韩成人精品在线| 日韩你懂的在线观看| 蜜桃久久av一区| 精品嫩草影院久久| 国产乱色国产精品免费视频| 久久久一区二区三区捆绑**| 成人午夜电影久久影院| 中文字幕一区二区三区不卡在线| 北岛玲一区二区三区四区| 亚洲美女少妇撒尿| 欧美日韩国产123区| 久久精品国产亚洲a| 久久久久久一二三区| av电影一区二区| 天堂久久久久va久久久久| 日韩久久久精品| 国产成人综合网| 一区二区三区欧美日韩| 91精品欧美福利在线观看| 极品少妇一区二区三区精品视频| 国产喷白浆一区二区三区| 91色在线porny| 免费看欧美女人艹b| 欧美国产丝袜视频| 欧美午夜影院一区| 精品一区二区三区免费视频| 亚洲欧美激情小说另类| 日韩免费性生活视频播放| 丁香六月久久综合狠狠色| 亚洲高清免费视频| 国产日韩欧美a| 欧美三级视频在线| 国产传媒久久文化传媒| 午夜不卡av在线| 中文字幕国产精品一区二区| 666欧美在线视频| 成人美女视频在线观看18| 亚洲成a人v欧美综合天堂下载| 久久精品一区二区三区四区 | 成人avav在线| 天使萌一区二区三区免费观看| 欧美国产在线观看| 欧美一区中文字幕| 99精品热视频| 国产成人免费在线视频| 日韩电影免费在线| 亚洲欧美另类久久久精品2019| 欧美精品一区二区精品网| 99久久综合狠狠综合久久| 伦理电影国产精品| 亚洲丶国产丶欧美一区二区三区| 国产精品色在线观看| 精品国产99国产精品| 欧美性大战久久久| 粉嫩13p一区二区三区| 激情久久五月天| 日本亚洲天堂网| 亚洲综合视频网| 成人免费在线观看入口| 欧美激情一区二区三区不卡 | 欧美色中文字幕| 91亚洲男人天堂| 99这里只有精品| 国产精品一品二品| 九九在线精品视频| 日韩av一区二区三区四区| 亚洲在线视频免费观看| 樱桃视频在线观看一区| 国产精品你懂的| 中文在线资源观看网站视频免费不卡 | 久久综合色一综合色88| 欧美丰满一区二区免费视频| 欧美亚洲国产怡红院影院| 色视频成人在线观看免| 91久久精品网| 欧美吻胸吃奶大尺度电影| 欧美主播一区二区三区美女| 在线中文字幕一区| 欧美日韩精品一区视频| 欧美日韩国产区一| 91精品午夜视频| 亚洲精品一区二区三区蜜桃下载| 欧美精品一区二区在线观看| www久久精品| 欧美经典三级视频一区二区三区| 国产精品天干天干在线综合| 欧美国产欧美综合| 最新成人av在线| 午夜欧美在线一二页| 日韩av高清在线观看| 美国精品在线观看| 国产精品18久久久| 97精品国产露脸对白| 日本福利一区二区| 91精品国产色综合久久| 26uuu久久综合| 中文字幕一区av| 一区二区三区波多野结衣在线观看 | 国产精品免费人成网站| 亚洲最大成人网4388xx| 日韩av中文字幕一区二区| 国产一区二区在线免费观看| 成人性生交大合| 欧美日韩和欧美的一区二区| 日韩精品一区二区三区在线播放 | 日韩网站在线看片你懂的| 欧美精品一区二区三区蜜桃视频| 中文在线一区二区| 午夜精品一区二区三区三上悠亚| 麻豆精品一区二区三区| av午夜精品一区二区三区| 欧美日韩二区三区| 日本一区二区三区在线不卡| 亚洲国产欧美在线| 国产成人av影院| 欧美日韩一区二区不卡| 久久精品男人的天堂| 亚洲午夜久久久久久久久电影院 | 日韩欧美成人午夜| 一区在线观看视频| 美女脱光内衣内裤视频久久网站 | 国产成人精品影视| 欧美吻胸吃奶大尺度电影 | 北岛玲一区二区三区四区| 欧美日韩国产乱码电影| 亚洲国产精品二十页| 日韩综合在线视频| voyeur盗摄精品| 日韩三级av在线播放| 亚洲精品欧美专区| 国产成人夜色高潮福利影视| 欧美日韩视频在线第一区| 国产精品嫩草影院av蜜臀| 另类小说图片综合网| 欧美日韩国产不卡| 亚洲视频 欧洲视频| 国产永久精品大片wwwapp| 欧美日韩一级视频| 亚洲免费伊人电影| 成人一级视频在线观看| 欧美乱妇一区二区三区不卡视频| 日韩毛片在线免费观看| 国产精品888| 精品国产麻豆免费人成网站| 亚洲国产综合色| 色偷偷88欧美精品久久久| 中文幕一区二区三区久久蜜桃| 蜜臀av性久久久久av蜜臀妖精| 欧美主播一区二区三区| 亚洲精品福利视频网站| 99re在线精品| 久久久久久久综合狠狠综合| 美女网站在线免费欧美精品| 欧美一卡二卡三卡| 天堂一区二区在线| 欧美日韩国产不卡| 午夜欧美电影在线观看| 欧美日韩精品福利| 婷婷综合另类小说色区| 欧美理论片在线|