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

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

?? systffs.c

?? vxworks嵌入式開發(fā)vmware bsp包 其中已包括網(wǎng)卡的驅(qū)動 本人試過 非常好用
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* 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*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av动漫网站| 一区二区三区小说| 不卡一区中文字幕| 夜夜嗨av一区二区三区网页| 欧美大白屁股肥臀xxxxxx| 91影视在线播放| 视频一区二区国产| 国产精品护士白丝一区av| 韩国精品主播一区二区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 久久人人爽爽爽人久久久| 亚洲天堂网中文字| 狠狠色狠狠色综合| 欧美美女bb生活片| 一区二区欧美视频| 成人精品国产福利| 久久婷婷国产综合国色天香| 日韩综合一区二区| 美女任你摸久久| 综合中文字幕亚洲| 欧美一二三区在线| 欧美日韩免费一区二区三区视频| 黄色日韩网站视频| 亚洲综合在线视频| 中文字幕一区二区三区av| 日韩欧美亚洲国产精品字幕久久久| 国产在线国偷精品产拍免费yy| 亚洲成av人片观看| 亚洲女女做受ⅹxx高潮| 欧美亚洲一区二区在线| 97se亚洲国产综合自在线不卡| 老司机精品视频导航| 一区二区三区精品视频在线| 国产精品久久久久天堂| 久久久亚洲国产美女国产盗摄| 欧美成人aa大片| 欧美精品一二三四| 色婷婷国产精品久久包臀| 色嗨嗨av一区二区三区| 成人av免费观看| 成人免费视频免费观看| 成人激情开心网| 国产精品一区二区视频| 欧美喷潮久久久xxxxx| 亚洲成人午夜电影| 一区二区三区在线高清| 亚洲麻豆国产自偷在线| 玉米视频成人免费看| 亚洲欧洲日韩女同| 久久久久久久久久久久电影| 国产色产综合色产在线视频| 久久综合九色综合97婷婷女人| 久久久青草青青国产亚洲免观| 日韩欧美一级二级| 日韩欧美另类在线| 久久精品视频在线看| 韩国欧美国产一区| 夜色激情一区二区| 亚洲国产中文字幕| 亚洲特级片在线| 国产色婷婷亚洲99精品小说| 91精品视频网| 91在线精品一区二区三区| 久久国产综合精品| 日本欧美韩国一区三区| 国产精品人妖ts系列视频| 亚洲精品在线免费观看视频| 日韩美女视频在线| 91精品久久久久久久久99蜜臂| 欧美mv日韩mv亚洲| 精品国产百合女同互慰| 国产情人综合久久777777| 国产精品毛片久久久久久久| 中文字幕在线一区免费| 中文字幕在线不卡视频| 午夜精品久久久久久久99樱桃| 日本不卡中文字幕| 波多野结衣亚洲一区| 欧美性色综合网| 日韩欧美国产麻豆| 国产精品卡一卡二| 亚洲一级二级在线| 舔着乳尖日韩一区| 国产成人精品免费| 91美女在线观看| 欧美大片国产精品| 国产精品传媒在线| 亚洲一区二区三区四区五区黄| 久久99国产乱子伦精品免费| 成人一区在线观看| 欧美一卡二卡在线观看| 精品国产乱码久久久久久久| 国产精品天干天干在观线| 亚洲一区二区三区影院| 久久精品99久久久| eeuss鲁片一区二区三区在线看| 欧美羞羞免费网站| 国产偷v国产偷v亚洲高清| 亚洲女同女同女同女同女同69| 日韩电影在线一区二区三区| 国产成人在线观看| 欧美色综合久久| 国产一区视频导航| 99久久99久久精品免费看蜜桃| 色系网站成人免费| 欧美精品一区二区三区蜜桃| 亚洲国产成人av| 国产日产欧美一区二区视频| 欧美一区二区三区在线看| 在线视频观看一区| 丁香六月久久综合狠狠色| 2014亚洲片线观看视频免费| 国产suv精品一区二区三区| 欧美精品一区二区三区在线| 亚洲最大色网站| 2017欧美狠狠色| 欧美唯美清纯偷拍| 国产乱码精品1区2区3区| 欧美精品一区二区三区视频| 亚洲成人tv网| 极品少妇一区二区三区精品视频 | 97久久精品人人爽人人爽蜜臀| 波多野结衣视频一区| 亚洲老司机在线| 欧美色图天堂网| 久久99精品视频| 欧美videos中文字幕| 免费成人你懂的| 亚洲va天堂va国产va久| jizz一区二区| 亚洲男同1069视频| 精品久久久久一区| 国产一区二区导航在线播放| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲成人综合在线| 精品无人码麻豆乱码1区2区| 欧亚洲嫩模精品一区三区| 亚洲欧美激情在线| 欧美日韩国产免费| 亚洲国产精品精华液网站| 欧美日韩一级二级| 一区二区三区国产| 欧美色综合久久| 国产一区二区三区久久久| 国产精品丝袜一区| 国产成人免费在线视频| 亚洲精品videosex极品| 久久无码av三级| 天天操天天干天天综合网| 精品欧美黑人一区二区三区| 91在线丨porny丨国产| 国产精品自拍在线| 国产精品乱码久久久久久| eeuss鲁片一区二区三区在线看| 韩国av一区二区| 26uuu亚洲综合色欧美| 欧美视频一区在线| 国产91露脸合集magnet| 国产精品午夜在线观看| 成人午夜电影久久影院| 国产精品久久久久三级| 在线亚洲精品福利网址导航| 一区二区三区色| 97精品电影院| 综合色中文字幕| 欧美色图激情小说| 午夜成人免费电影| 日韩精品一区在线观看| 顶级嫩模精品视频在线看| 国产精品蜜臀av| 在线观看国产一区二区| 奇米综合一区二区三区精品视频| 日韩欧美一级片| 蜜桃久久久久久| 成人欧美一区二区三区黑人麻豆 | 国产精品欧美一区二区三区| 国产乱码精品一区二区三区五月婷 | 久久先锋影音av| av电影天堂一区二区在线观看| 亚洲三级久久久| 欧美亚洲动漫另类| 韩国女主播一区二区三区| 综合中文字幕亚洲| 日韩欧美一级片| 91国偷自产一区二区三区成为亚洲经典| 日本美女一区二区三区视频| 日本一二三四高清不卡| 欧美高清视频在线高清观看mv色露露十八 | 国产精品综合av一区二区国产馆| 亚洲男人都懂的| 久久久国产综合精品女国产盗摄| 精品视频999| 成人精品一区二区三区四区| 丝袜美腿亚洲综合| 国产精品三级在线观看| 欧美一区二区在线看| 99精品在线观看视频| 国产一区二区在线看| 日韩国产精品久久| 亚洲综合色区另类av|