TianoCore EDK2 master
Loading...
Searching...
No Matches
ComponentName.c
Go to the documentation of this file.
1
10#include "NvmExpress.h"
11
12//
13// EFI Component Name Protocol
14//
18 "eng"
19};
20
21//
22// EFI Component Name 2 Protocol
23//
27 "en"
28};
29
30GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mNvmExpressDriverNameTable[] = {
31 { "eng;en", L"NVM Express Driver" },
32 { NULL, NULL }
33};
34
35GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mNvmExpressControllerNameTable[] = {
36 { "eng;en", L"NVM Express Controller" },
37 { NULL, NULL }
38};
39
80EFIAPI
83 IN CHAR8 *Language,
84 OUT CHAR16 **DriverName
85 )
86{
88 Language,
89 This->SupportedLanguages,
90 mNvmExpressDriverNameTable,
91 DriverName,
92 (BOOLEAN)(This == &gNvmExpressComponentName)
93 );
94}
95
165EFIAPI
168 IN EFI_HANDLE ControllerHandle,
169 IN EFI_HANDLE ChildHandle OPTIONAL,
170 IN CHAR8 *Language,
171 OUT CHAR16 **ControllerName
172 )
173{
174 EFI_STATUS Status;
175 EFI_BLOCK_IO_PROTOCOL *BlockIo;
177 EFI_UNICODE_STRING_TABLE *ControllerNameTable;
178
179 //
180 // Make sure this driver is currently managing ControllHandle
181 //
182 Status = EfiTestManagedDevice (
183 ControllerHandle,
184 gNvmExpressDriverBinding.DriverBindingHandle,
185 &gEfiPciIoProtocolGuid
186 );
187 if (EFI_ERROR (Status)) {
188 return Status;
189 }
190
191 ControllerNameTable = mNvmExpressControllerNameTable;
192 if (ChildHandle != NULL) {
193 Status = EfiTestChildHandle (
194 ControllerHandle,
195 ChildHandle,
196 &gEfiNvmExpressPassThruProtocolGuid
197 );
198 if (EFI_ERROR (Status)) {
199 return Status;
200 }
201
202 //
203 // Get the child context
204 //
205 Status = gBS->OpenProtocol (
206 ChildHandle,
207 &gEfiBlockIoProtocolGuid,
208 (VOID **)&BlockIo,
209 gNvmExpressDriverBinding.DriverBindingHandle,
210 ChildHandle,
211 EFI_OPEN_PROTOCOL_GET_PROTOCOL
212 );
213 if (EFI_ERROR (Status)) {
214 return EFI_UNSUPPORTED;
215 }
216
217 Device = NVME_DEVICE_PRIVATE_DATA_FROM_BLOCK_IO (BlockIo);
218 ControllerNameTable = Device->ControllerNameTable;
219 }
220
221 return LookupUnicodeString2 (
222 Language,
223 This->SupportedLanguages,
224 ControllerNameTable,
225 ControllerName,
226 (BOOLEAN)(This == &gNvmExpressComponentName)
227 );
228}
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 NvmExpressComponentNameGetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName)
EFI_STATUS EFIAPI NvmExpressComponentNameGetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName)
Definition: ComponentName.c:81
#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 EfiTestChildHandle(IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE ChildHandle, IN CONST EFI_GUID *ProtocolGuid)
Definition: UefiLib.c:593
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