diff options
Diffstat (limited to 'EDK/Foundation/Framework/Protocol/SmmControl')
-rw-r--r-- | EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.c | 30 | ||||
-rw-r--r-- | EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.h | 79 |
2 files changed, 109 insertions, 0 deletions
diff --git a/EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.c b/EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.c new file mode 100644 index 0000000..78e1f61 --- /dev/null +++ b/EDK/Foundation/Framework/Protocol/SmmControl/SmmControl.c @@ -0,0 +1,30 @@ +/*++ + +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.c + +Abstract: + + This file defines SMM Control abstraction protocol defined by the + SMM Component Interface Specification + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (SmmControl) + +EFI_GUID gEfiSmmControlProtocolGuid = EFI_SMM_CONTROL_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiSmmControlProtocolGuid, "SMM Control Protocol", "SMM Control protocol"); 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 |