diff options
Diffstat (limited to 'EDK/Foundation/Framework/Protocol/SmmAccess')
-rw-r--r-- | EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.c | 30 | ||||
-rw-r--r-- | EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.h | 92 |
2 files changed, 122 insertions, 0 deletions
diff --git a/EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.c b/EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.c new file mode 100644 index 0000000..6a84d40 --- /dev/null +++ b/EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.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: + + SmmAccess.c + +Abstract: + + This file defines SMM SMRAM abstraction protocol defined by the + SMM Component Interface Specification + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (SmmAccess) + +EFI_GUID gEfiSmmAccessProtocolGuid = EFI_SMM_ACCESS_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiSmmAccessProtocolGuid, "SMM Access Protocol", "SMM Access protocol"); diff --git a/EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.h b/EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.h new file mode 100644 index 0000000..9dddaca --- /dev/null +++ b/EDK/Foundation/Framework/Protocol/SmmAccess/SmmAccess.h @@ -0,0 +1,92 @@ +/*++ + +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: + + SmmAccess.h + +Abstract: + + This file defines SMM SMRAM Access abstraction protocol defined + by the SMM CIS. + +--*/ + +#ifndef _SMM_ACCESS_H_ +#define _SMM_ACCESS_H_ + +#include EFI_GUID_DEFINITION (SmramMemoryReserve) + +EFI_FORWARD_DECLARATION (EFI_SMM_ACCESS_PROTOCOL); + +#define EFI_SMM_ACCESS_PROTOCOL_GUID \ + { \ + 0x3792095a, 0xe309, 0x4c1e, 0xaa, 0x01, 0x85, 0xf5, 0x65, 0x5a, 0x17, 0xf1 \ + } + +// +// SMM Access specification constant and types +// +// ******************************************************* +// EFI_SMRAM_STATE +// ******************************************************* +// +#define EFI_SMRAM_OPEN 0x00000001 +#define EFI_SMRAM_CLOSED 0x00000002 +#define EFI_SMRAM_LOCKED 0x00000004 +#define EFI_CACHEABLE 0x00000008 +#define EFI_ALLOCATED 0x00000010 + +// +// SMM Access specification Data Structures +// +typedef +EFI_STATUS +(EFIAPI *EFI_SMM_OPEN) ( + IN EFI_SMM_ACCESS_PROTOCOL * This, + UINTN DescriptorIndex + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SMM_CLOSE) ( + IN EFI_SMM_ACCESS_PROTOCOL * This, + UINTN DescriptorIndex + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SMM_LOCK) ( + IN EFI_SMM_ACCESS_PROTOCOL * This, + UINTN DescriptorIndex + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SMM_CAPABILITIES) ( + IN EFI_SMM_ACCESS_PROTOCOL * This, + IN OUT UINTN *SmramMapSize, + IN OUT EFI_SMRAM_DESCRIPTOR * SmramMap + ); + +typedef struct _EFI_SMM_ACCESS_PROTOCOL { + EFI_SMM_OPEN Open; + EFI_SMM_CLOSE Close; + EFI_SMM_LOCK Lock; + EFI_SMM_CAPABILITIES GetCapabilities; + BOOLEAN LockState; + BOOLEAN OpenState; +} EFI_SMM_ACCESS_PROTOCOL; + +extern EFI_GUID gEfiSmmAccessProtocolGuid; + +#endif |