📄 davsearch.h
字号:
/* Copyright (c) 1995-2004 Intel Corporation */
/* Intel Confidential */
/* ###########################################################################
### DAV - Direct Access Volume Enhancement to FDI
###
### Module: davsearch.h - DAV Search Include File
###
### $Workfile: davsearch.h $
### $Revision: 5 $
### $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 __davsearch_h /* sentry header */
#define __davsearch_h
/*### Include Files
#########################*/
#if (DIRECT_ACCESS_VOLUME == TRUE)
#include "davhdr.h"
#include "davobj.h"
/*### Local Declarations
#########################*/
/*### Global Declarations
#########################*/
/*########################################################################*/
/*### Macros and types for searching headers */
/* Header Table Search Types. */
typedef enum
{
SEARCH_ByNextObject = 0, /* Return next object in the header table. */
SEARCH_ByNextValidObject, /* Return the next valid object in the header table. */
SEARCH_ByNextValidParaObject, /* Return next valid para object in the header table.*/
SEARCH_ByNextPageObject, /* Return next page object in the header table. */
SEARCH_ByNextValidPageObject, /* Return next valid page object in the header table.*/
SEARCH_ByNextInvalidPageObject, /* Return Next Invalid Object. */
SEARCH_ByValidType, /* Return the next valid object with the */
/* specified type. */
SEARCH_ByHeaderAddress, /* Return the next object that matches the */
/* specified header address (fast search). */
SEARCH_ByTypeOnly, /* Return the next object of the specified type. */
SEARCH_ByNameType, /* Return the next object with the specified */
/* name + type. */
SEARCH_ByName, /* Return the next object with the specified name. */
SEARCH_ByNextWriteInProgressObject, /* Return Next WIP Object. */
SEARCH_ByPartialAllocFixedHdrComplete, /* Only the object (HDR) was complete */
SEARCH_ByObjectAddress, /* Return the next object header that matches the */
/* specified object address. */
SEARCH_ByObjectHeaderAddress, /* Return the next object header that matches the */
/* specified object header address. */
SEARCH_ByFreeOrWIPType /* Return only free (empty) or WIP objects of the */
/* specified type */
} SEARCH_SearchMethodEnum;
typedef struct
{
HDR_ObjectData CurrObj; /* Current object information */
HDR_HeaderPtr HeaderPtr; /* Pointer to a FDI_Header structure */
} SEARCH_SearchInfo, __FAR_ * SEARCH_SearchInfoPtr;
typedef struct
{
HDR_HeaderPtr HeaderPtr; /* Pointer to a FDI_Header structure */
} SEARCH_SearchInfo2, __FAR_ * SEARCH_SearchInfo2Ptr;
/* This structure defines the values used to compare against */
/* during an object search. */
typedef struct
{
UINT32 CompareValue;
UINT32 CompareValue2;
HDR_NamePtr NamePtr;
UINT8 NameSize;
} SEARCH_CompareInfo, __FAR_ * SEARCH_CompareInfoPtr;
/* This defines the special condition for manipulating the way */
/* GetNextHeaderHandle functions. */
typedef enum
{
SEARCH_Normal = 0, /* Use spec. parameters for starting header. */
SEARCH_StartAtCurrent, /* Return info about the current header as */
/* well as the next (read the header). */
SEARCH_UseSearchInfo /* Use obj info in SearchInfo parameter as */
/* starting point (don't read from flash first). */
} SEARCH_SpecialConditionEnum;
/*### GetNextObject Search Methods
##################################*/
typedef enum
{
SearchByNextObject,
SearchByType,
SearchByName,
SearchByNameType
} FDI_SearchMethod;
/*### Initializing Structures
################################*/
/*### Global Functions
#########################*/
ERR_CODE SEARCH_GetNextHeaderHandle(SEARCH_SearchInfoPtr aSrchInfoPtr,
SEARCH_SpecialConditionEnum aSpecialCondition,
BOOLEAN restart);
ERR_CODE SEARCH_GetNextHeader(SEARCH_SearchInfoPtr aSrchInfoPtr,
SEARCH_SearchMethodEnum aCompareMethod,
SEARCH_CompareInfoPtr aCompareInfoPtr,
BOOLEAN restart);
FDI_Handle SEARCH_CalcNextHdrAddr(FDI_Handle aCurrentHeaderHandle);
ERR_CODE SEARCH_CalcFirstUserObjectHdrAddr(FDI_HandlePtr aHandlePtr);
ERR_CODE SEARCH_CalcLastUserObjectHdrAddr(FDI_HandlePtr aHandlePtr);
ERR_CODE SEARCH_CalcFirstInternalObjectHdrAddr(FDI_HandlePtr aHandlePtr);
ERR_CODE SEARCH_CalcNextUserObjectHdrAddr(FDI_Handle aCurrentHeaderHandle,
FDI_HandlePtr aNextHeaderHandlePtr);
ERR_CODE SEARCH_CalcPrevUserObjectHdrAddr(FDI_Handle aCurrentHeaderHandle,
FDI_HandlePtr aPrevHeaderHandlePtr);
ERR_CODE SEARCH_CalcNextInternalObjectHdrAddr(FDI_Handle aCurrentHeaderHandle,
FDI_HandlePtr aNextHeaderHandlePtr);
UINT32 SEARCH_GetObjectSize(FDI_ObjectInfoPtr aInfoPtr);
UINT32 SEARCH_GetObjectSize2(SEARCH_SearchInfoPtr aPtr);
/* data structure conversion functions */
void SEARCH_Header2SearchInfo(SEARCH_SearchInfoPtr aSrchInfoPtr,
HDR_HeaderPtr aHeaderPtr);
void SEARCH_FixedHeader2SearchInfo2(SEARCH_SearchInfo2Ptr aSrchInfoPtr, /* formerly HDR_InitSearchInfo2 */
HDR_FixedHeaderPtr aHeaderPtr);
void SEARCH_SearchInfo2ObjectInfo(FDI_ObjectInfoPtr anObjInfoPtr,
SEARCH_SearchInfoPtr aSrchInfoPtr);
void SEARCH_ObjectInfo2Header(HDR_HeaderPtr aHeaderPtr,
FDI_ObjectInfoPtr anObjInfoPtr);
#endif /* DIRECT_ACCESS_VOLUME */
#endif /* Sentry */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -