1// /** @file
2// This driver produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist.
3//
4// It doesn't install again if this protocol exists.
5// It only implements one interface GetDriver of PLATFORM_DRIVER_OVERRIDE_PROTOCOL protocol
6// and doesn't support other two interfaces GetDriverPath, DriverLoaded.
7//
8// This driver also offers an UI interface in device manager to let user configure
9// platform override protocol to override the default algorithm for matching
10// drivers to controllers.
11//
12// The main flow:
13// 1. It dynamicly locate all controller device path.
14// 2. It dynamicly locate all drivers which support binding protocol.
15// 3. It export and dynamicly update two menu to let user select the
16// mapping between drivers to controllers.
17// 4. It save all the mapping info in NV variables for the following boot,
18// which will be consumed by GetDriver API of the produced the platform override protocol.
19//
20// Caution: This module is a sample implementation for the test purpose.
21//
22// Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
23//
24// This program and the accompanying materials
25// are licensed and made available under the terms and conditions of the BSD License
26// which accompanies this distribution. The full text of the license may be found at
27// http://opensource.org/licenses/bsd-license.php
28//
29// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
30// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
31//
32// **/
33
34
35#string STR_MODULE_ABSTRACT             #language en-US "Produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist"
36
37#string STR_MODULE_DESCRIPTION          #language en-US "This driver produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist. It only implements the GetDriver() interface of PLATFORM_DRIVER_OVERRIDE_PROTOCOL protocol This driver also offers an UI interface in device manager to let users configure PlatformOverrideProtocol to override the default algorithm for matching drivers to controllers.<BR><BR>\n"
38                                                        "The main flow:<BR>\n"
39                                                        "1. It dynamically locates all controller device path.<BR>\n"
40                                                        "2. It dynamically locates all drivers which support binding protocol.<BR>\n"
41                                                        "3. It exports and dynamicly updates two menu to let user select the  mapping between drivers to controllers.<BR>\n"
42                                                        "4. It saves all the mapping info in NV variables for the following boot,  which will be consumed by GetDriver API of the produced the platform override protocol.<BR>"
43
44