+++ /dev/null
-/*++\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:\r
-\r
- EdkDxeSalLib.h\r
-\r
-Abstract:\r
-\r
---*/\r
-\r
-#ifndef _ESAL_SERVICE_LIB_H__\r
-#define _ESAL_SERVICE_LIB_H__\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-RegisterEsalFunction (\r
- IN UINT64 FunctionId,\r
- IN EFI_GUID *ClassGuid,\r
- IN SAL_INTERNAL_EXTENDED_SAL_PROC Function,\r
- IN VOID *ModuleGlobal\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Register ESAL Class Function and it's asociated global.\r
- This function is boot service only!\r
-\r
-Arguments:\r
- FunctionId - ID of function to register\r
- ClassGuid - GUID of function class \r
- Function - Function to register under ClassGuid/FunctionId pair\r
- ModuleGlobal - Module global for Function.\r
-\r
-Returns: \r
- EFI_SUCCESS - If ClassGuid/FunctionId Function was registered.\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-RegisterEsalClass (\r
- IN EFI_GUID *ClassGuid,\r
- IN VOID *ModuleGlobal,\r
- ...\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Register ESAL Class and it's asociated global.\r
- This function is boot service only!\r
-\r
-Arguments:\r
- ClassGuid - GUID of function class \r
- ModuleGlobal - Module global for Function.\r
- .. - SAL_INTERNAL_EXTENDED_SAL_PROC and FunctionId pairs. NULL \r
- indicates the end of the list.\r
-\r
-Returns: \r
- EFI_SUCCESS - All members of ClassGuid registered\r
-\r
---*/\r
-;\r
-\r
-SAL_RETURN_REGS\r
-EFIAPI\r
-EfiCallEsalService (\r
- IN EFI_GUID *ClassGuid,\r
- IN UINT64 FunctionId,\r
- IN UINT64 Arg2,\r
- IN UINT64 Arg3,\r
- IN UINT64 Arg4,\r
- IN UINT64 Arg5,\r
- IN UINT64 Arg6,\r
- IN UINT64 Arg7,\r
- IN UINT64 Arg8\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Call module that is not linked direclty to this module. This code is IP \r
- relative and hides the binding issues of virtual or physical calling. The\r
- function that gets dispatched has extra arguments that include the registered\r
- module global and a boolean flag to indicate if the system is in virutal mode.\r
-\r
-Arguments:\r
- ClassGuid - GUID of function\r
- FunctionId - Function in ClassGuid to call\r
- Arg2 - Argument 2 ClassGuid/FunctionId defined\r
- Arg3 - Argument 3 ClassGuid/FunctionId defined\r
- Arg4 - Argument 4 ClassGuid/FunctionId defined\r
- Arg5 - Argument 5 ClassGuid/FunctionId defined\r
- Arg6 - Argument 6 ClassGuid/FunctionId defined\r
- Arg7 - Argument 7 ClassGuid/FunctionId defined\r
- Arg8 - Argument 8 ClassGuid/FunctionId defined\r
-\r
-Returns: \r
- Status of ClassGuid/FuncitonId\r
-\r
---*/\r
-;\r
-\r
-SAL_RETURN_REGS\r
-EFIAPI\r
-SetEsalVirtualEntryPoint (\r
- IN UINT64 EntryPoint,\r
- IN UINT64 Gp\r
- )\r
-;\r
-\r
-SAL_RETURN_REGS\r
-EFIAPI\r
-SetEsalPhysicalEntryPoint (\r
- IN UINT64 EntryPoint,\r
- IN UINT64 Gp\r
- )\r
-;\r
-\r
-SAL_RETURN_REGS\r
-EFIAPI\r
-GetEsalEntryPoint (\r
- VOID\r
- )\r
-;\r
-\r
-\r
-#endif\r