REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3246 RFC: https://edk2.groups.io/g/devel/message/72530
Patch 1 is to add RegisterFilterLib Library Class in edk2 to filter/trace port IO/MMIO/MSR access and add a RegisterFilterLibNull instance. Patch 2 is to add the MdeLibs.dsc.inc file to MdePkg for some default libraries provided by MdePkg and add RegisterFilterLib into it as the first version of MdeLibs.dsc.inc. Last 2 patches are to update APIs in IoLib and BaseLib to filter/trace port IO/MMIO/MSR access. Remaining patches are to update related dsc files to consume MdeLibs.dsc.inc for RegisterFilterLib. Will submit patch 1 and 2 firstly. And then update related dsc files in edk2 and edk2platform repo to consume MdeLibs.dsc.inc for RegisterFilterLib. At last will submit the patches to update IoLib and BaseLib to filter/trace port IO/MMIO/MSR access. -- V2: Introduce MdeLibs.dsc.inc and add RegisterFilterLib into it as the first version of MdeLibs.dsc.inc. Update Platform dsc to consume the MdeLibs.dsc.inc. Add the description for the return flag in FilterBeforeXXXX functions in header file source code. Extend the years for Intel copyright. Add mssing change the dsc files in OvmfPkg. Cc: Andrew Fish <af...@apple.com> Cc: Leif Lindholm <l...@nuviainc.com> Cc: Laszlo Ersek <ler...@redhat.com> Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Liming Gao <gaolim...@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang....@intel.com> Dandan Bi (29): MdePkg: Add RegisterFilterLib class and NULL instance MdePkg: Add MdeLibs.dsc.inc file to MdePkg ArmPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib ArmPlatformPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib ArmVirtPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib CryptoPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib DynamicTablesPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib EmbeddedPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib EmulatorPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib FatPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib FmpDevicePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib IntelFsp2Pkg: Consume MdeLibs.dsc.inc for RegisterFilterLib IntelFsp2WrapperPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib MdeModulePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib MdePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib NetworkPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib OvmfPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib PcAtChipsetPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib RedfishPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib SecurityPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib ShellPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib SignedCapsulePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib SourceLevelDebugPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib StandaloneMmPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib UefiCpuPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib UefiPayloadPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib UnitTestFrameworkPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib MdePkg/IoLib: Filter/trace port IO/MMIO access MdePkg/Baseib: Filter/trace MSR access for IA32/X64 ArmPkg/ArmPkg.dsc | 2 + ArmPlatformPkg/ArmPlatformPkg.dsc | 2 + ArmVirtPkg/ArmVirt.dsc.inc | 4 +- CryptoPkg/CryptoPkg.dsc | 4 +- DynamicTablesPkg/DynamicTablesPkg.dsc | 2 + EmbeddedPkg/EmbeddedPkg.dsc | 4 +- EmulatorPkg/EmulatorPkg.dsc | 4 +- FatPkg/FatPkg.dsc | 4 +- FmpDevicePkg/FmpDevicePkg.dsc | 4 +- IntelFsp2Pkg/IntelFsp2Pkg.dsc | 4 +- IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc | 2 + IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dsc | 4 +- MdeModulePkg/MdeModulePkg.dsc | 4 +- MdePkg/Include/Library/RegisterFilterLib.h | 243 ++++++++++++++++ .../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf | 3 +- .../BaseIoLibIntrinsicArmVirt.inf | 3 +- .../BaseIoLibIntrinsicInternal.h | 3 +- .../BaseIoLibIntrinsicSev.inf | 3 +- MdePkg/Library/BaseIoLibIntrinsic/IoLib.c | 95 ++++-- .../Library/BaseIoLibIntrinsic/IoLibArmVirt.c | 82 +++++- MdePkg/Library/BaseIoLibIntrinsic/IoLibGcc.c | 58 +++- MdePkg/Library/BaseIoLibIntrinsic/IoLibMsc.c | 81 ++++-- MdePkg/Library/BaseIoLibIntrinsic/IoLibNoIo.c | 74 ++++- MdePkg/Library/BaseLib/BaseLib.inf | 5 +- MdePkg/Library/BaseLib/Ia32/GccInlinePriv.c | 38 ++- MdePkg/Library/BaseLib/Ia32/ReadMsr64.c | 38 ++- MdePkg/Library/BaseLib/Ia32/WriteMsr64.c | 22 +- MdePkg/Library/BaseLib/X64/GccInlinePriv.c | 43 ++- MdePkg/Library/BaseLib/X64/ReadMsr64.c | 15 +- MdePkg/Library/BaseLib/X64/WriteMsr64.c | 13 +- .../RegisterFilterLibNull.c | 271 ++++++++++++++++++ .../RegisterFilterLibNull.inf | 23 ++ .../RegisterFilterLibNull.uni | 13 + MdePkg/MdeLibs.dsc.inc | 14 + MdePkg/MdePkg.dec | 7 +- MdePkg/MdePkg.dsc | 6 +- NetworkPkg/NetworkPkg.dsc | 4 +- OvmfPkg/AmdSev/AmdSevX64.dsc | 4 +- OvmfPkg/Bhyve/BhyveX64.dsc | 4 +- OvmfPkg/OvmfPkgIa32.dsc | 4 +- OvmfPkg/OvmfPkgIa32X64.dsc | 4 +- OvmfPkg/OvmfPkgX64.dsc | 4 +- OvmfPkg/OvmfXen.dsc | 4 +- PcAtChipsetPkg/PcAtChipsetPkg.dsc | 4 +- RedfishPkg/RedfishPkg.dsc | 4 +- SecurityPkg/SecurityPkg.dsc | 4 +- ShellPkg/ShellPkg.dsc | 4 +- SignedCapsulePkg/SignedCapsulePkg.dsc | 4 +- SourceLevelDebugPkg/SourceLevelDebugPkg.dsc | 4 +- StandaloneMmPkg/StandaloneMmPkg.dsc | 4 +- UefiCpuPkg/UefiCpuPkg.dsc | 4 +- UefiPayloadPkg/UefiPayloadPkg.dsc | 4 +- .../UnitTestFrameworkPkgTarget.dsc.inc | 4 +- 53 files changed, 1120 insertions(+), 145 deletions(-) create mode 100644 MdePkg/Include/Library/RegisterFilterLib.h create mode 100644 MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.c create mode 100644 MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf create mode 100644 MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.uni create mode 100644 MdePkg/MdeLibs.dsc.inc -- 2.18.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#73071): https://edk2.groups.io/g/devel/message/73071 Mute This Topic: https://groups.io/mt/81519233/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-