📄 davcghdr.h
字号:
_______________________________________________________
Please return COMPLETELY filled out to:
Intel Corporation FAX: 916-356-2803
Intel Flash Software Marketing
FM3-163
1900 Prairie City Road
Folsom, CA 95630
Atten: Flash S/W License
Intel reserves the right to use and/or include Your name in
public relations activities and marketing material and may
request You to submit endorsements for the Software. If You
wish to discuss participation in this program, please send a
fax to 916-356-2803 attn: "Software Marketing" with contact
information and an Intel representative will contact You.
Revised: 02/16/01
***************************************************************************/
#ifndef __dav_cfghdr_h /* sentry header */
#define __dav_cfghdr_h
#include "davmath.h"
/*### Global Declarations
#########################*/
#if (DIRECT_ACCESS_VOLUME == TRUE)
/* Max number of configuration headers available */
#define CFGHDR_MaxConfigurationEntries 15
/* Configuration Table Entry Structure */
typedef struct
{
UINT32 Offset;
UINT32 Status;
}CFGHDR_ConfigurationEntry, __FAR_ * CFGHDR_ConfigurationEntryPtr;
#define Init_CFGHDR_ConfigurationEntry {0xFFFFFFFF, 0xFFFFFFFF}
#define CFGHDR_ConfigurationEntrySize sizeof(CFGHDR_ConfigurationEntry)
/*## Masks for checking the configuration entry */
/* MASKS */
#define CFGHDR_MASK_ReclaimComplete 0x000000C0
/* Object Modified State Mask */
#define CFGHDR_MASK_ObjectModified 0x00000300
#define CFGHDR_MASK_OffsetStatus 0x0000003C
#define CFGHDR_MASK_ReclaimInProgress 0x0000000C
#define CFGHDR_MASK_ReclaimTableType 0x00000003
#define CFGHDR_MASK_ReclaimEntryState 0x0000000F
/* Object Modified States */
#define CFGHDR_STATUS_ObjectModified 0x00000000
#define CFGHDR_STATUS_ObjectUnModified 0x00000300
/* Reclaim Complete States */
#define CFGHDR_STATUS_ReclaimComplete 0x00000000
#define CFGHDR_STATUS_ReclaimIncomplete 0x000000C0
/* Offset State Values */
#define CFGHDR_STATUS_ValidOffset 0x00000000
#define CFGHDR_STATUS_InvalidOffset 0x00000030
/* Reclaim In Progress States */
#define CFGHDR_STATUS_ReclaimInProgress 0x00000000
#define CFGHDR_STATUS_ReclaimNotInProgress 0x0000000C
/* Reclaim Table Types */
#define CFGHDR_TYPE_ReAllocateTable 0x00000000
#define CFGHDR_TYPE_ReclaimTable 0x00000003
/* Reclaim Entry States */
#define CFGHDR_STATE_ReAllocateInProgress 0x00000000
#define CFGHDR_STATE_ReclaimInProgress 0x00000003
/*## Macro for setting Configuration Table Entry fields to unused values */
#define CFGHDR_SetUnusedConfigurationEntry(table_entry) \
(table_entry).Offset = 0xFFFFFFFF; (table_entry).Status = 0xFFFFFFFF
/*## Macro for checking if Configuration Table Entry is a unused entry */
#define CFGHDR_IsUnusedConfigurationEntry(table_entry) \
(((table_entry).Offset == 0xFFFFFFFF) && \
((table_entry).Status == 0xFFFFFFFF))
/*## Macro for setting/getting the Offset in Configuration Table Entry */
#define CFGHDR_SetOffset(cfg_entry, value) \
((cfg_entry).Offset = value)
#define CFGHDR_GetOffset(cfg_entry) \
((cfg_entry).Offset) /* This was masking the lower 4 bits*/
/* before */
/*## Macros for setting/getting the Reclaim Complete State */
#define CFGHDR_SetReclaimComplete(cfg_entry, value) \
((cfg_entry).Status = (((cfg_entry).Status & \
~CFGHDR_MASK_ReclaimComplete) | value))
#define CFGHDR_GetReclaimComplete(cfg_entry) \
((cfg_entry).Status & CFGHDR_MASK_ReclaimComplete)
/*## Macros for setting/getting the ObjectModified State */
#define CFGHDR_SetObjectModified(cfg_entry, value) \
((cfg_entry).Status = (((cfg_entry).Status & \
~CFGHDR_MASK_ObjectModified) | value))
#define CFGHDR_GetObjectModified(cfg_entry) \
((cfg_entry.Status) & CFGHDR_MASK_ObjectModified)
/*## Macros for setting/getting the Offset State */
#define CFGHDR_SetOffsetStatus(cfg_entry, value) \
((cfg_entry).Status = (((cfg_entry).Status & \
~CFGHDR_MASK_OffsetStatus) | value))
#define CFGHDR_GetOffsetStatus(cfg_entry) \
((cfg_entry).Status & CFGHDR_MASK_OffsetStatus)
/*## Macros for setting/getting the Reclaim In Progress State */
#define CFGHDR_SetReclaimInProgress(cfg_entry, value) \
((cfg_entry).Status = (((cfg_entry).Status & \
~CFGHDR_MASK_ReclaimInProgress) | value))
#define CFGHDR_GetReclaimInProgress(cfg_entry) \
(((cfg_entry).Status) & CFGHDR_MASK_ReclaimInProgress)
/*## Macros for setting/getting the Reclaim Table Type */
#define CFGHDR_SetReclaimTableType(cfg_entry, value) \
((cfg_entry).Status = (((cfg_entry).Status & \
~CFGHDR_MASK_ReclaimTableType) | value))
#define CFGHDR_GetReclaimTableType(cfg_entry) \
(((cfg_entry).Status) & CFGHDR_MASK_ReclaimTableType)
/*## Macros for getting the Reclaim Entry State */
/*## Note that this is set at the bit level, not multiple bits. */
#define CFGHDR_GetReclaimEntryState(cfg_entry) \
(((cfg_entry).Status) & CFGHDR_MASK_ReclaimEntryState)
/*## Configuration Header Structure */
/*DAV Configuration Structure (Fixed Header Table Entry) */
typedef struct
{
UINT16 UniqueId1;
UINT16 word_align1;
CFGHDR_ConfigurationEntry ReclaimEntries[CFGHDR_MaxConfigurationEntries];
UINT16 UniqueId2;
UINT16 word_align2;
UINT16 HeaderId;
UINT16 Attr16;
UINT16 LoSize;
UINT8 NameSize;
UINT8 Attr8;
UINT32 ObjectType;
UINT32 dword_align; /* Align structure to paragraph boundary */
} CFGHDR_ConfigHeader, __FAR_ * CFGHDR_ConfigHeaderPtr;
#define CFGHDR_ConfigHeaderSize (sizeof(CFGHDR_ConfigHeader))
/* Create macro that defines the size of the config
* header information (data).
*/
#define CFGHDR_ConfigTableSize (offsetof(CFGHDR_ConfigHeader, HeaderId))
#define CFGHDR_UniqueId1Offset ((FDI_LastObjectAddress - CFGHDR_ConfigHeaderSize) + 1)
#define CFGHDR_UniqueId2Offset (offsetof(CFGHDR_ConfigHeader, UniqueId2))
/* This is offset past the unique id */
#define CFGHDR_EntryArrayOffset (offsetof(CFGHDR_ConfigHeader, ReclaimEntries))
#define CFGHDR_UniqueIdSize sizeof(UINT16)
#define CFGHDR_UniqueIdentifierValue 0xF0F0
/*### Global Functions
#########################*/
/*## Functions for using a configuration entry */
ERR_CODE CFGHDR_AllocateConfigurationEntry(UINT8_PTR entry_index_ptr,
CFGHDR_ConfigurationEntryPtr cfg_entry_ptr,
UINT32 reclaim_table_type, BOOLEAN restart);
ERR_CODE CFGHDR_WriteTableOffset(UINT8 entry_index, UINT32 offset);
ERR_CODE CFGHDR_WriteReclaimComplete(UINT8 entry_index);
/*## Functions used for restart */
ERR_CODE CFGHDR_ScanConfigurationEntry(UINT8_PTR entry_index_ptr,
CFGHDR_ConfigurationEntryPtr cfg_entry_ptr,
FDI_Handle base_address_of_entry_array, BOOLEAN restart);
ERR_CODE CFGHDR_ConfigurationHeaderReclaim(BOOLEAN restart);
/*## Functions used for initial format */
ERR_CODE CFGHDR_CreateConfigurationHeader(void);
#endif /* sentry */
#endif /* DIRECT_ACCESS_VOLUME */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -