git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4599 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			566 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			566 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
Copyright (c) 2004 - 2007, Intel Corporation                                                         
 | 
						|
All rights reserved. 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.             
 | 
						|
 | 
						|
Module Name:
 | 
						|
 | 
						|
  GenericBdsLib.h
 | 
						|
 | 
						|
Abstract:
 | 
						|
 | 
						|
  Generic BDS library definition, include the file and data structure
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#ifndef _GENERIC_BDS_LIB_H_
 | 
						|
#define _GENERIC_BDS_LIB_H_
 | 
						|
 | 
						|
//
 | 
						|
// WQBugBug: These Macro will be handled properly later.
 | 
						|
//
 | 
						|
//#undef EFI_SPECIFICATION_VERSION
 | 
						|
//#define EFI_SPECIFICATION_VERSION 0x0002000A
 | 
						|
 | 
						|
#define PI_SPECIFICATION_VERSION 0x00010000
 | 
						|
 | 
						|
#include <PiDxe.h>
 | 
						|
#include <Protocol/HiiDatabase.h>
 | 
						|
#include <IndustryStandard/PeImage.h>
 | 
						|
 | 
						|
 | 
						|
extern EFI_HANDLE mBdsImageHandle;
 | 
						|
 | 
						|
//
 | 
						|
// Constants which are variable names used to access variables
 | 
						|
//
 | 
						|
#define VarLegacyDevOrder L"LegacyDevOrder"
 | 
						|
 | 
						|
//
 | 
						|
// Data structures and defines
 | 
						|
//
 | 
						|
#define FRONT_PAGE_QUESTION_ID  0x0000
 | 
						|
#define FRONT_PAGE_DATA_WIDTH   0x01
 | 
						|
 | 
						|
//
 | 
						|
// ConnectType
 | 
						|
//
 | 
						|
#define CONSOLE_OUT 0x00000001
 | 
						|
#define STD_ERROR   0x00000002
 | 
						|
#define CONSOLE_IN  0x00000004
 | 
						|
#define CONSOLE_ALL (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)
 | 
						|
 | 
						|
//
 | 
						|
// Load Option Attributes defined in EFI Specification
 | 
						|
//
 | 
						|
#define LOAD_OPTION_ACTIVE              0x00000001
 | 
						|
#define LOAD_OPTION_FORCE_RECONNECT     0x00000002
 | 
						|
 | 
						|
#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
 | 
						|
#define LOAD_OPTION_HIDDEN              0x00000008
 | 
						|
#define LOAD_OPTION_CATEGORY            0x00001F00
 | 
						|
 | 
						|
#define LOAD_OPTION_CATEGORY_BOOT       0x00000000
 | 
						|
#define LOAD_OPTION_CATEGORY_APP        0x00000100
 | 
						|
 | 
						|
#define EFI_BOOT_OPTION_SUPPORT_KEY     0x00000001
 | 
						|
#define EFI_BOOT_OPTION_SUPPORT_APP     0x00000002
 | 
						|
#endif
 | 
						|
 | 
						|
#define IS_LOAD_OPTION_TYPE(_c, _Mask)  (BOOLEAN) (((_c) & (_Mask)) != 0)
 | 
						|
 | 
						|
//
 | 
						|
// Define Maxmim characters that will be accepted
 | 
						|
//
 | 
						|
#define MAX_CHAR            480
 | 
						|
#define MAX_CHAR_SIZE       (MAX_CHAR * 2)
 | 
						|
 | 
						|
#define MIN_ALIGNMENT_SIZE  4
 | 
						|
#define ALIGN_SIZE(a)       ((a % MIN_ALIGNMENT_SIZE) ? MIN_ALIGNMENT_SIZE - (a % MIN_ALIGNMENT_SIZE) : 0)
 | 
						|
 | 
						|
//
 | 
						|
// Define maximum characters for boot option variable "BootXXXX"
 | 
						|
//
 | 
						|
#define BOOT_OPTION_MAX_CHAR 10
 | 
						|
 | 
						|
//
 | 
						|
