4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This library implements the SAL Library Class using Extended SAL functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <PiDxe.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/ExtendedSalServiceClasses.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/SalLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/ExtendedSalLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Makes a SAL procedure call.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is a wrapper function to make a SAL procedure call.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync No parameter checking is performed on the 8 input parameters,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync but there are some common rules that the caller should follow
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync when making a SAL call. Any address passed to SAL as buffers
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for return parameters must be 8-byte aligned. Unaligned
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync addresses may cause undefined results. For those parameters
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync defined as reserved or some fields defined as reserved must be
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync zero filled or the invalid argument return value may be returned
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync or undefined result may occur during the execution of the procedure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is only available on IPF.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Index The SAL procedure Index number
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Arg2 The 2nd parameter for SAL procedure calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Arg3 The 3rd parameter for SAL procedure calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Arg4 The 4th parameter for SAL procedure calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Arg5 The 5th parameter for SAL procedure calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Arg6 The 6th parameter for SAL procedure calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Arg7 The 7th parameter for SAL procedure calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Arg8 The 8th parameter for SAL procedure calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return SAL returned registers.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSAL_RETURN_REGS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Index,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT64 Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SAL_RETURN_REGS Regs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Initial all members in this structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Regs.r9 = 0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Regs.r10 = 0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Regs.r11 = 0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Regs.Status = EFI_SAL_INVALID_ARGUMENT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync switch (Index) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_SET_VECTORS:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalSetVectorsFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_GET_STATE_INFO:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalGetStateInfoFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_GET_STATE_INFO_SIZE:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalGetStateInfoSizeFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_CLEAR_STATE_INFO:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalClearStateInfoFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_MC_RENDEZ:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalMcRendezFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_MC_SET_PARAMS:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalMcSetParamsFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_REGISTER_PHYSICAL_ADDR:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EsalRegisterPhysicalAddrFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_CACHE_FLUSH:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalCacheFlushFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_CACHE_INIT:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalCacheInitFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_PCI_CONFIG_READ:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalPciConfigReadFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_PCI_CONFIG_WRITE:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SalPciConfigWriteFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_FREQ_BASE:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EsalGetPlatformBaseFreqFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_PHYSICAL_ID_INFO:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EsalPhysicalIdInfoFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync case EFI_SAL_UPDATE_PAL:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EsalCall (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_LO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_HI,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EsalUpdatePalFunctionId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg5,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arg8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync default:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return Regs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync break;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}