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

📄 matchalg.h

📁 M-System DOC(Disk on a Chip) Flash芯片的诊断工具, 可以从Flash芯片中获取特定的数据信息, 用于判断芯片当前的状态.
💻 H
字号:
/***********************************************************************************/
/*                        M-Systems Confidential                                   */
/*           Copyright (C) M-Systems Flash Disk Pioneers Ltd. 1995-2003            */
/*                         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:/PVCSDB/DiskOnChip/archives/general storage/TrueFFS/src/mtd/matchalg.h-arc  $
 * 
 *    Rev 1.3   Jan 14 2004 20:11:08   roneng
 * Fix bug in static allocation of LookUp Table 
 * 
 *    Rev 1.2   Oct 23 2003 13:55:42   oris
 * Removed the MAX_NUMBER_OF_PLANES defintion , since it is already found in _flflash.h
 * 
 *    Rev 1.1   May 11 2003 14:42:40   OriS
 * Changed MAX_VOLUME_MBYTES to FL_ASSUMED_MAX_VOLUME_MBYTES
 * Changed ASSUMED_NFTL_UNIT_SIZE to FL_ASSUMED_MIN_UNIT_SIZE
 * 
 *    Rev 1.0   Apr 09 2003 12:15:56   OriS
 * Initial revision.
 * 
 */

/************************************************************************
 * Name     : MatchAlg.h                                                *
 *                                                                      *
 * Written  : Ronen Golan                                               *
 *                                                                      *
 * Abstract :	                                                    *
 ************************************************************************/
#ifndef MTD_MTCH_ALG_H
#define MTD_MTCH_ALG_H

#ifndef MAX_LOGICAL_UNITS_IN_PLATFORM

#define MAX_LOGICAL_UNITS_IN_PLATFORM (((FLDword)FL_ASSUMED_MAX_VOLUME_MBYTES<<20L) / FL_ASSUMED_MIN_UNIT_SIZE) 

#endif /* MAX_LOGICAL_UNITS_IN_PLATFORM */

#define MAX_MLC_BAD_BLOCK_PERCENTAGE         5     

/***************************   Typedefs      ****************************/
typedef FLWord                 LogicUnitType;
typedef FLWord                 PhyUnitType;

/***************************  Definitions    ****************************/
#define WAIT_TO_BE_MATCHED_SIZE    36
#define MAX_TL_PARTITIONS          4
#define BIGGEST_PARTITION_SIZE     0xFFFF
#define INVALID_PLANE_ARRAY_INDEX  0xFF
#define PHYSICAL_BLOCK_IS_BAD      0xFFFF
#define MAX_FLOORS                 4
#define MAX_GOOD_BLOCKS_SEARCH     16 /* Max number of logical blocks to search for the media header */
#define MAX_MATH_LOOKUP_TABLE_SIZE           MAX_LOGICAL_UNITS_IN_PLATFORM>>3
#define MAX_LOGICAL_UNITS_IN_LOOKUP_TABLE    MAX_LOGICAL_UNITS_IN_PLATFORM*MAX_MLC_BAD_BLOCK_PERCENTAGE/100  
#define MAX_PHYSICAL_UNITS_IN_LOOKUP_TABLE   MAX_LOGICAL_UNITS_IN_LOOKUP_TABLE * MAX_NUMBER_OF_PLANES
/****************** Mathematical/Lookup Defs ****************************/
#define MTD_MATH          0
#define MTD_LOOKUP        1

/************************* Run Time Definitions  ************************/

/*************************    Include files      ************************/

/*************************     ENUMERATIONS      ************************/

/*************************      STRUCTS          ************************/
typedef struct 
{
  FLByte  *bTable ;
  FLDword  dwTableSize ;    /* Table size in bytes */  
} MathLookUpStruct ;

typedef struct  
{
  PhyUnitType   *physicalUnit ;  
  LogicUnitType *logicalUnit  ;
  FLDword       dwTableSize ; /* The actual table size */
  FLDword       dwNumOfEntries ;
} LookUpTableStruct,*LookUpTableStructPtr;

typedef struct  
{
  PhyUnitType    physicalUnit[WAIT_TO_BE_MATCHED_SIZE] ;   
  LogicUnitType  noOfUnits ; /* The actual number of units */
  FLWord         wPlaneArrayIndex ;
} WaitingToBeMatchedStruct, *WaitingToBeMatchedStructPtr ;
 
typedef struct 
{
  MathLookUpStruct          mathLookup ;
  LookUpTableStruct         lookUpTable ; 
  WaitingToBeMatchedStruct  waitingToBeMatched ;
  LogicUnitType             FirstAvailUnitTable [MAX_FLOORS] ; 
  FLBoolean                 fTablesForLogicalMapWereCreated ;
} MatchingVarsStruct, *MatchingVarsStructPtr ;

#define MATCH_VARS       ((MatchingVarsStruct *) (((MTDVarsStruct *)(flashPtr->mtdVars))->MatchingAlgVars))

#endif /* MTD_MTCH_ALG_H */

⌨️ 快捷键说明

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