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

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

?? timers.c

?? 用于以太網開發
?? C
字號:
#include <debug.h>
#include <datatypes.h>
#include <timers.h>
#include <system.h>

/** \brief Timer pool used to keep information about available timers
 *	
 *  This timer pool is extensively used by most of the modules of the 
 * 	OpenTCP project. All timers that are used are allocated from this
 * 	pool. Maximum number of timers that can be used at any given time
 *	is defined by the #NUMTIMERS define.
 */
struct
{
	UINT32 value;
	UINT8 free;
} timer_pool[NUMTIMERS];

/** \brief Initialize timer pool
 *	\ingroup core_initializer
 * 	\author 
 *		\li Jari Lahti (jari.lahti@violasystems.com)
 *	\date 18.07.2001
 *	\warning
 *		\li This function <b>must</b> be invoked at startup before
 *		any other timer function is used.
 *
 *	This function resets all timer counter to zero and initializes all 
 *	timers to available (free) state.
 *
 */
void timer_pool_init (void)
{
	UINT8 i;

	for( i=0; i < NUMTIMERS; i++) {
		timer_pool[i].value = 0;
		timer_pool[i].free = TRUE;
		
	}
		

}


/** \brief Obtain a timer from timer pool
 * 	\author 
 *		\li Jari Lahti (jari.lahti@violasystems.com)
 *	\date 18.07.2001
 *	\return Handle to a free timer
 *	\warning
 *		\li Timers are considered to be critical resources, so if there is 
 *		no available timer and get_timer is invoked, system will reset.
 *
 *	Invoke this function to obtain a free timer (it's handle that is) from
 *	the timer pool.
 */
UINT8 get_timer (void)
{
	
	UINT8 i;
	UINT8 first_match;
	
	
	for( i=0; i < NUMTIMERS; i++) {
		if( timer_pool[i].free == TRUE ) {
			/* We found a free timer! */
			/* Mark is reserved		  */
			
			timer_pool[i].free = FALSE;
			first_match = i;
			return first_match;		/* Return Handle	*/
		}
	
	}
	
	/* Error Check	*/
	
	TMR_DEBUGOUT("No Timers, Resetting..\n\r");
	RESET_SYSTEM();
	

}


/** \brief Release timer back to free timer pool
 * 	\author 
 *		\li Jari Lahti (jari.lahti@violasystems.com)
 *	\date 18.07.2001
 *	\param nbr handle to timer beeing released
 *
 *	This function releases the timer who's handle is supplied as parameter.
 *	Use this when timer is not needed any more and other applications might
 *	use it.
 */
void free_timer (UINT8 nbr)
{
	/* Make a simple check */
	
	if( nbr > (NUMTIMERS-1) ) 
		return; 

	timer_pool[nbr].free = TRUE;

}


/** \brief Initialize timer to a given time-out value
 * 	\author 
 *		\li Jari Lahti (jari.lahti@violasystems.com)
 *	\date 18.07.2001
 *	\param nbr handle of timer who's value we're setting
 *	\param tout time-out value to set for this timer
 *
 *	Invoke this function to set timeout value for a timer with
 *	a given handle.
 *
 *	#TIMERTIC defines how quickly the timers' values are decremented so is
 *	it to initialize timers to correct timeouts.
 */
void init_timer ( UINT8 nbr, UINT32 tout )
{
	/* Make a simple check */
	
	UINT32 val;
	
	if( nbr > (NUMTIMERS-1) ) 
		return; 

	if( timer_pool[nbr].free == TRUE ) 
		return;
		
	/* All OK				*/
	
	val = tout;
	
	OS_EnterCritical();
	
	/* Normalize seconds to timer tics	*/
	
	timer_pool[nbr].value = val;

	OS_ExitCritical();

} 

