]>
git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Sockets/WebServer/DxeServicesTable.c
3 Display the DXE services table
5 Copyright (c) 2011-2012, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #include <WebServer.h>
17 #include <Guid/DxeServices.h>
18 #include <pi/PiDxeCis.h>
21 Respond with the DXE services table
23 @param [in] SocketFD The socket's file descriptor to add to the list.
24 @param [in] pPort The WSDT_PORT structure address
25 @param [out] pbDone Address to receive the request completion status
27 @retval EFI_SUCCESS The request was successfully processed
31 DxeServicesTablePage (
37 EFI_DXE_SERVICES
* pDS
;
43 // Send the DXE services page
47 // Get the DXE services table
49 Status
= EfiGetSystemConfigurationTable (&gEfiDxeServicesTableGuid
, (VOID
**) &pDS
);
50 if ( EFI_ERROR ( Status
)) {
55 // Send the page and table header
57 Status
= TableHeader ( SocketFD
, pPort
, L
"DXE Services Table", pDS
);
58 if ( EFI_ERROR ( Status
)) {
63 /// The table header for the DXE Services Table.
64 /// This header contains the DXE_SERVICES_SIGNATURE and DXE_SERVICES_REVISION values.
66 Status
= EfiTableHeader ( SocketFD
,
69 if ( EFI_ERROR ( Status
)) {
74 // Global Coherency Domain Services
76 Status
= RowPointer ( SocketFD
,
79 (VOID
*)pDS
->AddMemorySpace
,
81 if ( EFI_ERROR ( Status
)) {
84 Status
= RowPointer ( SocketFD
,
86 "AllocateMemorySpace",
87 (VOID
*)pDS
->AllocateMemorySpace
,
89 if ( EFI_ERROR ( Status
)) {
92 Status
= RowPointer ( SocketFD
,
95 (VOID
*)pDS
->FreeMemorySpace
,
97 if ( EFI_ERROR ( Status
)) {
100 Status
= RowPointer ( SocketFD
,
103 (VOID
*)pDS
->RemoveMemorySpace
,
105 if ( EFI_ERROR ( Status
)) {
108 Status
= RowPointer ( SocketFD
,
110 "GetMemorySpaceDescriptor",
111 (VOID
*)pDS
->GetMemorySpaceDescriptor
,
113 if ( EFI_ERROR ( Status
)) {
116 Status
= RowPointer ( SocketFD
,
118 "SetMemorySpaceAttributes",
119 (VOID
*)pDS
->SetMemorySpaceAttributes
,
121 if ( EFI_ERROR ( Status
)) {
124 Status
= RowPointer ( SocketFD
,
127 (VOID
*)pDS
->GetMemorySpaceMap
,
129 if ( EFI_ERROR ( Status
)) {
132 Status
= RowPointer ( SocketFD
,
135 (VOID
*)pDS
->AddIoSpace
,
137 if ( EFI_ERROR ( Status
)) {
140 Status
= RowPointer ( SocketFD
,
143 (VOID
*)pDS
->AllocateIoSpace
,
145 if ( EFI_ERROR ( Status
)) {
148 Status
= RowPointer ( SocketFD
,
151 (VOID
*)pDS
->FreeIoSpace
,
153 if ( EFI_ERROR ( Status
)) {
156 Status
= RowPointer ( SocketFD
,
159 (VOID
*)pDS
->RemoveIoSpace
,
161 if ( EFI_ERROR ( Status
)) {
164 Status
= RowPointer ( SocketFD
,
166 "GetIoSpaceDescriptor",
167 (VOID
*)pDS
->GetIoSpaceDescriptor
,
169 if ( EFI_ERROR ( Status
)) {
172 Status
= RowPointer ( SocketFD
,
175 (VOID
*)pDS
->GetIoSpaceMap
,
177 if ( EFI_ERROR ( Status
)) {
182 // Dispatcher Services
184 Status
= RowPointer ( SocketFD
,
187 (VOID
*)pDS
->Dispatch
,
189 if ( EFI_ERROR ( Status
)) {
192 Status
= RowPointer ( SocketFD
,
195 (VOID
*)pDS
->Schedule
,
197 if ( EFI_ERROR ( Status
)) {
200 Status
= RowPointer ( SocketFD
,
205 if ( EFI_ERROR ( Status
)) {
210 // Service to process a single firmware volume found in a capsule
212 Status
= RowPointer ( SocketFD
,
214 "ProcessFirmwareVolume",
215 (VOID
*)pDS
->ProcessFirmwareVolume
,
217 if ( EFI_ERROR ( Status
)) {
222 // Build the table trailer
224 Status
= TableTrailer ( SocketFD
,
231 // Return the operation status
233 DBG_EXIT_STATUS ( Status
);