PrmPkg: Refactor some PrmLoaderDxe functionality into libraries

This change breaks out two sets of responsibilities in
PrmLoaderDxe into libraries:
  * PE/COFF functions -> PrmPeCoffLib
  * PRM module discovery functions -> PrmModuleDiscoveryLib

This is core infrastructure code for PRM functionality that needs
to be directly reused and tested in other places. At this time,
the primary motivating factor is to use this code in two other
locations:
  1.) Link the functionality into unit testing modules
  2.) Link the functionality into a PRM UEFI application

Cc: Andrew Fish <afish@apple.com>
Cc: Kang Gao <kang.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Michael Kubacki <michael.kubacki@microsoft.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Liu Yun <yun.y.liu@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Acked-by: Michael D Kinney <michael.d.kinney@intel.com>
Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
Acked-by: Leif Lindholm <quic_llindhol@quicinc.com>
Reviewed-by: Ankit Sinha <ankit.sinha@intel.com>
This commit is contained in:
Michael Kubacki
2020-06-12 14:24:46 -07:00
committed by mergify[bot]
parent d10b8dc5d8
commit 6b7dde7cdd
13 changed files with 1133 additions and 636 deletions

View File

@ -0,0 +1,28 @@
/** @file
Definitions used internal to the PrmPkg implementation for PRM module image context.
Copyright (c) Microsoft Corporation
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef PRM_MODULE_IMAGE_CONTEXT_H_
#define PRM_MODULE_IMAGE_CONTEXT_H_
#include <IndustryStandard/PeImage.h>
#include <Library/PeCoffLib.h>
#include <PrmExportDescriptor.h>
#pragma pack(push, 1)
typedef struct {
PE_COFF_LOADER_IMAGE_CONTEXT PeCoffImageContext;
EFI_IMAGE_EXPORT_DIRECTORY *ExportDirectory;
PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT *ExportDescriptor;
} PRM_MODULE_IMAGE_CONTEXT;
#pragma pack(pop)
#endif