/** \brief Return the value of a given timer
 * 	\author 
 *		\li Jari Lahti (jari.lahti@violasystems.com)
 *	\date 18.07.2001
 *	\param nbr timer handle who's value is to be returned
 *	\return timer value
 *	\warning 
 *		\li Interrupts are not disabled when fetching the value, therefore
 *		returned value possibly has an error component +/- #TIMERTIC.
 *
 *	Function simply returns timer value of a given timer. No checks are
 *	made in order to make the function as fast as possible.
 */
UINT32 check_timer (UINT8 nbr)
{

	return timer_pool[nbr].value;

}


/** \brief Decrement all timers' values by one
 * 	\author 
 *		\li Vladan Jovanovic (vladan.jovanovic@violasystems.com)
 *	\date 18.07.2001
 *
 *	Invoke this function from timer interrupt to decrement timer counter values
 */
void decrement_timers (void)
{
	UINT8 i;

	/* Go Through Timers */
	
	for( i=0; i<NUMTIMERS; i++ ) {
		if( (timer_pool[i].free == FALSE) && (timer_pool[i].value != 0))
			timer_pool[i].value --;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线高清| 久久97超碰国产精品超碰| 亚洲gay无套男同| 蜜桃91丨九色丨蝌蚪91桃色| 成人av网站在线观看免费| 欧美在线视频不卡| 久久久久亚洲综合| 男人的天堂亚洲一区| www.亚洲免费av| 欧美一区二区福利在线| 国产凹凸在线观看一区二区| 制服.丝袜.亚洲.中文.综合| 国产日韩欧美激情| 亚洲男人天堂av网| 高清不卡一区二区在线| 欧美一区二区黄色| 中文字幕亚洲成人| 国产精品影视网| 日韩一区二区三区电影 | 中文字幕在线观看一区二区| 三级成人在线视频| 97久久精品人人做人人爽50路| 久久亚洲私人国产精品va媚药| 亚洲成人免费在线观看| 不卡欧美aaaaa| 国产精品久久午夜夜伦鲁鲁| 蜜桃一区二区三区在线| 欧美四级电影在线观看| 洋洋成人永久网站入口| 色偷偷久久一区二区三区| 国产欧美一区二区在线观看| 国产精品羞羞答答xxdd| 久久一留热品黄| 九九久久精品视频| 久久综合久久综合九色| 美女网站在线免费欧美精品| 欧美人伦禁忌dvd放荡欲情| 欧美激情自拍偷拍| 国产电影一区二区三区| 欧美电影免费观看完整版| 亚洲v中文字幕| 欧美日韩在线三级| 亚洲另类春色国产| 国产精品美女久久久久aⅴ| 欧美tk—视频vk| 卡一卡二国产精品| 国产清纯美女被跳蛋高潮一区二区久久w | 在线日韩国产精品| 亚洲人成电影网站色mp4| 韩国av一区二区| 精品国产91乱码一区二区三区| 乱一区二区av| 精品国产人成亚洲区| 国产寡妇亲子伦一区二区| 精品国偷自产国产一区| 精品一区二区三区在线播放| 精品国产百合女同互慰| 国产成人午夜精品5599| 精品久久久久99| 国产精品一区二区免费不卡| 久久人人爽人人爽| 国产·精品毛片| 视频一区在线播放| 日韩电影一二三区| 激情综合网av| 国产一区二区日韩精品| 国产传媒日韩欧美成人| 国产高清在线观看免费不卡| 91丨porny丨户外露出| 国产激情视频一区二区在线观看 | 久久久久亚洲综合| 韩国av一区二区| 日韩女优av电影在线观看| 国产精品99久久久久久宅男| 中文字幕一区在线观看视频| 91最新地址在线播放| 夜夜亚洲天天久久| 欧美一区二区三区白人| 成人黄色片在线观看| 亚洲精品国产无套在线观| 91蜜桃免费观看视频| 亚洲va欧美va人人爽| www激情久久| 在线视频亚洲一区| 亚洲品质自拍视频| 久久久久久**毛片大全| 国产成人鲁色资源国产91色综| 久久久国产综合精品女国产盗摄| av亚洲精华国产精华| 日韩va欧美va亚洲va久久| 最新高清无码专区| 久久久www免费人成精品| 欧美久久婷婷综合色| 91丨porny丨国产入口| 国产米奇在线777精品观看| 日韩主播视频在线| 亚洲欧美日韩中文字幕一区二区三区 | 国产女人aaa级久久久级 | 日韩电影在线观看电影| 亚洲日本在线看| 国产清纯白嫩初高生在线观看91 | 欧洲亚洲国产日韩| 丁香网亚洲国际| 激情六月婷婷久久| 日本欧美大码aⅴ在线播放| 亚洲精品中文在线影院| 亚洲人成人一区二区在线观看| 日本一区二区三区四区| 国产亚洲精品中文字幕| 久久久不卡网国产精品二区| 精品国产乱码久久久久久牛牛| 欧美福利电影网| 欧美一区二区三区色| 制服丝袜激情欧洲亚洲| 91超碰这里只有精品国产| 欧美精品久久天天躁| 日韩午夜中文字幕| 欧美成人性战久久| 精品成人在线观看| 国产亚洲欧洲997久久综合| 国产亚洲女人久久久久毛片| 26uuu亚洲综合色| 久久久久亚洲蜜桃| 国产欧美精品在线观看| |精品福利一区二区三区| 综合久久久久久| 一区二区三区电影在线播| 香蕉影视欧美成人| 蜜臀精品一区二区三区在线观看| 九九久久精品视频| 成人avav在线| 欧美在线一区二区三区| 欧美一级久久久| 久久久99精品免费观看不卡| 成人免费在线视频| 午夜不卡av在线| 韩日av一区二区| 91在线观看地址| 欧美日产国产精品| 久久女同精品一区二区| 亚洲男人的天堂在线aⅴ视频| 亚洲国产wwwccc36天堂| 美日韩一区二区三区| 国产69精品久久久久毛片| 91久久人澡人人添人人爽欧美| 欧美高清性hdvideosex| 久久青草国产手机看片福利盒子| 中文字幕中文字幕一区| 性久久久久久久久久久久| 国产呦精品一区二区三区网站| 91小视频免费看| 欧美r级电影在线观看| 亚洲视频你懂的| 久久成人免费电影| 色婷婷精品久久二区二区蜜臂av | 亚洲已满18点击进入久久| 捆绑调教美女网站视频一区| 99久久伊人久久99| 欧美日本韩国一区二区三区视频 | 欧美一级日韩一级| 亚洲视频 欧洲视频| 免费高清在线视频一区·| 成人激情图片网| 欧美草草影院在线视频| 亚洲精品免费在线| 国产成人激情av| 日韩一区二区电影在线| 日韩理论在线观看| 国产乱妇无码大片在线观看| 欧美三级中文字| 国产精品高潮久久久久无| 麻豆视频观看网址久久| 欧美又粗又大又爽| 国产精品丝袜在线| 久久99久久精品| 欧美日韩午夜精品| 亚洲视频狠狠干| 高清不卡一区二区| 精品国产乱码久久久久久蜜臀 | 国产精品欧美精品| 九九九久久久精品| 7777精品伊人久久久大香线蕉| 夜夜精品浪潮av一区二区三区| 国产激情精品久久久第一区二区 | 国产片一区二区| 美女精品自拍一二三四| 欧美日韩午夜在线| 亚洲曰韩产成在线| 91黄视频在线观看| 亚洲欧美成aⅴ人在线观看| 国产成人h网站| 国产农村妇女精品| 高清成人免费视频| 国产目拍亚洲精品99久久精品| 卡一卡二国产精品| 精品久久久久久久久久久院品网| 蜜桃在线一区二区三区| 日韩欧美的一区二区| 六月丁香婷婷色狠狠久久| 日韩欧美国产午夜精品|