]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Compatibility/SmmControl2OnSmmControlThunk/SmmControl2OnSmmControlThunk.h
Update this module from DXE_DRIVER to DXE_RUNTIME_DRIVER and convert mSmmControl...
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / SmmControl2OnSmmControlThunk / SmmControl2OnSmmControlThunk.h
CommitLineData
9e620719 1/** @file\r
2 Include file for SMM Control2 Protocol on SMM Control Protocol Thunk driver.\r
3 \r
26a76fbc 4 Copyright (c) 2009 - 2010, Intel Corporation\r
9e620719 5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef _SMM_CONTROL2_ON_SMM_CONTROL_THUNK_H_\r
16#define _SMM_CONTROL2_ON_SMM_CONTROL_THUNK_H_\r
17\r
18#include <PiDxe.h>\r
19#include <FrameworkSmm.h>\r
1fafcca8 20\r
21#include <Protocol/SmmControl2.h>\r
22#include <Protocol/SmmControl.h>\r
23\r
24#include <Guid/EventGroup.h>\r
25\r
9e620719 26#include <Library/DebugLib.h>\r
27#include <Library/UefiBootServicesTableLib.h>\r
28#include <Library/UefiDriverEntryPoint.h>\r
1fafcca8 29#include <Library/UefiRuntimeLib.h>\r
9e620719 30#include <Library/IoLib.h>\r
9e620719 31\r
32/**\r
33 Invokes SMI activation from either the preboot or runtime environment.\r
34\r
35 This function generates an SMI.\r
36\r
37 @param[in] This The EFI_SMM_CONTROL2_PROTOCOL instance.\r
26a76fbc
LG
38 @param[in, out] CommandPort The value written to the command port.\r
39 @param[in, out] DataPort The value written to the data port.\r
9e620719 40 @param[in] Periodic Optional mechanism to engender a periodic stream.\r
41 @param[in] ActivationInterval Optional parameter to repeat at this period one\r
42 time or, if the Periodic Boolean is set, periodically.\r
43\r
44 @retval EFI_SUCCESS The SMI/PMI has been engendered.\r
45 @retval EFI_DEVICE_ERROR The timing is unsupported.\r
46 @retval EFI_INVALID_PARAMETER The activation period is unsupported.\r
47 @retval EFI_NOT_STARTED The SMM base service has not been initialized.\r
48**/\r
49EFI_STATUS\r
50EFIAPI\r
51SmmControl2Trigger (\r
52 IN CONST EFI_SMM_CONTROL2_PROTOCOL *This,\r
53 IN OUT UINT8 *CommandPort OPTIONAL,\r
54 IN OUT UINT8 *DataPort OPTIONAL,\r
55 IN BOOLEAN Periodic OPTIONAL,\r
56 IN UINTN ActivationInterval OPTIONAL\r
57 );\r
58\r
59/**\r
60 Clears any system state that was created in response to the Trigger() call.\r
61\r
62 This function acknowledges and causes the deassertion of the SMI activation source.\r
63\r
64 @param[in] This The EFI_SMM_CONTROL2_PROTOCOL instance.\r
65 @param[in] Periodic Optional parameter to repeat at this period one time\r
66\r
67 @retval EFI_SUCCESS The SMI/PMI has been engendered.\r
68 @retval EFI_DEVICE_ERROR The source could not be cleared.\r
69 @retval EFI_INVALID_PARAMETER The service did not support the Periodic input argument.\r
70**/\r
71EFI_STATUS\r
72EFIAPI\r
73SmmControl2Clear (\r
74 IN CONST EFI_SMM_CONTROL2_PROTOCOL *This,\r
75 IN BOOLEAN Periodic OPTIONAL\r
76 );\r
77\r
78#endif \r