]> git.proxmox.com Git - mirror_edk2.git/commit
MdeModulePkg/CapsuleLib: Follow UEFI 22.2.3 to process FMP.
authorJiewen Yao <jiewen.yao@intel.com>
Fri, 23 Dec 2016 15:22:30 +0000 (23:22 +0800)
committerJiewen Yao <jiewen.yao@intel.com>
Mon, 26 Dec 2016 04:23:34 +0000 (12:23 +0800)
commit3f31ea1b3d59c909734a8b709a0cfb761579981e
tree9cbbca1621f51abff724902db8bdbdeaa8042784
parent777034ce83a8ee4a13cda7c45524933459237595
MdeModulePkg/CapsuleLib: Follow UEFI 22.2.3 to process FMP.

Previous logic does not follow UEFI 22.2.3 to process FMP strictly.
It may cause FMP image not be processed in some corner case.
The updated logic follows UEFI 22.2.3.

The way to check if a capsule is processed is also simplified.

The function - ProcessFmpCapsuleImage() is too big, so that
we created sub-functions - StartFmpImage(), DumpAllFmpInfo(),
GetFmpHandleBufferByType(), SetFmpImageData(), RecordFmpCapsuleStatus()
to improve the readability.

The function - ProcessTheseCapsules() is too big, so that
we created sub-functions - InitCapsulePtr(), AreAllImagesProcessed(),
PopulateCapsuleInConfigurationTable() to improve the readability.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c
MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c
MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleReportLib.c
MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleReportLibNull.c