110590588cce553a3d8d304974982845682cbce5bklu/*++
210590588cce553a3d8d304974982845682cbce5bklu
3b1f700a8593435e2bdc8f9b3dc21bced4774c80fhhtianCopyright (c) 2005 - 2007, Intel Corporation. All rights reserved.<BR>
4b1f700a8593435e2bdc8f9b3dc21bced4774c80fhhtianThis program and the accompanying materials
510590588cce553a3d8d304974982845682cbce5bkluare licensed and made available under the terms and conditions of the BSD License
610590588cce553a3d8d304974982845682cbce5bkluwhich accompanies this distribution.  The full text of the license may be found at
710590588cce553a3d8d304974982845682cbce5bkluhttp://opensource.org/licenses/bsd-license.php
810590588cce553a3d8d304974982845682cbce5bklu
910590588cce553a3d8d304974982845682cbce5bkluTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
1010590588cce553a3d8d304974982845682cbce5bkluWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
1110590588cce553a3d8d304974982845682cbce5bklu
1210590588cce553a3d8d304974982845682cbce5bkluModule Name:
1310590588cce553a3d8d304974982845682cbce5bklu  ComponentName.c
1410590588cce553a3d8d304974982845682cbce5bklu
1510590588cce553a3d8d304974982845682cbce5bkluAbstract:
1610590588cce553a3d8d304974982845682cbce5bklu
1710590588cce553a3d8d304974982845682cbce5bklu--*/
1810590588cce553a3d8d304974982845682cbce5bklu
1910590588cce553a3d8d304974982845682cbce5bklu#include "PciBus.h"
2010590588cce553a3d8d304974982845682cbce5bklu
2110590588cce553a3d8d304974982845682cbce5bklu//
2210590588cce553a3d8d304974982845682cbce5bklu// EFI Component Name Functions
2310590588cce553a3d8d304974982845682cbce5bklu//
2410590588cce553a3d8d304974982845682cbce5bkluEFI_STATUS
2510590588cce553a3d8d304974982845682cbce5bkluEFIAPI
2610590588cce553a3d8d304974982845682cbce5bkluPciBusComponentNameGetDriverName (
2710590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
2810590588cce553a3d8d304974982845682cbce5bklu  IN  CHAR8                        *Language,
2910590588cce553a3d8d304974982845682cbce5bklu  OUT CHAR16                       **DriverName
3010590588cce553a3d8d304974982845682cbce5bklu  );
3110590588cce553a3d8d304974982845682cbce5bklu
3210590588cce553a3d8d304974982845682cbce5bkluEFI_STATUS
3310590588cce553a3d8d304974982845682cbce5bkluEFIAPI
3410590588cce553a3d8d304974982845682cbce5bkluPciBusComponentNameGetControllerName (
3510590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
3610590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_HANDLE                   ControllerHandle,
3710590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,
3810590588cce553a3d8d304974982845682cbce5bklu  IN  CHAR8                        *Language,
3910590588cce553a3d8d304974982845682cbce5bklu  OUT CHAR16                       **ControllerName
4010590588cce553a3d8d304974982845682cbce5bklu  );
4110590588cce553a3d8d304974982845682cbce5bklu
4210590588cce553a3d8d304974982845682cbce5bklu//
4310590588cce553a3d8d304974982845682cbce5bklu// EFI Component Name Protocol
4410590588cce553a3d8d304974982845682cbce5bklu//
4510590588cce553a3d8d304974982845682cbce5bkluGLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPciBusComponentName = {
4610590588cce553a3d8d304974982845682cbce5bklu  PciBusComponentNameGetDriverName,
4710590588cce553a3d8d304974982845682cbce5bklu  PciBusComponentNameGetControllerName,
4810590588cce553a3d8d304974982845682cbce5bklu  "eng"
4910590588cce553a3d8d304974982845682cbce5bklu};
5010590588cce553a3d8d304974982845682cbce5bklu
5110590588cce553a3d8d304974982845682cbce5bkluGLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPciBusComponentName2 = {
5210590588cce553a3d8d304974982845682cbce5bklu  (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) PciBusComponentNameGetDriverName,
5310590588cce553a3d8d304974982845682cbce5bklu  (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) PciBusComponentNameGetControllerName,
5410590588cce553a3d8d304974982845682cbce5bklu  "en"
5510590588cce553a3d8d304974982845682cbce5bklu};
5610590588cce553a3d8d304974982845682cbce5bklu
5710590588cce553a3d8d304974982845682cbce5bklu
58e56dd2ce1342c358962eeab09d54cb1a95c064bfjjiEFI_UNICODE_STRING_TABLE mPciBusDriverNameTable[] = {
5910590588cce553a3d8d304974982845682cbce5bklu  { "eng;en", L"PCI Bus Driver" },
6010590588cce553a3d8d304974982845682cbce5bklu  { NULL, NULL }
6110590588cce553a3d8d304974982845682cbce5bklu};
6210590588cce553a3d8d304974982845682cbce5bklu
6310590588cce553a3d8d304974982845682cbce5bkluEFI_STATUS
6410590588cce553a3d8d304974982845682cbce5bkluEFIAPI
6510590588cce553a3d8d304974982845682cbce5bkluPciBusComponentNameGetDriverName (
6610590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
6710590588cce553a3d8d304974982845682cbce5bklu  IN  CHAR8                        *Language,
6810590588cce553a3d8d304974982845682cbce5bklu  OUT CHAR16                       **DriverName
6910590588cce553a3d8d304974982845682cbce5bklu  )
7010590588cce553a3d8d304974982845682cbce5bklu/*++
7110590588cce553a3d8d304974982845682cbce5bklu
7210590588cce553a3d8d304974982845682cbce5bklu  Routine Description:
7310590588cce553a3d8d304974982845682cbce5bklu    Retrieves a Unicode string that is the user readable name of the EFI Driver.
7410590588cce553a3d8d304974982845682cbce5bklu
7510590588cce553a3d8d304974982845682cbce5bklu  Arguments:
7610590588cce553a3d8d304974982845682cbce5bklu    This       - A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.
7710590588cce553a3d8d304974982845682cbce5bklu    Language   - A pointer to a three character ISO 639-2 language identifier.
7810590588cce553a3d8d304974982845682cbce5bklu                 This is the language of the driver name that that the caller
7910590588cce553a3d8d304974982845682cbce5bklu                 is requesting, and it must match one of the languages specified
8010590588cce553a3d8d304974982845682cbce5bklu                 in SupportedLanguages.  The number of languages supported by a
8110590588cce553a3d8d304974982845682cbce5bklu                 driver is up to the driver writer.
8210590588cce553a3d8d304974982845682cbce5bklu    DriverName - A pointer to the Unicode string to return.  This Unicode string
8310590588cce553a3d8d304974982845682cbce5bklu                 is the name of the driver specified by This in the language
8410590588cce553a3d8d304974982845682cbce5bklu                 specified by Language.
8510590588cce553a3d8d304974982845682cbce5bklu
8610590588cce553a3d8d304974982845682cbce5bklu  Returns:
8710590588cce553a3d8d304974982845682cbce5bklu    EFI_SUCCESS           - The Unicode string for the Driver specified by This
8810590588cce553a3d8d304974982845682cbce5bklu                            and the language specified by Language was returned
8910590588cce553a3d8d304974982845682cbce5bklu                            in DriverName.
9010590588cce553a3d8d304974982845682cbce5bklu    EFI_INVALID_PARAMETER - Language is NULL.
9110590588cce553a3d8d304974982845682cbce5bklu    EFI_INVALID_PARAMETER - DriverName is NULL.
9210590588cce553a3d8d304974982845682cbce5bklu    EFI_UNSUPPORTED       - The driver specified by This does not support the
9310590588cce553a3d8d304974982845682cbce5bklu                            language specified by Language.
9410590588cce553a3d8d304974982845682cbce5bklu
9510590588cce553a3d8d304974982845682cbce5bklu--*/
9610590588cce553a3d8d304974982845682cbce5bklu{
9710590588cce553a3d8d304974982845682cbce5bklu  return LookupUnicodeString2 (
9810590588cce553a3d8d304974982845682cbce5bklu           Language,
9910590588cce553a3d8d304974982845682cbce5bklu           This->SupportedLanguages,
10010590588cce553a3d8d304974982845682cbce5bklu           mPciBusDriverNameTable,
10110590588cce553a3d8d304974982845682cbce5bklu           DriverName,
10210590588cce553a3d8d304974982845682cbce5bklu           (BOOLEAN)(This == &gPciBusComponentName)
10310590588cce553a3d8d304974982845682cbce5bklu           );
10410590588cce553a3d8d304974982845682cbce5bklu}
10510590588cce553a3d8d304974982845682cbce5bklu
10610590588cce553a3d8d304974982845682cbce5bkluEFI_STATUS
10710590588cce553a3d8d304974982845682cbce5bkluEFIAPI
10810590588cce553a3d8d304974982845682cbce5bkluPciBusComponentNameGetControllerName (
10910590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
11010590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_HANDLE                   ControllerHandle,
11110590588cce553a3d8d304974982845682cbce5bklu  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,
11210590588cce553a3d8d304974982845682cbce5bklu  IN  CHAR8                        *Language,
11310590588cce553a3d8d304974982845682cbce5bklu  OUT CHAR16                       **ControllerName
11410590588cce553a3d8d304974982845682cbce5bklu  )
11510590588cce553a3d8d304974982845682cbce5bklu/*++
11610590588cce553a3d8d304974982845682cbce5bklu
11710590588cce553a3d8d304974982845682cbce5bklu  Routine Description:
11810590588cce553a3d8d304974982845682cbce5bklu    Retrieves a Unicode string that is the user readable name of the controller
11910590588cce553a3d8d304974982845682cbce5bklu    that is being managed by an EFI Driver.
12010590588cce553a3d8d304974982845682cbce5bklu
12110590588cce553a3d8d304974982845682cbce5bklu  Arguments:
12210590588cce553a3d8d304974982845682cbce5bklu    This             - A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.
12310590588cce553a3d8d304974982845682cbce5bklu    ControllerHandle - The handle of a controller that the driver specified by
12410590588cce553a3d8d304974982845682cbce5bklu                       This is managing.  This handle specifies the controller
12510590588cce553a3d8d304974982845682cbce5bklu                       whose name is to be returned.
12610590588cce553a3d8d304974982845682cbce5bklu    ChildHandle      - The handle of the child controller to retrieve the name
12710590588cce553a3d8d304974982845682cbce5bklu                       of.  This is an optional parameter that may be NULL.  It
12810590588cce553a3d8d304974982845682cbce5bklu                       will be NULL for device drivers.  It will also be NULL
12910590588cce553a3d8d304974982845682cbce5bklu                       for a bus drivers that wish to retrieve the name of the
13010590588cce553a3d8d304974982845682cbce5bklu                       bus controller.  It will not be NULL for a bus driver
13110590588cce553a3d8d304974982845682cbce5bklu                       that wishes to retrieve the name of a child controller.
13210590588cce553a3d8d304974982845682cbce5bklu    Language         - A pointer to a three character ISO 639-2 language
13310590588cce553a3d8d304974982845682cbce5bklu                       identifier.  This is the language of the controller name
13410590588cce553a3d8d304974982845682cbce5bklu                       that that the caller is requesting, and it must match one
13510590588cce553a3d8d304974982845682cbce5bklu                       of the languages specified in SupportedLanguages.  The
13610590588cce553a3d8d304974982845682cbce5bklu                       number of languages supported by a driver is up to the
13710590588cce553a3d8d304974982845682cbce5bklu                       driver writer.
13810590588cce553a3d8d304974982845682cbce5bklu    ControllerName   - A pointer to the Unicode string to return.  This Unicode
13910590588cce553a3d8d304974982845682cbce5bklu                       string is the name of the controller specified by
14010590588cce553a3d8d304974982845682cbce5bklu                       ControllerHandle and ChildHandle in the language specified
14110590588cce553a3d8d304974982845682cbce5bklu                       by Language from the point of view of the driver specified
14210590588cce553a3d8d304974982845682cbce5bklu                       by This.
14310590588cce553a3d8d304974982845682cbce5bklu
14410590588cce553a3d8d304974982845682cbce5bklu  Returns:
14510590588cce553a3d8d304974982845682cbce5bklu    EFI_SUCCESS           - The Unicode string for the user readable name in the
14610590588cce553a3d8d304974982845682cbce5bklu                            language specified by Language for the driver
14710590588cce553a3d8d304974982845682cbce5bklu                            specified by This was returned in DriverName.
14810590588cce553a3d8d304974982845682cbce5bklu    EFI_INVALID_PARAMETER - ControllerHandle is not a valid EFI_HANDLE.
14910590588cce553a3d8d304974982845682cbce5bklu    EFI_INVALID_PARAMETER - ChildHandle is not NULL and it is not a valid EFI_HANDLE.
15010590588cce553a3d8d304974982845682cbce5bklu    EFI_INVALID_PARAMETER - Language is NULL.
15110590588cce553a3d8d304974982845682cbce5bklu    EFI_INVALID_PARAMETER - ControllerName is NULL.
15210590588cce553a3d8d304974982845682cbce5bklu    EFI_UNSUPPORTED       - The driver specified by This is not currently managing
15310590588cce553a3d8d304974982845682cbce5bklu                            the controller specified by ControllerHandle and
15410590588cce553a3d8d304974982845682cbce5bklu                            ChildHandle.
15510590588cce553a3d8d304974982845682cbce5bklu    EFI_UNSUPPORTED       - The driver specified by This does not support the
15610590588cce553a3d8d304974982845682cbce5bklu                            language specified by Language.
15710590588cce553a3d8d304974982845682cbce5bklu
15810590588cce553a3d8d304974982845682cbce5bklu--*/
15910590588cce553a3d8d304974982845682cbce5bklu{
16010590588cce553a3d8d304974982845682cbce5bklu  return EFI_UNSUPPORTED;
16110590588cce553a3d8d304974982845682cbce5bklu}
162