// This data structure is the part of BDS_CONNECT_ENTRY that we can hard code.
 | 
						|
//
 | 
						|
#define BDS_LOAD_OPTION_SIGNATURE EFI_SIGNATURE_32 ('B', 'd', 'C', 'O')
 | 
						|
 | 
						|
typedef struct {
 | 
						|
 | 
						|
  UINTN                     Signature;
 | 
						|
  LIST_ENTRY                Link;
 | 
						|
 | 
						|
  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;
 | 
						|
 | 
						|
  CHAR16                    *OptionName;
 | 
						|
  UINTN                     OptionNumber;
 | 
						|
  UINT16                    BootCurrent;
 | 
						|
  UINT32                    Attribute;
 | 
						|
  CHAR16                    *Description;
 | 
						|
  VOID                      *LoadOptions;
 | 
						|
  UINT32                    LoadOptionsSize;
 | 
						|
  CHAR16                    *StatusString;
 | 
						|
 | 
						|
} BDS_COMMON_OPTION;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;
 | 
						|
  UINTN                     ConnectType;
 | 
						|
} BDS_CONSOLE_CONNECT_ENTRY;
 | 
						|
 | 
						|
//
 | 
						|
// Lib Functions
 | 
						|
//
 | 
						|
 | 
						|
//
 | 
						|
// Bds boot relate lib functions
 | 
						|
//
 | 
						|
EFI_STATUS
 | 
						|
