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