TianoCore EDK2 master
Loading...
Searching...
No Matches
DxePrmModuleDiscoveryLib.c File Reference

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_ENTRYCreateNewPrmModuleImageContextListEntry (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
 

Detailed Description

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.

Macro Definition Documentation

◆ _DBGMSGID_

#define _DBGMSGID_   "[PRMMODULEDISCOVERYLIB]"

Definition at line 24 of file DxePrmModuleDiscoveryLib.c.

Function Documentation

◆ CreateNewPrmModuleImageContextListEntry()

PRM_MODULE_IMAGE_CONTEXT_LIST_ENTRY * CreateNewPrmModuleImageContextListEntry ( VOID  )

Creates a new PRM Module Image Context linked list entry.

Return values
PrmModuleImageContextListEntryIf successful, a pointer a PRM Module Image Context linked list entry otherwise, NULL is returned.

Definition at line 91 of file DxePrmModuleDiscoveryLib.c.

◆ DiscoverPrmModules()

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.

Parameters
[out]ModuleCountAn optional pointer parameter that, if provided, is set to the number of PRM modules discovered.
[out]HandlerCountAn optional pointer parameter that, if provided, is set to the number of PRM handlers discovered.
Return values
EFI_SUCCESSAll PRM Modules were discovered successfully.
EFI_INVALID_PARAMETERAn actual pointer parameter was passed as NULL.
EFI_NOT_FOUNDThe gEfiLoadedImageProtocolGuid protocol could not be found.
EFI_OUT_OF_RESOURCESInsufficient memory resources to allocate the new PRM Context linked list nodes.
EFI_ALREADY_STARTEDThe function was called previously and already discovered the PRM modules loaded on this boot.

Definition at line 170 of file DxePrmModuleDiscoveryLib.c.

◆ GetNextPrmModuleEntry()

EFI_STATUS EFIAPI GetNextPrmModuleEntry ( IN OUT PRM_MODULE_IMAGE_CONTEXT **  ModuleImageContext)

Gets the next PRM module discovered after the given PRM module.

Parameters
[in,out]ModuleImageContextA 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.
Return values
EFI_SUCCESSThe next PRM module was found successfully.
EFI_INVALID_PARAMETERThe given ModuleImageContext structure is invalid or the pointer is NULL.
EFI_NOT_FOUNDThe next PRM module was not found.

Definition at line 42 of file DxePrmModuleDiscoveryLib.c.

◆ IsAddressInMmram()

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.

Parameters
[in]AddressThe address to be checked.
[in]MmramRangesPointer to MMRAM descriptor.
[in]MmramRangeCountMMRAM range count.
Return values
TRUEThe address is in MMRAM ranges.
FALSEThe address is out of MMRAM ranges.

Definition at line 130 of file DxePrmModuleDiscoveryLib.c.

◆ PrmModuleDiscoveryLibConstructor()

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.

Parameters
ImageHandleThe firmware allocated handle for the EFI image.
SystemTableA pointer to the EFI System Table.
Return values
EFI_SUCCESSThe constructor always returns EFI_SUCCESS.

Definition at line 378 of file DxePrmModuleDiscoveryLib.c.

◆ PrmModuleDiscoveryLibDestructor()

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.

Parameters
ImageHandleThe firmware allocated handle for the EFI image.
SystemTableA pointer to the EFI System Table.
Return values
EFI_SUCCESSThe destructor always returns EFI_SUCCESS.

Definition at line 338 of file DxePrmModuleDiscoveryLib.c.

Variable Documentation

◆ mPrmModuleList

LIST_ENTRY mPrmModuleList

Definition at line 26 of file DxePrmModuleDiscoveryLib.c.