📄 davrecl.h
字号:
/* Copyright (c) 1995-2002 Intel Corporation */
/* Intel Confidential */
/* ###########################################################################
### DAV - Direct Access Volume Enhancement to FDI
###
### Module: davrecl.h - DAV Include File
###
### $Workfile: davrecl.h $
### $Revision: 51 $
### $NoKeywords: $
########################################################################### */
/*
*****************************************************************
* NOTICE OF LICENSE AGREEMENT
*
* This code is provided by Intel Corp., and the use is governed
* under the terms of a license agreement. See license agreement
* for complete terms of license.
*
* YOU MAY ONLY USE THE SOFTWARE WITH INTEL FLASH PRODUCTS. YOUR
* USE OF THE SOFTWARE WITH ANY OTHER FLASH PRODUCTS IS EXPRESSLY
* PROHIBITED UNLESS AND UNTIL YOU APPLY FOR, AND ARE GRANTED IN
* INTEL'S SOLE DISCRETION, A SEPARATE WRITTEN SOFTWARE LICENSE
* FROM INTEL LICENSING ANY SUCH USE.
*****************************************************************
*/
#ifndef __dav_reclaim_h /* sentry header */
#define __dav_reclaim_h
#include "davrectb.h"
#include "davott.h"
#include "davrecpg.h"
#include "davrecpr.h"
#include "davrecip.h"
/*### Global Declarations
#########################*/
#if (DIRECT_ACCESS_VOLUME == TRUE)
/* This enumerated type will be used to perform selective reclaim. */
typedef enum
{
ReclaimParagraphObjects, /* Reclaim only paragraph object space */
ReclaimPageObjects, /* Reclaim only page object space */
ReclaimAllObjects /* Reclaim both page and paragraph object space */
} RECLAIM_Method;
/* Reclaim State Machine States */
typedef enum
{
RECLAIM_ST_ReadNextObj,
RECLAIM_ST_ProcessInvalidObj,
RECLAIM_ST_CalcParameters,
RECLAIM_ST_CopyOut,
RECLAIM_ST_ReclaimComplete,
RECLAIM_ST_ObjectModified
} RECLAIM_CleanupStatus;
typedef struct
{
struct
{
FDI_Handle BaseAddr;
UINT32 BytesFree;
} FreeBlk; /* Free space to copy to */
struct
{
UINT32 BaseAddr;
UINT32 BytesUsed;
} RecBlk; /* Reclaim block space */
} RECLAIM_MemTrackingStruct;
/* This structure will be used by reclaim to track progress and store */
/* the current reclaim state. SYSPOI will use a globally declared */
/* variable to allow reclaim to be restarted. */
typedef struct
{
UINT16 NextState;
UINT32 CurrentBlock2Reclaim;
UINT32 CurrentDoneBlock;
UINT32 CurrentObject2Modify;
UINT32 InvalidObjectSize;
BOOLEAN HeaderInRecBlk;
BOOLEAN ReclaimInProgress;
BOOLEAN SingleSkipRead;
BOOLEAN HeaderCopied;
BOOLEAN MarkHeaderCopyComplete;
FDI_Handle OTTTblBaseAddr;
FDI_Handle OTTTblHdrAddr;
FDI_Handle RecTblBaseAddr;
FDI_Handle RecTblHdrAddr;
FDI_Handle ObjectBaseAddr;
FDI_Handle ObjectEndAddr;
FDI_Handle TargetHeaderAddress;
FDI_Handle ObjectHiAddr;
FDI_Handle ObjectLoAddr;
RECLAIM_Method ReclaimType;
UINT8 ConfigIndex;
RECTBL_TableEntry RecTblEntry;
OTTTBL_TableEntryStruct OTTTblEntry;
OTTTBL_TableInfo OTTTableInfo;
RECTBL_TableInfo TableInfo;
CFGHDR_ConfigurationEntry ConfigEntry;
} RECLAIM_InfoStruct, __FAR_ * RECLAIM_InfoStructPtr;
/*### Global Data
#########################*/
extern HDR_Header SearchHeader;
extern HDR_SearchInfo SearchInfo;
extern RECLAIM_InfoStruct ReclaimState;
extern RECLAIM_MemTrackingStruct MemMap;
/*### Global Functions
#########################*/
/* This macro defines the amount of paragraph space that can */
/* be regained by issuing a paragraph only reclaim. */
#define RECLAIM_CalcReclaimableParas() \
( FDI_MemUsage.ParaSpace.Invalid + \
FDI_MemUsage.ParaOverhead.Invalid + \
FDI_MemUsage.PageOverhead.Absorbed )
/* This macro defines the amount of page space that can */
/* be regained by issuing a page only reclaim. */
#define RECLAIM_CalcReclaimablePages() \
( FDI_MemUsage.PageSpace.Invalid )
ERR_CODE RECLAIM_Cleanup(RECLAIM_Method method,
BOOLEAN restart);
ERR_CODE RECLAIM_EraseBlock(UINT32 block_number,
BOOLEAN copy_complete,
BOOLEAN paragraph_reclaim,
BOOLEAN restart );
ERR_CODE RECLAIM_PreCondition(UINT32 num_bytes, RECLAIM_Method method);
ERR_CODE RECLAIM_ReLocateReclaimTable(BOOLEAN paragraph_reclaim, BOOLEAN restart);
ERR_CODE RECLAIM_FinishBlock(UINT32 block_number,
BOOLEAN paragraph_reclaim,
BOOLEAN ok_2_erase_rb,
BOOLEAN restart);
ERR_CODE RECLAIM_MarkBlockDone(BOOLEAN paragraph_reclaim, BOOLEAN restart);
#endif /* sentry */
#endif /* DIRECT_ACCESS_VOLUME */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -