]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/Guid/VarCheckPolicyMmi.h
MdeModulePkg: Define the VarCheckPolicyLib and SMM interface
[mirror_edk2.git] / MdeModulePkg / Include / Guid / VarCheckPolicyMmi.h
CommitLineData
483449c9
BB
1/** @file -- VarCheckPolicyMmiCommon.h\r
2This header contains communication definitions that are shared between DXE\r
3and the MM component of VarCheckPolicy.\r
4\r
5Copyright (c) Microsoft Corporation.\r
6SPDX-License-Identifier: BSD-2-Clause-Patent\r
7**/\r
8\r
9#ifndef _VAR_CHECK_POLICY_MMI_COMMON_H_\r
10#define _VAR_CHECK_POLICY_MMI_COMMON_H_\r
11\r
12#define VAR_CHECK_POLICY_COMM_SIG SIGNATURE_32('V', 'C', 'P', 'C')\r
13#define VAR_CHECK_POLICY_COMM_REVISION 1\r
14\r
15#pragma pack(push, 1)\r
16\r
17typedef struct _VAR_CHECK_POLICY_COMM_HEADER {\r
18 UINT32 Signature;\r
19 UINT32 Revision;\r
20 UINT32 Command;\r
21 EFI_STATUS Result;\r
22} VAR_CHECK_POLICY_COMM_HEADER;\r
23\r
24typedef struct _VAR_CHECK_POLICY_COMM_IS_ENABLED_PARAMS {\r
25 BOOLEAN State;\r
26} VAR_CHECK_POLICY_COMM_IS_ENABLED_PARAMS;\r
27\r
28typedef struct _VAR_CHECK_POLICY_COMM_DUMP_PARAMS {\r
29 UINT32 PageRequested;\r
30 UINT32 TotalSize;\r
31 UINT32 PageSize;\r
32 BOOLEAN HasMore;\r
33} VAR_CHECK_POLICY_COMM_DUMP_PARAMS;\r
34\r
35#pragma pack(pop)\r
36\r
37// Make sure that we will hold at least the headers.\r
38#define VAR_CHECK_POLICY_MM_COMM_BUFFER_SIZE MAX((OFFSET_OF(EFI_MM_COMMUNICATE_HEADER, Data) + sizeof (VAR_CHECK_POLICY_COMM_HEADER) + EFI_PAGES_TO_SIZE(1)), EFI_PAGES_TO_SIZE(4))\r
39#define VAR_CHECK_POLICY_MM_DUMP_BUFFER_SIZE (VAR_CHECK_POLICY_MM_COMM_BUFFER_SIZE - \\r
40 (OFFSET_OF(EFI_MM_COMMUNICATE_HEADER, Data) + \\r
41 sizeof(VAR_CHECK_POLICY_COMM_HEADER) + \\r
42 sizeof(VAR_CHECK_POLICY_COMM_DUMP_PARAMS)))\r
43STATIC_ASSERT (\r
44 VAR_CHECK_POLICY_MM_DUMP_BUFFER_SIZE < VAR_CHECK_POLICY_MM_COMM_BUFFER_SIZE,\r
45 "an integer underflow may have occurred calculating VAR_CHECK_POLICY_MM_DUMP_BUFFER_SIZE"\r
46 );\r
47\r
48#define VAR_CHECK_POLICY_COMMAND_DISABLE 0x0001\r
49#define VAR_CHECK_POLICY_COMMAND_IS_ENABLED 0x0002\r
50#define VAR_CHECK_POLICY_COMMAND_REGISTER 0x0003\r
51#define VAR_CHECK_POLICY_COMMAND_DUMP 0x0004\r
52#define VAR_CHECK_POLICY_COMMAND_LOCK 0x0005\r
53\r
54#endif // _VAR_CHECK_POLICY_MMI_COMMON_H_\r