1 | /** @file
|
---|
2 | UEFI Driver Family Protocol
|
---|
3 |
|
---|
4 | Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
---|
5 | SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
6 |
|
---|
7 | **/
|
---|
8 |
|
---|
9 | #ifndef __EFI_DRIVER_FAMILY_OVERRIDE_H__
|
---|
10 | #define __EFI_DRIVER_FAMILY_OVERRIDE_H__
|
---|
11 |
|
---|
12 | #define EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL_GUID \
|
---|
13 | { \
|
---|
14 | 0xb1ee129e, 0xda36, 0x4181, { 0x91, 0xf8, 0x4, 0xa4, 0x92, 0x37, 0x66, 0xa7 } \
|
---|
15 | }
|
---|
16 |
|
---|
17 | typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL;
|
---|
18 |
|
---|
19 | //
|
---|
20 | // Prototypes for the Driver Family Override Protocol
|
---|
21 | //
|
---|
22 | //
|
---|
23 |
|
---|
24 | /**
|
---|
25 | This function returns the version value associated with the driver specified by This.
|
---|
26 |
|
---|
27 | Retrieves the version of the driver that is used by the EFI Boot Service ConnectController()
|
---|
28 | to sort the set of Driver Binding Protocols in order from highest priority to lowest priority.
|
---|
29 | For drivers that support the Driver Family Override Protocol, those drivers are sorted so that
|
---|
30 | the drivers with higher values returned by GetVersion() are higher priority than drivers that
|
---|
31 | return lower values from GetVersion().
|
---|
32 |
|
---|
33 | @param This A pointer to the EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL instance.
|
---|
34 |
|
---|
35 | @return The version value associated with the driver specified by This.
|
---|
36 |
|
---|
37 | **/
|
---|
38 | typedef
|
---|
39 | UINT32
|
---|
40 | (EFIAPI *EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION)(
|
---|
41 | IN EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL *This
|
---|
42 | );
|
---|
43 |
|
---|
44 | ///
|
---|
45 | /// When installed, the Driver Family Override Protocol produces a GUID that represents
|
---|
46 | /// a family of drivers. Drivers with the same GUID are members of the same family
|
---|
47 | /// When drivers are connected to controllers, drivers with a higher revision value
|
---|
48 | /// in the same driver family are connected with a higher priority than drivers
|
---|
49 | /// with a lower revision value in the same driver family. The EFI Boot Service
|
---|
50 | /// Connect Controller uses five rules to build a prioritized list of drivers when
|
---|
51 | /// a request is made to connect a driver to a controller. The Driver Family Protocol
|
---|
52 | /// rule is between the Platform Specific Driver Override Protocol and above the
|
---|
53 | /// Bus Specific Driver Override Protocol.
|
---|
54 | ///
|
---|
55 | struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL {
|
---|
56 | EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION GetVersion;
|
---|
57 | };
|
---|
58 |
|
---|
59 | extern EFI_GUID gEfiDriverFamilyOverrideProtocolGuid;
|
---|
60 |
|
---|
61 | #endif
|
---|