1/** @file
2  SmmLockBox guid header file.
3
4Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
5
6This program and the accompanying materials
7are licensed and made available under the terms and conditions
8of the BSD License which accompanies this distribution.  The
9full text of the license may be found at
10http://opensource.org/licenses/bsd-license.php
11
12THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13WITHOUT 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
33typedef struct {
34  UINT32                         Command;
35  UINT32                         DataLength;
36  UINT64                         ReturnStatus;
37} EFI_SMM_LOCK_BOX_PARAMETER_HEADER;
38
39typedef 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
46typedef 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
54typedef 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
61typedef struct {
62  EFI_SMM_LOCK_BOX_PARAMETER_HEADER  Header;
63  GUID                               Guid;
64  UINT64                             Attributes;
65} EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES;
66
67typedef struct {
68  EFI_SMM_LOCK_BOX_PARAMETER_HEADER  Header;
69} EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE;
70
71extern EFI_GUID gEfiSmmLockBoxCommunicationGuid;
72
73#endif
74