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

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

?? tffslib.c

?? vxworks5.5.1源代碼。完整源代碼
?? C
字號:
/* tffsLib.c - TFFS FLite library for VxWorks. *//* Copyright 1984-1997 Wind River Systems, Inc. */#include "copyright_wrs.h"/* FAT-FTL Lite Software Development Kit * Copyright (C) M-Systems Ltd. 1995-1997	*//*modification history--------------------01f,13apr98,yp   made interval timer a task instead of exc task.(SPR #20693)01e,06jan98,hdn  added INVERSION_SAFE to the mutex semaphore.01d,17dec97,hdn  fixed a typo in return value at RETURNS:01c,15dec97,yp   doc cleanup.01b,07nov97,hdn  cleaned up.01a,20mar96,ami  written by Amirban in M-Systems*//*DESCRIPTIONThis library provides the OS binding to vxWorks for TFFS FLite .INCLUDE FILES: *//* includes */#include "flbase.h"#include "tffsDrv.h"#include "taskLib.h"/* defines */#if     (POLLING_INTERVAL > 0)#define FL_POLL_TASK_PRIORITY 	100#define FL_POLL_TASK_OPT 	0#define FL_POLL_TASK_STACK_SIZE	2048#endif /* (POLLING_INTERVAL > 0) *//* externs */#if	(POLLING_INTERVAL > 0)IMPORT SEM_ID 	flPollSemId;#endif	/* (POLLING_INTERVAL > 0) *//* globals *//* locals */LOCAL int	flSysClkRate;	/* ticks per second       */#if	(POLLING_INTERVAL > 0)LOCAL int	flPollInterval;	/* socket polling interval in milliseconds */LOCAL int	flPollTaskId;#endif	/* (POLLING_INTERVAL > 0) *//* forward declarations */LOCAL void	flTimerInit (void);#if	(POLLING_INTERVAL > 0)LOCAL void	(*flSocketPollingRoutine) (void);#endif	/* (POLLING_INTERVAL > 0) *//********************************************************************************* flCreateMutex - create a mutex semaphore** This translates a TFFS mutex create call to vxWorks.** RETURNS: flOK, or flNotEnoughMemory if it fails.*/FLStatus flCreateMutex     (    FLMutex * mutex	/* pointer to mutex */    )    {    /* Io requests should be processed exactly in the same */    /* sequence they are received                          */    *mutex = semMCreate (SEM_DELETE_SAFE | SEM_INVERSION_SAFE | SEM_Q_PRIORITY);    return ((*mutex != NULL) ? flOK : flNotEnoughMemory);    }/********************************************************************************* flTakeMutex - take a mutex semaphore** This routine translates a mutex take call from TFFS to vxWorks.** RETURNS: 0 if mutex not available otherwise returns 1.*/int flTakeMutex     (    FLMutex * mutex,	/* pointer to mutex */    int mode		/* 0 - nowait */    )    {    STATUS status;    status = semTake (*mutex, (mode == 0 ? NO_WAIT : WAIT_FOREVER));    if (status == ERROR)	return (0);    else        return (1);    }/********************************************************************************* flFreeMutex - release a mutex semaphore** This routine translates a mutex release call from TFFS to vxWorks.** RETURNS: N/A*/void flFreeMutex    (    FLMutex * mutex     /* pointer to mutex */    )    {    semGive (*mutex);    }#ifdef EXIT/********************************************************************************* flDeleteMutex - delete a mutex semaphore** This routine translates a deletes mutex semaphore call from TFFS to vxWorks.** RETURNS: N/A*/void flDeleteMutex    (    FLMutex * mutex     /* pointer to mutex */    )    {    semDelete (*mutex);    *mutex = NULL;    }#endif /* EXIT *//********************************************************************************* flSysfunInit - initialize all the OS bindings** This routine initializes all the OS bindings.** RETURNS: N/A*/void flSysfunInit (void)    {    flTimerInit ();    }/********************************************************************************* flTimerInit - initialize timer for socket polling** This routine initializes timer for socket polling.** RETURNS: N/A*/static void flTimerInit (void)    {    flSysClkRate = sysClkRateGet ();    }#if	(POLLING_INTERVAL > 0)/********************************************************************************* flPollTask - interval polling task** This routine waits on the polling semaphore and invokes the interval* timer work routine when the semaphore becomes available. The function * is not local so the task list on the shell can display the entry point.** RETURNS: */void flPollTask (void)    {    int delay;    semTake (flPollSemId, WAIT_FOREVER);    delay = (flPollInterval * flSysClkRate )/1000;    if (delay == 0)        delay = 1;    /* remove the polling semaphore */    semDelete (flPollSemId);    FOREVER	{	taskDelay (delay);	(*flSocketPollingRoutine)();	}    }/********************************************************************************* flInstallTimer - install the timer for socket polling** This routine installs the timer used for socket polling.** RETURNS: flOK, or flNotEnoughMemory if wdCreate() failed.*/FLStatus flInstallTimer     (    void (*routine)(void),    unsigned int intervalMsec    )    {    flPollInterval         = intervalMsec;    flSocketPollingRoutine = routine;    /* Spawn the polling task */    if ((flPollTaskId = taskSpawn ("tTffsPTask",				  FL_POLL_TASK_PRIORITY,				  FL_POLL_TASK_OPT,				  FL_POLL_TASK_STACK_SIZE,				  (FUNCPTR) flPollTask,0,0,0,0,0,0,0,0,0,0)) == ERROR)        return (flNotEnoughMemory);    return (flOK);    }#ifdef EXIT/********************************************************************************* flRemoveTimer - cancel socket polling** This routine cancels socket polling.** RETURNS: N/A*/void flRemoveTimer (void)    {    /* Call it twice to shut down everything */    (*flSocketPollingRoutine)();    (*flSocketPollingRoutine)();    /* remove socket polling */    flSocketPollingRoutine = NULL;    /* remove the polling task */    taskDelete (flPollTaskId);    }#endif	/* EXIT */#endif	/* POLLING_INTERVAL *//********************************************************************************* flRandByte - return a random number from 0 to 255** This routine returns a random number from 0 to 255.** RETURNS: random number*/unsigned flRandByte (void)    {    /* XXX return (tickGet () & 0xff); */    return (rand () & 0xff);    }/********************************************************************************* flCurrentTime - returns current time of day** This routine Returns current time of day in the format described below.*      bits  4 ..  0  - seconds*      bits 10 ..  5  - minutes*      bits 15 .. 11  - hours** RETURNS: current time*/unsigned flCurrentTime (void)    {    unsigned char hour, minute, second;    time_t        flAnsiTime;    struct tm    *flLocalTimePtr;    time (&flAnsiTime);    flLocalTimePtr = localtime (&flAnsiTime);    hour   = (unsigned char) flLocalTimePtr->tm_hour;    minute = (unsigned char) flLocalTimePtr->tm_min;    second = (unsigned char) flLocalTimePtr->tm_sec;    return ((hour << 11) | (minute << 5) | second);    }/********************************************************************************* flCurrentDate - returns current date** This routine Returns current date in the format described below.*      bits  4 .. 0  - day*      bits  8 .. 5  - month*      bits 15 .. 9  - year (0 for 1980)** RETURNS: current date*/unsigned flCurrentDate (void)    {    short int  year;    char       month, day;    struct tm *flLocalTimePtr;    time_t     flAnsiTime;    time (&flAnsiTime);    flLocalTimePtr = localtime (&flAnsiTime);    year  = (short int) (flLocalTimePtr->tm_year - 80);    month = (char)       flLocalTimePtr->tm_mon + 1;    day   = (char)       flLocalTimePtr->tm_mday;    return ((year << 9) | (month << 5) | day);    }/********************************************************************************* flAddLongToFarPointer - add unsigned long offset to the far pointer** This routine adds an unsigned long offset to a far pointer.** RETURNS: far pointer*/void FAR0*  flAddLongToFarPointer    (    void FAR0 *ptr,     unsigned long offset    )    {    return (physicalToPointer( pointerToPhysical(ptr) + offset, 0,0));    }#if	FALSE	/* moved to the BSP/sysTffs.c *//********************************************************************************* flDelayMsecs - wait for specified number of milliseconds** This routine waits for a specified number of milliseconds doing nothing.** RETURNS: N/A*/void flDelayMsecs     (    unsigned milliseconds	/* milliseconds to wait */    )    {    unsigned long stop, ticksToWait;    ticksToWait = (milliseconds * flSysClkRate) / 500;    if (ticksToWait == 0x0l)        ticksToWait++;    stop = tickGet () + ticksToWait;    while (tickGet () <= stop)	;    }/*----------------------------------------------------------------------*//*                        f l D e l a y L o o p                         *//*									*//* Short delay.                                                         *//*                                                                      *//* Parameters:                                                          *//*      cycles          : wait loop cycles to perform                   *//*----------------------------------------------------------------------*/void flDelayLoop (int  cycles)     /* HOOK for VME-177 */{  while(--cycles) ; }#endif	/* FLASE */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品传媒入口麻豆| 亚洲18色成人| 亚洲韩国一区二区三区| 国产免费久久精品| 蜜桃视频在线观看一区二区| 国产在线精品一区二区| 91福利在线看| 欧美精品123区| 亚洲蜜臀av乱码久久精品蜜桃| 午夜视频一区二区| av影院午夜一区| 激情六月婷婷综合| 欧美精品亚洲一区二区在线播放| 久久综合九色综合欧美就去吻| 亚洲免费成人av| 国产成人在线观看免费网站| 91麻豆精品国产自产在线观看一区 | 国产综合色在线视频区| 色综合久久中文综合久久牛| 亚洲精品在线三区| 强制捆绑调教一区二区| 色视频欧美一区二区三区| 久久精品亚洲精品国产欧美kt∨ | 久久精品噜噜噜成人av农村| 在线免费视频一区二区| 国产日韩视频一区二区三区| 男女男精品网站| 欧美一区二区三区视频| 亚洲电影视频在线| 91蜜桃传媒精品久久久一区二区| 日韩美女在线视频| 久久se精品一区精品二区| 欧美日韩精品三区| 一区二区三区四区精品在线视频| 国产一区二区在线免费观看| 日韩一区二区精品| 日韩电影在线一区二区三区| 色综合久久天天综合网| 中文av一区特黄| 久草精品在线观看| 久久久国际精品| 国产在线精品一区二区不卡了 | 欧美成人video| 国产性做久久久久久| 国产裸体歌舞团一区二区| 91精品国产高清一区二区三区| 亚洲午夜久久久久久久久电影院| 91在线高清观看| 中文字幕一区二区三区精华液| 国产成人亚洲综合色影视| 久久先锋影音av| 国产成人精品一区二| 精品国产一区二区亚洲人成毛片| 国产精一区二区三区| 久久嫩草精品久久久精品| 国产精品888| 国产亚洲精品超碰| 色欧美日韩亚洲| 午夜激情一区二区三区| 日韩一区二区免费在线电影| 亚洲国产毛片aaaaa无费看| 91精品国产综合久久婷婷香蕉| 秋霞午夜av一区二区三区| 日韩女优制服丝袜电影| 国产在线不卡视频| 亚洲欧美日韩一区二区三区在线观看| 欧美在线观看视频在线| 丝袜亚洲另类欧美综合| 精品国产91久久久久久久妲己| 国产精品亚洲一区二区三区妖精 | 中文成人综合网| 91国偷自产一区二区开放时间 | 久久一区二区三区四区| 国产成人精品在线看| 一区二区三区四区五区视频在线观看| 欧美丝袜丝交足nylons图片| 亚洲一区免费在线观看| 欧美一区二区三区男人的天堂| 狠狠色综合播放一区二区| 国产精品色哟哟网站| 欧美日韩免费电影| 看片的网站亚洲| 亚洲自拍欧美精品| 久久这里只有精品视频网| 97国产一区二区| 青青草一区二区三区| 亚洲激情在线激情| 国产亚洲精品精华液| 欧美色网一区二区| 韩国欧美国产一区| 亚洲一区二区三区四区在线观看| 欧美一激情一区二区三区| 91亚洲精品一区二区乱码| 亚洲成人激情社区| 中文字幕一区二区三中文字幕| 欧美日韩国产在线观看| 91蝌蚪porny成人天涯| 久久婷婷色综合| 欧美日韩精品一区二区天天拍小说 | 高清shemale亚洲人妖| 亚洲成年人影院| 亚洲久草在线视频| 国产精品久久久久久久岛一牛影视| 日韩欧美精品在线| 日韩一区二区在线免费观看| 欧美日本一区二区| 91成人在线观看喷潮| 99热99精品| 99精品视频在线播放观看| 成人免费视频视频在线观看免费 | 日本不卡高清视频| 亚洲国产精品一区二区久久| 亚洲精品久久久蜜桃| 亚洲欧美日韩人成在线播放| 自拍偷拍国产精品| 综合婷婷亚洲小说| 一区二区三区在线视频播放 | 国产日本一区二区| 国产亚洲短视频| 中文乱码免费一区二区| 国产精品久久三| 中文字幕在线一区免费| 最新成人av在线| 亚洲精品大片www| 亚洲一区二区三区影院| 首页国产欧美日韩丝袜| 麻豆精品一二三| 成人免费视频一区二区| 色综合久久66| 4438x亚洲最大成人网| 欧美成人三级电影在线| 亚洲国产精品成人综合色在线婷婷 | 国产精品福利一区| ...中文天堂在线一区| 一区二区欧美视频| 日韩 欧美一区二区三区| 激情综合五月婷婷| 91在线观看成人| 日韩欧美一区中文| 久久久777精品电影网影网 | 日本va欧美va瓶| 久久超级碰视频| av成人老司机| 制服丝袜亚洲色图| 欧美激情中文不卡| 亚洲成人动漫av| 成人一区二区在线观看| 欧美日韩高清一区二区三区| 精品成人免费观看| 欧美日韩国产天堂| 久久久精品人体av艺术| 亚洲午夜电影网| 成人午夜电影久久影院| 欧美色精品天天在线观看视频| 久久蜜桃av一区精品变态类天堂| 亚洲精品国产无套在线观| 国内精品第一页| 欧美日韩国产一级二级| 国产精品美女久久久久久久久| 日韩av在线发布| 色噜噜夜夜夜综合网| 国产午夜精品在线观看| 午夜精品久久久久影视| av成人免费在线观看| 日韩久久免费av| 亚洲一区二区成人在线观看| 国产a精品视频| 日韩一区二区三区av| 亚洲成人免费视| 91免费在线看| 国产日韩欧美精品一区| 老色鬼精品视频在线观看播放| 91久久精品一区二区三| 日本一区二区视频在线观看| 毛片基地黄久久久久久天堂| 欧美色图片你懂的| 亚洲人xxxx| 972aa.com艺术欧美| 国产亚洲一区字幕| 激情另类小说区图片区视频区| 欧美日韩综合在线| 亚洲黄色录像片| 91丝袜高跟美女视频| 日本一区二区三区国色天香| 精品一区二区三区视频在线观看| 欧美狂野另类xxxxoooo| 一区二区三区高清| 99re视频这里只有精品| 国产精品免费丝袜| 成人18精品视频| 国产精品欧美久久久久无广告| 国产成人综合自拍| 国产视频视频一区| 成人午夜视频福利| 中文字幕av一区二区三区免费看| 国产一区二区影院| 久久精品视频一区二区三区| 国产曰批免费观看久久久| 久久色在线观看| 成人综合在线观看|