]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/LsiScsiDxe/LsiScsi.h
OvmfPkg/LsiScsiDxe: Report the name of the driver
[mirror_edk2.git] / OvmfPkg / LsiScsiDxe / LsiScsi.h
1 /** @file
2
3 Internal definitions for the LSI 53C895A SCSI driver, which produces
4 Extended SCSI Pass Thru Protocol instances for LSI 53C895A SCSI devices.
5
6 Copyright (C) 2020, SUSE LLC.
7
8 SPDX-License-Identifier: BSD-2-Clause-Patent
9
10 **/
11
12 #ifndef _LSI_SCSI_DXE_H_
13 #define _LSI_SCSI_DXE_H_
14
15 //
16 // Probe, start and stop functions of this driver, called by the DXE core for
17 // specific devices.
18 //
19 // The following specifications document these interfaces:
20 // - Driver Writer's Guide for UEFI 2.3.1 v1.01, 9 Driver Binding Protocol
21 // - UEFI Spec 2.3.1 + Errata C, 10.1 EFI Driver Binding Protocol
22 //
23
24 EFI_STATUS
25 EFIAPI
26 LsiScsiControllerSupported (
27 IN EFI_DRIVER_BINDING_PROTOCOL *This,
28 IN EFI_HANDLE ControllerHandle,
29 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
30 );
31
32 EFI_STATUS
33 EFIAPI
34 LsiScsiControllerStart (
35 IN EFI_DRIVER_BINDING_PROTOCOL *This,
36 IN EFI_HANDLE ControllerHandle,
37 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
38 );
39
40 EFI_STATUS
41 EFIAPI
42 LsiScsiControllerStop (
43 IN EFI_DRIVER_BINDING_PROTOCOL *This,
44 IN EFI_HANDLE ControllerHandle,
45 IN UINTN NumberOfChildren,
46 IN EFI_HANDLE *ChildHandleBuffer
47 );
48
49
50 //
51 // The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL and
52 // EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's name
53 // in English, for display on standard console devices. This is recommended for
54 // UEFI drivers that follow the UEFI Driver Model. Refer to the Driver Writer's
55 // Guide for UEFI 2.3.1 v1.01, 11 UEFI Driver and Controller Names.
56 //
57 // Device type names ("LSI 53C895A SCSI Controller") are not formatted because
58 // the driver supports only that device type. Therefore the driver name
59 // suffices for unambiguous identification.
60 //
61
62 EFI_STATUS
63 EFIAPI
64 LsiScsiGetDriverName (
65 IN EFI_COMPONENT_NAME_PROTOCOL *This,
66 IN CHAR8 *Language,
67 OUT CHAR16 **DriverName
68 );
69
70 EFI_STATUS
71 EFIAPI
72 LsiScsiGetDeviceName (
73 IN EFI_COMPONENT_NAME_PROTOCOL *This,
74 IN EFI_HANDLE DeviceHandle,
75 IN EFI_HANDLE ChildHandle,
76 IN CHAR8 *Language,
77 OUT CHAR16 **ControllerName
78 );
79
80 #endif // _LSI_SCSI_DXE_H_