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**/
29EFI_STATUS
30FirmwarePage (
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