Home | History | Annotate | Download | only in Include
      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   EfiVariable.h
     15 
     16 Abstract:
     17 
     18   Header file for EFI Variable Services
     19 
     20 --*/
     21 
     22 #ifndef _EFI_VARIABLE_H_
     23 #define _EFI_VARIABLE_H_
     24 
     25 #define VARIABLE_STORE_SIGNATURE  EFI_SIGNATURE_32 ('$', 'V', 'S', 'S')
     26 
     27 #ifndef MAX_VARIABLE_SIZE
     28 #define MAX_VARIABLE_SIZE         1024
     29 #endif
     30 
     31 //
     32 // Enlarges the hardware error record maximum variable size to 32K bytes
     33 //
     34 #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
     35 #ifndef MAX_HARDWARE_ERROR_VARIABLE_SIZE
     36 #define MAX_HARDWARE_ERROR_VARIABLE_SIZE 0x8000
     37 #endif
     38 #endif
     39 
     40 #define VARIABLE_DATA             0x55AA
     41 
     42 //
     43 // Variable Store Header flags
     44 //
     45 #define VARIABLE_STORE_FORMATTED  0x5a
     46 #define VARIABLE_STORE_HEALTHY    0xfe
     47 
     48 //
     49 // Variable Store Status
     50 //
     51 typedef enum {
     52   EfiRaw,
     53   EfiValid,
     54   EfiInvalid,
     55   EfiUnknown
     56 } VARIABLE_STORE_STATUS;
     57 
     58 //
     59 // Variable State flags
     60 //
     61 #define VAR_IN_DELETED_TRANSITION     0xfe  // Variable is in obsolete transistion
     62 #define VAR_DELETED                   0xfd  // Variable is obsolete
     63 #define VAR_ADDED                     0x7f  // Variable has been completely added
     64 #define IS_VARIABLE_STATE(_c, _Mask)  (BOOLEAN) (((~_c) & (~_Mask)) != 0)
     65 
     66 #pragma pack(1)
     67 
     68 typedef struct {
     69   UINT32  Signature;
     70   UINT32  Size;
     71   UINT8   Format;
     72   UINT8   State;
     73   UINT16  Reserved;
     74   UINT32  Reserved1;
     75 } VARIABLE_STORE_HEADER;
     76 
     77 typedef struct {
     78   UINT16    StartId;
     79   UINT8     State;
     80   UINT8     Reserved;
     81   UINT32    Attributes;
     82   UINT32    NameSize;
     83   UINT32    DataSize;
     84   EFI_GUID  VendorGuid;
     85 } VARIABLE_HEADER;
     86 
     87 #pragma pack()
     88 
     89 #endif // _EFI_VARIABLE_H_
     90