BdsLibUpdateBootOrderList (
 | 
						|
  IN  LIST_ENTRY                 *BdsOptionList,
 | 
						|
  IN  CHAR16                         *VariableName
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
BdsLibBootNext (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibBootViaBootOption (
 | 
						|
  IN  BDS_COMMON_OPTION             * Option,
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL      * DevicePath,
 | 
						|
  OUT UINTN                         *ExitDataSize,
 | 
						|
  OUT CHAR16                        **ExitData OPTIONAL
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibEnumerateAllBootOption (
 | 
						|
  IN OUT LIST_ENTRY    *BdsBootOptionList
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
BdsLibBuildOptionFromHandle (
 | 
						|
  IN  EFI_HANDLE          Handle,
 | 
						|
  IN  LIST_ENTRY      *BdsBootOptionList,
 | 
						|
  IN  CHAR16              *String
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
BdsLibBuildOptionFromShell (
 | 
						|
  IN  EFI_HANDLE                     Handle,
 | 
						|
  IN  LIST_ENTRY                 *BdsBootOptionList
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Bds misc lib functions
 | 
						|
//
 | 
						|
UINT16
 | 
						|
BdsLibGetTimeout (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibGetBootMode (
 | 
						|
  OUT EFI_BOOT_MODE       *BootMode
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
BdsLibLoadDrivers (
 | 
						|
  IN  LIST_ENTRY              *BdsDriverLists
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibBuildOptionFromVar (
 | 
						|
  IN  LIST_ENTRY              *BdsCommonOptionList,
 | 
						|
  IN  CHAR16                      *VariableName
 | 
						|
  );
 | 
						|
 | 
						|
VOID                      *
 | 
						|
BdsLibGetVariableAndSize (
 | 
						|
  IN  CHAR16              *Name,
 | 
						|
  IN  EFI_GUID            *VendorGuid,
 | 
						|
  OUT UINTN               *VariableSize
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibOutputStrings (
 | 
						|
  IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL   *ConOut,
 | 
						|
  ...
 | 
						|
  );
 | 
						|
 | 
						|
BDS_COMMON_OPTION         *
 | 
						|
BdsLibVariableToOption (
 | 
						|
  IN OUT LIST_ENTRY               *BdsCommonOptionList,
 | 
						|
  IN CHAR16                           *VariableName
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibRegisterNewOption (
 | 
						|
  IN  LIST_ENTRY                 *BdsOptionList,
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL       *DevicePath,
 | 
						|
  IN  CHAR16                         *String,
 | 
						|
  IN  CHAR16                         *VariableName
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Bds connect or disconnect driver lib funcion
 | 
						|
//
 | 
						|
VOID
 | 
						|
BdsLibConnectAllDriversToAllControllers (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
BdsLibConnectAll (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibConnectDevicePath (
 | 
						|
  IN EFI_DEVICE_PATH_PROTOCOL  *DevicePathToConnect
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibConnectAllEfi (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibDisconnectAllEfi (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Bds console relate lib functions
 | 
						|
//
 | 
						|
VOID
 | 
						|
BdsLibConnectAllConsoles (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibConnectAllDefaultConsoles (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibUpdateConsoleVariable (
 | 
						|
  IN  CHAR16                    *ConVarName,
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL  *CustomizedConDevicePath,
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL  *ExclusiveDevicePath
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibConnectConsoleVariable (
 | 
						|
  IN  CHAR16                 *ConVarName
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Bds device path relate lib functions
 | 
						|
//
 | 
						|
EFI_DEVICE_PATH_PROTOCOL  *
 | 
						|
BdsLibUnpackDevicePath (
 | 
						|
  IN EFI_DEVICE_PATH_PROTOCOL  *DevPath
 | 
						|
  );
 | 
						|
 | 
						|
EFI_DEVICE_PATH_PROTOCOL *
 | 
						|
BdsLibDelPartMatchInstance (
 | 
						|
  IN     EFI_DEVICE_PATH_PROTOCOL  *Multi,
 | 
						|
  IN     EFI_DEVICE_PATH_PROTOCOL  *Single
 | 
						|
  );
 | 
						|
 | 
						|
BOOLEAN
 | 
						|
BdsLibMatchDevicePaths (
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL  *Multi,
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL  *Single
 | 
						|
  );
 | 
						|
 | 
						|
CHAR16                    *
 | 
						|
DevicePathToStr (
 | 
						|
  EFI_DEVICE_PATH_PROTOCOL     *DevPath
 | 
						|
  );
 | 
						|
 | 
						|
VOID                      *
 | 
						|
EfiLibGetVariable (
 | 
						|
  IN CHAR16               *Name,
 | 
						|
  IN EFI_GUID             *VendorGuid
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Internal definitions
 | 
						|
//
 | 
						|
typedef struct {
 | 
						|
  CHAR16  *str;
 | 
						|
  UINTN   len;
 | 
						|
  UINTN   maxlen;
 | 
						|
} POOL_PRINT;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINT8 Type;
 | 
						|
  UINT8 SubType;
 | 
						|
  VOID (*Function) (POOL_PRINT *, VOID *);
 | 
						|
} DEVICE_PATH_STRING_TABLE;
 | 
						|
 | 
						|
extern EFI_GUID mEfiDevicePathMessagingUartFlowControlGuid;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_DEVICE_PATH_PROTOCOL  Header;
 | 
						|
  EFI_GUID                  Guid;
 | 
						|
  UINT8                     VendorDefinedData[1];
 | 
						|
} VENDOR_DEVICE_PATH_WITH_DATA;
 | 
						|
 | 
						|
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
 | 
						|
 | 
						|
extern EFI_GUID mEfiDevicePathMessagingSASGuid;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_DEVICE_PATH_PROTOCOL  Header;
 | 
						|
  UINT16                    NetworkProtocol;
 | 
						|
  UINT16                    LoginOption;
 | 
						|
  UINT64                    Lun;
 | 
						|
  UINT16                    TargetPortalGroupTag;
 | 
						|
  CHAR16                    iSCSITargetName[1];
 | 
						|
} ISCSI_DEVICE_PATH_WITH_NAME;
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
//
 | 
						|
// Internal functions
 | 
						|
//
 | 
						|
EFI_STATUS
 | 
						|
BdsBootByDiskSignatureAndPartition (
 | 
						|
  IN  BDS_COMMON_OPTION          * Option,
 | 
						|
  IN  HARDDRIVE_DEVICE_PATH      * HardDriveDevicePath,
 | 
						|
  IN  UINT32                     LoadOptionsSize,
 | 
						|
  IN  VOID                       *LoadOptions,
 | 
						|
  OUT UINTN                      *ExitDataSize,
 | 
						|
  OUT CHAR16                     **ExitData OPTIONAL
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Notes: EFI 64 shadow all option rom
 | 
						|
//
 | 
						|
#if defined (MDE_CPU_IPF)
 | 
						|
#define EFI64_SHADOW_ALL_LEGACY_ROM() ShadowAllOptionRom ();
 | 
						|
VOID
 | 
						|
ShadowAllOptionRom();
 | 
						|
#else
 | 
						|
#define EFI64_SHADOW_ALL_LEGACY_ROM()
 | 
						|
#endif
 | 
						|
 | 
						|
//
 | 
						|
// BBS support macros and functions
 | 
						|
//
 | 
						|
 | 
						|
#if defined(MDE_CPU_IA32) || defined(MDE_CPU_X64)
 | 
						|
#define REFRESH_LEGACY_BOOT_OPTIONS \
 | 
						|
        BdsDeleteAllInvalidLegacyBootOptions ();\
 | 
						|
        BdsAddNonExistingLegacyBootOptions (); \
 | 
						|
        BdsUpdateLegacyDevOrder ()
 | 
						|
#else
 | 
						|
#define REFRESH_LEGACY_BOOT_OPTIONS
 | 
						|
#endif
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsDeleteAllInvalidLegacyBootOptions (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsAddNonExistingLegacyBootOptions (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsUpdateLegacyDevOrder (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsRefreshBbsTableForBoot (
 | 
						|
  IN BDS_COMMON_OPTION        *Entry
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsDeleteBootOption (
 | 
						|
  IN UINTN                       OptionNumber,
 | 
						|
  IN OUT UINT16                  *BootOrder,
 | 
						|
  IN OUT UINTN                   *BootOrderSize
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
//The interface functions relate with Setup Browser Reset Reminder feature
 | 
						|
//
 | 
						|
VOID
 | 
						|
EnableResetReminderFeature (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
DisableResetReminderFeature (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
EnableResetRequired (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
DisableResetRequired (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
BOOLEAN
 | 
						|
IsResetReminderFeatureEnable (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
BOOLEAN
 | 
						|
IsResetRequired (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
SetupResetReminder (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibGetImageHeader (
 | 
						|
  IN  EFI_HANDLE                  Device,
 | 
						|
  IN  CHAR16                      *FileName,
 | 
						|
  OUT EFI_IMAGE_DOS_HEADER        *DosHeader,
 | 
						|
  OUT EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION   Hdr
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibGetHiiHandles (
 | 
						|
#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
 | 
						|
  IN     EFI_HII_DATABASE_PROTOCOL *HiiDatabase,
 | 
						|
#else
 | 
						|
  IN     EFI_HII_PROTOCOL          *Hii,
 | 
						|
#endif
 | 
						|
  IN OUT UINT16                    *HandleBufferLength,
 | 
						|
  OUT    EFI_HII_HANDLE            **HiiHandleBuffer
 | 
						|
  );
 | 
						|
  
 | 
						|
//
 | 
						|
// Define the boot type which to classify the boot option type
 | 
						|
// Different boot option type could have different boot behavior
 | 
						|
// Use their device path node (Type + SubType) as type value
 | 
						|
// The boot type here can be added according to requirement
 | 
						|
//
 | 
						|
//
 | 
						|
// ACPI boot type. For ACPI device, cannot use sub-type to distinguish device, so hardcode their value
 | 
						|
//
 | 
						|
#define  BDS_EFI_ACPI_FLOPPY_BOOT         0x0201
 | 
						|
//
 | 
						|
// Message boot type
 | 
						|
// If a device path of boot option only point to a message node, the boot option is message boot type
 | 
						|
//
 | 
						|
#define  BDS_EFI_MESSAGE_ATAPI_BOOT       0x0301 // Type 03; Sub-Type 01
 | 
						|
#define  BDS_EFI_MESSAGE_SCSI_BOOT        0x0302 // Type 03; Sub-Type 02
 | 
						|
#define  BDS_EFI_MESSAGE_USB_DEVICE_BOOT  0x0305 // Type 03; Sub-Type 05
 | 
						|
#define  BDS_EFI_MESSAGE_MISC_BOOT        0x03FF
 | 
						|
//
 | 
						|
// Media boot type
 | 
						|
// If a device path of boot option contain a media node, the boot option is media boot type
 | 
						|
//
 | 
						|
#define  BDS_EFI_MEDIA_HD_BOOT            0x0401 // Type 04; Sub-Type 01
 | 
						|
#define  BDS_EFI_MEDIA_CDROM_BOOT         0x0402 // Type 04; Sub-Type 02
 | 
						|
//
 | 
						|
// BBS boot type
 | 
						|
// If a device path of boot option contain a BBS node, the boot option is BBS boot type
 | 
						|
//
 | 
						|
#define  BDS_LEGACY_BBS_BOOT              0x0501 //  Type 05; Sub-Type 01
 | 
						|
 | 
						|
#define  BDS_EFI_UNSUPPORT                0xFFFF
 | 
						|
 | 
						|
//
 | 
						|
// USB host controller Programming Interface.
 | 
						|
//
 | 
						|
#define  PCI_CLASSC_PI_UHCI               0x00
 | 
						|
#define  PCI_CLASSC_PI_EHCI               0x20
 | 
						|
 | 
						|
BOOLEAN
 | 
						|
MatchPartitionDevicePathNode (
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL   *BlockIoDevicePath,
 | 
						|
  IN  HARDDRIVE_DEVICE_PATH      *HardDriveDevicePath
 | 
						|
  );
 | 
						|
  
 | 
						|
EFI_DEVICE_PATH_PROTOCOL *
 | 
						|
BdsExpandPartitionPartialDevicePathToFull (
 | 
						|
  IN  HARDDRIVE_DEVICE_PATH      *HardDriveDevicePath
 | 
						|
  );
 | 
						|
  
 | 
						|
EFI_HANDLE
 | 
						|
BdsLibGetBootableHandle (
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL      *DevicePath
 | 
						|
  );
 | 
						|
  
 | 
						|
BOOLEAN
 | 
						|
BdsLibIsValidEFIBootOptDevicePath (
 | 
						|
  IN EFI_DEVICE_PATH_PROTOCOL     *DevPath,
 | 
						|
  IN BOOLEAN                      CheckMedia
 | 
						|
  );
 | 
						|
  
 | 
						|
UINT32
 | 
						|
BdsGetBootTypeFromDevicePath (
 | 
						|
  IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath
 | 
						|
  );
 | 
						|
  
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
BdsLibSaveMemoryTypeInformation (
 | 
						|
  VOID 
 | 
						|
  );
 | 
						|
  
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
BdsLibUpdateFvFileDevicePath (
 | 
						|
  IN  OUT EFI_DEVICE_PATH_PROTOCOL      ** DevicePath,
 | 
						|
  IN  EFI_GUID                          *FileGuid
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
BdsLibConnectUsbDevByShortFormDP (
 | 
						|
  IN CHAR8                      HostControllerPI,
 | 
						|
  IN EFI_DEVICE_PATH_PROTOCOL   *RemainingDevicePath
 | 
						|
  );
 | 
						|
  
 | 
						|
EFI_TPL
 | 
						|
BdsLibGetCurrentTpl (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// The implementation of this function is provided by Platform code.
 | 
						|
//
 | 
						|
VOID
 | 
						|
DevPathVendor (
 | 
						|
  IN OUT POOL_PRINT       *Str,
 | 
						|
  IN VOID                 *DevPath
 | 
						|
  )
 | 
						|
;
 | 
						|
 | 
						|
CHAR16 *
 | 
						|
CatPrint (
 | 
						|
  IN OUT POOL_PRINT   *Str,
 | 
						|
  IN CHAR16           *fmt,
 | 
						|
  ...
 | 
						|
  )
 | 
						|
;
 | 
						|
#endif // _BDS_LIB_H_
 |