1 /** @file
2   SmmLockBox guid header file.
3 
4 Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
5 
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions
8 of the BSD License which accompanies this distribution.  The
9 full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11 
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 
15 **/
16 
17 #ifndef _SMM_LOCK_BOX_GUID_H_
18 #define _SMM_LOCK_BOX_GUID_H_
19 
20 #define EFI_SMM_LOCK_BOX_COMMUNICATION_GUID \
21   {0x2a3cfebd, 0x27e8, 0x4d0a, {0x8b, 0x79, 0xd6, 0x88, 0xc2, 0xa3, 0xe1, 0xc0}}
22 
23 //
24 // Below data structure is used for communication between PEI/DXE to SMM.
25 //
26 
27 #define EFI_SMM_LOCK_BOX_COMMAND_SAVE                 0x1
28 #define EFI_SMM_LOCK_BOX_COMMAND_UPDATE               0x2
29 #define EFI_SMM_LOCK_BOX_COMMAND_RESTORE              0x3
30 #define EFI_SMM_LOCK_BOX_COMMAND_SET_ATTRIBUTES       0x4
31 #define EFI_SMM_LOCK_BOX_COMMAND_RESTORE_ALL_IN_PLACE 0x5
32 
33 typedef struct {
34   UINT32                         Command;
35   UINT32                         DataLength;
36   UINT64                         ReturnStatus;
37 } EFI_SMM_LOCK_BOX_PARAMETER_HEADER;
38 
39 typedef struct {
40   EFI_SMM_LOCK_BOX_PARAMETER_HEADER  Header;
41   GUID                               Guid;
42   PHYSICAL_ADDRESS                   Buffer;
43   UINT64                             Length;
44 } EFI_SMM_LOCK_BOX_PARAMETER_SAVE;
45 
46 typedef struct {
47   EFI_SMM_LOCK_BOX_PARAMETER_HEADER  Header;
48   GUID                               Guid;
49   UINT64                             Offset;
50   PHYSICAL_ADDRESS                   Buffer;
51   UINT64                             Length;
52 } EFI_SMM_LOCK_BOX_PARAMETER_UPDATE;
53 
54 typedef struct {
55   EFI_SMM_LOCK_BOX_PARAMETER_HEADER  Header;
56   GUID                               Guid;
57   PHYSICAL_ADDRESS                   Buffer;
58   UINT64                             Length;
59 } EFI_SMM_LOCK_BOX_PARAMETER_RESTORE;
60 
61 typedef struct {
62   EFI_SMM_LOCK_BOX_PARAMETER_HEADER  Header;
63   GUID                               Guid;
64   UINT64                             Attributes;
65 } EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES;
66 
67 typedef struct {
68   EFI_SMM_LOCK_BOX_PARAMETER_HEADER  Header;
69 } EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE;
70 
71 extern EFI_GUID gEfiSmmLockBoxCommunicationGuid;
72 
73 #endif
74