public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Chang, Abner via groups.io" <abner.chang=amd.com@groups.io>
To: Mike Maslenkin <mike.maslenkin@gmail.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "nicklew@nvidia.com" <nicklew@nvidia.com>,
	"igork@ami.com" <igork@ami.com>
Subject: Re: [edk2-devel] [PATCH v2 06/14] RedfishPkg: add Component Name protocols to RedfishConfigHandler driver
Date: Mon, 18 Dec 2023 02:58:06 +0000	[thread overview]
Message-ID: <MN2PR12MB3966DBD4417FD935E9EA102AEA90A@MN2PR12MB3966.namprd12.prod.outlook.com> (raw)
In-Reply-To: <20231214232458.4636-7-mike.maslenkin@gmail.com>

[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.maslenkin@gmail.com>
> Sent: Friday, December 15, 2023 7:25 AM
> To: devel@edk2.groups.io
> Cc: Chang, Abner <Abner.Chang@amd.com>; nicklew@nvidia.com;
> igork@ami.com; Mike Maslenkin <mike.maslenkin@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.chang@amd.com>
> Cc: Nickle Wang <nicklew@nvidia.com>
> Cc: Igor Kulchytskyy <igork@ami.com>
> Signed-off-by: Mike Maslenkin <mike.maslenkin@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.maslenkin@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/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2023-12-18  2:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-14 23:24 [edk2-devel] [PATCH v2 0/14] Redfish related fixes and improvements Mike Maslenkin
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 01/14] RedfishPkg: fix RedfishPlatformHostInterfaceLib library class name typo Mike Maslenkin
2023-12-18  2:32   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 02/14] RedfishPkg: fix RedfishPlatformCredentialLib " Mike Maslenkin
2023-12-18  2:33   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 03/14] RedfishPkg: get rid of unused definitions from RedfishCrtLib.h Mike Maslenkin
2023-12-18  2:38   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 04/14] RedfishPkg: RedfishPlatformConfigDxe: reduce memory allocations Mike Maslenkin
2023-12-18  2:44   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 05/14] RedfishPkg: RedfishDiscoverDxe: fix memory leak on error path Mike Maslenkin
2023-12-18  2:48   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 06/14] RedfishPkg: add Component Name protocols to RedfishConfigHandler driver Mike Maslenkin
2023-12-18  2:58   ` Chang, Abner via groups.io [this message]
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 07/14] RedfishPkg: add proper initialization of IPMI request Mike Maslenkin
2023-12-18  3:27   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 08/14] EmulatorPkg: fix typo. PcdRedfishServie -> PcdRedfishService Mike Maslenkin
2023-12-18  3:30   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 09/14] EmulatorPkg: RedfishPlatformHostInterfaceLib: get rid of unused variable Mike Maslenkin
2023-12-18  3:29   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 10/14] RedfishDiscoverDxe: introduce InitInformationData helper function Mike Maslenkin
2023-12-18  4:25   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 11/14] RedfishDiscoverDxe: refine InitInformationData(), remove unnecessary casts Mike Maslenkin
2023-12-18  4:27   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 12/14] RedfishDiscoverDxe: refine InitInformationData() function Mike Maslenkin
2023-12-18  4:32   ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 13/14] RedfishDiscoverDxe: handle memory allocation error conditions Mike Maslenkin
2023-12-18  4:47   ` Chang, Abner via groups.io
2023-12-19  2:12     ` Mike Maslenkin
2023-12-19  4:03       ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 14/14] RedfishPkg: RedfishDiscoverDxe: add [] brackets to URI for IPv6 addresses Mike Maslenkin
2023-12-18  4:58   ` Chang, Abner via groups.io
2023-12-19  2:51     ` Mike Maslenkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MN2PR12MB3966DBD4417FD935E9EA102AEA90A@MN2PR12MB3966.namprd12.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox