3 Display the boot 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>
19 Respond with the boot services table
21 @param [in] SocketFD The socket's file descriptor to add to the list.
22 @param [in] pPort The WSDT_PORT structure address
23 @param [out] pbDone Address to receive the request completion status
25 @retval EFI_SUCCESS The request was successfully processed
29 BootServicesTablePage (
40 // Send the boot services page
44 // Send the page and table header
46 Status
= TableHeader ( SocketFD
, pPort
, L
"Boot Services Table", gBS
);
47 if ( EFI_ERROR ( Status
)) {
52 /// The table header for the EFI Boot Services Table.
54 Status
= EfiTableHeader ( SocketFD
,
57 if ( EFI_ERROR ( Status
)) {
62 // Task Priority Services
64 Status
= RowPointer ( SocketFD
,
67 (CONST VOID
*)gBS
->RaiseTPL
,
69 if ( EFI_ERROR ( Status
)) {
72 Status
= RowPointer ( SocketFD
,
75 (CONST VOID
*)gBS
->RestoreTPL
,
77 if ( EFI_ERROR ( Status
)) {
84 Status
= RowPointer ( SocketFD
,
87 (CONST VOID
*)gBS
->AllocatePages
,
89 if ( EFI_ERROR ( Status
)) {
92 Status
= RowPointer ( SocketFD
,
95 (CONST VOID
*)gBS
->FreePages
,
97 if ( EFI_ERROR ( Status
)) {
100 Status
= RowPointer ( SocketFD
,
103 (CONST VOID
*)gBS
->GetMemoryMap
,
105 if ( EFI_ERROR ( Status
)) {
108 Status
= RowPointer ( SocketFD
,
111 (CONST VOID
*)gBS
->AllocatePool
,
113 if ( EFI_ERROR ( Status
)) {
116 Status
= RowPointer ( SocketFD
,
119 (CONST VOID
*)gBS
->FreePool
,
121 if ( EFI_ERROR ( Status
)) {
126 // Event & Timer Services
128 Status
= RowPointer ( SocketFD
,
131 (CONST VOID
*)gBS
->CreateEvent
,
133 if ( EFI_ERROR ( Status
)) {
136 Status
= RowPointer ( SocketFD
,
139 (CONST VOID
*)gBS
->SetTimer
,
141 if ( EFI_ERROR ( Status
)) {
144 Status
= RowPointer ( SocketFD
,
147 (CONST VOID
*)gBS
->WaitForEvent
,
149 if ( EFI_ERROR ( Status
)) {
152 Status
= RowPointer ( SocketFD
,
155 (CONST VOID
*)gBS
->SignalEvent
,
157 if ( EFI_ERROR ( Status
)) {
160 Status
= RowPointer ( SocketFD
,
163 (CONST VOID
*)gBS
->CloseEvent
,
165 if ( EFI_ERROR ( Status
)) {
168 Status
= RowPointer ( SocketFD
,
171 (CONST VOID
*)gBS
->CheckEvent
,
173 if ( EFI_ERROR ( Status
)) {
178 // Protocol Handler Services
180 Status
= RowPointer ( SocketFD
,
182 "InstallProtocolInterface",
183 (CONST VOID
*)gBS
->InstallProtocolInterface
,
185 if ( EFI_ERROR ( Status
)) {
188 Status
= RowPointer ( SocketFD
,
190 "ReinstallProtocolInterface",
191 (CONST VOID
*)gBS
->ReinstallProtocolInterface
,
193 if ( EFI_ERROR ( Status
)) {
196 Status
= RowPointer ( SocketFD
,
198 "UninstallProtocolInterface",
199 (CONST VOID
*)gBS
->UninstallProtocolInterface
,
201 if ( EFI_ERROR ( Status
)) {
204 Status
= RowPointer ( SocketFD
,
207 (CONST VOID
*)gBS
->HandleProtocol
,
209 if ( EFI_ERROR ( Status
)) {
212 Status
= RowPointer ( SocketFD
,
215 (CONST VOID
*)gBS
->Reserved
,
217 if ( EFI_ERROR ( Status
)) {
220 Status
= RowPointer ( SocketFD
,
222 "RegisterProtocolNotify",
223 (CONST VOID
*)gBS
->RegisterProtocolNotify
,
225 if ( EFI_ERROR ( Status
)) {
228 Status
= RowPointer ( SocketFD
,
231 (CONST VOID
*)gBS
->LocateHandle
,
233 if ( EFI_ERROR ( Status
)) {
236 Status
= RowPointer ( SocketFD
,
239 (CONST VOID
*)gBS
->LocateDevicePath
,
241 if ( EFI_ERROR ( Status
)) {
244 Status
= RowPointer ( SocketFD
,
246 "InstallConfigurationTable",
247 (CONST VOID
*)gBS
->InstallConfigurationTable
,
249 if ( EFI_ERROR ( Status
)) {
256 Status
= RowPointer ( SocketFD
,
259 (CONST VOID
*)gBS
->LoadImage
,
261 if ( EFI_ERROR ( Status
)) {
264 Status
= RowPointer ( SocketFD
,
267 (CONST VOID
*)gBS
->StartImage
,
269 if ( EFI_ERROR ( Status
)) {
272 Status
= RowPointer ( SocketFD
,
275 (CONST VOID
*)gBS
->Exit
,
277 if ( EFI_ERROR ( Status
)) {
280 Status
= RowPointer ( SocketFD
,
283 (CONST VOID
*)gBS
->UnloadImage
,
285 if ( EFI_ERROR ( Status
)) {
288 Status
= RowPointer ( SocketFD
,
291 (CONST VOID
*)gBS
->ExitBootServices
,
293 if ( EFI_ERROR ( Status
)) {
298 // Miscellaneous Services
300 Status
= RowPointer ( SocketFD
,
302 "GetNextMonotonicCount",
303 (CONST VOID
*)gBS
->GetNextMonotonicCount
,
305 if ( EFI_ERROR ( Status
)) {
308 Status
= RowPointer ( SocketFD
,
311 (CONST VOID
*)gBS
->Stall
,
313 if ( EFI_ERROR ( Status
)) {
316 Status
= RowPointer ( SocketFD
,
319 (CONST VOID
*)gBS
->SetWatchdogTimer
,
321 if ( EFI_ERROR ( Status
)) {
326 // DriverSupport Services
328 Status
= RowPointer ( SocketFD
,
331 (CONST VOID
*)gBS
->ConnectController
,
333 if ( EFI_ERROR ( Status
)) {
336 Status
= RowPointer ( SocketFD
,
338 "DisconnectController",
339 (CONST VOID
*)gBS
->DisconnectController
,
341 if ( EFI_ERROR ( Status
)) {
346 // Open and Close Protocol Services
348 Status
= RowPointer ( SocketFD
,
351 (CONST VOID
*)gBS
->OpenProtocol
,
353 if ( EFI_ERROR ( Status
)) {
356 Status
= RowPointer ( SocketFD
,
359 (CONST VOID
*)gBS
->CloseProtocol
,
361 if ( EFI_ERROR ( Status
)) {
364 Status
= RowPointer ( SocketFD
,
366 "OpenProtocolInformation",
367 (CONST VOID
*)gBS
->OpenProtocolInformation
,
369 if ( EFI_ERROR ( Status
)) {
376 Status
= RowPointer ( SocketFD
,
378 "ProtocolsPerHandle",
379 (CONST VOID
*)gBS
->ProtocolsPerHandle
,
381 if ( EFI_ERROR ( Status
)) {
384 Status
= RowPointer ( SocketFD
,
386 "LocateHandleBuffer",
387 (CONST VOID
*)gBS
->LocateHandleBuffer
,
389 if ( EFI_ERROR ( Status
)) {
392 Status
= RowPointer ( SocketFD
,
395 (CONST VOID
*)gBS
->LocateProtocol
,
397 if ( EFI_ERROR ( Status
)) {
400 Status
= RowPointer ( SocketFD
,
402 "InstallMultipleProtocolInterfaces",
403 (CONST VOID
*)gBS
->InstallMultipleProtocolInterfaces
,
405 if ( EFI_ERROR ( Status
)) {
408 Status
= RowPointer ( SocketFD
,
410 "UninstallMultipleProtocolInterfaces",
411 (CONST VOID
*)gBS
->UninstallMultipleProtocolInterfaces
,
413 if ( EFI_ERROR ( Status
)) {
418 // 32-bit CRC Services
420 Status
= RowPointer ( SocketFD
,
423 (CONST VOID
*)gBS
->CalculateCrc32
,
425 if ( EFI_ERROR ( Status
)) {
430 // Miscellaneous Services
432 Status
= RowPointer ( SocketFD
,
435 (CONST VOID
*)gBS
->CopyMem
,
437 if ( EFI_ERROR ( Status
)) {
440 Status
= RowPointer ( SocketFD
,
443 (CONST VOID
*)gBS
->SetMem
,
445 if ( EFI_ERROR ( Status
)) {
448 Status
= RowPointer ( SocketFD
,
451 (CONST VOID
*)gBS
->CreateEventEx
,
453 if ( EFI_ERROR ( Status
)) {
458 // Build the table trailer
460 Status
= TableTrailer ( SocketFD
,
467 // Return the operation status
469 DBG_EXIT_STATUS ( Status
);