A.2.1 ComponentName.c File

Example A-6-Component Name Protocol implementation template
/** @file
  <<BriefDescription>>
  <<DetailedDescription>>
  <<Copyright>>
  <<License>>
**/

#include "<<DriverName>>.h"

GLOBAL_REMOVE_IF_UNREFERENCED
EFI_COMPONENT_NAME_PROTOCOL g<<DriverName>>ComponentName = {
  (EFI_COMPONENT_NAME_GET_DRIVER_NAME) <<DriverName>>ComponentNameGetDriverName,
  (EFI_COMPONENT_NAME_GET_CONTROLLER_NAME) <<DriverName>>ComponentNameGetControllerName,
  "<<Iso639SupportedLanguages>>"
};

GLOBAL_REMOVE_IF_UNREFERENCED
EFI_COMPONENT_NAME2_PROTOCOL g<<DriverName>>ComponentName2 = {
  <<DriverName>>ComponentNameGetDriverName,
  <<DriverName>>ComponentNameGetControllerName,
  "<<Rfc4646SupportedLanguages>>"
};

EFI_STATUS
EFIAPI
<<DriverName>>ComponentNameGetDriverName (
  IN  EFI_COMPONENT_NAME2_PROTOCOL  *This,
  IN  CHAR8                         *Language,
  OUT CHAR16                        **DriverName
  )
{
}

EFI_STATUS
EFIAPI
<<DriverName>>ComponentNameGetControllerName (
  IN  EFI_COMPONENT_NAME2_PROTOCOL  *This,
  IN  EFI_HANDLE                    ControllerHandle,
  IN  EFI_HANDLE                    ChildHandle,  OPTIONAL
  IN  CHAR8                         *Language,
  OUT CHAR16                        **ControllerName
  )
{
}