TianoCore EDK2 master
Loading...
Searching...
No Matches
ComponentName.c
Go to the documentation of this file.
1
8#include "EmuSimpleFileSystem.h"
9
10//
11// EFI Component Name Functions
12//
14EFIAPI
17 IN CHAR8 *Language,
18 OUT CHAR16 **DriverName
19 );
20
22EFIAPI
25 IN EFI_HANDLE ControllerHandle,
26 IN EFI_HANDLE ChildHandle OPTIONAL,
27 IN CHAR8 *Language,
28 OUT CHAR16 **ControllerName
29 );
30
31//
32// EFI Component Name Protocol
33//
34GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gEmuSimpleFileSystemComponentName = {
37 "eng"
38};
39
40GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gEmuSimpleFileSystemComponentName2 = {
43 "en"
44};
45
46EFI_UNICODE_STRING_TABLE mEmuSimpleFileSystemDriverNameTable[] = {
47 {
48 "eng;en",
49 L"Emu Simple File System Driver"
50 },
51 {
52 NULL,
53 NULL
54 }
55};
56
97EFIAPI
100 IN CHAR8 *Language,
101 OUT CHAR16 **DriverName
102 )
103{
104 return LookupUnicodeString2 (
105 Language,
106 This->SupportedLanguages,
107 mEmuSimpleFileSystemDriverNameTable,
108 DriverName,
109 (BOOLEAN)(This == &gEmuSimpleFileSystemComponentName)
110 );
111}
112
182EFIAPI
185 IN EFI_HANDLE ControllerHandle,
186 IN EFI_HANDLE ChildHandle OPTIONAL,
187 IN CHAR8 *Language,
188 OUT CHAR16 **ControllerName
189 )
190{
191 EFI_STATUS Status;
192 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFileSystem;
194
195 //
196 // This is a device driver, so ChildHandle must be NULL.
197 //
198 if (ChildHandle != NULL) {
199 return EFI_UNSUPPORTED;
200 }
201
202 //
203 // Make sure this driver is currently managing ControllerHandle
204 //
205 Status = EfiTestManagedDevice (
206 ControllerHandle,
207 gEmuSimpleFileSystemDriverBinding.DriverBindingHandle,
208 &gEmuIoThunkProtocolGuid
209 );
210 if (EFI_ERROR (Status)) {
211 return EFI_UNSUPPORTED;
212 }
213
214 //
215 // Get our context back
216 //
217 Status = gBS->OpenProtocol (
218 ControllerHandle,
219 &gEfiSimpleFileSystemProtocolGuid,
220 (VOID **)&SimpleFileSystem,
221 gEmuSimpleFileSystemDriverBinding.DriverBindingHandle,
222 ControllerHandle,
223 EFI_OPEN_PROTOCOL_GET_PROTOCOL
224 );
225 if (EFI_ERROR (Status)) {
226 return EFI_UNSUPPORTED;
227 }
228
229 Private = EMU_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (SimpleFileSystem);
230
231 return LookupUnicodeString2 (
232 Language,
233 This->SupportedLanguages,
234 Private->ControllerNameTable,
235 ControllerName,
236 (BOOLEAN)(This == &gEmuSimpleFileSystemComponentName)
237 );
238}
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 EmuSimpleFileSystemComponentNameGetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName)
Definition: ComponentName.c:98
EFI_STATUS EFIAPI EmuSimpleFileSystemComponentNameGetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName)
#define NULL
Definition: Base.h:319
#define VOID
Definition: Base.h:269
#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 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:797
EFI_STATUS EFIAPI EfiTestManagedDevice(IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE DriverBindingHandle, IN CONST EFI_GUID *ProtocolGuid)
Definition: UefiLib.c:536