]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Guid/SmmLockBox.h
MdeModulePkg: Add SMM LockBox
[mirror_edk2.git] / MdeModulePkg / Include / Guid / SmmLockBox.h
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