Check in library class declaration for SAL Lib, together with related definition.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2728 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
xli24 2007-06-25 07:35:47 +00:00
parent 6d8dc2cd9b
commit a197b1ad17
4 changed files with 71 additions and 3 deletions

View File

@ -266,13 +266,15 @@ typedef enum {
CurrentProcInfo, CurrentProcInfo,
NumProcessors, NumProcessors,
SetMinState, SetMinState,
GetMinState GetMinState,
EsalPhysicalIdInfo
} EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID; } EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID;
typedef enum { typedef enum {
PalProc, PalProc,
SetNewPalEntry, SetNewPalEntry,
GetNewPalEntry GetNewPalEntry,
EsalUpdatePal
} EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID; } EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID;
typedef enum { typedef enum {
@ -283,7 +285,8 @@ typedef enum {
EsalMcGetParams, EsalMcGetParams,
EsalMcGetMcParams, EsalMcGetMcParams,
EsalGetMcCheckinFlags, EsalGetMcCheckinFlags,
EsalGetPlatformBaseFreq EsalGetPlatformBaseFreq,
EsalRegisterPhysicalAddrFunctionId
} EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID; } EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID;
typedef enum { typedef enum {

View File

@ -98,6 +98,7 @@ typedef SAL_RETURN_REGS (EFIAPI *SAL_PROC)
#define EFI_SAL_PCI_CONFIG_READ 0x01000010 #define EFI_SAL_PCI_CONFIG_READ 0x01000010
#define EFI_SAL_PCI_CONFIG_WRITE 0x01000011 #define EFI_SAL_PCI_CONFIG_WRITE 0x01000011
#define EFI_SAL_FREQ_BASE 0x01000012 #define EFI_SAL_FREQ_BASE 0x01000012
#define EFI_SAL_PHYSICAL_ID_INFO 0x01000013
#define EFI_SAL_UPDATE_PAL 0x01000020 #define EFI_SAL_UPDATE_PAL 0x01000020
#define EFI_SAL_FUNCTION_ID_MASK 0x0000ffff #define EFI_SAL_FUNCTION_ID_MASK 0x0000ffff

View File

@ -0,0 +1,60 @@
/** @file
SAL Library Functions
Copyright (c) 2007, 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: SalLib.h
**/
#ifndef __SAL_LIB__
#define __SAL_LIB__
/**
Makes a SAL procedure call.
This is a wrapper function to make a SAL procedure call.
No parameter checking is performed on the 8 input parameters,
but there are some common rules that the caller should follow
when making a SAL call. Any address passed to SAL as buffers
for return parameters must be 8-byte aligned. Unaligned
addresses may cause undefined results. For those parameters
defined as reserved or some fields defined as reserved must be
zero filled or the invalid argument return value may be returned
or undefined result may occur during the execution of the procedure.
This function is only available on IPF.
@param Index The SAL procedure Index number
@param Arg2 The 2nd parameter for SAL procedure calls
@param Arg3 The 3rd parameter for SAL procedure calls
@param Arg4 The 4th parameter for SAL procedure calls
@param Arg5 The 5th parameter for SAL procedure calls
@param Arg6 The 6th parameter for SAL procedure calls
@param Arg7 The 7th parameter for SAL procedure calls
@param Arg8 The 8th parameter for SAL procedure calls
@return SAL returned registers.
**/
SAL_RETURN_REGS
EFIAPI
SalCall (
IN UINT64 Index,
IN UINT64 Arg2,
IN UINT64 Arg3,
IN UINT64 Arg4,
IN UINT64 Arg5,
IN UINT64 Arg6,
IN UINT64 Arg7,
IN UINT64 Arg8
);
#endif

View File

@ -182,6 +182,10 @@
<IncludeHeader>Include/Library/UefiApplicationEntryPoint.h</IncludeHeader> <IncludeHeader>Include/Library/UefiApplicationEntryPoint.h</IncludeHeader>
<HelpText>Library to abstract entry point to a EFI Application.</HelpText> <HelpText>Library to abstract entry point to a EFI Application.</HelpText>
</LibraryClass> </LibraryClass>
<LibraryClass Name="SalLib" SupArchList="IPF">
<IncludeHeader>Include/Library/SalLib.h</IncludeHeader>
<HelpText>Implement the SAL call</HelpText>
</LibraryClass>
</LibraryClassDeclarations> </LibraryClassDeclarations>
<IndustryStdIncludes> <IndustryStdIncludes>
<IndustryStdHeader Name="BaseTypes"> <IndustryStdHeader Name="BaseTypes">