/** @file | |
The common variable volatile store routines shared by the DXE_RUNTIME variable | |
module and the DXE_SMM variable module. | |
Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef _VARIABLE_RUNTIME_CACHE_H_ | |
#define _VARIABLE_RUNTIME_CACHE_H_ | |
#include "Variable.h" | |
/** | |
Copies any pending updates to runtime variable caches. | |
@retval EFI_UNSUPPORTED The volatile store to be updated is not initialized properly. | |
@retval EFI_SUCCESS The volatile store was updated successfully. | |
**/ | |
EFI_STATUS | |
FlushPendingRuntimeVariableCacheUpdates ( | |
VOID | |
); | |
/** | |
Synchronizes the runtime variable caches with all pending updates outside runtime. | |
Ensures all conditions are met to maintain coherency for runtime cache updates. This function will attempt | |
to write the given update (and any other pending updates) if the ReadLock is available. Otherwise, the | |
update is added as a pending update for the given variable store and it will be flushed to the runtime cache | |
at the next opportunity the ReadLock is available. | |
@param[in] VariableRuntimeCache Variable runtime cache structure for the runtime cache being synchronized. | |
@param[in] Offset Offset in bytes to apply the update. | |
@param[in] Length Length of data in bytes of the update. | |
@retval EFI_SUCCESS The update was added as a pending update successfully. If the variable runtime | |
cache ReadLock was available, the runtime cache was updated successfully. | |
@retval EFI_UNSUPPORTED The volatile store to be updated is not initialized properly. | |
**/ | |
EFI_STATUS | |
SynchronizeRuntimeVariableCache ( | |
IN VARIABLE_RUNTIME_CACHE *VariableRuntimeCache, | |
IN UINTN Offset, | |
IN UINTN Length | |
); | |
#endif |