VfrUtilityLib.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
/** @file
Vfr common library functions.
Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _VFRUTILITYLIB_H_
#define _VFRUTILITYLIB_H_
#include "string.h"
#include "Common/UefiBaseTypes.h"
#include "EfiVfr.h"
#include "VfrError.h"
extern BOOLEAN VfrCompatibleMode;
#define MAX_NAME_LEN 64
#define MAX_STRING_LEN 0x100
#define DEFAULT_ALIGN 1
#define DEFAULT_PACK_ALIGN 0x8
#define DEFAULT_NAME_TABLE_ITEMS 1024
#define EFI_BITS_SHIFT_PER_UINT32 0x5
};
_STR2U32 (
);
struct SConfigInfo {
~SConfigInfo (VOID);
};
struct SConfigItem {
virtual ~SConfigItem ();
};
virtual UINT8 Write (IN CONST CHAR8, IN CHAR8 *, IN CHAR8 *, IN UINT8, IN UINT16, IN UINT32, IN EFI_IFR_TYPE_VALUE);
#if 0
#endif
};
extern CVfrBufferConfig gCVfrBufferConfig;
#define INVALID_ARRAY_INDEX 0xFFFFFFFF
struct SVfrDataType;
struct SVfrDataField {
};
struct SVfrDataType {
};
#define VFR_PACK_ASSIGN 0x01
#define VFR_PACK_SHOW 0x02
#define VFR_PACK_PUSH 0x04
#define VFR_PACK_POP 0x08
#define PACKSTACK_MAX_SIZE 0x400
struct SVfrPackStackNode {
mIdentifier = NULL;
if (Identifier != NULL) {
}
}
~SVfrPackStackNode (VOID) {
if (mIdentifier != NULL) {
}
}
if (Identifier == NULL) {
return TRUE;
} else if (mIdentifier == NULL) {
return FALSE;
return TRUE;
} else {
return FALSE;
}
}
};
EFI_VFR_RETURN_CODE Pack (IN UINT32, IN UINT8, IN CHAR8 *Identifier = NULL, IN UINT32 Number = DEFAULT_PACK_ALIGN);
//
// First the declared
//
#ifdef CVFR_VARDATATYPEDB_DEBUG
#endif
};
extern CVfrVarDataTypeDB gCVfrVarDataTypeDB;
typedef enum {
struct SVfrVarStorageNode {
struct SVfrVarStorageNode *mNext;
union {
// EFI Variable
struct {
} mEfiVar;
// Buffer Storage
// NameValue Storage
struct {
} mNameSpace;
} mStorageInfo;
SVfrVarStorageNode (IN EFI_GUID *, IN CHAR8 *, IN EFI_VARSTORE_ID, IN EFI_STRING_ID, IN UINT32, IN BOOLEAN Flag = TRUE);
SVfrVarStorageNode (IN EFI_GUID *, IN CHAR8 *, IN EFI_VARSTORE_ID, IN SVfrDataType *, IN BOOLEAN Flag = TRUE);
};
struct EFI_VARSTORE_INFO {
union {
} mInfo;
};
#define EFI_VARSTORE_ID_MAX 0xFFFF
struct SVfrVarStorageNode *mBufferVarStoreList;
struct SVfrVarStorageNode *mEfiVarStoreList;
struct SVfrVarStorageNode *mNameVarStoreList;
struct SVfrVarStorageNode *mCurrVarStorageNode;
struct SVfrVarStorageNode *mNewVarStorageNode;
CVfrDataStorage ();
~CVfrDataStorage ();
return mBufferVarStoreList;
}
return mEfiVarStoreList;
}
EFI_VFR_RETURN_CODE DeclareEfiVarStore (IN CHAR8 *, IN EFI_GUID *, IN EFI_STRING_ID, IN UINT32, IN BOOLEAN Flag = TRUE);
EFI_VFR_RETURN_CODE DeclareBufferVarStore (IN CHAR8 *, IN EFI_GUID *, IN CVfrVarDataTypeDB *, IN CHAR8 *, IN EFI_VARSTORE_ID, IN BOOLEAN Flag = TRUE);
};
#define EFI_QUESTION_ID_MAX 0xFFFF
#define EFI_QUESTION_ID_INVALID 0x0
#define DATE_YEAR_BITMASK 0x0000FFFF
#define DATE_MONTH_BITMASK 0x00FF0000
#define DATE_DAY_BITMASK 0xFF000000
#define TIME_HOUR_BITMASK 0x000000FF
#define TIME_MINUTE_BITMASK 0x0000FF00
#define TIME_SECOND_BITMASK 0x00FF0000
struct SVfrQuestionNode {
~SVfrQuestionNode ();
};
CVfrQuestionDB ();
~CVfrQuestionDB();
VOID GetQuestionId (IN CHAR8 *, IN CHAR8 *, OUT EFI_QUESTION_ID &, OUT UINT32 &, OUT EFI_QUESION_TYPE *QType = NULL);
}
};
struct SVfrDefaultStoreNode {
};
CVfrDefaultStore ();
~CVfrDefaultStore ();
EFI_VFR_RETURN_CODE BufferVarStoreAltConfigAdd (IN EFI_VARSTORE_ID, IN EFI_VARSTORE_INFO &, IN CHAR8 *, IN UINT8, IN EFI_IFR_TYPE_VALUE);
};
#define EFI_RULE_ID_START 0x01
#define EFI_RULE_ID_INVALID 0x00
struct SVfrRuleNode {
~SVfrRuleNode();
};
CVfrRulesDB ();
~CVfrRulesDB();
};
);
);
);
CVfrStringDB ();
~CVfrStringDB ();
);
);
};
#endif