/** @file Display the DXE services table Copyright (c) 2011 - 2012 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent --*/ #include #include #include /** Respond with the DXE services table @param[in] SocketFD The socket's file descriptor to add to the list. @param[in] pPort The WSDT_PORT structure address @param[out] pbDone Address to receive the request completion status @retval EFI_SUCCESS The request was successfully processed **/ EFI_STATUS DxeServicesTablePage ( IN int SocketFD, IN WSDT_PORT * pPort, OUT BOOLEAN * pbDone ) { EFI_DXE_SERVICES * pDS; EFI_STATUS Status; DBG_ENTER ( ); // // Send the DXE services page // for ( ; ; ) { // // Get the DXE services table // Status = EfiGetSystemConfigurationTable (&gEfiDxeServicesTableGuid, (VOID **) &pDS); if ( EFI_ERROR ( Status )) { break; } // // Send the page and table header // Status = TableHeader ( SocketFD, pPort, L"DXE Services Table", pDS ); if ( EFI_ERROR ( Status )) { break; } /// /// The table header for the DXE Services Table. /// This header contains the DXE_SERVICES_SIGNATURE and DXE_SERVICES_REVISION values. /// Status = EfiTableHeader ( SocketFD, pPort, &pDS->Hdr ); if ( EFI_ERROR ( Status )) { break; } // // Global Coherency Domain Services // Status = RowPointer ( SocketFD, pPort, "AddMemorySpace", (VOID *)pDS->AddMemorySpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "AllocateMemorySpace", (VOID *)pDS->AllocateMemorySpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "FreeMemorySpace", (VOID *)pDS->FreeMemorySpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "RemoveMemorySpace", (VOID *)pDS->RemoveMemorySpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "GetMemorySpaceDescriptor", (VOID *)pDS->GetMemorySpaceDescriptor, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "SetMemorySpaceAttributes", (VOID *)pDS->SetMemorySpaceAttributes, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "GetMemorySpaceMap", (VOID *)pDS->GetMemorySpaceMap, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "AddIoSpace", (VOID *)pDS->AddIoSpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "AllocateIoSpace", (VOID *)pDS->AllocateIoSpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "FreeIoSpace", (VOID *)pDS->FreeIoSpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "RemoveIoSpace", (VOID *)pDS->RemoveIoSpace, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "GetIoSpaceDescriptor", (VOID *)pDS->GetIoSpaceDescriptor, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "GetIoSpaceMap", (VOID *)pDS->GetIoSpaceMap, NULL ); if ( EFI_ERROR ( Status )) { break; } // // Dispatcher Services // Status = RowPointer ( SocketFD, pPort, "Dispatch", (VOID *)pDS->Dispatch, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "Schedule", (VOID *)pDS->Schedule, NULL ); if ( EFI_ERROR ( Status )) { break; } Status = RowPointer ( SocketFD, pPort, "Trust", (VOID *)pDS->Trust, NULL ); if ( EFI_ERROR ( Status )) { break; } // // Service to process a single firmware volume found in a capsule // Status = RowPointer ( SocketFD, pPort, "ProcessFirmwareVolume", (VOID *)pDS->ProcessFirmwareVolume, NULL ); if ( EFI_ERROR ( Status )) { break; } // // Build the table trailer // Status = TableTrailer ( SocketFD, pPort, pbDone ); break; } // // Return the operation status // DBG_EXIT_STATUS ( Status ); return Status; }