]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Compatibility/SmmControl2OnSmmControlThunk/SmmControl2OnSmmControlThunk.h
PI 1.2 Errata C: A new return condition is added for the returned status code EFI_INV...
[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
787b2f1b 4 Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
584d5652 5 This program and the accompanying materials\r
9e620719 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
787b2f1b 47 @retval EFI_INVALID_PARAMETER The last periodic activation has not been cleared. \r
9e620719 48 @retval EFI_NOT_STARTED The SMM base service has not been initialized.\r
49**/\r
50EFI_STATUS\r
51EFIAPI\r
52SmmControl2Trigger (\r
53 IN CONST EFI_SMM_CONTROL2_PROTOCOL *This,\r
54 IN OUT UINT8 *CommandPort OPTIONAL,\r
55 IN OUT UINT8 *DataPort OPTIONAL,\r
56 IN BOOLEAN Periodic OPTIONAL,\r
57 IN UINTN ActivationInterval OPTIONAL\r
58 );\r
59\r
60/**\r
61 Clears any system state that was created in response to the Trigger() call.\r
62\r
63 This function acknowledges and causes the deassertion of the SMI activation source.\r
64\r
65 @param[in] This The EFI_SMM_CONTROL2_PROTOCOL instance.\r
66 @param[in] Periodic Optional parameter to repeat at this period one time\r
67\r
68 @retval EFI_SUCCESS The SMI/PMI has been engendered.\r
69 @retval EFI_DEVICE_ERROR The source could not be cleared.\r
70 @retval EFI_INVALID_PARAMETER The service did not support the Periodic input argument.\r
71**/\r
72EFI_STATUS\r
73EFIAPI\r
74SmmControl2Clear (\r
75 IN CONST EFI_SMM_CONTROL2_PROTOCOL *This,\r
76 IN BOOLEAN Periodic OPTIONAL\r
77 );\r
78\r
79#endif \r