]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Protocol/SmmBase.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / OldMdePkg / Include / Protocol / SmmBase.h
diff --git a/OldMdePkg/Include/Protocol/SmmBase.h b/OldMdePkg/Include/Protocol/SmmBase.h
deleted file mode 100644 (file)
index 664e34c..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/** @file\r
-  This file declares SMM Base abstraction protocol.\r
-  This is the base level of compatiblity for SMM drivers.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-  Module Name:  SmmBase.h\r
-\r
-  @par Revision Reference:\r
-  This Protocol is defined in Framework of EFI SMM Core Interface Spec\r
-  Version 0.9.\r
-\r
-**/\r
-\r
-#ifndef _SMM_BASE_H_\r
-#define _SMM_BASE_H_\r
-\r
-#define EFI_SMM_BASE_PROTOCOL_GUID \\r
-  { \\r
-    0x1390954D, 0xda95, 0x4227, {0x93, 0x28, 0x72, 0x82, 0xc2, 0x17, 0xda, 0xa8 } \\r
-  }\r
-\r
-typedef struct _EFI_SMM_BASE_PROTOCOL             EFI_SMM_BASE_PROTOCOL;\r
-\r
-//\r
-// SMM Handler Definition\r
-//\r
-#define EFI_HANDLER_SUCCESS         0x0000\r
-#define EFI_HANDLER_CRITICAL_EXIT   0x0001\r
-#define EFI_HANDLER_SOURCE_QUIESCED 0x0002\r
-#define EFI_HANDLER_SOURCE_PENDING  0x0003\r
-\r
-/**\r
-  Entry Point to Callback service\r
-\r
-  @param  SmmImageHandle        A handle allocated by the SMM infrastructure code\r
-                                to uniquely designate a specific DXE SMM driver.\r
-  @param  CommunicationBuffer   A pointer to a collection of data in memory\r
-                                that will be conveyed from a non-SMM environment into an SMM environment.\r
-                                The buffer must be contiguous, physically mapped, and be a physical address.\r
-  @param  SourceSize            The size of the CommunicationBuffer.\r
-\r
-  @return Status code\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_CALLBACK_ENTRY_POINT) (\r
-  IN EFI_HANDLE             SmmImageHandle,\r
-  IN OUT VOID               *CommunicationBuffer OPTIONAL,\r
-  IN OUT UINTN              *SourceSize OPTIONAL\r
-  );\r
-\r
-//\r
-// SMM Base Protocol Definition\r
-//\r
-/**\r
-  Register a given driver into SMRAM.This is the equivalent of performing\r
-  the LoadImage/StartImage into System Management Mode.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  FilePath              Location of the image to be installed as the handler.\r
-  @param  SourceBuffer          Optional source buffer in case of the image file\r
-                                being in memory.\r
-  @param  SourceSize            Size of the source image file, if in memory.\r
-  @param  ImageHandle           Pointer to the handle that reflects the driver\r
-                                loaded into SMM.\r
-  @param  LegacyIA32Binary      The binary image to load is legacy 16 bit code.\r
-\r
-  @retval EFI_SUCCESS           The operation was successful.\r
-  @retval EFI_OUT_OF_RESOURCES  There were no additional SMRAM resources to load the handler\r
-  @retval EFI_UNSUPPORTED       This platform does not support 16-bit handlers.\r
-  @retval EFI_UNSUPPORTED       In runtime.\r
-  @retval EFI_INVALID_PARAMETER The handlers was not the correct image type\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_REGISTER_HANDLER) (\r
-  IN EFI_SMM_BASE_PROTOCOL                           *This,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL                       *FilePath,\r
-  IN  VOID                                           *SourceBuffer OPTIONAL,\r
-  IN  UINTN                                          SourceSize,\r
-  OUT EFI_HANDLE                                     *ImageHandle,\r
-  IN  BOOLEAN                                        LegacyIA32Binary OPTIONAL\r
-  )\r
-;\r
-\r
-/**\r
-  Remove a given driver SMRAM.  This is the equivalent of performing\r
-  the UnloadImage System Management Mode.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  ImageHandle           Pointer to the handle that reflects the driver\r
-                                loaded into SMM.\r
-\r
-  @retval EFI_SUCCESS           The operation was successful\r
-  @retval EFI_INVALID_PARAMETER The handler did not exist\r
-  @retval EFI_UNSUPPORTED       In runtime.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_UNREGISTER_HANDLER) (\r
-  IN EFI_SMM_BASE_PROTOCOL          *This,\r
-  IN EFI_HANDLE                     ImageHandle\r
-  )\r
-;\r
-\r
-/**\r
-  The SMM Inter-module Communicate Service Communicate() function \r
-  provides a services to send/received messages from a registered \r
-  EFI service.  The BASE protocol driver is responsible for doing \r
-  any of the copies such that the data lives in boot-service accessible RAM.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  ImageHandle           Pointer to the handle that reflects the driver\r
-                                loaded into SMM.\r
-  @param  CommunicationBuffer   Pointer to the buffer to convey into SMRAM.\r
-  @param  SourceSize            Size of the contents of buffer..\r
-\r
-  @retval EFI_SUCCESS           The message was successfully posted\r
-  @retval EFI_INVALID_PARAMETER The buffer was NULL\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_COMMUNICATE) (\r
-  IN EFI_SMM_BASE_PROTOCOL          *This,\r
-  IN EFI_HANDLE                     ImageHandle,\r
-  IN OUT VOID                       *CommunicationBuffer,\r
-  IN OUT UINTN                      *SourceSize\r
-  )\r
-;\r
-\r
-/**\r
-  Register a callback to execute within SMM.   \r
-  This allows receipt of messages created with the Boot Service COMMUNICATE.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  CallbackAddress       Address of the callback service\r
-  @param  MakeFirst             If present, will stipulate that the handler is posted\r
-                                to be the first module executed in the dispatch table.\r
-  @param  MakeLast              If present, will stipulate that the handler is posted\r
-                                to be last executed in the dispatch table.\r
-  @param  FloatingPointSave     This is an optional parameter which informs the\r
-                                EFI_SMM_ACCESS_PROTOCOL Driver core if it needs to save\r
-                                the floating point register state. If any of the handlers\r
-                                require this, then the state will be saved for all of the handlers.\r
-\r
-  @retval EFI_SUCCESS           The operation was successful\r
-  @retval EFI_OUT_OF_RESOURCES  Not enough space in the dispatch queue\r
-  @retval EFI_UNSUPPORTED       In runtime.\r
-  @retval EFI_UNSUPPORTED       Not in SMM.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_CALLBACK_SERVICE) (\r
-  IN EFI_SMM_BASE_PROTOCOL                            *This,\r
-  IN EFI_HANDLE                                       SmmImageHandle,\r
-  IN EFI_SMM_CALLBACK_ENTRY_POINT                     CallbackAddress,\r
-  IN BOOLEAN                                          MakeLast OPTIONAL,\r
-  IN BOOLEAN                                          FloatingPointSave OPTIONAL\r
-  )\r
-;\r
-\r
-/**\r
-  The SmmAllocatePool() function allocates a memory region of Size bytes from memory of \r
-  type PoolType and returns the address of the allocated memory in the location referenced \r
-  by Buffer.  This function allocates pages from EFI SMRAM Memory as needed to grow the \r
-  requested pool type.  All allocations are eight-byte aligned.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  PoolType              The type of pool to allocate.\r
-                                The only supported type is EfiRuntimeServicesData;\r
-                                the interface will internally map this runtime request to SMRAM.\r
-  @param  Size                  The number of bytes to allocate from the pool.\r
-  @param  Buffer                A pointer to a pointer to the allocated buffer if the call\r
-                                succeeds; undefined otherwise.\r
-\r
-  @retval EFI_SUCCESS           The requested number of bytes was allocated.\r
-  @retval EFI_OUT_OF_RESOURCES  The pool requested could not be allocated.\r
-  @retval EFI_INVALID_PARAMETER PoolType was invalid.\r
-  @retval EFI_UNSUPPORTED       In runtime.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_ALLOCATE_POOL) (\r
-  IN EFI_SMM_BASE_PROTOCOL          *This,\r
-  IN EFI_MEMORY_TYPE                PoolType,\r
-  IN UINTN                          Size,\r
-  OUT VOID                          **Buffer\r
-  )\r
-;\r
-\r
-/**\r
-  The SmmFreePool() function returns the memory specified by Buffer to the system.  \r
-  On return, the memory's type is EFI SMRAM Memory.  The Buffer that is freed must \r
-  have been allocated by SmmAllocatePool().\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  Buffer                Pointer to the buffer allocation.\r
-\r
-  @retval EFI_SUCCESS           The memory was returned to the system.\r
-  @retval EFI_INVALID_PARAMETER Buffer was invalid.\r
-  @retval EFI_UNSUPPORTED       In runtime.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_FREE_POOL) (\r
-  IN EFI_SMM_BASE_PROTOCOL          *This,\r
-  IN VOID                           *Buffer\r
-  )\r
-;\r
-\r
-/**\r
-  This routine tells caller if execution context is SMM or not.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  InSmm                 Whether the caller is inside SMM for IA-32 or servicing a PMI for the Itanium processor family.\r
-\r
-  @retval EFI_SUCCESS           The operation was successful\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_INSIDE_OUT) (\r
-  IN EFI_SMM_BASE_PROTOCOL          *This,\r
-  OUT BOOLEAN                       *InSmm\r
-  )\r
-;\r
-\r
-/**\r
-  The GetSmstLocation() function returns the locatin of the System Management \r
-  Service Table.  The use of the API is such that a driver can discover the \r
-  location of the SMST in its entry point and then cache it in some driver \r
-  global variable so that the SMST can be invoked in subsequent callbacks.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  Smst                  Pointer to the SMST.\r
-\r
-  @retval EFI_SUCCESS           The operation was successful\r
-  @retval EFI_INVALID_PARAMETER Smst was invalid.\r
-  @retval EFI_UNSUPPORTED       Not in SMM.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_GET_SMST_LOCATION) (\r
-  IN EFI_SMM_BASE_PROTOCOL          *This,\r
-  IN OUT EFI_SMM_SYSTEM_TABLE       **Smst\r
-  )\r
-;\r
-\r
-/**\r
-  @par Protocol Description:\r
-  This protocol is used to install SMM handlers for support of subsequent SMI/PMI \r
-  activations. This protocol is available on both IA-32 and Itanium-based systems.\r
-\r
-  @param Register\r
-  Registers a handler to run in System Management RAM (SMRAM).\r
-\r
-  @param UnRegister\r
-  Removes a handler from execution in SMRAM.\r
-\r
-  @param Communicate\r
-  Sends/receives a message for a registered handler.\r
-\r
-  @param RegisterCallback\r
-  Registers a callback from the constructor.\r
-\r
-  @param InSmm\r
-  Detects whether the caller is inside or outside of SMM. SName\r
-\r
-  @param SmmAllocatePool\r
-  Allocates SMRAM.\r
-\r
-  @param SmmFreePool\r
-  Deallocates SMRAM.\r
-\r
-  @param GetSmstLocation\r
-  Retrieves the location of the System Management System Table (SMST).\r
-\r
-**/\r
-struct _EFI_SMM_BASE_PROTOCOL {\r
-  EFI_SMM_REGISTER_HANDLER    Register;\r
-  EFI_SMM_UNREGISTER_HANDLER  UnRegister;\r
-  EFI_SMM_COMMUNICATE         Communicate;\r
-  EFI_SMM_CALLBACK_SERVICE    RegisterCallback;\r
-  EFI_SMM_INSIDE_OUT          InSmm;\r
-  EFI_SMM_ALLOCATE_POOL       SmmAllocatePool;\r
-  EFI_SMM_FREE_POOL           SmmFreePool;\r
-  EFI_SMM_GET_SMST_LOCATION   GetSmstLocation;\r
-};\r
-\r
-extern EFI_GUID gEfiSmmBaseProtocolGuid;\r
-\r
-#endif\r