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

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

?? tffslib.c

?? truefs for vxworks, make fs on flash or rom
?? C
字號:
/* tffsLib.c - TFFS FLite library for VxWorks. *//* Copyright 1984-2004 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一区二区三区免费野_久草精品视频
亚洲一区二三区| 粉嫩欧美一区二区三区高清影视| 蜜臀av一区二区在线免费观看| 国产精品888| 777奇米四色成人影色区| 一色屋精品亚洲香蕉网站| 美腿丝袜亚洲色图| 欧美色大人视频| 亚洲欧洲美洲综合色网| 国产在线精品一区二区三区不卡 | 国产一区三区三区| 欧美日韩不卡在线| 亚洲日本护士毛茸茸| 成人久久久精品乱码一区二区三区| 6080yy午夜一二三区久久| 中文字幕日韩av资源站| 成人av在线资源网| 国产情人综合久久777777| 久久99国产精品久久99果冻传媒| 欧美日韩色综合| 亚洲图片自拍偷拍| 欧美怡红院视频| 一区二区激情视频| 91国偷自产一区二区开放时间| 国产精品免费网站在线观看| 国产一区二区在线视频| 国产亚洲精品精华液| 精品无码三级在线观看视频| 日韩视频国产视频| 久久精品99久久久| 26uuuu精品一区二区| 九九国产精品视频| 久久先锋资源网| 国产激情91久久精品导航| 日本一二三不卡| 99精品视频在线免费观看| 日韩一区在线免费观看| 色天天综合色天天久久| 亚洲最色的网站| 欧美欧美欧美欧美| 毛片不卡一区二区| 久久久久九九视频| 99精品视频在线免费观看| 亚洲综合免费观看高清完整版在线 | 国产成人99久久亚洲综合精品| 国产亚洲综合av| 97国产一区二区| 亚洲成人中文在线| 日韩欧美一二三四区| 国产在线看一区| 亚洲免费伊人电影| 91.麻豆视频| 国产精品亚洲а∨天堂免在线| 中文字幕精品在线不卡| 在线视频欧美精品| 男女男精品网站| 中文字幕精品一区| 欧美日韩一区二区三区不卡| 蜜桃视频一区二区| 亚洲欧洲国产日韩| 欧美男女性生活在线直播观看| 精品一区二区在线看| 国产精品国产三级国产三级人妇| 欧美天天综合网| 国产麻豆91精品| 亚洲国产cao| 国产日韩三级在线| 欧美性生活大片视频| 国产在线精品一区二区不卡了| 亚洲欧美另类小说视频| 欧美成人bangbros| 一本色道久久综合亚洲aⅴ蜜桃| 毛片基地黄久久久久久天堂| 国产精品国产a级| 日韩一区二区三区在线| 91网站最新地址| 久99久精品视频免费观看| 亚洲天堂福利av| 欧美精品一区二区三区久久久| 不卡视频免费播放| 久久疯狂做爰流白浆xx| 亚洲一区二区三区精品在线| 国产欧美视频一区二区三区| 7777精品伊人久久久大香线蕉完整版| 国产成人亚洲综合a∨婷婷| 亚洲成av人片观看| 亚洲免费资源在线播放| 国产欧美中文在线| 精品美女被调教视频大全网站| 欧美亚洲一区二区在线观看| 成人丝袜18视频在线观看| 久久精品国产一区二区三区免费看| 亚洲同性同志一二三专区| 国产亚洲一二三区| 精品久久久三级丝袜| 69p69国产精品| 欧美日韩一二三| 欧美性一区二区| 91蜜桃在线观看| 91无套直看片红桃| aaa国产一区| www.在线欧美| av综合在线播放| 成人少妇影院yyyy| 丰满亚洲少妇av| 成人综合婷婷国产精品久久| 国产精品一区二区不卡| 国内精品国产成人| 黑人精品欧美一区二区蜜桃| 另类小说综合欧美亚洲| 捆绑紧缚一区二区三区视频| 蜜臀国产一区二区三区在线播放| 性做久久久久久免费观看欧美| 午夜电影一区二区| 日韩不卡在线观看日韩不卡视频| 日精品一区二区三区| 奇米精品一区二区三区在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲18女电影在线观看| 日韩电影免费在线| 蜜桃视频在线观看一区| 韩国一区二区在线观看| 国产一区二区三区免费播放| 国产高清视频一区| www.亚洲在线| 在线视频你懂得一区二区三区| 欧美亚洲综合网| 日韩欧美一级在线播放| 久久免费看少妇高潮| 国产精品久久精品日日| 一区二区三区欧美亚洲| 天堂成人国产精品一区| 免费精品视频最新在线| 国产精品中文有码| 91在线看国产| 欧美一级黄色片| 国产午夜精品久久久久久免费视 | 精品一区二区在线看| 国产精品一二二区| 色综合天天性综合| 337p亚洲精品色噜噜| 国产日韩欧美精品在线| 一级精品视频在线观看宜春院 | 日韩精品一级二级 | 欧美一区二区日韩一区二区| 精品福利一二区| 亚洲欧洲综合另类| 久久99日本精品| 91麻豆自制传媒国产之光| 日韩欧美综合一区| 中文字幕在线一区| 日韩成人精品在线| 91美女片黄在线观看| 精品久久免费看| 五月天丁香久久| 99国产精品久| 欧美成人精品二区三区99精品| 日韩码欧中文字| 国内精品国产成人国产三级粉色| 欧美伊人久久久久久久久影院| 国产午夜精品一区二区三区嫩草 | 一区二区视频在线| 黄色日韩网站视频| 欧美高清一级片在线| 亚洲欧洲日韩女同| 精品无人码麻豆乱码1区2区| 欧美视频一区二区| 国产精品免费看片| 精东粉嫩av免费一区二区三区| 欧美在线不卡视频| 国产精品区一区二区三| 黄色日韩网站视频| 91精品国产一区二区三区蜜臀| 亚洲男同性视频| 波多野结衣91| 欧美激情艳妇裸体舞| 精品写真视频在线观看| 欧美一区日本一区韩国一区| 一区二区三区日韩欧美| 97精品国产露脸对白| 国产精品久久毛片av大全日韩| 麻豆精品在线视频| 日韩一区二区在线观看视频| 亚洲国产成人va在线观看天堂| 色婷婷综合久色| 亚洲欧美偷拍另类a∨色屁股| 国产成人午夜视频| 精品成人在线观看| 久久精品二区亚洲w码| 91麻豆精品国产91久久久使用方法| 亚洲免费观看高清完整版在线观看熊| 国产成人免费高清| 中日韩免费视频中文字幕| 国产精品一区二区在线观看不卡| 日韩精品自拍偷拍| 日本三级亚洲精品| 日韩欧美美女一区二区三区| 美女脱光内衣内裤视频久久网站 | 一区二区三区在线观看欧美| 北条麻妃一区二区三区|