]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/StatusCode/RuntimeDxe/Ipf/IpfStatusCode.c
Initial import.
[mirror_edk2.git] / EdkModulePkg / Universal / StatusCode / RuntimeDxe / Ipf / IpfStatusCode.c
CommitLineData
878ddf1f 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 IpfStatusCode.c\r
15\r
16Abstract:\r
17\r
18 Contains the IPF installation function and an ESAL entry.\r
19\r
20--*/\r
21\r
22#include "StatusCode.h"\r
23\r
24SAL_RETURN_REGS\r
25ReportStatusCodeEsalServicesClassCommonEntry (\r
26 IN UINT64 FunctionId,\r
27 IN UINT64 Arg2,\r
28 IN UINT64 Arg3,\r
29 IN UINT64 Arg4,\r
30 IN UINT64 Arg5,\r
31 IN UINT64 Arg6,\r
32 IN UINT64 Arg7,\r
33 IN UINT64 Arg8,\r
34 IN SAL_EXTENDED_SAL_PROC ExtendedSalProc,\r
35 IN BOOLEAN VirtualMode,\r
36 IN VOID *Global\r
37 )\r
38/*++\r
39\r
40Routine Description:\r
41\r
42 Main entry for Extended SAL ReportStatusCode Services\r
43\r
44Arguments:\r
45\r
46 FunctionId Function Id which needed to be called\r
47 Arg2 Efi status code type\r
48 Arg3 Efi status code value\r
49 Arg4 Instance number \r
50 Arg5 Caller Id\r
51 Arg6 Efi status code data\r
52 Arg7 Not used \r
53 Arg8 Not used \r
54 ExtendedSalProc Esal Proc pointer \r
55 VirtualMode If this function is called in virtual mode\r
56 Global This module's global variable pointer\r
57 \r
58Returns:\r
59\r
60 SAL_RETURN_REGS\r
61\r
62--*/\r
63{\r
64 SAL_RETURN_REGS ReturnVal;\r
65\r
66 switch (FunctionId) {\r
67\r
68 case ReportStatusCodeService:\r
69 ReturnVal.Status = StatusCodeReportStatusCode (\r
70 (EFI_STATUS_CODE_TYPE) Arg2,\r
71 (EFI_STATUS_CODE_VALUE) Arg3,\r
72 (UINT32) Arg4,\r
73 (EFI_GUID *) Arg5,\r
74 (EFI_STATUS_CODE_DATA *) Arg6\r
75 );\r
76 break;\r
77\r
78 default:\r
79 ReturnVal.Status = EFI_SAL_INVALID_ARGUMENT;\r
80 break;\r
81 }\r
82\r
83 return ReturnVal;\r
84}\r
85\r
86EFI_STATUS\r
87EFIAPI\r
88InstallStatusCode (\r
89 IN EFI_HANDLE ImageHandle,\r
90 IN EFI_SYSTEM_TABLE *SystemTable\r
91 )\r
92/*++\r
93\r
94Routine Description:\r
95\r
96 Install the ReportStatusCode runtime service.\r
97\r
98Arguments:\r
99\r
100 ImageHandle Image handle of the loaded driver\r
101 SystemTable Pointer to the System Table\r
102\r
103Returns:\r
104\r
105 EFI_SUCCESS The function always returns success.\r
106\r
107--*/\r
108{\r
109 //\r
110 // Initialize RT status code\r
111 //\r
112 InitializeStatusCode (ImageHandle, SystemTable);\r
113\r
114 //\r
115 // Initialize ESAL capabilities\r
116 //\r
117 RegisterEsalClass (\r
118 &gEfiExtendedSalStatusCodeServicesProtocolGuid,\r
119 NULL,\r
120 ReportStatusCodeEsalServicesClassCommonEntry,\r
121 StatusCode,\r
122 NULL\r
123 );\r
124\r
125 return EFI_SUCCESS;\r
126}\r