> -----Original Message----- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Gao, > Zhichao > Sent: Monday, April 15, 2019 11:06 AM > To: devel@edk2.groups.io > Cc: Bret Barkelew; Wang, Jian J; Wu, Hao A; Ni, Ray; Zeng, Star; Gao, Liming; > Sean Brogan; Michael Turner > Subject: [edk2-devel] [PATCH 25/25] MdeModulePkg/ResetUtilityLib: Add a new > API ResetSystemWithSubtype > > From: Bret Barkelew <bret.barke...@microsoft.com> > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1458 > > Implement the new API ResetSystemWithSubtype. Depend on Uefi Spec > 2.8 chapter 8.5.1, the ResetData is valid while the ResetStatus > is EFI_SUCCESS regardless of the ResetType. Also change the function > ResetPlatofrmSpecificGuid to directly call ResetSystemWithSubtype > to reduce the duplicated code. > > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: Hao Wu <hao.a...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Star Zeng <star.z...@intel.com> > Cc: Liming Gao <liming....@intel.com> > Cc: Sean Brogan <sean.bro...@microsoft.com> > Cc: Michael Turner <michael.tur...@microsoft.com> > Cc: Bret Barkelew <bret.barke...@microsoft.com> > Signed-off-by: Zhichao Gao <zhichao....@intel.com> > --- > .../Library/ResetUtilityLib/ResetUtility.c | 36 +++++++++++++++---- > 1 file changed, 30 insertions(+), 6 deletions(-) > > diff --git a/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > b/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > index 59f14edadc..45dbd2a952 100644 > --- a/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > +++ b/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > @@ -31,16 +31,14 @@ VERIFY_SIZE_OF > (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, 18); > no custom data. The subtype will be formatted in such a way that it can be > picked up by notification registrations and custom handlers. > > - NOTE: This call will fail if the architectural ResetSystem underpinnings > - are not initialized. For DXE, you can add gEfiResetArchProtocolGuid > - to your DEPEX. > - > + @param[in] ResetType The default EFI_RESET_TYPE of the reset. > @param[in] ResetSubtype GUID pointer for the reset subtype to be used. > > **/ > VOID > EFIAPI > -ResetPlatformSpecificGuid ( > +ResetSystemWithSubtype ( > + IN EFI_RESET_TYPE ResetType, > IN CONST GUID *ResetSubtype > ) > { > @@ -51,7 +49,33 @@ ResetPlatformSpecificGuid ( > (GUID *)((UINT8 *)&ResetData + OFFSET_OF > (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, ResetSubtype)), > ResetSubtype > ); > - ResetPlatformSpecific (sizeof (ResetData), &ResetData); > + > + ResetSystem (ResetType, EFI_SUCCESS, sizeof (ResetData), &ResetData); > +} > + > +/** > + This is a shorthand helper function to reset with a subtype so that > + the caller doesn't have to bother with a function that has half a dozen > + parameters. > + > + This will generate a reset with status EFI_SUCCESS, a NULL string, and > + no custom data. The subtype will be formatted in such a way that it can be > + picked up by notification registrations and custom handlers. > + > + NOTE: This call will fail if the architectural ResetSystem underpinnings > + are not initialized. For DXE, you can add gEfiResetArchProtocolGuid > + to your DEPEX. > + > + @param[in] ResetSubtype GUID pointer for the reset subtype to be used. > + > +**/ > +VOID > +EFIAPI > +ResetPlatformSpecificGuid ( > + IN CONST GUID *ResetSubtype > + ) > +{ > + ResetSystemWithSubtype (EfiResetPlatformSpecific, ResetSubtype); > }
Apart from the API description comments mentioned in patch 24, the patch seems good to me, Reviewed-by: Hao Wu <hao.a...@intel.com> Best Regards, Hao Wu > > /** > -- > 2.21.0.windows.1 > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#39200): https://edk2.groups.io/g/devel/message/39200 Mute This Topic: https://groups.io/mt/31137361/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-