> -----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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to