summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Compatibility/ReadOnlyVariable2OnReadOnlyVariableThunk/ReadOnlyVariable2OnReadOnlyVariableThunk.c
diff options
context:
space:
mode:
Diffstat (limited to 'EdkCompatibilityPkg/Compatibility/ReadOnlyVariable2OnReadOnlyVariableThunk/ReadOnlyVariable2OnReadOnlyVariableThunk.c')
-rw-r--r--EdkCompatibilityPkg/Compatibility/ReadOnlyVariable2OnReadOnlyVariableThunk/ReadOnlyVariable2OnReadOnlyVariableThunk.c155
1 files changed, 67 insertions, 88 deletions
diff --git a/EdkCompatibilityPkg/Compatibility/ReadOnlyVariable2OnReadOnlyVariableThunk/ReadOnlyVariable2OnReadOnlyVariableThunk.c b/EdkCompatibilityPkg/Compatibility/ReadOnlyVariable2OnReadOnlyVariableThunk/ReadOnlyVariable2OnReadOnlyVariableThunk.c
index adeddbc00e..16a39eb122 100644
--- a/EdkCompatibilityPkg/Compatibility/ReadOnlyVariable2OnReadOnlyVariableThunk/ReadOnlyVariable2OnReadOnlyVariableThunk.c
+++ b/EdkCompatibilityPkg/Compatibility/ReadOnlyVariable2OnReadOnlyVariableThunk/ReadOnlyVariable2OnReadOnlyVariableThunk.c
@@ -11,7 +11,7 @@ This module is used on platform when both of these two conditions are true:
This module can't be used together with ReadOnlyVariableToReadOnlyVariable2Thunk module.
-Copyright (c) 2006 - 2008 Intel Corporation. <BR>
+Copyright (c) 2006 - 2010, Intel Corporation. <BR>
All rights reserved. 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
@@ -30,87 +30,17 @@ Module Name:
#include <Library/PeiServicesTablePointerLib.h>
#include <Library/PeiServicesLib.h>
-//
-// Function Prototypes
-//
-EFI_STATUS
-EFIAPI
-PeiGetVariable (
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
- IN CONST CHAR16 *VariableName,
- IN CONST EFI_GUID *VariableGuid,
- OUT UINT32 *Attributes,
- IN OUT UINTN *DataSize,
- OUT VOID *Data
- );
-
-EFI_STATUS
-EFIAPI
-PeiGetNextVariableName (
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VariableGuid
- );
-
-//
-// Module globals
-//
-EFI_PEI_READ_ONLY_VARIABLE2_PPI mVariablePpi = {
- PeiGetVariable,
- PeiGetNextVariableName
-};
-
-EFI_PEI_PPI_DESCRIPTOR mPpiListVariable = {
- (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
- &gEfiPeiReadOnlyVariable2PpiGuid,
- &mVariablePpi
-};
-
-
-/**
- User entry for this PEIM driver.
-
- @param FileHandle Handle of the file being invoked.
- @param PeiServices Describes the list of possible PEI Services.
-
- @retval EFI_SUCCESS ReadOnlyVariable2 PPI is successfully installed.
- @return Others ReadOnlyVariable2 PPI is not successfully installed.
-
-**/
-EFI_STATUS
-EFIAPI
-PeimInitializeReadOnlyVariable2 (
- IN EFI_PEI_FILE_HANDLE FfsHeader,
- IN CONST EFI_PEI_SERVICES **PeiServices
- )
-{
- //
- // This thunk module can only be used together with a PI PEI core, as we
- // assume PeiServices Pointer Table can be located in a standard way defined
- // in PI spec.
- //
- ASSERT ((*PeiServices)->Hdr.Revision >= 0x00010000);
-
- //
- // Developer should make sure ReadOnlyVariable2ToReadOnlyVariable module is not present. or else, the call chain will form a
- // infinite loop: ReadOnlyVariable2 -> ReadOnlyVariable -> ReadOnlyVariable2 -> .....
- //
- //
- // Publish the variable capability to other modules
- //
- return PeiServicesInstallPpi (&mPpiListVariable);
-}
-
/**
Provide the read variable functionality of the variable services.
- @param PeiServices General purpose services available to every PEIM.
- @param VariableName The variable name
- @param VendorGuid The vendor's GUID
- @param Attributes Pointer to the attribute
- @param DataSize Size of data
- @param Data Pointer to data
+ @param This A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.
+ @param VariableName A pointer to a null-terminated string that is the variable's name.
+ @param VariableGuid A pointer to an EFI_GUID that is the variable's GUID. The combination of
+ VariableGuid and VariableName must be unique.
+ @param Attributes If non-NULL, on return, points to the variable's attributes.
+ @param DataSize On entry, points to the size in bytes of the Data buffer.
+ On return, points to the size of the data returned in Data.
+ @param Data Points to the buffer which will hold the returned variable value.
@retval EFI_SUCCESS The interface could be successfully installed
@retval EFI_NOT_FOUND The variable could not be discovered
@@ -152,16 +82,17 @@ PeiGetVariable (
/**
Provide the get next variable functionality of the variable services.
- @param PeiServices General purpose services available to every PEIM.
- @param VariabvleNameSize The variable name's size.
- @param VariableName A pointer to the variable's name.
- @param VariableGuid A pointer to the EFI_GUID structure.
- @param VariableNameSize Size of the variable name
- @param VariableName The variable name
- @param VendorGuid The vendor's GUID
+ @param This A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.
- @retval EFI_SUCCESS The interface could be successfully installed
- @retval EFI_NOT_FOUND The variable could not be discovered
+ @param VariableNameSize On entry, points to the size of the buffer pointed to by VariableName.
+ @param VariableName On entry, a pointer to a null-terminated string that is the variable's name.
+ On return, points to the next variable's null-terminated name string.
+
+ @param VariableGuid On entry, a pointer to an EFI_GUID that is the variable's GUID.
+ On return, a pointer to the next variable's GUID.
+
+ @retval EFI_SUCCESS The interface could be successfully installed
+ @retval EFI_NOT_FOUND The variable could not be discovered
**/
EFI_STATUS
@@ -191,3 +122,51 @@ PeiGetNextVariableName (
VariableGuid
);
}
+
+//
+// Module globals
+//
+EFI_PEI_READ_ONLY_VARIABLE2_PPI mVariablePpi = {
+ PeiGetVariable,
+ PeiGetNextVariableName
+};
+
+EFI_PEI_PPI_DESCRIPTOR mPpiListVariable = {
+ (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
+ &gEfiPeiReadOnlyVariable2PpiGuid,
+ &mVariablePpi
+};
+
+/**
+ User entry for this PEIM driver.
+
+ @param FileHandle Handle of the file being invoked.
+ @param PeiServices Describes the list of possible PEI Services.
+
+ @retval EFI_SUCCESS ReadOnlyVariable2 PPI is successfully installed.
+ @return Others ReadOnlyVariable2 PPI is not successfully installed.
+
+**/
+EFI_STATUS
+EFIAPI
+PeimInitializeReadOnlyVariable2 (
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN CONST EFI_PEI_SERVICES **PeiServices
+ )
+{
+ //
+ // This thunk module can only be used together with a PI PEI core, as we
+ // assume PeiServices Pointer Table can be located in a standard way defined
+ // in PI spec.
+ //
+ ASSERT ((*PeiServices)->Hdr.Revision >= 0x00010000);
+
+ //
+ // Developer should make sure ReadOnlyVariable2ToReadOnlyVariable module is not present. or else, the call chain will form a
+ // infinite loop: ReadOnlyVariable2 -> ReadOnlyVariable -> ReadOnlyVariable2 -> .....
+ //
+ //
+ // Publish the variable capability to other modules
+ //
+ return PeiServicesInstallPpi (&mPpiListVariable);
+}