TianoCore EDK2 master
|
#include <PiMm.h>
#include <Protocol/MmAccess.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/PrmModuleDiscoveryLib.h>
#include <Library/PrmPeCoffLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/LoadedImage.h>
#include "PrmModuleDiscovery.h"
Go to the source code of this file.
Macros | |
#define | _DBGMSGID_ "[PRMMODULEDISCOVERYLIB]" |
Functions | |
EFI_STATUS EFIAPI | GetNextPrmModuleEntry (IN OUT PRM_MODULE_IMAGE_CONTEXT **ModuleImageContext) |
PRM_MODULE_IMAGE_CONTEXT_LIST_ENTRY * | CreateNewPrmModuleImageContextListEntry (VOID) |
BOOLEAN EFIAPI | IsAddressInMmram (IN EFI_PHYSICAL_ADDRESS Address, IN EFI_MMRAM_DESCRIPTOR *MmramRanges, IN UINTN MmramRangeCount) |
EFI_STATUS EFIAPI | DiscoverPrmModules (OUT UINTN *ModuleCount OPTIONAL, OUT UINTN *HandlerCount OPTIONAL) |
EFI_STATUS EFIAPI | PrmModuleDiscoveryLibDestructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
EFI_STATUS EFIAPI | PrmModuleDiscoveryLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
Variables | |
LIST_ENTRY | mPrmModuleList |
The PRM Module Discovery library provides functionality to discover PRM modules installed by platform firmware.
Copyright (c) Microsoft Corporation Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file DxePrmModuleDiscoveryLib.c.
#define _DBGMSGID_ "[PRMMODULEDISCOVERYLIB]" |
Definition at line 24 of file DxePrmModuleDiscoveryLib.c.
PRM_MODULE_IMAGE_CONTEXT_LIST_ENTRY * CreateNewPrmModuleImageContextListEntry | ( | VOID | ) |
Creates a new PRM Module Image Context linked list entry.
PrmModuleImageContextListEntry | If successful, a pointer a PRM Module Image Context linked list entry otherwise, NULL is returned. |
Definition at line 91 of file DxePrmModuleDiscoveryLib.c.
EFI_STATUS EFIAPI DiscoverPrmModules | ( | OUT UINTN *ModuleCount | OPTIONAL, |
OUT UINTN *HandlerCount | OPTIONAL | ||
) |
Discovers all PRM Modules loaded during boot.
Each PRM Module discovered is placed into a linked list so the list can br processsed in the future.
[out] | ModuleCount | An optional pointer parameter that, if provided, is set to the number of PRM modules discovered. |
[out] | HandlerCount | An optional pointer parameter that, if provided, is set to the number of PRM handlers discovered. |
EFI_SUCCESS | All PRM Modules were discovered successfully. |
EFI_INVALID_PARAMETER | An actual pointer parameter was passed as NULL. |
EFI_NOT_FOUND | The gEfiLoadedImageProtocolGuid protocol could not be found. |
EFI_OUT_OF_RESOURCES | Insufficient memory resources to allocate the new PRM Context linked list nodes. |
EFI_ALREADY_STARTED | The function was called previously and already discovered the PRM modules loaded on this boot. |
Definition at line 170 of file DxePrmModuleDiscoveryLib.c.
EFI_STATUS EFIAPI GetNextPrmModuleEntry | ( | IN OUT PRM_MODULE_IMAGE_CONTEXT ** | ModuleImageContext | ) |
Gets the next PRM module discovered after the given PRM module.
[in,out] | ModuleImageContext | A pointer to a pointer to a PRM module image context structure. ModuleImageContext should point to a pointer that points to NULL to get the first PRM module discovered. |
EFI_SUCCESS | The next PRM module was found successfully. |
EFI_INVALID_PARAMETER | The given ModuleImageContext structure is invalid or the pointer is NULL. |
EFI_NOT_FOUND | The next PRM module was not found. |
Definition at line 42 of file DxePrmModuleDiscoveryLib.c.
BOOLEAN EFIAPI IsAddressInMmram | ( | IN EFI_PHYSICAL_ADDRESS | Address, |
IN EFI_MMRAM_DESCRIPTOR * | MmramRanges, | ||
IN UINTN | MmramRangeCount | ||
) |
Check whether the address is within any of the MMRAM ranges.
[in] | Address | The address to be checked. |
[in] | MmramRanges | Pointer to MMRAM descriptor. |
[in] | MmramRangeCount | MMRAM range count. |
TRUE | The address is in MMRAM ranges. |
FALSE | The address is out of MMRAM ranges. |
Definition at line 130 of file DxePrmModuleDiscoveryLib.c.
EFI_STATUS EFIAPI PrmModuleDiscoveryLibConstructor | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
The constructor function for this library instance.
Internally initializes data structures used later during library execution.
ImageHandle | The firmware allocated handle for the EFI image. |
SystemTable | A pointer to the EFI System Table. |
EFI_SUCCESS | The constructor always returns EFI_SUCCESS. |
Definition at line 378 of file DxePrmModuleDiscoveryLib.c.
EFI_STATUS EFIAPI PrmModuleDiscoveryLibDestructor | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
The destructor function for this library instance.
Frees global resources allocated by this library instance.
ImageHandle | The firmware allocated handle for the EFI image. |
SystemTable | A pointer to the EFI System Table. |
EFI_SUCCESS | The destructor always returns EFI_SUCCESS. |
Definition at line 338 of file DxePrmModuleDiscoveryLib.c.
LIST_ENTRY mPrmModuleList |
Definition at line 26 of file DxePrmModuleDiscoveryLib.c.