[AMD Official Use Only - General]

Hi Mike,
Not sure how do we have the copyright for individual contributor. Let me check 
with community.

And btw, you can in the patch format in below, there are additional blank line 
for each line. I believe you can use option " --transfer-encoding=8bit" to git 
send-email to resolve this problem.
Thanks
Abner


> -----Original Message-----
> From: Mike Maslenkin <mike.maslen...@gmail.com>
> Sent: Friday, December 15, 2023 7:25 AM
> To: devel@edk2.groups.io
> Cc: Chang, Abner <abner.ch...@amd.com>; nick...@nvidia.com;
> ig...@ami.com; Mike Maslenkin <mike.maslen...@gmail.com>
> Subject: [PATCH v2 06/14] RedfishPkg: add Component Name protocols to
> RedfishConfigHandler driver
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> Currently there is no description for RedfishConfigHandler driver.
> This leads to <null string> in the "DRIVER NAME" column of a `drivers`
> command for example.
>
> Cc: Abner Chang <abner.ch...@amd.com>
> Cc: Nickle Wang <nick...@nvidia.com>
> Cc: Igor Kulchytskyy <ig...@ami.com>
> Signed-off-by: Mike Maslenkin <mike.maslen...@gmail.com>
> ---
>  .../RedfishConfigHandler/ComponentName.c      | 216
> ++++++++++++++++++
>  .../RedfishConfigHandlerDriver.c              |  10 +-
>  .../RedfishConfigHandlerDriver.h              |   4 +-
>  .../RedfishConfigHandlerDriver.inf            |   1 +
>  4 files changed, 228 insertions(+), 3 deletions(-)
>  create mode 100644 RedfishPkg/RedfishConfigHandler/ComponentName.c
>
> diff --git a/RedfishPkg/RedfishConfigHandler/ComponentName.c
> b/RedfishPkg/RedfishConfigHandler/ComponentName.c
> new file mode 100644
> index 000000000000..c6b8b189f3e1
> --- /dev/null
> +++ b/RedfishPkg/RedfishConfigHandler/ComponentName.c
> @@ -0,0 +1,218 @@
> +/** @file
>
> +  Implementation of EFI_COMPONENT_NAME_PROTOCOL and
> EFI_COMPONENT_NAME2_PROTOCOL protocol
>
> +  for EFI Refish Config Handler Protocol
>
> +
>
> +  Copyright (c) 2023, Mike Maslenkin <mike.maslen...@gmail.com>
>
> +
>
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
>
> +
>
> +**/
>
> +
>
> +#include "RedfishConfigHandlerCommon.h"
>
> +
>
> +//
>
> +// EFI Component Name Functions
>
> +//
>
> +
>
> +/**
>
> +  Retrieves a Unicode string that is the user-readable name of the EFI 
> Driver.
>
> +
>
> +  @param[in]  This       A pointer to the EFI_COMPONENT_NAME_PROTOCOL
> instance.
>
> +  @param[in]  Language   A pointer to a three-character ISO 639-2 language
> identifier.
>
> +                         This is the language of the driver name that the 
> caller
>
> +                         is requesting, and it must match one of the 
> languages specified
>
> +                         in SupportedLanguages.  The number of languages 
> supported by
> a
>
> +                         driver is up to the driver writer.
>
> +  @param[out] DriverName A pointer to the Unicode string to return.  This
> Unicode string
>
> +                         is the name of the driver specified by This in the 
> language
>
> +                         specified by Language.
>
> +
>
> +  @retval EFI_SUCCESS           The Unicode string for the Driver specified 
> by This
>
> +                                and the language specified by Language was 
> returned
>
> +                                in DriverName.
>
> +  @retval EFI_INVALID_PARAMETER Language is NULL.
>
> +  @retval EFI_INVALID_PARAMETER DriverName is NULL.
>
> +  @retval EFI_UNSUPPORTED       The driver specified by This does not
> support the
>
> +                                language specified by Language.
>
> +
>
> +**/
>
> +EFI_STATUS
>
> +EFIAPI
>
> +RedfishConfigHandlerComponentNameGetDriverName (
>
> +  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
>
> +  IN  CHAR8                        *Language,
>
> +  OUT CHAR16                       **DriverName
>
> +  );
>
> +
>
> +/**
>
> +  Retrieves a Unicode string that is the user readable name of the controller
>
> +  that is being managed by an EFI Driver.
>
> +
>
> +  @param[in]  This             A pointer to the
> EFI_COMPONENT_NAME_PROTOCOL instance.
>
> +  @param[in]  ControllerHandle The handle of a controller that the driver
> specified by
>
> +                               This is managing.  This handle specifies the 
> controller
>
> +                               whose name is to be returned.
>
> +  @param[in]  ChildHandle      The handle of the child controller to 
> retrieve the
> name
>
> +                               of.  This is an optional parameter that may 
> be NULL.  It
>
> +                               will be NULL for device drivers.  It will 
> also be NULL
>
> +                               for a bus drivers that wish to retrieve the 
> name of the
>
> +                               bus controller.  It will not be NULL for a 
> bus driver
>
> +                               that wishes to retrieve the name of a child 
> controller.
>
> +  @param[in]  Language         A pointer to a three character ISO 639-2
> language
>
> +                               identifier.  This is the language of the 
> controller name
>
> +                               that the caller is requesting, and it must 
> match one
>
> +                               of the languages specified in 
> SupportedLanguages.  The
>
> +                               number of languages supported by a driver is 
> up to the
>
> +                               driver writer.
>
> +  @param[out]  ControllerName  A pointer to the Unicode string to return.
> This Unicode
>
> +                               string is the name of the controller 
> specified by
>
> +                               ControllerHandle and ChildHandle in the 
> language specified
>
> +                               by Language, from the point of view of the 
> driver specified
>
> +                               by This.
>
> +
>
> +  @retval EFI_SUCCESS           The Unicode string for the user-readable 
> name in
> the
>
> +                                language specified by Language for the driver
>
> +                                specified by This was returned in DriverName.
>
> +  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
>
> +  @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a
> valid EFI_HANDLE.
>
> +  @retval EFI_INVALID_PARAMETER Language is NULL.
>
> +  @retval EFI_INVALID_PARAMETER ControllerName is NULL.
>
> +  @retval EFI_UNSUPPORTED       The driver specified by This is not currently
> managing
>
> +                                the controller specified by ControllerHandle 
> and
>
> +                                ChildHandle.
>
> +  @retval EFI_UNSUPPORTED       The driver specified by This does not
> support the
>
> +                                language specified by Language.
>
> +
>
> +**/
>
> +EFI_STATUS
>
> +EFIAPI
>
> +RedfishConfigHandlerComponentNameGetControllerName (
>
> +  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
>
> +  IN  EFI_HANDLE                   ControllerHandle,
>
> +  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,
>
> +  IN  CHAR8                        *Language,
>
> +  OUT CHAR16                       **ControllerName
>
> +  );
>
> +
>
> +///
>
> +/// Component Name Protocol instance
>
> +///
>
> +GLOBAL_REMOVE_IF_UNREFERENCED
>
> +EFI_COMPONENT_NAME_PROTOCOL
> gRedfishConfigHandlerComponentName = {
>
> +  RedfishConfigHandlerComponentNameGetDriverName,
>
> +  RedfishConfigHandlerComponentNameGetControllerName,
>
> +  "eng"
>
> +};
>
> +
>
> +///
>
> +/// Component Name 2 Protocol instance
>
> +///
>
> +GLOBAL_REMOVE_IF_UNREFERENCED
>
> +EFI_COMPONENT_NAME2_PROTOCOL
> gRedfishConfigHandlerComponentName2 = {
>
> +
> (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)RedfishConfigHandlerComp
> onentNameGetDriverName,
>
> +
> (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)RedfishConfigHandler
> ComponentNameGetControllerName,
>
> +  "en"
>
> +};
>
> +
>
> +///
>
> +/// Table of driver names
>
> +///
>
> +GLOBAL_REMOVE_IF_UNREFERENCED
>
> +EFI_UNICODE_STRING_TABLE  mRedfishConfigHandlerDriverNameTable[] = {
>
> +  { "eng;en", (CHAR16 *)L"Redfish Configuration UEFI Driver" },
>
> +  { NULL,     NULL                                           }
>
> +};
>
> +
>
> +GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE
> *gRedfishConfigHandlerControllerNameTable = NULL;
>
> +
>
> +/**
>
> +  Retrieves a Unicode string that is the user-readable name of the EFI 
> Driver.
>
> +
>
> +  @param[in]  This        A pointer to the EFI_COMPONENT_NAME_PROTOCOL
> instance.
>
> +  @param[in]  Language    A pointer to a three-character ISO 639-2 language
> identifier.
>
> +                          This is the language of the driver name that the 
> caller
>
> +                          is requesting, and it must match one of the 
> languages specified
>
> +                          in SupportedLanguages.  The number of languages 
> supported
> by a
>
> +                          driver is up to the driver writer.
>
> +  @param[out]  DriverName A pointer to the Unicode string to return.  This
> Unicode string
>
> +                          is the name of the driver specified by This in the 
> language
>
> +                          specified by Language.
>
> +
>
> +  @retval EFI_SUCCESS           The Unicode string for the Driver specified 
> by This
>
> +                                and the language specified by Language was 
> returned
>
> +                                in DriverName.
>
> +  @retval EFI_INVALID_PARAMETER Language is NULL.
>
> +  @retval EFI_INVALID_PARAMETER DriverName is NULL.
>
> +  @retval EFI_UNSUPPORTED       The driver specified by This does not
> support the
>
> +                                language specified by Language.
>
> +
>
> +**/
>
> +EFI_STATUS
>
> +EFIAPI
>
> +RedfishConfigHandlerComponentNameGetDriverName (
>
> +  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
>
> +  IN  CHAR8                        *Language,
>
> +  OUT CHAR16                       **DriverName
>
> +  )
>
> +{
>
> +  return LookupUnicodeString2 (
>
> +           Language,
>
> +           This->SupportedLanguages,
>
> +           mRedfishConfigHandlerDriverNameTable,
>
> +           DriverName,
>
> +           (BOOLEAN)(This == &gRedfishConfigHandlerComponentName)
>
> +           );
>
> +}
>
> +
>
> +/**
>
> +  Retrieves a Unicode string that is the user readable name of the controller
>
> +  that is being managed by an EFI Driver.
>
> +
>
> +  @param[in]  This             A pointer to the
> EFI_COMPONENT_NAME_PROTOCOL instance.
>
> +  @param[in]  ControllerHandle The handle of a controller that the driver
> specified by
>
> +                               This is managing.  This handle specifies the 
> controller
>
> +                               whose name is to be returned.
>
> +  @param[in]  ChildHandle      The handle of the child controller to 
> retrieve the
> name
>
> +                               of.  This is an optional parameter that may 
> be NULL.  It
>
> +                               will be NULL for device drivers.  It will 
> also be NULL
>
> +                               for a bus drivers that wish to retrieve the 
> name of the
>
> +                               bus controller.  It will not be NULL for a 
> bus driver
>
> +                               that wishes to retrieve the name of a child 
> controller.
>
> +  @param[in]  Language         A pointer to a three character ISO 639-2
> language
>
> +                               identifier.  This is the language of the 
> controller name
>
> +                               that the caller is requesting, and it must 
> match one
>
> +                               of the languages specified in 
> SupportedLanguages.  The
>
> +                               number of languages supported by a driver is 
> up to the
>
> +                              driver writer.
>
> +  @param[out]  ControllerName  A pointer to the Unicode string to return.
> This Unicode
>
> +                               string is the name of the controller 
> specified by
>
> +                               ControllerHandle and ChildHandle in the 
> language specified
>
> +                               by Language, from the point of view of the 
> driver specified
>
> +                               by This.
>
> +
>
> +  @retval EFI_SUCCESS           The Unicode string for the user-readable 
> name in
> the
>
> +                                language specified by Language for the driver
>
> +                                specified by This was returned in DriverName.
>
> +  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.
>
> +  @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a
> valid EFI_HANDLE.
>
> +  @retval EFI_INVALID_PARAMETER Language is NULL.
>
> +  @retval EFI_INVALID_PARAMETER ControllerName is NULL.
>
> +  @retval EFI_UNSUPPORTED       The driver specified by This is not currently
> managing
>
> +                                the controller specified by ControllerHandle 
> and
>
> +                                ChildHandle.
>
> +  @retval EFI_UNSUPPORTED       The driver specified by This does not
> support the
>
> +                                language specified by Language.
>
> +
>
> +**/
>
> +EFI_STATUS
>
> +EFIAPI
>
> +RedfishConfigHandlerComponentNameGetControllerName (
>
> +  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
>
> +  IN  EFI_HANDLE                   ControllerHandle,
>
> +  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,
>
> +  IN  CHAR8                        *Language,
>
> +  OUT CHAR16                       **ControllerName
>
> +  )
>
> +{
>
> +  return EFI_UNSUPPORTED;
>
> +}
>
> diff --git a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c
> b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c
> index 2d0170d88614..5e03132695d6 100644
> --- a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c
> +++ b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c
> @@ -601,11 +601,17 @@ RedfishConfigHandlerDriverEntryPoint (
>    //
>
>    // Install UEFI Driver Model protocol(s).
>
>    //
>
> -  Status = EfiLibInstallDriverBinding (
>
> +  Status = EfiLibInstallAllDriverProtocols2 (
>
>               ImageHandle,
>
>               SystemTable,
>
>               &gRedfishConfigDriverBinding,
>
> -             ImageHandle
>
> +             ImageHandle,
>
> +             &gRedfishConfigHandlerComponentName,
>
> +             &gRedfishConfigHandlerComponentName2,
>
> +             NULL,
>
> +             NULL,
>
> +             NULL,
>
> +             NULL
>
>               );
>
>    if (EFI_ERROR (Status)) {
>
>      gBS->CloseEvent (gEndOfDxeEvent);
>
> diff --git a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.h
> b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.h
> index 07214875bd5a..51701c05c697 100644
> --- a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.h
> +++ b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.h
> @@ -24,7 +24,9 @@
>  //
>
>  // Protocol instances
>
>  //
>
> -extern EFI_DRIVER_BINDING_PROTOCOL  gRedfishConfigDriverBinding;
>
> +extern EFI_DRIVER_BINDING_PROTOCOL   gRedfishConfigDriverBinding;
>
> +extern EFI_COMPONENT_NAME_PROTOCOL
> gRedfishConfigHandlerComponentName;
>
> +extern EFI_COMPONENT_NAME2_PROTOCOL
> gRedfishConfigHandlerComponentName2;
>
>
>
>  extern REDFISH_CONFIG_DRIVER_DATA         gRedfishConfigData;
>
>  extern EDKII_REDFISH_CREDENTIAL_PROTOCOL  *gCredential;
>
> diff --git a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.inf
> b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.inf
> index aed93f570cf9..40ce0561379f 100644
> --- a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.inf
> +++ b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.inf
> @@ -30,6 +30,7 @@
>    RedfishPkg/RedfishPkg.dec
>
>
>
>  [Sources]
>
> +  ComponentName.c
>
>    RedfishConfigHandlerDriver.h
>
>    RedfishConfigHandlerDriver.c
>
>    RedfishConfigHandlerCommon.h
>
> --
> 2.32.0 (Apple Git-132)



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112622): https://edk2.groups.io/g/devel/message/112622
Mute This Topic: https://groups.io/mt/103181041/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to