]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/Sal.h
Update IndustryStandard according to code review comments.
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / Sal.h
CommitLineData
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 22typedef 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 68typedef 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