⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flcustom.c

📁 DOC文件系统驱动源代码
💻 C
字号:

/*********************************************************************************** 
 *                                                                                 * 
 *                        M-Systems Confidential                                   * 
 *           Copyright (C) M-Systems Flash Disk Pioneers Ltd. 1995-2001            * 
 *                         All Rights Reserved                                     * 
 *                                                                                 * 
 *********************************************************************************** 
 *                                                                                 * 
 *                            NOTICE OF M-SYSTEMS OEM                              * 
 *                           SOFTWARE LICENSE AGREEMENT                            * 
 *                                                                                 * 
 *      THE USE OF THIS SOFTWARE IS GOVERNED BY A SEPARATE LICENSE                 * 
 *      AGREEMENT BETWEEN THE OEM AND M-SYSTEMS. REFER TO THAT AGREEMENT           * 
 *      FOR THE SPECIFIC TERMS AND CONDITIONS OF USE,                              * 
 *      OR CONTACT M-SYSTEMS FOR LICENSE ASSISTANCE:                               * 
 *      E-MAIL = info@m-sys.com                                                    * 
 *                                                                                 * 
 ***********************************************************************************/

/*
 * $Log:   V:/Flite/archives/OSAK/examples/drivers/VxWorks/custom/FLCUSTOM.C_V  $
 * 
 *    Rev 1.8   16 May 2003 20:00:44   andrayk
 * TrueFFS-5.1.4
 * 
 *    Rev 1.7   24 Apr 2002 02:37:42   andreyk
 * TrueFFS-5.1 update
 * 
 *    Rev 1.6   12 Feb 2002 01:56:20   andreyk
 * TrueFFS-5.1
 * 
 *    Rev 1.5   21 Sep 2001 17:45:16   andreyk
 * flMsecToYieldCPU added
 * 
 *    Rev 1.4   03 Sep 2001 03:41:22   andreyk
 * alignment of file system's bufers
 * 
 *    Rev 1.3   Jun 20 2001 19:55:06   oris
 * minor change to copyright statement
 * 
 *    Rev 1.2   17 May 2001 02:48:40   andreyk
 * bug fixes in osak-5
 * 
 * 
 *    Rev 1.1   May 28 2000 11:40:48   vadimk
 * OSAK-4.1 with IOCTL support
 *
 *    Rev 1.3   Jan 16 2000 14:41:50   vadimk
 * "fl" prefix was added to the environment variables
 *
 *    Rev 1.2   Jan 13 2000 18:36:10   vadimk
 * TrueFFS OSAK 4.1
 *
 *    Rev 1.6   22 Apr 1999 16:06:42   marina
 * flRegisterComponents returns status.
 *
 *    Rev 1.5   23 Feb 1998 20:04:26   Yair
 * Added #include "flsystem.h"
 *
 *    Rev 1.4   17 Sep 1997 17:11:32   danig
 *
 *    Rev 1.3   28 Aug 1997 16:38:32   danig
 * IRQ received as PCIC registration parameter
 *
 *    Rev 1.2   18 Aug 1997 16:06:36   danig
 * flRegisterPCIC receives window base address
 *
 *    Rev 1.1   24 Jul 1997 18:10:26   amirban
 * Moved stuff to flsystem.c
 *
 *    Rev 1.0   07 Jul 1997 15:21:38   amirban
 * Initial revision.
 */




/*
 * Configuration 
 */

#undef FL_DRV_SIMDOC      /* include support for DiskOnChip simulation */
#undef  FL_DRV_MULTIDOC    /* include Multi-Doc                  */




/*
 * includes 
 */

#include "stdcomp.h"

#ifdef FL_DRV_SIMDOC
#include "flsim.h"
#endif




/*
 * Globals
 */

int  fl_vols = 0;                        /* set by tffsSetup(), fldrvvxw.c */
long fl_volsAddr[2* VOLUMES] = {0l, 0l}; /* set by tffsSetup(), fldrvvxw.c */


extern int doc_noOfTLs;    /* No. of translation layers actually registered */


/*
 * Runtime configuration variables.
 */

/* set to non-zero to enable 8-bit data transfer (default is 32-bit) */

unsigned char  flUse8Bit = (unsigned char) 1; 


