📄 matchalg.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 + -