]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/PlatformDriverOverride.h
add a error macro to prevent this file from included for now #error "UEFI 2.1 HII...
[mirror_edk2.git] / MdePkg / Include / Protocol / PlatformDriverOverride.h
CommitLineData
d1f95000 1/** @file\r
2 Platform Driver Override protocol as defined in the EFI 1.1 specification.\r
3\r
4 Copyright (c) 2006, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
d1f95000 13**/\r
14\r
15#ifndef __EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL_H__\r
16#define __EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL_H__\r
17\r
18//\r
19// Global ID for the Platform Driver Override Protocol\r
20//\r
21#define EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL_GUID \\r
22 { \\r
23 0x6b30c738, 0xa391, 0x11d4, {0x9a, 0x3b, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \\r
24 }\r
25\r
26typedef struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL;\r
27\r
28//\r
29// Prototypes for the Platform Driver Override Protocol\r
30//\r
31\r
32/** \r
33 Retrieves the image handle of the platform override driver for a controller in the system.\r
34 \r
35 @param This A pointer to the EFI_PLATFORM_DRIVER_OVERRIDE_\r
36 PROTOCOL instance. \r
37 @param ControllerHandle The device handle of the controller to check if a driver override\r
38 exists. \r
39 @param DriverImageHandle On input, a pointer to the previous driver image handle returned\r
40 by GetDriver(). On output, a pointer to the next driver \r
41 image handle. \r
42 \r
43 @retval EFI_SUCCESS The driver override for ControllerHandle was returned in\r
44 DriverImageHandle. \r
45 @retval EFI_NOT_FOUND A driver override for ControllerHandle was not found.\r
46 @retval EFI_INVALID_PARAMETER The handle specified by ControllerHandle is not a valid handle.\r
47 @retval EFI_INVALID_PARAMETER DriverImageHandle is not a handle that was returned on a\r
48 previous call to GetDriver(). \r
49 \r
50**/\r
51typedef\r
52EFI_STATUS\r
53(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER) (\r
54 IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,\r
55 IN EFI_HANDLE ControllerHandle,\r
56 IN OUT EFI_HANDLE *DriverImageHandle\r
57 );\r
58\r
59/** \r
60 Retrieves the device path of the platform override driver for a controller in the system.\r
61 \r
62 @param This A pointer to the EFI_PLATFORM_DRIVER_OVERRIDE_\r
63 PROTOCOL instance. \r
64 @param ControllerHandle The device handle of the controller to check if a driver override\r
65 exists. \r
66 @param DriverImageHandle On input, a pointer to the previous driver image handle returned\r
67 by GetDriverPath(). On output, a pointer to the next driver \r
68 device path.\r
69 \r
70 @retval EFI_SUCCESS The driver override for ControllerHandle was returned in\r
71 DriverImageHandle. \r
72 @retval EFI_UNSUPPORTED The operation is not supported. \r
73 @retval EFI_NOT_FOUND A driver override for ControllerHandle was not found.\r
74 @retval EFI_INVALID_PARAMETER The handle specified by ControllerHandle is not a valid handle.\r
75 @retval EFI_INVALID_PARAMETER DriverImagePath is not a device path that was returned on a\r
76 previous call to GetDriverPath(). \r
77 \r
78**/\r
79typedef\r
80EFI_STATUS\r
81(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH) (\r
82 IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,\r
83 IN EFI_HANDLE ControllerHandle,\r
84 IN OUT EFI_DEVICE_PATH_PROTOCOL **DriverImagePath\r
85 );\r
86\r
87/** \r
88 Used to associate a driver image handle with a device path that was returned on a prior call to the\r
89 GetDriverPath() service. This driver image handle will then be available through the \r
90 GetDriver() service. \r
91 \r
92 @param This A pointer to the EFI_PLATFORM_DRIVER_OVERRIDE_\r
93 PROTOCOL instance. \r
94 @param ControllerHandle The device handle of the controller. \r
95 @param DriverImagePath A pointer to the driver device path that was returned in a prior\r
96 call to GetDriverPath(). \r
97 @param DriverImageHandle The driver image handle that was returned by LoadImage()\r
98 when the driver specified by DriverImagePath was loaded \r
99 into memory. \r
100 \r
101 @retval EFI_SUCCESS The association between DriverImagePath and \r
102 DriverImageHandle was established for the controller specified\r
103 by ControllerHandle. \r
104 @retval EFI_UNSUPPORTED The operation is not supported. \r
105 @retval EFI_NOT_FOUND DriverImagePath is not a device path that was returned on a prior\r
106 call to GetDriverPath() for the controller specified by \r
107 ControllerHandle. \r
108 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid device handle.\r
109 @retval EFI_INVALID_PARAMETER DriverImagePath is not a valid device path.\r
110 @retval EFI_INVALID_PARAMETER DriverImageHandle is not a valid image handle.\r
111 \r
112**/\r
113typedef\r
114EFI_STATUS\r
115(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED) (\r
116 IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,\r
117 IN EFI_HANDLE ControllerHandle,\r
118 IN EFI_DEVICE_PATH_PROTOCOL *DriverImagePath,\r
119 IN EFI_HANDLE DriverImageHandle\r
120 );\r
121\r
122//\r
123// Interface structure for the Platform Driver Override Protocol\r
124//\r
125struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL {\r
126 EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER GetDriver;\r
127 EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH GetDriverPath;\r
128 EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED DriverLoaded;\r
129};\r
130\r
131extern EFI_GUID gEfiPlatformDriverOverrideProtocolGuid;\r
132\r
133#endif\r