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

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

?? ticklib.c

?? vxworks的完整的源代碼
?? C
字號:
/* tickLib.c - clock tick support library *//* Copyright 1984-1994 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01q,22may02,jgn  add tick64Get() interface - SPR #7025501p,24jun96,sbs  made windview instrumentation conditionally compiled01o,24jan94,smb  added instrumentation macros01n,10dec93,smb  added instrumentation01m,20jan93,jdi  documentation cleanup for 5.1.01l,04jul92,jcf  private header files.01k,26may92,rrr  the tree shuffle01j,04oct91,rrr  passed through the ansification filter                  -changed functions to ansi style		  -changed VOID to void		  -changed copyright notice01i,30mar91,jdi  documentation cleanup; doc review by jcf.01h,29aug90,jcf  documentation.01g,10jul90,jcf  changed to support 64 bit internal tick count.01f,26jun90,jcf  removed queue overflow stuff.01e,28aug89,jcf  modified to support version 2.0 of wind.01d,23sep88,gae  documentation touchup.01c,23aug88,gae  documentation.01b,12aug88,jcf  clean up.01a,19jan87,jcf  written.*//*DESCRIPTIONThis library is the interface to the VxWorks kernel routines that announce aclock tick to the kernel, get the current time in ticks, and set thecurrent time in ticks.Kernel facilities that rely on clock ticks include taskDelay(), wdStart(),kernelTimeslice(), and semaphore timeouts.  In each case, the specifiedtimeout is relative to the current time, also referred to as "time to fire."Relative timeouts are not affected by calls to tickSet(), which only changesabsolute time.  The routines tickSet() and tickGet() keep track of absolutetime in isolation from the rest of the kernel.Time-of-day clocks or other auxiliary time bases are preferable for lengthytimeouts of days or more.  The accuracy of such time bases is greater, andsome external time bases even calibrate themselves periodically.INTERNAL:	WINDVIEW INSTRUMENTATIONLevel 1:	N/ALevel 2:	N/ALevel 3:	tickAnnounce() causes EVENT_TICKANNOUNCEINCLUDE FILES: tickLib.hSEE ALSO: kernelLib, taskLib, semLib, wdLib,.pG "Basic OS"*/#include "vxWorks.h"#include "tickLib.h"#include "taskLib.h"#include "private/windLibP.h"#include "private/workQLibP.h"#include "private/eventP.h"/* globals */ULONG	vxTicks;		/* current time in ticks */UINT64	vxAbsTicks;		/* absolute time since power on in ticks *//********************************************************************************* tickAnnounce - announce a clock tick to the kernel** This routine informs the kernel of the passing of time.  It should be* called from an interrupt service routine that is connected to the system* clock.  The most common frequencies are 60Hz or 100Hz.  Frequencies in* excess of 600Hz are an inefficient use of processor power because the* system will spend most of its time advancing the clock.  By default,* this routine is called by usrClock() in usrConfig.c.** RETURNS: N/A** SEE ALSO: kernelLib, taskLib, semLib, wdLib,* .pG "Basic OS"*/void tickAnnounce (void)    {#ifdef WV_INSTRUMENTATION    /* windview - level 3 event */    EVT_CTX_0 (EVENT_TICKANNOUNCE);#endif    if (kernelState)			/* defer work if in kernel */	workQAdd0 ((FUNCPTR)windTickAnnounce);    else	{	kernelState = TRUE;		/* KERNEL_ENT */	windTickAnnounce ();		/* advance tick queue */	windExit ();			/* KERNEL_EXIT */	}    }/********************************************************************************* tickSet - set the value of the kernel's tick counter** This routine sets the internal tick counter to a specified value in* ticks.  The new count will be reflected by tickGet(), but will not change* any delay fields or timeouts selected for any tasks.  For example, if a* task is delayed for ten ticks, and this routine is called to advance time,* the delayed task will still be delayed until ten tickAnnounce() calls have* been made.** RETURNS: N/A** SEE ALSO: tickGet(), tickAnnounce()** INTERNAL* The routine locks interrupts while obtaining the copy of the 64 value to* prevent an interrupt from splitting what is unlikely to be an atomic operation* on a 32 bit CPU.*/void tickSet    (    ULONG ticks         /* new time in ticks */    )    {    int key = intLock();		/* INTERRUPTS LOCKED */    vxAbsTicks = ticks;			/* effectively zero the upper bits */    intUnlock(key);			/* INTERRUPTS UNLOCKED */    }/********************************************************************************* tickGet - get the value of the kernel's tick counter** This routine returns the current value of the tick counter.* This value is set to zero at startup, incremented by tickAnnounce(),* and can be changed using tickSet().** RETURNS: The most recent tickSet() value, plus all tickAnnounce() calls since.** SEE ALSO: tickSet(), tickAnnounce()** INTERNAL* There should be no need to lock interrupts on this one; the compiler should* only generate a read from one half of the UINT64 which means that the read* can never be interrupted.*/ULONG tickGet (void)    {    return (ULONG) (vxAbsTicks & 0xFFFFFFFFull);    }/********************************************************************************* tick64Set - set the value of the kernel's tick counter in 64 bits** This routine sets the internal tick counter to a specified value in* ticks.  The new count will be reflected by tick64Get() and tickGet() (only* the lower 32 bits), but will not change any delay fields or timeouts selected* for any tasks.  For example, if a task is delayed for ten ticks, and this* routine is called to advance time, the delayed task will still be delayed* until ten tickAnnounce() calls have been made.** RETURNS: N/A** SEE ALSO: tick64Get(), tickGet(), tickSet(), tickAnnounce()** INTERNAL* The routine locks interrupts while obtaining the copy of the 64 value to* prevent an interrupt from splitting what is unlikely to be an atomic operation* on a 32 bit CPU.** NOMANUAL*/void tick64Set    (    UINT64 ticks         /* new time in ticks */    )    {    int key = intLock();			/* INTERRUPTS LOCKED */    vxAbsTicks = ticks;    intUnlock (key);				/* INTERRUPTS UNLOCKED */    }/********************************************************************************* tick64Get - get the value of the kernel's tick counter as a 64 bit value** This routine returns the current value of the 64 bit absolute tick counter.* This value is set to zero at startup, incremented by tickAnnounce(),* and can be changed using tickSet() or tick64Set().** RETURNS: The most recent tickSet()/tick64Set() value, plus all* tickAnnounce() calls since.** SEE ALSO: tickGet(), tick64Set(), tickSet(), tickAnnounce()** INTERNAL* The routine locks interrupts while obtaining the copy of the 64 value to* prevent an interrupt from splitting what is unlikely to be an atomic operation* on a 32 bit CPU.** NOMANUAL*/UINT64 tick64Get (void)    {    UINT64	ret;    int		key	= intLock();		/* INTERRUPTS LOCKED */    ret = vxAbsTicks;    intUnlock (key);				/* INTERRUPTS UNLOCKED */    return ret;    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合一二三区| 色综合久久88色综合天天| 成人综合婷婷国产精品久久蜜臀 | 精品一区二区三区在线播放| 99re热这里只有精品视频| 日韩欧美成人午夜| 一区二区国产盗摄色噜噜| 床上的激情91.| 久久这里只有精品首页| 韩日精品视频一区| 欧美日韩高清影院| 亚洲综合视频在线| 93久久精品日日躁夜夜躁欧美| 久久久亚洲精品一区二区三区| 日韩1区2区3区| 欧美日韩成人激情| 亚洲国产日产av| 色琪琪一区二区三区亚洲区| 中文字幕巨乱亚洲| 国产成人无遮挡在线视频| 精品国产制服丝袜高跟| 日本不卡视频一二三区| 欧美日韩电影一区| 亚洲国产人成综合网站| 91福利区一区二区三区| 夜夜爽夜夜爽精品视频| 97精品久久久久中文字幕 | 日韩午夜中文字幕| 日韩二区三区四区| 欧美一级欧美三级在线观看| 亚洲成av人片一区二区| 91精品国模一区二区三区| 日韩不卡一二三区| 精品成人在线观看| 国产大陆a不卡| 中文字幕第一区综合| www.久久久久久久久| 亚洲猫色日本管| 欧美日韩免费一区二区三区| 五月天中文字幕一区二区| 制服丝袜日韩国产| 麻豆国产精品一区二区三区 | 欧美日韩一区三区| 午夜欧美大尺度福利影院在线看| 欧美丰满少妇xxxxx高潮对白| 天堂影院一区二区| 久久久久久亚洲综合影院红桃| 丰满亚洲少妇av| 亚洲一区二区高清| 欧美va日韩va| 成人av在线电影| 五月天激情小说综合| 久久精品在线观看| 欧美亚洲综合网| 精品午夜久久福利影院| 亚洲欧美综合另类在线卡通| 在线精品视频一区二区三四| 琪琪一区二区三区| 国产精品久久毛片av大全日韩| 欧洲色大大久久| 精品一区二区久久| 亚洲女同一区二区| 日韩免费福利电影在线观看| 成人av免费在线播放| 性久久久久久久久| 国产精品久久久久一区二区三区共| 91福利小视频| 高清不卡一区二区| 视频一区二区中文字幕| 国产精品久99| 欧美成人三级电影在线| 色婷婷一区二区三区四区| 国产主播一区二区三区| 亚洲无人区一区| 国产精品国产三级国产| 日韩视频一区二区三区| 色欧美88888久久久久久影院| 毛片av中文字幕一区二区| 国产精品盗摄一区二区三区| 日韩美女一区二区三区四区| 91美女蜜桃在线| 国产成人免费视频精品含羞草妖精| 亚洲一区二区三区中文字幕| 国产日韩欧美一区二区三区乱码| 51久久夜色精品国产麻豆| 91小视频免费观看| 国产成人精品一区二区三区网站观看| 亚洲主播在线观看| 1024亚洲合集| 日本一区二区三区高清不卡| 欧美白人最猛性xxxxx69交| 欧美影院一区二区| 91麻豆福利精品推荐| 成人国产精品免费观看动漫| 国产乱子伦视频一区二区三区 | 欧美电影在哪看比较好| 91视视频在线直接观看在线看网页在线看 | 亚洲欧洲99久久| 中文字幕免费不卡| 精品国产一区二区精华| 欧美一区二区三区视频免费| 欧美日韩一卡二卡三卡 | 国产精品情趣视频| 2023国产精品视频| 久久伊人蜜桃av一区二区| 欧美欧美欧美欧美| 欧美性一级生活| 欧美色欧美亚洲另类二区| 91免费看`日韩一区二区| 不卡视频免费播放| 99视频一区二区| 99国产精品久久久久久久久久久| 不卡的av电影| 91丨porny丨蝌蚪视频| 91老司机福利 在线| 91蝌蚪porny| 一本到三区不卡视频| 欧美在线你懂的| 欧美视频一区二| 欧美一区二区三区免费观看视频| 欧美男同性恋视频网站| 日韩欧美一卡二卡| 久久久久国产免费免费| 国产精品区一区二区三区| 亚洲日本电影在线| 香蕉成人啪国产精品视频综合网| 午夜一区二区三区视频| 蜜桃视频在线观看一区| 国产美女主播视频一区| av电影天堂一区二区在线观看| 色综合久久中文字幕| 精品视频1区2区3区| 日韩一区二区三区电影在线观看 | 国产精品香蕉一区二区三区| 国产成人精品三级| 91麻豆蜜桃一区二区三区| 欧美色涩在线第一页| 日韩欧美国产精品一区| 国产亚洲欧美日韩俺去了| 综合中文字幕亚洲| 五月天视频一区| 国产99久久久国产精品潘金| 色综合久久久网| 日韩一区二区三区精品视频 | 欧美电影免费观看高清完整版在线 | av资源站一区| 欧美专区日韩专区| 欧美精品一区男女天堂| 亚洲欧美乱综合| 久久av资源网| 91免费视频大全| 日韩精品中文字幕一区二区三区 | 欧美一区二区三区啪啪| 国产三级精品三级在线专区| 亚洲主播在线观看| 国模冰冰炮一区二区| 91麻豆视频网站| 久久这里只有精品6| 夜夜精品视频一区二区 | 久久综合丝袜日本网| 一区二区三区毛片| 国产激情一区二区三区| 欧美日韩一区二区欧美激情| 国产欧美日韩麻豆91| 天天色 色综合| 一道本成人在线| 国产午夜精品美女毛片视频| 午夜激情久久久| 99麻豆久久久国产精品免费| 9191久久久久久久久久久| 国产精品的网站| 国产成人在线视频播放| 日韩一区二区三区精品视频| 亚洲激情在线播放| 99视频在线观看一区三区| 国产亚洲欧美色| 激情都市一区二区| 日韩一区二区三区观看| 国产成人精品一区二区三区四区 | 精品一区二区综合| 欧美日韩成人高清| 亚洲综合视频在线观看| 成人激情综合网站| 久久久午夜精品| 国产综合久久久久影院| 精品国偷自产国产一区| 图片区小说区国产精品视频| 欧洲一区二区三区免费视频| 亚洲三级在线免费| 91片在线免费观看| 国产精品伦理在线| 不卡电影一区二区三区| 欧美国产综合一区二区| 国产伦精一区二区三区| 久久久久九九视频| 成人激情免费视频| 中文字幕永久在线不卡| aaa亚洲精品| 一区二区三区高清| 欧美性生活影院|