]>
Commit | Line | Data |
---|---|---|
540dfc26 | 1 | /** @file\r |
4135253b | 2 | Main SAL API's defined in Intel Itanium Processor Family System Abstraction\r |
3 | Layer Specification Revision 3.2 (December 2003)\r | |
540dfc26 | 4 | \r |
4135253b | 5 | Copyright (c) 2006 - 2008, Intel Corporation \r |
540dfc26 | 6 | All rights reserved. This program and the accompanying materials \r |
7 | are licensed and made available under the terms and conditions of the BSD License \r | |
8 | which accompanies this distribution. The full text of the license may be found at \r | |
9 | http://opensource.org/licenses/bsd-license.php \r | |
10 | \r | |
11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r | |
12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r | |
13 | \r | |
540dfc26 | 14 | **/\r |
15 | \r | |
16 | #ifndef __SAL_API_H__\r | |
17 | #define __SAL_API_H__\r | |
18 | \r | |
1bc5d021 | 19 | ///\r |
4135253b | 20 | /// SAL return status type \r |
1bc5d021 | 21 | ///\r |
4135253b | 22 | typedef UINTN EFI_SAL_STATUS;\r |
1bc5d021 | 23 | \r |
24 | ///\r | |
4135253b | 25 | /// Call completed without error. \r |
1bc5d021 | 26 | ///\r |
4135253b | 27 | #define EFI_SAL_SUCCESS ((EFI_SAL_STATUS) 0)\r |
1bc5d021 | 28 | ///\r |
4135253b | 29 | /// Call completed without error but some information was lost due to overflow. \r |
1bc5d021 | 30 | ///\r |
4135253b | 31 | #define EFI_SAL_OVERFLOW ((EFI_SAL_STATUS) 1)\r |
1bc5d021 | 32 | ///\r |
4135253b | 33 | /// Call completed without error; effect a warm boot of the system to complete the update.\r |
34 | ///\r | |
35 | #define EFI_SAL_WARM_BOOT_NEEDED ((EFI_SAL_STATUS) 2)\r | |
36 | ///\r | |
37 | /// More information is available for retrieval. \r | |
1bc5d021 | 38 | ///\r |
540dfc26 | 39 | #define EFI_SAL_MORE_RECORDS ((EFI_SAL_STATUS) 3)\r |
4135253b | 40 | ///\r |
41 | /// Not implemented.\r | |
42 | ///\r | |
540dfc26 | 43 | #define EFI_SAL_NOT_IMPLEMENTED ((EFI_SAL_STATUS) - 1)\r |
4135253b | 44 | ///\r |
45 | /// Invalid Argument.\r | |
46 | ///\r | |
540dfc26 | 47 | #define EFI_SAL_INVALID_ARGUMENT ((EFI_SAL_STATUS) - 2)\r |
4135253b | 48 | ///\r |
49 | /// Call completed without error. \r | |
50 | ///\r | |
540dfc26 | 51 | #define EFI_SAL_ERROR ((EFI_SAL_STATUS) - 3)\r |
4135253b | 52 | ///\r |
53 | /// Virtual address not registered. \r | |
54 | ///\r | |
540dfc26 | 55 | #define EFI_SAL_VIRTUAL_ADDRESS_ERROR ((EFI_SAL_STATUS) - 4)\r |
4135253b | 56 | ///\r |
57 | /// No information available. \r | |
58 | ///\r | |
540dfc26 | 59 | #define EFI_SAL_NO_INFORMATION ((EFI_SAL_STATUS) - 5)\r |
4135253b | 60 | ///\r |
61 | /// Scratch buffer required.\r | |
62 | ///\r | |
540dfc26 | 63 | #define EFI_SAL_NOT_ENOUGH_SCRATCH ((EFI_SAL_STATUS) - 9)\r |
64 | \r | |
4135253b | 65 | ///\r |
66 | /// Return registers from SAL\r | |
67 | ///\r | |
540dfc26 | 68 | typedef struct {\r |
4135253b | 69 | ///\r |
70 | /// SAL return status value in r8\r | |
71 | ///\r | |
72 | EFI_SAL_STATUS Status;\r | |
73 | ///\r | |
74 | /// SAL returned value in r9\r | |
75 | ///\r | |
540dfc26 | 76 | UINTN r9;\r |
4135253b | 77 | ///\r |
78 | /// SAL returned value in r10\r | |
79 | ///\r | |
540dfc26 | 80 | UINTN r10;\r |
4135253b | 81 | ///\r |
82 | /// SAL returned value in r11\r | |
83 | ///\r | |
540dfc26 | 84 | UINTN r11;\r |
85 | } SAL_RETURN_REGS;\r | |
86 | \r | |
4135253b | 87 | /**\r |
88 | Prototype of SAL procedures.\r | |
89 | \r | |
90 | @param Arg0 Functional identifier.\r | |
91 | The upper 32 bits are ignored and only the lower 32 bits\r | |
92 | are used. The following functional identifiers are defined:\r | |
93 |