mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-25 14:44:28 +02:00
OvmfPkg/LsiScsiDxe: Report the name of the driver
Implement LsiScsiGetDriverName() and LsiScsiGetDeviceName() to report the name of the driver. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Signed-off-by: Gary Lin <glin@suse.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20200717061130.8881-4-glin@suse.com>
This commit is contained in:
parent
5e6b870a53
commit
386ca8abf7
@ -74,6 +74,71 @@ EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL and
|
||||||
|
// EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's name
|
||||||
|
// in English, for display on standard console devices. This is recommended for
|
||||||
|
// UEFI drivers that follow the UEFI Driver Model. Refer to the Driver Writer's
|
||||||
|
// Guide for UEFI 2.3.1 v1.01, 11 UEFI Driver and Controller Names.
|
||||||
|
//
|
||||||
|
// Device type names ("LSI 53C895A SCSI Controller") are not formatted because
|
||||||
|
// the driver supports only that device type. Therefore the driver name
|
||||||
|
// suffices for unambiguous identification.
|
||||||
|
//
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
|
||||||
|
{ "eng;en", L"LSI 53C895A SCSI Controller Driver" },
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
EFI_COMPONENT_NAME_PROTOCOL gComponentName;
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
LsiScsiGetDriverName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **DriverName
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return LookupUnicodeString2 (
|
||||||
|
Language,
|
||||||
|
This->SupportedLanguages,
|
||||||
|
mDriverNameTable,
|
||||||
|
DriverName,
|
||||||
|
(BOOLEAN)(This == &gComponentName) // Iso639Language
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
LsiScsiGetDeviceName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE DeviceHandle,
|
||||||
|
IN EFI_HANDLE ChildHandle,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **ControllerName
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
EFI_COMPONENT_NAME_PROTOCOL gComponentName = {
|
||||||
|
&LsiScsiGetDriverName,
|
||||||
|
&LsiScsiGetDeviceName,
|
||||||
|
"eng" // SupportedLanguages, ISO 639-2 language codes
|
||||||
|
};
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
EFI_COMPONENT_NAME2_PROTOCOL gComponentName2 = {
|
||||||
|
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) &LsiScsiGetDriverName,
|
||||||
|
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) &LsiScsiGetDeviceName,
|
||||||
|
"en" // SupportedLanguages, RFC 4646 language codes
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// Entry point of this driver
|
// Entry point of this driver
|
||||||
//
|
//
|
||||||
@ -89,7 +154,7 @@ LsiScsiEntryPoint (
|
|||||||
SystemTable,
|
SystemTable,
|
||||||
&gDriverBinding,
|
&gDriverBinding,
|
||||||
ImageHandle, // The handle to install onto
|
ImageHandle, // The handle to install onto
|
||||||
NULL, // TODO Component name
|
&gComponentName,
|
||||||
NULL // TODO Component name
|
&gComponentName2
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -46,4 +46,35 @@ LsiScsiControllerStop (
|
|||||||
IN EFI_HANDLE *ChildHandleBuffer
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL and
|
||||||
|
// EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's name
|
||||||
|
// in English, for display on standard console devices. This is recommended for
|
||||||
|
// UEFI drivers that follow the UEFI Driver Model. Refer to the Driver Writer's
|
||||||
|
// Guide for UEFI 2.3.1 v1.01, 11 UEFI Driver and Controller Names.
|
||||||
|
//
|
||||||
|
// Device type names ("LSI 53C895A SCSI Controller") are not formatted because
|
||||||
|
// the driver supports only that device type. Therefore the driver name
|
||||||
|
// suffices for unambiguous identification.
|
||||||
|
//
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
LsiScsiGetDriverName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **DriverName
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
LsiScsiGetDeviceName (
|
||||||
|
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||||
|
IN EFI_HANDLE DeviceHandle,
|
||||||
|
IN EFI_HANDLE ChildHandle,
|
||||||
|
IN CHAR8 *Language,
|
||||||
|
OUT CHAR16 **ControllerName
|
||||||
|
);
|
||||||
|
|
||||||
#endif // _LSI_SCSI_DXE_H_
|
#endif // _LSI_SCSI_DXE_H_
|
||||||
|
Loading…
x
Reference in New Issue
Block a user