Home | History | Annotate | Download | only in PlatformDriOverrideDxe
      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