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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? systffs.c

?? pentium4 pc的vxworks bsp源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
/* sysTffs.c - PC Pentium/Pentium2/Pentium3 system-dependent TrueFFS library *//* 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--------------------01t,30apr01,yp  removing assumption that Disk On Chip support will always be                 present01s,14dec00,mks  removed references to pc386 and pc486. SPR 63032.01r,29nov00,yp  cleaning up so we can build as BSP stub01q,31may99,yp  Added comments suggested in SPR #2531901p,21apr98,yp   added tffs to files included from there01o,26mar98,hdn  added DOC2_XXX macros along with windowBaseAddress().01n,11mar98,yp   made including tffsConfig.c conditional so man page		 generation does not include it.01m,09mar98,kbw  made man page edits to fix problems found by QE01l,04mar98,kbw  made man page edits01k,13feb98,hdn  commented out pcVccOff() to fix multi drive testing.01j,19jan98,hdn  fixed pcVccXX, pcVppXX. added timeout in while loop.01i,18dec97,hdn  added comment.  cleaned up.01h,11dec97,hdn  added our PCMCIA library support.01g,05dec97,hdn  added flDelayMsecs(), socketTable[]. cleanup.01f,25nov97,hdn  made each interface functions configurable.01e,24nov97,hdn  made each socket interface configurable.01d,11nov97,hdn  made flDelayLoop() dummy function.01c,11nov97,hdn  fixed comments, copyright.01b,05nov97,hdn  cleaned up.01a,09oct97,and  written by Andray in M-Systems*//*DESCRIPTIONThis library provides board-specific hardware access routines for TrueFFS.  In effect, these routines comprise the socket component driver (or drivers)for your flash device hardware.  At socket registration time, TrueFFS stores pointers to the functions of this socket component driver in an 'FLSocket' structure.  When TrueFFS needs to access the flash device, it uses these functions.  Because this file is, for the most part, a device driver that exports its functionality by registering function pointers with TrueFFS, very few of the functions defined here are externally callable.  For the record, these external functions are flFitInSocketWindow() and flDelayLoop().  You should never have any need to call these functions.  However, one of the most import functions defined in this file is neitherreferenced in an 'FLSocket' structure, nor is it externally callable.  Thisfunction is sysTffsInit().  TrueFFS calls this function at initialization time to register socket component drivers for all the flash devices attached to your target.  It is this call to sysTffs() that results in assigning drive numbers to the flash devices on your target hardware.  Drive numbers are assigned by the order in which the socket component drivers are registered.The first to be registered is drive 0, the second is drive 1, and so on up to 4.  As shipped, TrueFFS supports up to five flash drives.  After registering socket component drivers for a flash device, you may format the flash medium even though there is not yet a block device driverassociated with the flash (see the reference entry for the tffsDevCreate() routine).  To format the flash medium for use with TrueFFS, call tffsDevFormat() or, for some BSPs, sysTffsFormat().  The sysTffsFormat() routine is an optional but BSP-specific externally callable helper function.  Internally, it calls tffsDevFormat() with a pointer to a 'FormatParams' structure initialized to values that leave a space on the flash device for a boot image. This space is outside the region managed by TrueFFS.  This special region is necessary for boot images because the normal translation and wear-leveling services of TrueFFS are incompatible with the needs of the boot program and the boot image it relies upon.  To write a boot image (or any other data) into this area, use tffsBootImagePut().  INCLUDE FILES: flsocket.hSEE ALSO : tffsDevFormat tffsRawio*//* includes */#include "vxWorks.h"#include "config.h"#include "tffs/flsocket.h"#include "tffs/pcic.h"/* defines */#define INCLUDE_MTD_I28F016#define INCLUDE_MTD_I28F008#define INCLUDE_MTD_AMD#undef  INCLUDE_MTD_CFISCS#undef  INCLUDE_MTD_WAMD#define INCLUDE_TL_FTL#undef  INCLUDE_TL_SSFDC       #undef	INCLUDE_SOCKET_DOC		/* DOC socket interface */#define	INCLUDE_SOCKET_PCIC0		/* PCIC socket interface 0 */#define	INCLUDE_SOCKET_PCIC1		/* PCIC socket interface 1 */#define INCLUDE_TFFS_BOOT_IMAGE		/* include tffsBootImagePut() */#define	WINDOW_ID	0		/* PCIC window used (0-4) */#define	VPP_DELAY_MSEC	100		/* Millisecs to wait for Vpp ramp up */#define	DOC2_SCAN_ADRS_0 0xc8000	/* start of mem range to scan for DOC2 */#define	DOC2_SCAN_ADRS_1 0xf0000	/* end of mem range to scan for DOC2 */#define	PC_BASE_ADRS_0	0xd8000		/* base addr for socket 0 */#define	PC_BASE_ADRS_1	0xda000		/* base addr for socket 1 */#define KILL_TIME_FUNC	 ((iz * iz) / (iz + iz)) / ((iy + iz) / (iy * iz))#define PC_WINDOW	1		/* PCIC window no. used by TFFS */#define PC_EXTRAWS	1		/* PCIC wait state used by TFFS */#define PC_SOCKET_NAME_DOC "DOC"	/* DOC socket name for DOC */#define PC_SOCKET_NAME_0 "PCMCIA-0"	/* PCIC socket name for socket 0 */#define PC_SOCKET_NAME_1 "PCMCIA-1"	/* PCIC socket name for socket 1 *//* externs */#ifdef INCLUDE_SOCKET_DOCIMPORT unsigned windowBaseAddress (unsigned driveNo, unsigned long startAddr,                                   unsigned long endAddr);   /* nfdc2148.c */#endif /* INCLUDE_SOCKET_DOC */IMPORT PCMCIA_CTRL pcmciaCtrl;/* globals */char pcDriveNo[2] = {NONE, NONE};	/* drive number of the sockets *//* locals */LOCAL UINT32 sysTffsMsecLoopCount = 0;	/* loop count to consume milli sec */#ifndef	INCLUDE_PCMCIALOCAL FLMutex flPcicMutex = NULL;	/* protects PCIC register access  */                                        /* in multi-threaded environments */#endif	/* INCLUDE_PCMCIA *//* forward declarations */#ifdef	INCLUDE_SOCKET_DOCLOCAL FLStatus		docRegister (void);LOCAL unsigned		docWindowBaseAddress (unsigned driveNo);LOCAL FLBoolean		docCardDetected (FLSocket vol);LOCAL void		docVccOn (FLSocket vol);LOCAL void		docVccOff (FLSocket vol);#ifdef	SOCKET_12_VOLTSLOCAL FLStatus		docVppOn (FLSocket vol);LOCAL void		docVppOff (FLSocket vol);#endif	/* SOCKET_12_VOLTS */LOCAL FLStatus		docInitSocket (FLSocket vol);LOCAL void		docSetWindow (FLSocket vol);LOCAL void		docSetMappingContext (FLSocket vol, unsigned page);LOCAL FLBoolean		docGetAndClearCardChangeIndicator (FLSocket vol);LOCAL FLBoolean		docWriteProtected (FLSocket vol);#ifdef	EXITLOCAL void		docFreeSocket (FLSocket vol);#endif	/* EXIT */#endif	/* INCLUDE_SOCKET_DOC */#if	defined (INCLUDE_SOCKET_PCIC0) || defined (INCLUDE_SOCKET_PCIC1)LOCAL FLStatus		pcRegister (int socketNo, unsigned int baseAddress);#ifndef	INCLUDE_PCMCIALOCAL unsigned char	flInportb (unsigned portId);LOCAL void		flOutportb (unsigned portId, unsigned char value);LOCAL unsigned char	get365 (FLSocket vol, unsigned char reg);LOCAL void		set365 (FLSocket vol, unsigned char reg, 				unsigned char value);#endif	/* INCLUDE_PCMCIA */LOCAL FLBoolean		pcCardDetected (FLSocket vol);LOCAL void		pcVccOn (FLSocket vol);LOCAL void		pcVccOff (FLSocket vol);#ifdef	SOCKET_12_VOLTSLOCAL FLStatus		pcVppOn (FLSocket vol);LOCAL void		pcVppOff (FLSocket vol);#endif	/* SOCKET_12_VOLTS */LOCAL FLStatus		pcInitSocket (FLSocket vol);LOCAL void		pcSetWindow (FLSocket vol);LOCAL void		pcSetMappingContext (FLSocket vol, unsigned page);LOCAL FLBoolean		pcGetAndClearCardChangeIndicator (FLSocket vol);LOCAL FLBoolean		pcWriteProtected (FLSocket vol);#ifdef	EXITLOCAL void		pcFreeSocket (FLSocket vol);#endif	/* EXIT */#endif	/* defined (INCLUDE_SOCKET_PCIC0) || defined (INCLUDE_SOCKET_PCIC1) */#ifndef DOC#include "tffs/tffsConfig.c"#endif /* DOC *//********************************************************************************* sysTffsInit - board level initialization for TFFS** This routine calls the socket registration routines for the socket component* drivers that will be used with this BSP. The order of registration signifies* the logical drive number given to the drive associated with the socket.** RETURNS: N/A*/LOCAL void sysTffsInit (void)    {    UINT32 ix = 0;    UINT32 iy = 1;    UINT32 iz = 2;    int oldTick;    /* we assume followings:     *   - no interrupts except timer is happening.     *   - the loop count that consumes 1 msec is in 32 bit.     * it should be done in the early stage of usrRoot() in tffsDrv().  */    oldTick = tickGet();    while (oldTick == tickGet())	/* wait for next clock interrupt */	;    oldTick = tickGet();    while (oldTick == tickGet())	/* loop one clock tick */	{	iy = KILL_TIME_FUNC;		/* consume time */	ix++;				/* increment the counter */	}        sysTffsMsecLoopCount = ix * sysClkRateGet() / 1000;#ifdef	INCLUDE_SOCKET_DOC    (void) docRegister ();			/* Disk On Chip */#endif	/* INCLUDE_SOCKET_DOC */#ifdef	INCLUDE_SOCKET_PCIC0    (void) pcRegister (0, PC_BASE_ADRS_0);	/* flash card on socket 0 */#endif	/* INCLUDE_SOCKET_PCIC0 */#ifdef	INCLUDE_SOCKET_PCIC1    (void) pcRegister (1, PC_BASE_ADRS_1);	/* flash card on socket 1 */#endif	/* INCLUDE_SOCKET_PCIC1 */    }#ifdef	INCLUDE_SOCKET_DOC/********************************************************************************* docRegister - registration routine for M-Systems Disk On Chip (DOC) *		socket component driver** This routine populates the 'vol' structure for a logical drive with the* socket component driver routines for the M-System DOC. All socket routines* are referanced through the 'vol' structure and never from here directly** RETURNS: flOK, or flTooManyComponents if there're too many drives,*                or flAdapterNotFound if there's no controller.*/LOCAL FLStatus docRegister (void)    {    FLSocket vol;    if (noOfDrives >= DRIVES)        return (flTooManyComponents);    pVol = flSocketOf (noOfDrives);    vol.window.baseAddress =	docWindowBaseAddress (vol.volNo);    if (vol.window.baseAddress == 0)        return (flAdapterNotFound);    vol.cardDetected =		docCardDetected;    vol.VccOn =			docVccOn;    vol.VccOff =		docVccOff;#ifdef SOCKET_12_VOLTS    vol.VppOn =			docVppOn;    vol.VppOff =		docVppOff;#endif    vol.initSocket =		docInitSocket;    vol.setWindow =		docSetWindow;    vol.setMappingContext =	docSetMappingContext;    vol.getAndClearCardChangeIndicator = docGetAndClearCardChangeIndicator;    vol.writeProtected =	docWriteProtected;#ifdef EXIT    vol.freeSocket =		docFreeSocket;#endif    tffsSocket[noOfDrives] = PC_SOCKET_NAME_DOC;    noOfDrives++;    return (flOK);    } /********************************************************************************* docWindowBaseAddress - Return the host base address of the DOC2 window** This routine Return the host base address of the window.* It scans the host address range from DOC2_SCAN_ADRS_0 to DOC2_SCAN_ADRS_1* (inclusive) attempting to identify DiskOnChip 2000 memory window.** RETURNS: Host physical address of window divided by 4 KB*/LOCAL unsigned docWindowBaseAddress    (    unsigned driveNo		/* drive number */    )    {    return (windowBaseAddress (driveNo, DOC2_SCAN_ADRS_0, DOC2_SCAN_ADRS_1));    }/********************************************************************************* docCardDetected - detect if a card is present (inserted)** This routine detects if a card is present (inserted).** RETURNS: TRUE, or FALSE if the card is not present.*/LOCAL FLBoolean docCardDetected    (    FLSocket vol		/* pointer identifying drive */    )    {    return (TRUE);    }/********************************************************************************* docVccOn - turn on Vcc (3.3/5 Volts)** This routine turns on Vcc (3.3/5 Volts).  Vcc must be known to be good* on exit.** RETURNS: N/A*/LOCAL void docVccOn    (    FLSocket vol		/* pointer identifying drive */    )    {    }/********************************************************************************* docVccOff - turn off Vcc (3.3/5 Volts)** This routine turns off Vcc (3.3/5 Volts). ** RETURNS: N/A*/LOCAL void docVccOff    (    FLSocket vol		/* pointer identifying drive */    )    {    }#ifdef SOCKET_12_VOLTS/********************************************************************************* docVppOn - turns on Vpp (12 Volts)** This routine turns on Vpp (12 Volts). Vpp must be known to be good on exit.** RETURNS: flOK always*/LOCAL FLStatus docVppOn    (    FLSocket vol		/* pointer identifying drive */    )    {    return (flOK);    }/********************************************************************************* docVppOff - turns off Vpp (12 Volts)** This routine turns off Vpp (12 Volts).** RETURNS: N/A*/LOCAL void docVppOff    (    FLSocket vol		/* pointer identifying drive */    )    {    }#endif	/* SOCKET_12_VOLTS *//********************************************************************************* docInitSocket - perform all necessary initializations of the socket** This routine performs all necessary initializations of the socket.** RETURNS: flOK always*/LOCAL FLStatus docInitSocket    (    FLSocket vol		/* pointer identifying drive */    )    {    return (flOK);    }/********************************************************************************* docSetWindow - set current window attributes, Base address, size, etc** This routine sets current window hardware attributes: Base address, size,* speed and bus width.  The requested settings are given in the 'vol.window' * structure.  If it is not possible to set the window size requested in* 'vol.window.size', the window size should be set to a larger value, * if possible. In any case, 'vol.window.size' should contain the * actual window size (in 4 KB units) on exit.** RETURNS: N/A*/LOCAL void docSetWindow    (    FLSocket vol		/* pointer identifying drive */    )    {    }/********************************************************************************* docSetMappingContext - sets the window mapping register to a card address** This routine sets the window mapping register to a card address.* The window should be set to the value of 'vol.window.currentPage',* which is the card address divided by 4 KB. An address over 128MB,* (page over 32K) specifies an attribute-space address. On entry to this * routine vol.window.currentPage is the page already mapped into the window.* (In otherwords the page that was mapped by the last call to this routine.)** The page to map is guaranteed to be on a full window-size boundary.** RETURNS: N/A*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久久久| 91美女在线视频| 亚洲免费看黄网站| 欧美挠脚心视频网站| kk眼镜猥琐国模调教系列一区二区| 五月婷婷久久综合| 18成人在线视频| 久久久久88色偷偷免费| 欧美日韩情趣电影| 91亚洲精品久久久蜜桃网站| 国产精品一区二区黑丝| 午夜久久电影网| 亚洲免费观看高清完整| 国产拍欧美日韩视频二区| 国产欧美久久久精品影院| 日韩西西人体444www| 在线看日本不卡| av一区二区久久| 国产高清精品久久久久| 免费在线欧美视频| 午夜日韩在线观看| 亚洲一区二区视频| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲成av人片一区二区梦乃| 国产日韩精品一区二区三区 | 成人一区二区三区视频| 蜜桃视频一区二区| 免费成人av在线播放| 午夜精品123| 亚洲激情欧美激情| 一区二区三区四区亚洲| 亚洲日本一区二区| 亚洲色欲色欲www| 国产精品国产a| 欧美激情在线看| 国产精品欧美综合在线| 中文字幕久久午夜不卡| 国产精品麻豆久久久| 中文字幕va一区二区三区| 日本一区二区三区免费乱视频 | 欧美精品乱码久久久久久| 欧美日韩国产一级片| 在线91免费看| 欧美一区二区二区| 精品成人一区二区三区四区| 亚洲一卡二卡三卡四卡| 天天做天天摸天天爽国产一区| 亚洲高清视频在线| 亚洲日本韩国一区| 亚洲综合999| 日韩国产在线一| 毛片av中文字幕一区二区| 韩国女主播成人在线| 成人性色生活片免费看爆迷你毛片| 高清国产一区二区三区| 91在线视频免费观看| 在线影视一区二区三区| 欧美一区二区三区日韩视频| 久久综合久色欧美综合狠狠| 国产精品视频免费| 亚洲国产视频在线| 男男成人高潮片免费网站| 国产成人av自拍| 欧美在线不卡视频| 欧美一区三区二区| 国产精品国产精品国产专区不片| 亚洲午夜在线电影| 精品一区二区三区免费| 波多野结衣亚洲| 欧美日韩精品福利| 久久天堂av综合合色蜜桃网| 中文字幕欧美一| 日韩精品欧美精品| www.视频一区| 日韩一区二区三区四区| 中文字幕二三区不卡| 亚洲成人免费电影| 国产精品羞羞答答xxdd | 久久在线免费观看| 亚洲视频一区二区免费在线观看| 日日摸夜夜添夜夜添精品视频| 国产成人免费视| 欧美亚洲国产一区二区三区va| 精品日韩欧美在线| 一区二区三区在线视频观看| 美女视频黄 久久| 色婷婷综合久久久中文字幕| 精品国产乱码久久久久久1区2区 | 99久久99久久久精品齐齐| 777xxx欧美| 国产精品视频一区二区三区不卡| 亚洲高清视频在线| www.日韩大片| 久久久亚洲精品石原莉奈| 亚洲自拍偷拍网站| 成人激情黄色小说| 精品国产乱码久久久久久夜甘婷婷 | thepron国产精品| 欧美大尺度电影在线| 亚洲国产成人tv| 成人短视频下载| 精品国产sm最大网站| 视频一区欧美精品| 色8久久精品久久久久久蜜| 精品福利一二区| 日本aⅴ免费视频一区二区三区| 91蜜桃免费观看视频| 国产精品网站在线| 韩国女主播成人在线| 777亚洲妇女| 亚洲福利视频三区| 91免费观看视频| 日本一区二区三区免费乱视频 | 国产精品久久久久精k8| 国内成+人亚洲+欧美+综合在线| 欧美理论电影在线| 一区二区成人在线视频| 91视频免费观看| 国产精品国产自产拍在线| 国产成人午夜高潮毛片| www国产成人免费观看视频 深夜成人网 | 亚洲精品一区在线观看| 免费成人美女在线观看.| 在线不卡欧美精品一区二区三区| 一区二区在线观看av| 99久久综合色| 综合久久久久久| 91亚洲国产成人精品一区二区三| 中文在线资源观看网站视频免费不卡| 麻豆91精品视频| 欧美r级在线观看| 国内精品视频666| 久久久精品国产免费观看同学| 激情五月婷婷综合网| 精品国产乱码久久久久久影片| 精品一区二区成人精品| 欧美精品一区二区精品网| 国产一区二区在线视频| 久久精品人人做| 国产精品亚洲一区二区三区在线 | 国产裸体歌舞团一区二区| 久久免费看少妇高潮| 国产成人av一区二区| 中文字幕第一区第二区| 91丨porny丨国产| 亚洲国产日韩综合久久精品| 制服.丝袜.亚洲.另类.中文| 男女性色大片免费观看一区二区| 欧美一区二区三区电影| 韩国欧美一区二区| 国产精品久久久久久久久免费樱桃| 99re成人精品视频| 亚洲一区二区3| 欧美va亚洲va香蕉在线| 成人小视频在线观看| 亚洲免费在线视频| 91精品国产综合久久久久久漫画| 老司机午夜精品99久久| 国产亚洲欧美一级| 色综合久久中文字幕| 日韩 欧美一区二区三区| 久久久久久毛片| 色婷婷综合久久久久中文一区二区 | 亚洲男女一区二区三区| 日韩亚洲欧美一区| 成人午夜视频福利| 亚洲国产欧美一区二区三区丁香婷| 欧美一区二区在线视频| 国产成人鲁色资源国产91色综| 亚洲男人的天堂av| 欧美一级片在线看| 成人黄色大片在线观看| 午夜精品免费在线| 国产亚洲一区二区三区四区| 在线免费观看日本欧美| 国产麻豆日韩欧美久久| 亚洲一区二区精品视频| 久久精品男人天堂av| 欧美在线播放高清精品| 国产精品亚洲午夜一区二区三区| 曰韩精品一区二区| 久久久久久久久久美女| 欧美怡红院视频| 成人午夜私人影院| 蜜臀99久久精品久久久久久软件| 国产精品水嫩水嫩| 欧美不卡激情三级在线观看| 91老师片黄在线观看| 国产精品系列在线观看| 天天色综合天天| 国产精品不卡一区二区三区| 欧美成人伊人久久综合网| 一本色道久久综合亚洲91| 国产麻豆精品在线| 日日骚欧美日韩| 一区二区高清在线| 国产精品色哟哟| 精品国产污网站| 日韩一区二区三区免费观看| 色婷婷av一区|