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 runtime services table
26 #include <WebServer.h>
27 #include <Library/UefiRuntimeServicesTableLib.h>
30 Respond with the runtime services table
32 @param [in] SocketFD The socket's file descriptor to add to the list.
33 @param [in] pPort The WSDT_PORT structure address
34 @param [out] pbDone Address to receive the request completion status
36 @retval EFI_SUCCESS The request was successfully processed
40 RuntimeSservicesTablePage (
51 // Send the runtime services page
55 // Send the page and table header
57 Status
= TableHeader ( SocketFD
, pPort
, L
"Runtime Services Table", gRT
);
58 if ( EFI_ERROR ( Status
)) {
63 /// The table header for the EFI Runtime Services Table.
65 Status
= EfiTableHeader ( SocketFD
,
68 if ( EFI_ERROR ( Status
)) {
75 Status
= RowPointer ( SocketFD
,
80 if ( EFI_ERROR ( Status
)) {
83 Status
= RowPointer ( SocketFD
,
88 if ( EFI_ERROR ( Status
)) {
91 Status
= RowPointer ( SocketFD
,
94 (VOID
*)gRT
->GetWakeupTime
,
96 if ( EFI_ERROR ( Status
)) {
99 Status
= RowPointer ( SocketFD
,
102 (VOID
*)gRT
->SetWakeupTime
,
104 if ( EFI_ERROR ( Status
)) {
109 // Virtual Memory Services
111 Status
= RowPointer ( SocketFD
,
113 "SetVirtualAddressMap",
114 (VOID
*)gRT
->SetVirtualAddressMap
,
116 if ( EFI_ERROR ( Status
)) {
119 Status
= RowPointer ( SocketFD
,
122 (VOID
*)gRT
->ConvertPointer
,
124 if ( EFI_ERROR ( Status
)) {
131 Status
= RowPointer ( SocketFD
,
134 (VOID
*)gRT
->GetVariable
,
136 if ( EFI_ERROR ( Status
)) {
139 Status
= RowPointer ( SocketFD
,
141 "GetNextVariableName",
142 (VOID
*)gRT
->GetNextVariableName
,
144 if ( EFI_ERROR ( Status
)) {
147 Status
= RowPointer ( SocketFD
,
150 (VOID
*)gRT
->SetVariable
,
152 if ( EFI_ERROR ( Status
)) {
157 // Miscellaneous Services
159 Status
= RowPointer ( SocketFD
,
161 "GetNextHighNonotonicCount",
162 (VOID
*)gRT
->GetNextHighMonotonicCount
,
164 if ( EFI_ERROR ( Status
)) {
167 Status
= RowPointer ( SocketFD
,
170 (VOID
*)gRT
->ResetSystem
,
172 if ( EFI_ERROR ( Status
)) {
177 // Determine if the structures supports 2.0 services
179 if ( 2 <= ( gRT
->Hdr
.Revision
>> 16 )) {
181 // UEFI 2.0 Capsule Services
183 Status
= RowPointer ( SocketFD
,
186 (VOID
*)gRT
->UpdateCapsule
,
188 if ( EFI_ERROR ( Status
)) {
191 Status
= RowPointer ( SocketFD
,
193 "QueryCapsuleCapabilities",
194 (VOID
*)gRT
->QueryCapsuleCapabilities
,
196 if ( EFI_ERROR ( Status
)) {
201 // Miscellaneous UEFI 2.0 Service
203 Status
= RowPointer ( SocketFD
,
206 (VOID
*)gRT
->QueryVariableInfo
,
208 if ( EFI_ERROR ( Status
)) {
214 // Build the table trailer
216 Status
= TableTrailer ( SocketFD
,
223 // Return the operation status
225 DBG_EXIT_STATUS ( Status
);