2 This file contains an 'Intel UEFI Application' and is
3 licensed for Intel CPUs and chipsets under the terms of your
4 license agreement with Intel or your vendor. This file may
5 be modified by the user, subject to additional terms of the
10 Copyright (c) 2011 Intel Corporation. All rights reserved
11 This software and associated documentation (if any) is furnished
12 under a license and may only be used or copied in accordance
13 with the terms of the license. Except as permitted by such
14 license, no part of this software or documentation may be
15 reproduced, stored in a retrieval system, or transmitted in any
16 form or by any means without the express written consent of
22 Display the boot services table
26 #include <WebServer.h>
29 Respond with the boot services table
31 @param [in] SocketFD The socket's file descriptor to add to the list.
32 @param [in] pPort The WSDT_PORT structure address
33 @param [out] pbDone Address to receive the request completion status
35 @retval EFI_SUCCESS The request was successfully processed
39 BootServicesTablePage (
50 // Send the boot services page
54 // Send the page and table header
56 Status
= TableHeader ( SocketFD
, pPort
, L
"Boot Services Table", gBS
);
57 if ( EFI_ERROR ( Status
)) {
62 /// The table header for the EFI Boot Services Table.
64 Status
= EfiTableHeader ( SocketFD
,
67 if ( EFI_ERROR ( Status
)) {
72 // Task Priority Services
74 Status
= RowPointer ( SocketFD
,
77 (CONST VOID
*)gBS
->RaiseTPL
,
79 if ( EFI_ERROR ( Status
)) {
82 Status
= RowPointer ( SocketFD
,
85 (CONST VOID
*)gBS
->RestoreTPL
,
87 if ( EFI_ERROR ( Status
)) {
94 Status
= RowPointer ( SocketFD
,
97 (CONST VOID
*)gBS
->AllocatePages
,
99 if ( EFI_ERROR ( Status
)) {
102 Status
= RowPointer ( SocketFD
,
105 (CONST VOID
*)gBS
->FreePages
,
107 if ( EFI_ERROR ( Status
)) {
110 Status
= RowPointer ( SocketFD
,
113 (CONST VOID
*)gBS
->GetMemoryMap
,
115 if ( EFI_ERROR ( Status
)) {
118 Status
= RowPointer ( SocketFD
,
121 (CONST VOID
*)gBS
->AllocatePool
,
123 if ( EFI_ERROR ( Status
)) {
126 Status
= RowPointer ( SocketFD
,
129 (CONST VOID
*)gBS
->FreePool
,
131 if ( EFI_ERROR ( Status
)) {
136 // Event & Timer Services
138 Status
= RowPointer ( SocketFD
,
141 (CONST VOID
*)gBS
->CreateEvent
,
143 if ( EFI_ERROR ( Status
)) {
146 Status
= RowPointer ( SocketFD
,
149 (CONST VOID
*)gBS
->SetTimer
,
151 if ( EFI_ERROR ( Status
)) {
154 Status
= RowPointer ( SocketFD
,
157 (CONST VOID
*)gBS
->WaitForEvent
,
159 if ( EFI_ERROR ( Status
)) {
162 Status
= RowPointer ( SocketFD
,
165 (CONST VOID
*)gBS
->SignalEvent
,
167 if ( EFI_ERROR ( Status
)) {
170 Status
= RowPointer ( SocketFD
,
173 (CONST VOID
*)gBS
->CloseEvent
,
175 if ( EFI_ERROR ( Status
)) {
178 Status
= RowPointer ( SocketFD
,
181 (CONST VOID
*)gBS
->CheckEvent
,
183 if ( EFI_ERROR ( Status
)) {
188 // Protocol Handler Services
190 Status
= RowPointer ( SocketFD
,
192 "InstallProtocolInterface",
193 (CONST VOID
*)gBS
->InstallProtocolInterface
,
195 if ( EFI_ERROR ( Status
)) {
198 Status
= RowPointer ( SocketFD
,
200 "ReinstallProtocolInterface",
201 (CONST VOID
*)gBS
->ReinstallProtocolInterface
,
203 if ( EFI_ERROR ( Status
)) {
206 Status
= RowPointer ( SocketFD
,
208 "UninstallProtocolInterface",
209 (CONST VOID
*)gBS
->UninstallProtocolInterface
,
211 if ( EFI_ERROR ( Status
)) {
214 Status
= RowPointer ( SocketFD
,
217 (CONST VOID
*)gBS
->HandleProtocol
,
219 if ( EFI_ERROR ( Status
)) {
222 Status
= RowPointer ( SocketFD
,
225 (CONST VOID
*)gBS
->Reserved
,
227 if ( EFI_ERROR ( Status
)) {
230 Status
= RowPointer ( SocketFD
,
232 "RegisterProtocolNotify",
233 (CONST VOID
*)gBS
->RegisterProtocolNotify
,
235 if ( EFI_ERROR ( Status
)) {
238 Status
= RowPointer ( SocketFD
,
241 (CONST VOID
*)gBS
->LocateHandle
,
243 if ( EFI_ERROR ( Status
)) {
246 Status
= RowPointer ( SocketFD
,
249 (CONST VOID
*)gBS
->LocateDevicePath
,
251 if ( EFI_ERROR ( Status
)) {
254 Status
= RowPointer ( SocketFD
,
256 "InstallConfigurationTable",
257 (CONST VOID
*)gBS
->InstallConfigurationTable
,
259 if ( EFI_ERROR ( Status
)) {
266 Status
= RowPointer ( SocketFD
,
269 (CONST VOID
*)gBS
->LoadImage
,
271 if ( EFI_ERROR ( Status
)) {
274 Status
= RowPointer ( SocketFD
,
277 (CONST VOID
*)gBS
->StartImage
,
279 if ( EFI_ERROR ( Status
)) {
282 Status
= RowPointer ( SocketFD
,
285 (CONST VOID
*)gBS
->Exit
,
287 if ( EFI_ERROR ( Status
)) {
290 Status
= RowPointer ( SocketFD
,
293 (CONST VOID
*)gBS
->UnloadImage
,
295 if ( EFI_ERROR ( Status
)) {
298 Status
= RowPointer ( SocketFD
,
301 (CONST VOID
*)gBS
->ExitBootServices
,
303 if ( EFI_ERROR ( Status
)) {
308 // Miscellaneous Services
310 Status
= RowPointer ( SocketFD
,
312 "GetNextMonotonicCount",
313 (CONST VOID
*)gBS
->GetNextMonotonicCount
,
315 if ( EFI_ERROR ( Status
)) {
318 Status
= RowPointer ( SocketFD
,
321 (CONST VOID
*)gBS
->Stall
,
323 if ( EFI_ERROR ( Status
)) {
326 Status
= RowPointer ( SocketFD
,
329 (CONST VOID
*)gBS
->SetWatchdogTimer
,
331 if ( EFI_ERROR ( Status
)) {
336 // DriverSupport Services
338 Status
= RowPointer ( SocketFD
,
341 (CONST VOID
*)gBS
->ConnectController
,
343 if ( EFI_ERROR ( Status
)) {
346 Status
= RowPointer ( SocketFD
,
348 "DisconnectController",
349 (CONST VOID
*)gBS
->DisconnectController
,
351 if ( EFI_ERROR ( Status
)) {
356 // Open and Close Protocol Services
358 Status
= RowPointer ( SocketFD
,
361 (CONST VOID
*)gBS
->OpenProtocol
,
363 if ( EFI_ERROR ( Status
)) {
366 Status
= RowPointer ( SocketFD
,
369 (CONST VOID
*)gBS
->CloseProtocol
,
371 if ( EFI_ERROR ( Status
)) {
374 Status
= RowPointer ( SocketFD
,
376 "OpenProtocolInformation",
377 (CONST VOID
*)gBS
->OpenProtocolInformation
,
379 if ( EFI_ERROR ( Status
)) {
386 Status
= RowPointer ( SocketFD
,
388 "ProtocolsPerHandle",
389 (CONST VOID
*)gBS
->ProtocolsPerHandle
,
391 if ( EFI_ERROR ( Status
)) {
394 Status
= RowPointer ( SocketFD
,
396 "LocateHandleBuffer",
397 (CONST VOID
*)gBS
->LocateHandleBuffer
,
399 if ( EFI_ERROR ( Status
)) {
402 Status
= RowPointer ( SocketFD
,
405 (CONST VOID
*)gBS
->LocateProtocol
,
407 if ( EFI_ERROR ( Status
)) {
410 Status
= RowPointer ( SocketFD
,
412 "InstallMultipleProtocolInterfaces",
413 (CONST VOID
*)gBS
->InstallMultipleProtocolInterfaces
,
415 if ( EFI_ERROR ( Status
)) {
418 Status
= RowPointer ( SocketFD
,
420 "UninstallMultipleProtocolInterfaces",
421 (CONST VOID
*)gBS
->UninstallMultipleProtocolInterfaces
,
423 if ( EFI_ERROR ( Status
)) {
428 // 32-bit CRC Services
430 Status
= RowPointer ( SocketFD
,
433 (CONST VOID
*)gBS
->CalculateCrc32
,
435 if ( EFI_ERROR ( Status
)) {
440 // Miscellaneous Services
442 Status
= RowPointer ( SocketFD
,
445 (CONST VOID
*)gBS
->CopyMem
,
447 if ( EFI_ERROR ( Status
)) {
450 Status
= RowPointer ( SocketFD
,
453 (CONST VOID
*)gBS
->SetMem
,
455 if ( EFI_ERROR ( Status
)) {
458 Status
= RowPointer ( SocketFD
,
461 (CONST VOID
*)gBS
->CreateEventEx
,
463 if ( EFI_ERROR ( Status
)) {
468 // Build the table trailer
470 Status
= TableTrailer ( SocketFD
,
477 // Return the operation status
479 DBG_EXIT_STATUS ( Status
);