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