]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/SmmControl2Dxe/SmiFeatures.h
OvmfPkg/SmmControl2Dxe: select broadcast SMI if available
[mirror_edk2.git] / OvmfPkg / SmmControl2Dxe / SmiFeatures.h
CommitLineData
a316d7ac
LE
1/**@file\r
2 Negotiate SMI features with QEMU, and configure UefiCpuPkg/PiSmmCpuDxeSmm\r
3 accordingly.\r
4\r
5 Copyright (C) 2016-2017, Red Hat, Inc.\r
6\r
7 This program and the accompanying materials are licensed and made available\r
8 under the terms and conditions of the BSD License which accompanies this\r
9 distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT\r
13 WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14**/\r
15\r
16#ifndef __SMI_FEATURES_H__\r
17#define __SMI_FEATURES_H__\r
18\r
19#include <Protocol/S3SaveState.h>\r
20\r
21/**\r
22 Negotiate SMI features with QEMU.\r
23\r
24 @retval FALSE If SMI feature negotiation is not supported by QEMU. This is\r
25 not an error, it just means that SaveSmiFeatures() should not\r
26 be called.\r
27\r
28 @retval TRUE SMI feature negotiation is supported, and it has completed\r
29 successfully as well. (Failure to negotiate is a fatal error\r
30 and the function never returns in that case.)\r
31**/\r
32BOOLEAN\r
33NegotiateSmiFeatures (\r
34 VOID\r
35 );\r
36\r
37/**\r
38 Append a boot script fragment that will re-select the previously negotiated\r
39 SMI features during S3 resume.\r
40\r
41 @param[in] S3SaveState The EFI_S3_SAVE_STATE_PROTOCOL instance to append to\r
42 the S3 boot script with.\r
43**/\r
44VOID\r
45SaveSmiFeatures (\r
46 IN EFI_S3_SAVE_STATE_PROTOCOL *S3SaveState\r
47 );\r
48\r
49#endif\r