亚洲欧美第一页_禁久久精品乱码_粉嫩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 "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一区二区三区免费野_久草精品视频
久久99精品久久只有精品| 自拍偷自拍亚洲精品播放| 欧美在线制服丝袜| 91在线播放网址| 国产高清成人在线| 国产成人免费av在线| 国产麻豆91精品| 北岛玲一区二区三区四区| 成人免费毛片片v| 99在线视频精品| 91蝌蚪porny成人天涯| 在线视频中文字幕一区二区| 91国偷自产一区二区使用方法| 色综合久久久久久久久| 91精彩视频在线| 欧美一级欧美一级在线播放| 日韩欧美在线网站| 久久久美女艺术照精彩视频福利播放| 中文一区二区在线观看| 亚洲欧美影音先锋| 午夜欧美电影在线观看| 日本不卡一区二区三区高清视频| 久久99精品久久久久| 成人网男人的天堂| 欧美亚洲日本国产| 亚洲精品在线一区二区| 国产精品人成在线观看免费| 亚洲精品视频自拍| 人人爽香蕉精品| 国产成人免费视频精品含羞草妖精 | 久久精品视频一区二区| 国产精品久久三| 一区二区三区高清| 蜜臀av一区二区在线免费观看| 国精品**一区二区三区在线蜜桃 | ...xxx性欧美| 天堂一区二区在线免费观看| 国产综合色产在线精品| 日本大香伊一区二区三区| 精品日韩欧美在线| 亚洲精选视频在线| 精品一区二区精品| 精品视频在线视频| 欧美激情在线观看视频免费| 亚洲成av人在线观看| 成人黄页毛片网站| 欧美一级理论片| 亚洲另类中文字| 国产一区二区三区四区五区入口| 在线视频观看一区| 亚洲国产高清aⅴ视频| 久久精品久久99精品久久| 91久久免费观看| 亚洲国产经典视频| 国产尤物一区二区| 884aa四虎影成人精品一区| 中文字幕在线不卡| 韩国三级中文字幕hd久久精品| 欧美日本一区二区三区四区| 亚洲欧洲成人精品av97| 国产精品亚洲人在线观看| 91精品国产一区二区三区香蕉| 亚洲伦在线观看| 97精品久久久午夜一区二区三区| 久久综合九色欧美综合狠狠| 亚洲一区二区三区四区五区中文| 暴力调教一区二区三区| 国产欧美日产一区| 国产精品影音先锋| 国产人久久人人人人爽| 老司机免费视频一区二区| 制服.丝袜.亚洲.另类.中文| 亚洲成人精品一区二区| 欧美视频在线播放| 尤物在线观看一区| 欧美调教femdomvk| 日韩av成人高清| 日韩女优电影在线观看| 美女网站色91| 精品国产髙清在线看国产毛片| 麻豆精品在线观看| 26uuu亚洲| 成人激情文学综合网| ...xxx性欧美| 欧美高清视频一二三区| 日韩av中文字幕一区二区三区| 69堂成人精品免费视频| 精品一区二区三区在线观看国产 | 国产成人综合在线| 国产亚洲精品资源在线26u| 成人免费毛片高清视频| 亚洲免费高清视频在线| 欧美日韩午夜在线视频| 美女一区二区在线观看| 国产精品情趣视频| 欧美日韩一区在线观看| 韩国v欧美v日本v亚洲v| 国产精品久久久久久久久免费樱桃| 972aa.com艺术欧美| 亚洲激情图片qvod| 在线不卡免费欧美| 国产成人免费视频一区| 亚洲最色的网站| 久久这里都是精品| 色网站国产精品| 激情综合五月天| 亚洲免费观看在线视频| 日韩欧美在线网站| 国产成人av电影在线| 欧美视频一区二区三区在线观看 | 欧美日韩视频第一区| 婷婷丁香激情综合| 精品噜噜噜噜久久久久久久久试看 | 岛国一区二区在线观看| 国产精品色哟哟网站| 欧美日韩国产小视频| 久久国产免费看| 亚洲激情图片小说视频| 91麻豆精品91久久久久同性| 成人精品鲁一区一区二区| 一级日本不卡的影视| 久久嫩草精品久久久久| 色拍拍在线精品视频8848| 国产一区在线观看视频| 亚洲一二三区不卡| 久久久欧美精品sm网站| 欧美日韩不卡一区二区| 成人国产精品免费观看视频| 看电视剧不卡顿的网站| 中文字幕色av一区二区三区| xvideos.蜜桃一区二区| 91久久精品一区二区三区| 国产精品乡下勾搭老头1| 亚洲综合色噜噜狠狠| 中文字幕一区不卡| 日韩一二三四区| 色香蕉成人二区免费| 97久久精品人人做人人爽50路| 蜜桃视频一区二区三区| 亚洲成年人网站在线观看| 亚洲国产精品t66y| 国产午夜精品一区二区三区视频 | 亚洲欧洲中文日韩久久av乱码| 成人动漫av在线| 国产成人午夜视频| 久久99精品网久久| 人妖欧美一区二区| 欧美aaaaaa午夜精品| 亚洲香蕉伊在人在线观| 一区二区三区久久久| 国产精品免费人成网站| 国产无遮挡一区二区三区毛片日本| 色成年激情久久综合| 色天使久久综合网天天| 欧美在线观看一区二区| 91香蕉视频污在线| 欧美中文字幕一区二区三区亚洲| 国产成人av影院| 成人免费视频视频| 成人蜜臀av电影| 91天堂素人约啪| 国产伦精品一区二区三区在线观看| 极品少妇一区二区| 粉嫩一区二区三区性色av| 国产精品自拍一区| 成人少妇影院yyyy| 成人性生交大片| 在线欧美日韩国产| 成人性生交大片免费看中文 | 日本中文字幕不卡| 麻豆一区二区99久久久久| 日本欧美一区二区三区乱码| 精品亚洲成a人| 国产精品自拍一区| 一本到三区不卡视频| 波多野洁衣一区| 欧美日韩国产电影| 久久精品在这里| 国产精品狼人久久影院观看方式| 亚洲激情六月丁香| 亚洲成人精品在线观看| 麻豆成人久久精品二区三区红| 美国欧美日韩国产在线播放| 亚洲国产精品视频| 蜜臀精品久久久久久蜜臀| 全部av―极品视觉盛宴亚洲| 国产盗摄女厕一区二区三区| 91麻豆国产自产在线观看| 欧美日韩在线精品一区二区三区激情 | 91麻豆.com| 欧美videossexotv100| 国产区在线观看成人精品| 亚洲成人动漫在线免费观看| 久久99精品久久久| 欧美在线观看视频在线| 日本一区二区三区久久久久久久久不| 亚洲丝袜另类动漫二区| 玖玖九九国产精品| 91麻豆123| 亚洲国产成人午夜在线一区|