]>
Commit | Line | Data |
---|---|---|
9c8403b3 | 1 | /** @file\r |
50a64e5b | 2 | Provides library services to make SAL Calls.\r |
9c8403b3 | 3 | \r |
9095d37b | 4 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r |
9344f092 | 5 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
9c8403b3 | 6 | \r |
9c8403b3 | 7 | **/\r |
8 | \r | |
9 | #ifndef __SAL_LIB__\r | |
10 | #define __SAL_LIB__\r | |
11 | \r | |
12 | #include <IndustryStandard/Sal.h>\r | |
13 | \r | |
14 | /**\r | |
15 | Makes a SAL procedure call.\r | |
9095d37b LG |
16 | \r |
17 | This is a wrapper function to make a SAL procedure call.\r | |
9c8403b3 | 18 | No parameter checking is performed on the 8 input parameters,\r |
19 | but there are some common rules that the caller should follow\r | |
20 | when making a SAL call. Any address passed to SAL as buffers\r | |
21 | for return parameters must be 8-byte aligned. Unaligned\r | |
22 | addresses may cause undefined results. For those parameters\r | |
23 | defined as reserved or some fields defined as reserved must be\r | |
24 | zero filled or the invalid argument return value may be returned\r | |
25 | or undefined result may occur during the execution of the procedure.\r | |
1a2f870c | 26 | This function is only available on Intel Itanium-based platforms.\r |
9c8403b3 | 27 | \r |
28 | @param Index The SAL procedure Index number\r | |
29 | @param Arg2 The 2nd parameter for SAL procedure calls\r | |
30 | @param Arg3 The 3rd parameter for SAL procedure calls\r | |
31 | @param Arg4 The 4th parameter for SAL procedure calls\r | |
32 | @param Arg5 The 5th parameter for SAL procedure calls\r | |
33 | @param Arg6 The 6th parameter for SAL procedure calls\r | |
34 | @param Arg7 The 7th parameter for SAL procedure calls\r | |
35 | @param Arg8 The 8th parameter for SAL procedure calls\r | |
36 | \r | |
37 | @return SAL returned registers.\r | |
38 | \r | |
39 | **/\r | |
40 | SAL_RETURN_REGS\r | |
41 | EFIAPI\r | |
42 | SalCall (\r | |
43 | IN UINT64 Index,\r | |
44 | IN UINT64 Arg2,\r | |
45 | IN UINT64 Arg3,\r | |
46 | IN UINT64 Arg4,\r | |
47 | IN UINT64 Arg5,\r | |
48 | IN UINT64 Arg6,\r | |
49 | IN UINT64 Arg7,\r | |
50 | IN UINT64 Arg8\r | |
51 | );\r | |
52 | \r | |
53 | #endif\r |