1 /**
2 @file
3 Display the firmware
4
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
10
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.
13
14 **/
15
16 #include <WebServer.h>
17
18
19 /**
20 Respond with the firmware status
21
22 @param [in] SocketFD The socket's file descriptor to add to the list.
23 @param [in] pPort The WSDT_PORT structure address
24 @param [out] pbDone Address to receive the request completion status
25
26 @retval EFI_SUCCESS The request was successfully processed
27
28 **/
29 EFI_STATUS
FirmwarePage(IN int SocketFD,IN WSDT_PORT * pPort,OUT BOOLEAN * pbDone)30 FirmwarePage (
31 IN int SocketFD,
32 IN WSDT_PORT * pPort,
33 OUT BOOLEAN * pbDone
34 )
35 {
36 EFI_STATUS Status;
37
38 DBG_ENTER ( );
39
40 //
41 // Send the system table page
42 //
43 for ( ; ; ) {
44 //
45 // Send the page and table header
46 //
47 Status = TableHeader ( SocketFD, pPort, L"Firmware", NULL );
48 if ( EFI_ERROR ( Status )) {
49 break;
50 }
51
52 //
53 // Display the firmware vendor and revision
54 //
55 Status = RowUnicodeString ( SocketFD,
56 pPort,
57 "Vendor",
58 gST->FirmwareVendor );
59 if ( EFI_ERROR ( Status )) {
60 break;
61 }
62
63 Status = RowRevision ( SocketFD,
64 pPort,
65 "Revision",
66 gST->FirmwareRevision );
67 if ( EFI_ERROR ( Status )) {
68 break;
69 }
70
71 //
72 // Display the UEFI version
73 //
74 Status = RowRevision ( SocketFD,
75 pPort,
76 "UEFI",
77 gST->Hdr.Revision );
78 if ( EFI_ERROR ( Status )) {
79 break;
80 }
81
82 //
83 // Build the table trailer
84 //
85 Status = TableTrailer ( SocketFD,
86 pPort,
87 pbDone );
88 break;
89 }
90
91 //
92 // Return the operation status
93 //
94 DBG_EXIT_STATUS ( Status );
95 return Status;
96 }
97