/** @file\r
UEFI Component Name(2) protocol implementation for UefiPxeBc driver.\r
\r
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
driver specified by This was returned in\r
DriverName.\r
\r
- @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+ @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
\r
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL, and it is not a valid\r
EFI_HANDLE.\r
}\r
};\r
\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPxeBcControllerNameTable[] = {\r
+ {\r
+ "eng;en",\r
+ L"PXE Controller"\r
+ },\r
+ {\r
+ NULL,\r
+ NULL\r
+ }\r
+};\r
\r
/**\r
Retrieves a Unicode string that is the user-readable name of the driver.\r
driver specified by This was returned in\r
DriverName.\r
\r
- @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+ @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
\r
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
EFI_HANDLE.\r
OUT CHAR16 **ControllerName\r
)\r
{\r
- return EFI_UNSUPPORTED;\r
-}\r
+ EFI_STATUS Status;\r
+ EFI_HANDLE NicHandle;\r
+ PXEBC_PRIVATE_PROTOCOL *Id;\r
+\r
+ if (ControllerHandle == NULL || ChildHandle != NULL) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
+ NicHandle = PxeBcGetNicByIp4Children (ControllerHandle);\r
+ if (NicHandle == NULL) {\r
+ NicHandle = PxeBcGetNicByIp6Children (ControllerHandle);\r
+ if (NicHandle == NULL) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Try to retrieve the private data by PxeBcPrivate protocol.\r
+ //\r
+ Status = gBS->OpenProtocol (\r
+ NicHandle,\r
+ &gEfiCallerIdGuid,\r
+ (VOID **) &Id,\r
+ NULL,\r
+ NULL,\r
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
\r
+ return LookupUnicodeString2 (\r
+ Language,\r
+ This->SupportedLanguages,\r
+ mPxeBcControllerNameTable,\r
+ ControllerName,\r
+ (BOOLEAN)(This == &gPxeBcComponentName)\r
+ );\r
+}\r