text: /** @file
    Platform Boot Manager library definition. A platform can implement
    instances to support platform-specific behavior.
  
  Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
  This program and the accompanying materials
  are licensed and made available under the terms and conditions of the BSD License
  which accompanies this distribution.  The full text of the license may be found at
  http://opensource.org/licenses/bsd-license.php
  
  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
  
  **/
  
  
  #ifndef __PLATFORM_BOOT_MANAGER_LIB_H_
  #define __PLATFORM_BOOT_MANAGER_LIB_H_
  #include <Library/UefiBootManagerLib.h>
  
  /**
    Do the platform specific action before the console is connected.
  
    Such as:
      Update console variable;
      Register new Driver#### or Boot####;
      Signal ReadyToLock event.
  **/
  VOID
  EFIAPI
  PlatformBootManagerBeforeConsole (
    VOID
    );
  
  /**
    Do the platform specific action after the console is connected.
  
    Such as:
      Dynamically switch output mode;
      Signal console ready platform customized event;
      Run diagnostics like memory testing;
      Connect certain devices;
      Dispatch aditional option roms.
  **/
  VOID
  EFIAPI
  PlatformBootManagerAfterConsole (
    VOID
    );
  
  /**
    This function is called each second during the boot manager waits the timeout.
  
    @param TimeoutRemain  The remaining timeout.
  **/
  VOID
  EFIAPI
  PlatformBootManagerWaitCallback (
    UINT16          TimeoutRemain
    );
  
  
  /**   MSCHANGE begin
     Do Platform specific action required at start of BDS
  
  **/
  VOID
  EFIAPI
  PlatformBootManagerBdsEntry (
    VOID
    );
  
  /**
  ProcessBootCompletion
  */
  VOID
  EFIAPI
  PlatformBootManagerProcessBootCompletion (
    IN EFI_BOOT_MANAGER_LOAD_OPTION *BootOption
    );
  
  /**
   HardKeyBoot
  */
  VOID
  EFIAPI
  PlatformBootManagerPriorityBoot (
    UINT16 **BootNext
    );
  
  /**
   BDS Deadloop - error, unable to boot any boot option
  */
  VOID
  EFIAPI
  PlatformBootManagerDeadloop (
    VOID
    );
  
  /**
    OnDemandConInCOnnect
   */
  VOID
  EFIAPI
  PlatformBootManagerOnDemandConInConnect (
    VOID
    );
  
  /**
   This is called from BDS right before going into front page 
   when no bootable devices/options found
  */
  VOID
  EFIAPI
  PlatformBootManagerUnableToBoot (
    VOID
    );
  
  /**   MSCHANGE end */
  #endif
  