/* set to zero to disable NFTL cache  (not recommended) */

unsigned char  flUseNFTLCache = (unsigned char) 1;


/* set to non-zero to enable RAM probe (not recommended) */

unsigned char  flUseisRAM = (unsigned char) 0;


/* set to non-zero to yield the CPU during flash erase operation */

unsigned char  flDelay = (unsigned char) 0;


/* set to zero to disable internal diagnostic messages */

int  fl_useDebug  = 32;

/* buffer alignment */

int  flBufferAlignment = ((int) sizeof(char));

/* milliseconds to yield CPU */

int  flMsecToYieldCPU = 1; 


/* to install simDoc socket, set respective bit to 1 */

#ifdef FL_DRV_SIMDOC

#if (CPU == SIMNT)
int  flUseSimDoc = -1;
#else
int  flUseSimDoc = 0;
#endif

#endif /* FL_DRV_SIMDOC */




/* -------------------------------------------------------------------- * 
 *                                                                      * 
 *                f l S e t E n v V a r                                 * 
 *                                                                      * 
 * Called during driver startup to set driver's runtime configuration   * 
 * variables.                                                           * 
 *                                                                      * 
 * Parameters:                                                          * 
 *      None                                                            * 
 *                                                                      * 
 * -------------------------------------------------------------------- */

void  flSetEnvVar (void)
{
  /* 
   * Don't touch runtime config. vars - they might have been changed 
   * by tffsSetOption() and tffsMultidoc().
   */
}




/* -------------------------------------------------------------------- * 
 *                                                                      * 
 *                f l R e g i s t e r C o m p o n e n t s               * 
 *                                                                      * 
 * Register socket, MTD and translation layer components.               * 
 *                                                                      * 
 * Parameters:                                                          * 
 *      None                                                            * 
 *                                                                      * 
 * Returns   : always flOK                                              * 
 *                                                                      * 
 * -------------------------------------------------------------------- */

FLStatus  doc_flRegisterComponents (void)
{
    int       i;
    FLStatus  status;

    if (fl_vols == 0) {

        /* tffsSetup() has not been called. Assume single socket. */

        fl_vols = 1;
    }

    /* installing socket drivers */

    for (i = 0;  i < fl_vols; i++) {

#ifdef FL_DRV_SIMDOC

        if( (i < sizeof(int))  &&  ((flUseSimDoc & (1 << i)) != 0) ) {

            /* define simDoc configuration */

            (void) flRegisterSimSoc( (FLSimConf_t *) fl_volsAddr[2*i] );
        }
        else

#endif /* FL_DRV_SIMDOC */ 

        {
            /* register M+ socket first; if no luck, register DiskOnChip socket */

            status = flRegisterDOCPLUSSOC( (dword) fl_volsAddr[2*i], 
                                           (dword) fl_volsAddr[2*i + 1] );
            if (status != flOK) {

                (void) flRegisterDOCSOC( (dword) fl_volsAddr[2*i], 
                                         (dword) fl_volsAddr[2*i + 1] );
            }
        }
    }

    /* 
     * Linking in Memory Technology Drivers (MTDs).
     *
     * NOTE: simDoc MTD must be first MTD to install
     */

#ifdef FL_DRV_SIMDOC

    if (flUseSimDoc != 0)
        (void) flRegisterSimMTD ();      /* simDoc MTD     */

#endif

    (void) flRegisterDOC2000 ();         /* DiskOnChip MTD */
	printf("doc_noOfTLs=%d\n",doc_noOfTLs);
    (void) flRegisterDOCPLUS ();         /* M+ MTD         */
	
	printf("doc_noOfTLs=%d\n",doc_noOfTLs);
    /* linking in Translation Layers (TLs) */
	printf("doc_noOfTLs=%d\n",doc_noOfTLs);

    (void) flRegisterINFTL();
	printf("doc_noOfTLs=%d\n",doc_noOfTLs);
    (void) flRegisterNFTL();
	printf("doc_noOfTLs=%d\n",doc_noOfTLs);


#ifdef  FL_DRV_MULTIDOC

    if (flUseMultiDoc == 1) {

        /* (void) flRegisterMTL (); */   /* multi-doc TL is linked in BLOCKDEV */
    }

#endif

    return flOK;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -