diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.h')
-rw-r--r-- | EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.h b/EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.h new file mode 100644 index 0000000..ae7d691 --- /dev/null +++ b/EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.h @@ -0,0 +1,79 @@ +/*++ + +Copyright (c) 1999 - 2002, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + +Module Name: + + SmmControl.h + +Abstract: + + This file defines SMM Control abstraction protocol defined + by the SMM CIS. + +--*/ + +#ifndef _SMM_CONTROL_H_ +#define _SMM_CONTROL_H_ + +EFI_FORWARD_DECLARATION (EFI_SMM_CONTROL_PROTOCOL); + +#define EFI_SMM_CONTROL_PROTOCOL_GUID \ + { \ + 0x8d12e231, 0xc667, 0x4fd1, 0x98, 0xf2, 0x24, 0x49, 0xa7, 0xe7, 0xb2, 0xe5 \ + } + +// +// SMM Control specification constant and types +// +// typedef EFI_SMM_PERIOD UINTN +// +// SMM Access specification Data Structures +// +typedef struct { + UINT8 SmiTriggerRegister; + UINT8 SmiDataRegister; +} EFI_SMM_CONTROL_REGISTER; + +typedef +EFI_STATUS +(EFIAPI *EFI_SMM_ACTIVATE) ( + IN EFI_SMM_CONTROL_PROTOCOL * This, + IN OUT INT8 *ArgumentBuffer OPTIONAL, + IN OUT UINTN *ArgumentBufferSize OPTIONAL, + IN BOOLEAN Periodic OPTIONAL, + IN UINTN ActivationInterval OPTIONAL + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SMM_DEACTIVATE) ( + IN EFI_SMM_CONTROL_PROTOCOL * This, + IN BOOLEAN Periodic OPTIONAL + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SMM_GET_REGISTER_INFO) ( + IN EFI_SMM_CONTROL_PROTOCOL * This, + IN OUT EFI_SMM_CONTROL_REGISTER * SmiRegister + ); + +typedef struct _EFI_SMM_CONTROL_PROTOCOL { + EFI_SMM_ACTIVATE Trigger; + EFI_SMM_DEACTIVATE Clear; + EFI_SMM_GET_REGISTER_INFO GetRegisterInfo; + UINTN MinimumTriggerPeriod; +} EFI_SMM_CONTROL_PROTOCOL; + +extern EFI_GUID gEfiSmmControlProtocolGuid; + +#endif |