/** @file\r
- This file declares Read-only Variable Service PPI\r
+ This file declares Read-only Variable Service2 PPI.\r
+ This ppi permits read-only access to the UEFI variable store during the PEI phase.\r
\r
- Copyright (c) 2006 - 2007, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under\r
+the terms and conditions of the BSD License that accompanies this distribution.\r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php.\r
\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: ReadOnlyVariable.h\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
@par Revision Reference:\r
- This PPI is defined in PI\r
- Version 1.00.\r
+ This PPI is introduced in PI Version 1.0.\r
\r
**/\r
\r
#define __PEI_READ_ONLY_VARIABLE2_PPI_H__\r
\r
#define EFI_PEI_READ_ONLY_VARIABLE2_PPI_GUID \\r
- { 0x2ab86ef5, 0xecb5, 0x4134, { 0xb5, 0x56, 0x38, 0x54, 0xca, 0x1f, 0xe1, 0xb4 } }\r
+ { 0x2ab86ef5, 0xecb5, 0x4134, { 0xb5, 0x56, 0x38, 0x54, 0xca, 0x1f, 0xe1, 0xb4 } }\r
\r
\r
typedef struct _EFI_PEI_READ_ONLY_VARIABLE2_PPI EFI_PEI_READ_ONLY_VARIABLE2_PPI;\r
\r
/**\r
- Read the specified variable from the UEFI variable store. If the Data \r
- buffer is too small to hold the contents of the variable, \r
- the error EFI_BUFFER_TOO_SMALL is returned and DataSize is set to the\r
- required buffer size to obtain the data.\r
-\r
- @param This A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.\r
-\r
- @param VariableName A pointer to a null-terminated string that is the variable¡¯s name.\r
-\r
- @param VendorGuid A pointer to an EFI_GUID that is the variable¡¯s GUID. The combination of\r
- VariableGuid and VariableName must be unique.\r
-\r
- @param Attributes If non-NULL, on return, points to the variable¡¯s attributes. See ¡°Related Definitons¡±\r
- below for possible attribute values.\r
-\r
- @param DataSize On entry, points to the size in bytes of the Data buffer. On return, points to the size of\r
- the data returned in Data.\r
-\r
- @param Data Points to the buffer which will hold the returned variable value.\r
-\r
-\r
- @retval EFI_SUCCESS The function completed successfully.\r
+ This service retrieves a variable's value using its name and GUID.\r
+\r
+ Read the specified variable from the UEFI variable store. If the Data\r
+ buffer is too small to hold the contents of the variable,\r
+ the error EFI_BUFFER_TOO_SMALL is returned and DataSize is set to the\r
+ required buffer size to obtain the data.\r
+\r
+ @param This A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.\r
+ @param VariableName A pointer to a null-terminated string that is the variable's name.\r
+ @param VariableGuid A pointer to an EFI_GUID that is the variable's GUID. The combination of\r
+ VariableGuid and VariableName must be unique.\r
+ @param Attributes If non-NULL, on return, points to the variable's attributes.\r
+ @param DataSize On entry, points to the size in bytes of the Data buffer.\r
+ On return, points to the size of the data returned in Data.\r
+ @param Data Points to the buffer which will hold the returned variable value.\r
+ May be NULL with a zero DataSize in order to determine the size of the buffer needed.\r
\r
+ @retval EFI_SUCCESS The variable was read successfully.\r
@retval EFI_NOT_FOUND The variable was not found.\r
-\r
- @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the resulting data. \r
- DataSize is updated with the size required for \r
- the specified variable.\r
-\r
+ @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the resulting data.\r
+ DataSize is updated with the size required for\r
+ the specified variable.\r
@retval EFI_INVALID_PARAMETER VariableName, VariableGuid, DataSize or Data is NULL.\r
-\r
@retval EFI_DEVICE_ERROR The variable could not be retrieved because of a device error.\r
\r
**/\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_PEI_GET_VARIABLE2)(\r
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,\r
- IN CONST CHAR16 *VariableName,\r
- IN CONST EFI_GUID *VariableGuid,\r
- OUT UINT32 *Attributes,\r
- IN OUT UINTN *DataSize,\r
- OUT VOID *Data\r
-);\r
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,\r
+ IN CONST CHAR16 *VariableName,\r
+ IN CONST EFI_GUID *VariableGuid,\r
+ OUT UINT32 *Attributes,\r
+ IN OUT UINTN *DataSize,\r
+ OUT VOID *Data OPTIONAL\r
+ );\r
\r
\r
/**\r
- This function is called multiple times to retrieve the VariableName \r
- and VariableGuid of all variables currently available in the system. \r
- On each call, the previous results are passed into the interface, \r
- and, on return, the interface returns the data for the next \r
- interface. When the entire variable list has been returned, \r
- EFI_NOT_FOUND is returned.\r
-\r
- @param This A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.\r
+ Return the next variable name and GUID.\r
\r
- @param VariableNameSize On entry, points to the size of the buffer pointed to by VariableName.\r
+ This function is called multiple times to retrieve the VariableName\r
+ and VariableGuid of all variables currently available in the system.\r
+ On each call, the previous results are passed into the interface,\r
+ and, on return, the interface returns the data for the next\r
+ interface. When the entire variable list has been returned,\r
+ EFI_NOT_FOUND is returned.\r
\r
- @param VariableName On entry, a pointer to a null-terminated string that is the variable¡¯s name.\r
- On return, points to the next variable¡¯s null-terminated name string.\r
+ @param This A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.\r
\r
- @param VendorGuid On entry, a pointer to an UEFI _GUID that is the variable¡¯s GUID. \r
- On return, a pointer to the next variable¡¯s GUID.\r
+ @param VariableNameSize On entry, points to the size of the buffer pointed to by VariableName.\r
+ On return, the size of the variable name buffer.\r
+ @param VariableName On entry, a pointer to a null-terminated string that is the variable's name.\r
+ On return, points to the next variable's null-terminated name string.\r
\r
+ @param VariableGuid On entry, a pointer to an EFI_GUID that is the variable's GUID.\r
+ On return, a pointer to the next variable's GUID.\r
\r
@retval EFI_SUCCESS The variable was read successfully.\r
-\r
@retval EFI_NOT_FOUND The variable could not be found.\r
-\r
@retval EFI_BUFFER_TOO_SMALL The VariableNameSize is too small for the resulting\r
- data. VariableNameSize is updated with the size\r
- required for the specified variable.\r
-\r
+ data. VariableNameSize is updated with the size\r
+ required for the specified variable.\r
@retval EFI_INVALID_PARAMETER VariableName, VariableGuid or\r
- VariableNameSize is NULL.\r
-\r
+ VariableNameSize is NULL.\r
@retval EFI_DEVICE_ERROR The variable could not be retrieved because of a device error.\r
\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_PEI_NEXT_VARIABLE_NAME2) (\r
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,\r
- IN OUT UINTN *VariableNameSize,\r
- IN OUT CHAR16 *VariableName,\r
- IN OUT EFI_GUID *VariableGuid\r
-);\r
-\r
-/**\r
- This PPI provides a lightweight, read-only variant of the full EFI \r
- variable services. \r
-\r
- @param GetVariable\r
- A service to ascertain a given variable name.\r
-\r
- @param GetNextVariableName\r
- A service to ascertain a variable based upon a given, known variable\r
-\r
-**/\r
+(EFIAPI *EFI_PEI_GET_NEXT_VARIABLE_NAME2)(\r
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,\r
+ IN OUT UINTN *VariableNameSize,\r
+ IN OUT CHAR16 *VariableName,\r
+ IN OUT EFI_GUID *VariableGuid\r
+ );\r
+\r
+///\r
+/// This PPI provides a lightweight, read-only variant of the full EFI\r
+/// variable services.\r
+///\r
struct _EFI_PEI_READ_ONLY_VARIABLE2_PPI {\r
- EFI_PEI_GET_VARIABLE2 GetVariable;\r
- EFI_PEI_NEXT_VARIABLE_NAME2 NextVariableName;\r
+ EFI_PEI_GET_VARIABLE2 GetVariable;\r
+ EFI_PEI_GET_NEXT_VARIABLE_NAME2 NextVariableName;\r
};\r
\r
extern EFI_GUID gEfiPeiReadOnlyVariable2PpiGuid;\r