/** @file | |
This Variable Runtime Cache Info HOB is used to store the address | |
and the size of the buffer that will be used for variable runtime | |
service when the PcdEnableVariableRuntimeCache is TRUE. | |
Copyright (c) 2024, Intel Corporation. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef VARIABLE_RUNTIME_CACHE_INFO_H_ | |
#define VARIABLE_RUNTIME_CACHE_INFO_H_ | |
#define VARIABLE_RUNTIME_CACHE_INFO_HOB_REVISION 1 | |
#define VARIABLE_RUNTIME_CACHE_INFO_GUID \ | |
{ \ | |
0x0f472f7d, 0x6713, 0x4915, {0x96, 0x14, 0x5d, 0xda, 0x28, 0x40, 0x10, 0x56} \ | |
} | |
typedef struct { | |
/// | |
/// TRUE indicates GetVariable () or GetNextVariable () is being called. | |
/// When the value is FALSE, the given update (and any other pending updates) | |
/// can be flushed to the runtime cache. | |
/// | |
BOOLEAN ReadLock; | |
/// | |
/// TRUE indicates there is pending update for the given variable store needed | |
/// to be flushed to the runtime cache. | |
/// | |
BOOLEAN PendingUpdate; | |
/// | |
/// TRUE indicates all HOB variables have been flushed in flash. | |
/// | |
BOOLEAN HobFlushComplete; | |
} CACHE_INFO_FLAG; | |
typedef struct { | |
EFI_PHYSICAL_ADDRESS CacheInfoFlagBuffer; | |
/// | |
/// Base address of the runtime Hob variable cache Buffer. | |
/// | |
EFI_PHYSICAL_ADDRESS RuntimeHobCacheBuffer; | |
UINT64 RuntimeHobCachePages; | |
/// | |
/// Base address of the non-volatile variable runtime cache Buffer. | |
/// | |
EFI_PHYSICAL_ADDRESS RuntimeNvCacheBuffer; | |
UINT64 RuntimeNvCachePages; | |
/// | |
/// Base address of the volatile variable runtime cache Buffer. | |
/// | |
EFI_PHYSICAL_ADDRESS RuntimeVolatileCacheBuffer; | |
UINT64 RuntimeVolatileCachePages; | |
} VARIABLE_RUNTIME_CACHE_INFO; | |
extern EFI_GUID gEdkiiVariableRuntimeCacheInfoHobGuid; | |
#endif |