1 /*++
2 
3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 Module Name:
13 
14   Variable.h
15 
16 Abstract:
17 
18   Read-only Variable Service PPI as defined in Tiano
19 
20 --*/
21 
22 #ifndef _PEI_READ_ONLY_VARIABLE_PPI_H
23 #define _PEI_READ_ONLY_VARIABLE_PPI_H
24 
25 #include "EfiVariable.h"
26 
27 #define PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID \
28   { \
29     0x3cdc90c6, 0x13fb, 0x4a75, {0x9e, 0x79, 0x59, 0xe9, 0xdd, 0x78, 0xb9, 0xfa} \
30   }
31 
32 
33 typedef
34 EFI_STATUS
35 (EFIAPI *PEI_GET_VARIABLE) (
36   IN EFI_PEI_SERVICES             **PeiServices,
37   IN CHAR16                       *VariableName,
38   IN EFI_GUID                     * VendorGuid,
39   OUT UINT32                      *Attributes OPTIONAL,
40   IN OUT UINTN                    *DataSize,
41   OUT VOID                        *Data
42   );
43 
44 typedef
45 EFI_STATUS
46 (EFIAPI *PEI_GET_NEXT_VARIABLE_NAME) (
47   IN EFI_PEI_SERVICES             **PeiServices,
48   IN OUT UINTN                    *VariableNameSize,
49   IN OUT CHAR16                   *VariableName,
50   IN OUT EFI_GUID                 * VendorGuid
51   );
52 
53 typedef struct PEI_READ_ONLY_VARIABLE_PPI {
54   PEI_GET_VARIABLE            PeiGetVariable;
55   PEI_GET_NEXT_VARIABLE_NAME  PeiGetNextVariableName;
56 } PEI_READ_ONLY_VARIABLE_PPI;
57 
58 extern EFI_GUID gPeiReadOnlyVariablePpiGuid;
59 
60 #endif
61