TianoCore EDK2 master
Loading...
Searching...
No Matches
ComponentName.c
Go to the documentation of this file.
1
9#include "DriverBinding.h"
10
11extern EFI_DRIVER_BINDING_PROTOCOL gNetworkCommonDriverBinding;
12
13GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE gNetworkCommonDriverNameTable[] = {
14 {
15 "eng;en",
16 L"Network Common Driver"
17 },
18 {
19 NULL,
20 NULL
21 }
22};
23GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE *gNetworkCommonControllerNameTable = NULL;
24
26EFIAPI
29 IN CHAR8 *Language,
30 OUT CHAR16 **DriverName
31 );
32
34EFIAPI
37 IN EFI_HANDLE Controller,
38 IN EFI_HANDLE ChildHandle OPTIONAL,
39 IN CHAR8 *Language,
40 OUT CHAR16 **ControllerName
41 );
42
46 "eng"
47};
48
52 "en"
53};
54
90EFIAPI
93 IN CHAR8 *Language,
94 OUT CHAR16 **DriverName
95 )
96{
98 Language,
99 This->SupportedLanguages,
100 gNetworkCommonDriverNameTable,
101 DriverName,
102 (BOOLEAN)(This == &gNetworkCommonComponentName)
103 );
104}
105
165EFIAPI
168 IN EFI_HANDLE Controller,
169 IN EFI_HANDLE ChildHandle OPTIONAL,
170 IN CHAR8 *Language,
171 OUT CHAR16 **ControllerName
172 )
173{
174 EFI_STATUS Status;
175 CHAR16 *HandleName;
176 EFI_USB_IO_PROTOCOL *UsbIo;
178
179 if ((Language == NULL) || (ControllerName == NULL)) {
180 return EFI_INVALID_PARAMETER;
181 }
182
183 if (ChildHandle == NULL) {
184 return EFI_UNSUPPORTED;
185 }
186
187 //
188 // Make sure this driver is currently managing ControllerHandle
189 //
190 Status = EfiTestManagedDevice (
191 Controller,
192 gNetworkCommonDriverBinding.DriverBindingHandle,
193 &gEdkIIUsbEthProtocolGuid
194 );
195 if (EFI_ERROR (Status)) {
196 return Status;
197 }
198
199 //
200 // Make sure this driver produced ChildHandle
201 //
202 Status = EfiTestChildHandle (
203 Controller,
204 ChildHandle,
205 &gEdkIIUsbEthProtocolGuid
206 );
207 if (EFI_ERROR (Status)) {
208 return Status;
209 }
210
211 Status = gBS->HandleProtocol (Controller, &gEfiUsbIoProtocolGuid, (VOID **)&UsbIo);
212
213 if (!EFI_ERROR (Status)) {
214 Status = UsbIo->UsbGetDeviceDescriptor (UsbIo, &DevDesc);
215 if (EFI_ERROR (Status)) {
216 return Status;
217 }
218
219 Status = UsbIo->UsbGetStringDescriptor (UsbIo, 0x409, DevDesc.StrManufacturer, &HandleName);
220 if (EFI_ERROR (Status)) {
221 return Status;
222 }
223
224 *ControllerName = HandleName;
225
226 if (gNetworkCommonControllerNameTable != NULL) {
227 FreeUnicodeStringTable (gNetworkCommonControllerNameTable);
228 gNetworkCommonControllerNameTable = NULL;
229 }
230
231 Status = AddUnicodeString2 (
232 "eng",
233 gNetworkCommonComponentName.SupportedLanguages,
234 &gNetworkCommonControllerNameTable,
235 HandleName,
236 TRUE
237 );
238 if (EFI_ERROR (Status)) {
239 return Status;
240 }
241
242 Status = AddUnicodeString2 (
243 "en",
244 gNetworkCommonComponentName2.SupportedLanguages,
245 &gNetworkCommonControllerNameTable,
246 HandleName,
247 FALSE
248 );
249 if (EFI_ERROR (Status)) {
250 return Status;
251 }
252
253 return LookupUnicodeString2 (
254 Language,
255 This->SupportedLanguages,
256 gNetworkCommonControllerNameTable,
257 ControllerName,
258 (BOOLEAN)(This == &gNetworkCommonComponentName)
259 );
260 }
261
262 return EFI_UNSUPPORTED;
263}
EFI_STATUS(EFIAPI * EFI_COMPONENT_NAME2_GET_DRIVER_NAME)(IN EFI_COMPONENT_NAME2_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName)
EFI_STATUS(EFIAPI * EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)(IN EFI_COMPONENT_NAME2_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName)
EFI_STATUS EFIAPI NetworkCommonComponentNameGetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName)
Definition: ComponentName.c:91
EFI_STATUS EFIAPI NetworkCommonComponentNameGetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName)
#define NULL
Definition: Base.h:319
#define TRUE
Definition: Base.h:301
#define FALSE
Definition: Base.h:307
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
#define GLOBAL_REMOVE_IF_UNREFERENCED
Definition: Base.h:48
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
EFI_BOOT_SERVICES * gBS
EFI_STATUS EFIAPI AddUnicodeString2(IN CONST CHAR8 *Language, IN CONST CHAR8 *SupportedLanguages, IN OUT EFI_UNICODE_STRING_TABLE **UnicodeStringTable, IN CONST CHAR16 *UnicodeString, IN BOOLEAN Iso639Language)
Definition: UefiLib.c:1087
EFI_STATUS EFIAPI EfiTestChildHandle(IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE ChildHandle, IN CONST EFI_GUID *ProtocolGuid)
Definition: UefiLib.c:597
EFI_STATUS EFIAPI LookupUnicodeString2(IN CONST CHAR8 *Language, IN CONST CHAR8 *SupportedLanguages, IN CONST EFI_UNICODE_STRING_TABLE *UnicodeStringTable, OUT CHAR16 **UnicodeString, IN BOOLEAN Iso639Language)
Definition: UefiLib.c:801
EFI_STATUS EFIAPI EfiTestManagedDevice(IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE DriverBindingHandle, IN CONST EFI_GUID *ProtocolGuid)
Definition: UefiLib.c:540
EFI_STATUS EFIAPI FreeUnicodeStringTable(IN EFI_UNICODE_STRING_TABLE *UnicodeStringTable)
Definition: UefiLib.c:1257