]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.h
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / PciBusDxe / PciDriverOverride.h
CommitLineData
9060e3ec 1/** @file\r
fcdfcdbf 2 Functions declaration for Bus Specific Driver Override protocol.\r
9060e3ec 3\r
fcdfcdbf 4Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
9d510e61 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
9060e3ec 6\r
7**/\r
8\r
9060e3ec 9#ifndef _EFI_PCI_DRIVER_OVERRRIDE_H_\r
10#define _EFI_PCI_DRIVER_OVERRRIDE_H_\r
11\r
1436aea4 12#define DRIVER_OVERRIDE_SIGNATURE SIGNATURE_32 ('d', 'r', 'o', 'v')\r
9060e3ec 13\r
14//\r
15// PCI driver override driver image list\r
16//\r
17typedef struct {\r
1436aea4
MK
18 UINT32 Signature;\r
19 LIST_ENTRY Link;\r
20 EFI_HANDLE DriverImageHandle;\r
21 EFI_DEVICE_PATH_PROTOCOL *DriverImagePath;\r
9060e3ec 22} PCI_DRIVER_OVERRIDE_LIST;\r
23\r
9060e3ec 24#define DRIVER_OVERRIDE_FROM_LINK(a) \\r
25 CR (a, PCI_DRIVER_OVERRIDE_LIST, Link, DRIVER_OVERRIDE_SIGNATURE)\r
26\r
27/**\r
28 Initializes a PCI Driver Override Instance.\r
29\r
30 @param PciIoDevice PCI Device instance.\r
31\r
32**/\r
33VOID\r
34InitializePciDriverOverrideInstance (\r
1436aea4 35 IN OUT PCI_IO_DEVICE *PciIoDevice\r
9060e3ec 36 );\r
37\r
38/**\r
39 Add an overriding driver image.\r
40\r
41 @param PciIoDevice Instance of PciIo device.\r
b5cbef4e
RN
42 @param DriverImageHandle Image handle of newly added driver image.\r
43 @param DriverImagePath Device path of newly added driver image.\r
9060e3ec 44\r
45 @retval EFI_SUCCESS Successfully added driver.\r
46 @retval EFI_OUT_OF_RESOURCES No memory resource for new driver instance.\r
47 @retval other Some error occurred when locating gEfiLoadedImageProtocolGuid.\r
48\r
49**/\r
50EFI_STATUS\r
51AddDriver (\r
1436aea4
MK
52 IN PCI_IO_DEVICE *PciIoDevice,\r
53 IN EFI_HANDLE DriverImageHandle,\r
54 IN EFI_DEVICE_PATH_PROTOCOL *DriverImagePath\r
9060e3ec 55 );\r
56\r
9060e3ec 57/**\r
58 Uses a bus specific algorithm to retrieve a driver image handle for a controller.\r
59\r
60 @param This A pointer to the EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL instance.\r
61 @param DriverImageHandle On input, a pointer to the previous driver image handle returned\r
62 by GetDriver(). On output, a pointer to the next driver\r
63 image handle. Passing in a NULL, will return the first driver\r
64 image handle.\r
65\r
66 @retval EFI_SUCCESS A bus specific override driver is returned in DriverImageHandle.\r
67 @retval EFI_NOT_FOUND The end of the list of override drivers was reached.\r
68 A bus specific override driver is not returned in DriverImageHandle.\r
69 @retval EFI_INVALID_PARAMETER DriverImageHandle is not a handle that was returned on a\r
70 previous call to GetDriver().\r
71\r
72**/\r
73EFI_STATUS\r
74EFIAPI\r
75GetDriver (\r
1436aea4
MK
76 IN EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *This,\r
77 IN OUT EFI_HANDLE *DriverImageHandle\r
9060e3ec 78 );\r
79\r
80#endif\r