> -----Original Message----- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Gao, > Zhichao > Sent: Wednesday, April 17, 2019 2:27 PM > 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 V2 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 | 40 ++++++++++++++++--- > 1 file changed, 34 insertions(+), 6 deletions(-) > > diff --git a/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > b/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > index 59f14edadc..2b5af4b95a 100644 > --- a/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > +++ b/MdeModulePkg/Library/ResetUtilityLib/ResetUtility.c > @@ -1,7 +1,7 @@ > /** @file > This contains the business logic for the module-specific Reset Helper > functions. > > - Copyright (c) 2017 - 2018 Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2017 - 2019 Intel Corporation. All rights reserved.<BR> > Copyright (c) 2016 Microsoft Corporation. All rights reserved.<BR> > > SPDX-License-Identifier: BSD-2-Clause-Patent > @@ -23,9 +23,9 @@ typedef struct { > VERIFY_SIZE_OF (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, 18); > > /** > - 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 is a shorthand helper function to reset with reset type and 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 > @@ -35,12 +35,14 @@ VERIFY_SIZE_OF > (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, 18); > 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 +53,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 the reset type > + 'EfiResetPlatformSpecific' and 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);
Thanks for addressing the comments. 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 (#39233): https://edk2.groups.io/g/devel/message/39233 Mute This Topic: https://groups.io/mt/31209245/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-