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

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

?? clocklib.c

?? vxworks的完整的源代碼
?? C
字號:
/* clockLib.c - clock library (POSIX) *//* Copyright 1991-2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02n,22may02,gls  changed to use 64 bit ticks (SPR #70255)02m,25sep01,gls  changed clock_gettime() to load sysTicks from tickGet()                  to prevent the compiler from optimizing it out (SPR #64367)02l,15mar99,elg  add informations on clock_gettime() parameters (SPR 5412).02k,21feb99,jdi  doc: listed errnos.02j,16oct95,jdi  doc: clarified action of clock_setres() (SPR 4283).02i,28mar95,kdl  made clock_gettime() keep local copy of vxTicks (SPR #3595).02h,07feb95,jdi  doc: changed clock_setres() to clarify the action.02g,23jan95,jdi  doc cleanup.02f,08apr94,kdl  fixed alignment in clock_show() display.02e,23nov93,dvs  updated for POSIX 1003.4 draft 14 compliance.02d,02oct92,jdi  documentation cleanup.02c,23sep92,kdl  changed include to private/timerLibP.h.02b,09sep92,gae  fixed clock_show() format.02a,23jun92,gae  Draft 12 revision. Deleted clock_getdrift() & clock_setdrift().		 Added non-POSIX clock_setres().  Arranged that clockLibInit()		 needn't be explicitly called.01d,25jul92,smb  changed time.h to timers.h01c,26may92,rrr  the tree shuffle01b,04feb92,gae  fixed copyright include; revised according to DEC review.		   clockLibInit() tests for initial system clock rate > 0;		   clock_gettime() returns EFAULT for NULL time pointer;		   clock_settime() checks nanosecond range properly.01a,16oct91,gae  written.*//*DESCRIPTIONThis library provides a clock interface, as defined in the IEEE standard,POSIX 1003.1b.A clock is a software construct that keeps time in seconds andnanoseconds.  The clock has a simple interface with three routines:clock_settime(), clock_gettime(), and clock_getres().  The non-POSIX routineclock_setres() that was provided so that clockLib could be informed if therewere changes in the system clock rate is no longer necessary. This routineis still present for backward compatibility, but does nothing.Times used in these routines are stored in the timespec structure:.CSstruct timespec    {    time_t	tv_sec;		/@ seconds @/    long	tv_nsec;	/@ nanoseconds (0 -1,000,000,000) @/    };.CEIMPLEMENTATIONOnly one <clock_id> is supported, the required CLOCK_REALTIME.Conceivably, additional "virtual" clocks could be supported, or supportfor additional auxiliary clock hardware (if available) could be added.INCLUDE FILES: timers.hSEE ALSO: IEEE .pG "Basic OS,"POSIX 1003.1b documentationINTERNAL1. Access to clockRealtime should be intLock'ed during task usage?2. What is, is not, accessable at interrupt level?*/#include "vxWorks.h"#include "errno.h"#include "memLib.h"#include "tickLib.h"#include "stdio.h"#include "string.h"#include "sysLib.h"#include "timers.h"#include "private/timerLibP.h"#include "private/windLibP.h"struct clock _clockRealtime;/********************************************************************************* clockLibInit - initialize clock facility** This routine initializes the POSIX timer/clock facilities.* It should be called by usrRoot() in usrConfig.c before any other* routines in this module.** WARNING* Non-POSIX.** RETURNS:* 0 (OK), or -1 (ERROR) on failure or already initialized or clock rate * less than 1 Hz.** NOMANUAL*/int clockLibInit (void)    {    static BOOL libInstalled = FALSE;    if (libInstalled)	return (ERROR);    if (sysClkRateGet () < 1)	return (ERROR);    libInstalled = TRUE;    bzero ((char*)&_clockRealtime, sizeof (_clockRealtime));    _clockRealtime.tickBase	= tick64Get();    return (OK);    }/********************************************************************************* clock_getres - get the clock resolution (POSIX)** This routine gets the clock resolution, in nanoseconds, based on the* rate returned by sysClkRateGet().  If <res> is non-NULL, the resolution is* stored in the location pointed to.** INTERNAL* Resolution is always assumed to be less than 1 second -- only* the tv_nsec field is filled in.** RETURNS:* 0 (OK), or -1 (ERROR) if <clock_id> is invalid.** ERRNO: EINVAL** SEE ALSO: clock_settime(), sysClkRateGet(), clock_setres()*/int clock_getres    (    clockid_t clock_id,		/* clock ID (always CLOCK_REALTIME) */    struct timespec * res	/* where to store resolution */    )    {    (void)clockLibInit ();    if (clock_id != CLOCK_REALTIME)	{	errno = EINVAL;	return (ERROR);	}    if (res != NULL)	{	/* assume that clock resolution is <= 1 second */	res->tv_sec  = 0;	res->tv_nsec = (BILLION / sysClkRateGet());	}    return (OK);    }/********************************************************************************* clock_setres - set the clock resolution** This routine is obsolete. It will always return OK.** NOTE* Non-POSIX.** INTERNAL* This routine is no longer needed; the underlying system clock resolution* will always be used directly.** RETURNS:* OK always.** ERRNO: EINVAL** SEE ALSO: clock_getres(), sysClkRateSet()*/int clock_setres    (    clockid_t clock_id,		/* clock ID (always CLOCK_REALTIME) */    struct timespec * res	/* resolution to be set */    )    {    return (OK);    }/********************************************************************************* clock_gettime - get the current time of the clock (POSIX)** This routine gets the current value <tp> for the clock.** INTERNAL* The standard doesn't indicate when <tp> is NULL (an invalid address)* whether errno should be EINVAL or EFAULT.** RETURNS: 0 (OK), or -1 (ERROR) if <clock_id> is invalid or <tp> is NULL.** ERRNO: EINVAL, EFAULT*/int clock_gettime    (    clockid_t clock_id,		/* clock ID (always CLOCK_REALTIME) */    struct timespec * tp	/* where to store current time */    )    {    UINT64     diffTicks;	/* system clock tick count */    (void)clockLibInit ();    if (clock_id != CLOCK_REALTIME)	{	errno = EINVAL;	return (ERROR);	}    if (tp == NULL)	{	errno = EFAULT;	return (ERROR);	}    diffTicks = tick64Get() - _clockRealtime.tickBase;    TV_CONVERT_TO_SEC(*tp, diffTicks);    TV_ADD (*tp, _clockRealtime.timeBase);    return (OK);    }/********************************************************************************* clock_settime - set the clock to a specified time (POSIX)** This routine sets the clock to the value <tp>, which should be a multiple* of the clock resolution.  If <tp> is not a multiple of the resolution, it* is truncated to the next smallest multiple of the resolution.** RETURNS:* 0 (OK), or -1 (ERROR) if <clock_id> is invalid, <tp> is outside the supported * range, or the <tp> nanosecond value is less than 0 or equal to or greater than* 1,000,000,000.** ERRNO: EINVAL** SEE ALSO: clock_getres()*/int clock_settime    (    clockid_t clock_id,		/* clock ID (always CLOCK_REALTIME) */    const struct timespec * tp	/* time to set */    )    {    (void)clockLibInit ();    if (clock_id != CLOCK_REALTIME)	{	errno = EINVAL;	return (ERROR);	}    if (tp == NULL ||	tp->tv_nsec < 0 || tp->tv_nsec >= BILLION)	{	errno = EINVAL;	return (ERROR);	}    /* convert timespec to vxTicks XXX use new kernel time */    _clockRealtime.tickBase = tick64Get();    _clockRealtime.timeBase = *tp;    return (OK);    }/********************************************************************************* clock_show - show info on a clock** WARNING* Non-POSIX.** RETURNS:* 0 (OK), or -1 (ERROR) if <clock_id> is invalid** ERRNO: EINVAL** NOMANUAL*/int clock_show    (    clockid_t clock_id		/* clock ID (always CLOCK_REALTIME) */    )    {    static char *title1 = "  seconds    nanosecs  freq (hz)  resolution\n";    static char *title2 = "---------- ----------- ---------- ----------\n";      static char *title3 = "\n  base ticks          base secs  base nsecs\n";    static char *title4 = "--------------------  ---------- ----------\n";    struct timespec tp;    (void)clockLibInit ();    if (clock_id != CLOCK_REALTIME)	{	errno = EINVAL;	return (ERROR);	}    (void) clock_gettime (clock_id, &tp);    printf (title1);    printf (title2);    printf (" %8.8ld   %9.9ld   %8.8d   %8.8d\n",	    tp.tv_sec, tp.tv_nsec, sysClkRateGet(), BILLION / sysClkRateGet());    printf (title3);    printf (title4);    printf(" 0x%08x%08x    %8.8ld   %9.9ld\n",	   (UINT) (_clockRealtime.tickBase >> 32),	   (UINT)  _clockRealtime.tickBase, 	   _clockRealtime.timeBase.tv_sec, 	   _clockRealtime.timeBase.tv_nsec);    return (OK);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品电影院| 精品一区二区三区免费毛片爱| 国产精品系列在线播放| 欧美一区二区三区在线看| 亚洲自拍与偷拍| 成人免费黄色在线| 精品国产91久久久久久久妲己| 亚洲一区二三区| 欧美日韩一区在线| 香蕉成人伊视频在线观看| 在线影视一区二区三区| 亚洲欧洲成人自拍| 男女性色大片免费观看一区二区| 欧美一区二区高清| 美女久久久精品| 欧美成人免费网站| 久久99久久精品欧美| 精品国产乱码久久久久久夜甘婷婷 | 高清在线成人网| 国产视频一区二区在线观看| 国产高清不卡一区二区| 欧美国产精品专区| 成人在线综合网| 伊人婷婷欧美激情| 欧美日韩大陆一区二区| 国产乱人伦偷精品视频不卡| 一区二区三区资源| 精品少妇一区二区三区日产乱码 | 日韩精品一区二区三区在线| 大陆成人av片| 午夜精品久久久久久久久久久| 26uuu精品一区二区在线观看| 99精品久久只有精品| 天天影视网天天综合色在线播放| 久久综合久色欧美综合狠狠| 色综合久久66| 激情综合一区二区三区| 亚洲综合视频在线观看| 国产丝袜欧美中文另类| 欧美日韩一卡二卡三卡 | www.一区二区| 亚洲国产乱码最新视频| 久久综合成人精品亚洲另类欧美 | 3751色影院一区二区三区| 懂色一区二区三区免费观看| 日本不卡中文字幕| ...xxx性欧美| 久久色在线观看| 欧美久久一区二区| 99re6这里只有精品视频在线观看| 久久精品国产亚洲a| 一区二区三区在线免费播放| 国产日本欧美一区二区| 日韩一区二区三区视频在线| 在线一区二区三区四区| 97精品超碰一区二区三区| 国产一区二区久久| 毛片av中文字幕一区二区| 亚洲国产一二三| 亚洲天堂免费看| 中文无字幕一区二区三区| 久久在线观看免费| 欧美大片国产精品| 日韩一级欧美一级| 欧美年轻男男videosbes| 欧美午夜精品理论片a级按摩| 色嗨嗨av一区二区三区| 国产乱码精品一区二区三区忘忧草| 午夜视频一区二区| 午夜精品福利视频网站| 亚洲一区二区三区四区在线 | 国产一区二区伦理| 极品少妇xxxx精品少妇偷拍| 秋霞午夜鲁丝一区二区老狼| 午夜精品福利一区二区蜜股av| 亚洲狠狠丁香婷婷综合久久久| 亚洲视频1区2区| 亚洲欧美偷拍另类a∨色屁股| 国产精品高潮呻吟| 中文字幕一区二区三区不卡| 日韩毛片精品高清免费| 日韩毛片高清在线播放| 亚洲欧美视频一区| 一区二区三区在线观看网站| 亚洲无线码一区二区三区| 午夜视黄欧洲亚洲| 日韩av成人高清| 国产尤物一区二区在线 | 国产·精品毛片| 粉嫩一区二区三区在线看| 粉嫩久久99精品久久久久久夜| 国产99精品在线观看| 9久草视频在线视频精品| 色婷婷国产精品久久包臀| 在线观看日韩av先锋影音电影院| 欧美日韩国产天堂| 精品精品国产高清a毛片牛牛| 精品成人一区二区三区四区| 国产精品美女www爽爽爽| 一区二区三区国产精华| 三级一区在线视频先锋| 国产呦萝稀缺另类资源| 99久久久久久| 7777精品久久久大香线蕉| 欧美精品一区二区三区久久久| 欧美极品另类videosde| 国产精品不卡一区| 亚洲成人动漫在线免费观看| 美女国产一区二区三区| 成人午夜激情影院| 欧美色图一区二区三区| 精品久久久久99| 亚洲精选免费视频| 久久国产夜色精品鲁鲁99| 暴力调教一区二区三区| 欧美一级生活片| 国产精品美女久久久久久久网站| 亚洲精品菠萝久久久久久久| 久久成人免费网| 99r精品视频| 精品日韩av一区二区| 亚洲日本在线a| 九色综合狠狠综合久久| 色综合久久中文字幕| 日韩精品一区二区三区视频在线观看 | 久久国产婷婷国产香蕉| 色综合咪咪久久| 久久久美女艺术照精彩视频福利播放| 日韩理论片一区二区| 国内精品免费**视频| 在线看国产一区| 欧美国产精品专区| 青青草国产成人av片免费| 99热这里都是精品| 欧美成人精精品一区二区频| 亚洲图片欧美激情| 精品综合免费视频观看| 91福利在线观看| 亚洲国产经典视频| 久久精品国产一区二区| 精品视频在线免费看| 国产欧美日韩在线| 老鸭窝一区二区久久精品| 91免费版在线看| 国产欧美一区二区三区网站| 久久国产免费看| 91麻豆精品国产自产在线观看一区| 综合久久久久久| 成人精品视频一区二区三区尤物| 日韩无一区二区| 日本伊人午夜精品| 在线不卡欧美精品一区二区三区| 亚洲欧洲成人自拍| 成人午夜看片网址| 国产日产欧美一区| 国产精品综合在线视频| 久久亚洲影视婷婷| 免费美女久久99| 日韩欧美精品三级| 欧美96一区二区免费视频| 欧美日韩高清一区| 亚洲一区二区黄色| 欧美中文字幕一二三区视频| 亚洲激情在线激情| 色婷婷综合久久久中文字幕| 中文字幕一区三区| 99久久精品免费| 1区2区3区精品视频| 99re热这里只有精品免费视频| 国产精品久久久久影院色老大| 成人av免费在线播放| 亚洲国产精品99久久久久久久久| 丁香激情综合五月| 中文字幕一区二区三区四区不卡 | 日本不卡一区二区| 欧美一区二区久久久| 久久精工是国产品牌吗| 亚洲精品一线二线三线无人区| 精品制服美女久久| 久久久久久久精| av在线综合网| 一区二区三区四区高清精品免费观看 | 欧美电影一区二区| 日韩av网站免费在线| 日韩欧美一二三四区| 国产精品66部| 亚洲欧美自拍偷拍色图| 色久优优欧美色久优优| 亚洲成av人片一区二区梦乃| 欧美一级高清片| 国产精品456| 亚洲人成影院在线观看| 欧美日韩三级视频| 久久99精品久久久久| 亚洲国产精品成人综合色在线婷婷 | 欧美v国产在线一区二区三区| 国产精品一二三四| 一区二区三区日本| 欧美mv日韩mv国产网站| 99麻豆久久久国产精品免费优播|