MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BootManagerPolicy.h File Reference

Data Structures

struct  _EFI_BOOT_MANAGER_POLICY_PROTOCOL
 

Macros

#define EFI_BOOT_MANAGER_POLICY_PROTOCOL_GUID
 
#define EFI_BOOT_MANAGER_POLICY_CONSOLE_GUID
 
#define EFI_BOOT_MANAGER_POLICY_NETWORK_GUID
 
#define EFI_BOOT_MANAGER_POLICY_CONNECT_ALL_GUID
 
#define EFI_BOOT_MANAGER_POLICY_PROTOCOL_REVISION   0x00010000
 

Typedefs

typedef struct
_EFI_BOOT_MANAGER_POLICY_PROTOCOL 
EFI_BOOT_MANAGER_POLICY_PROTOCOL
 
typedef EFI_STATUS(EFIAPIEFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_PATH )(IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This, IN EFI_DEVICE_PATH *DevicePath, IN BOOLEAN Recursive)
 
typedef EFI_STATUS(EFIAPIEFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_CLASS )(IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This, IN EFI_GUID *Class)
 

Variables

EFI_GUID gEfiBootManagerPolicyProtocolGuid
 
EFI_GUID gEfiBootManagerPolicyConsoleGuid
 
EFI_GUID gEfiBootManagerPolicyNetworkGuid
 
EFI_GUID gEfiBootManagerPolicyConnectAllGuid
 

Detailed Description

Boot Manager Policy Protocol as defined in UEFI Specification.

This protocol is used by EFI Applications to request the UEFI Boot Manager to connect devices using platform policy.

Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define EFI_BOOT_MANAGER_POLICY_CONNECT_ALL_GUID
Value:
{ \
0x113B2126, 0xFC8A, 0x11E3, { 0xBD, 0x6C, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA } \
}
#define EFI_BOOT_MANAGER_POLICY_CONSOLE_GUID
Value:
{ \
0xCAB0E94C, 0xE15F, 0x11E3, { 0x91, 0x8D, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA } \
}
#define EFI_BOOT_MANAGER_POLICY_NETWORK_GUID
Value:
{ \
0xD04159DC, 0xE15F, 0x11E3, { 0xB2, 0x61, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA } \
}
#define EFI_BOOT_MANAGER_POLICY_PROTOCOL_GUID
Value:
{ \
0xFEDF8E0C, 0xE147, 0x11E3, { 0x99, 0x03, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA } \
}
#define EFI_BOOT_MANAGER_POLICY_PROTOCOL_REVISION   0x00010000

Typedef Documentation

typedef EFI_STATUS(EFIAPI * EFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_CLASS)(IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This, IN EFI_GUID *Class)

Connect a class of devices using the platform Boot Manager policy.

The ConnectDeviceClass() function allows the caller to request that the Boot Manager connect a class of devices.

If Class is EFI_BOOT_MANAGER_POLICY_CONSOLE_GUID then the Boot Manager will use platform policy to connect consoles. Some platforms may restrict the number of consoles connected as they attempt to fast boot, and calling ConnectDeviceClass() with a Class value of EFI_BOOT_MANAGER_POLICY_CONSOLE_GUID must connect the set of consoles that follow the Boot Manager platform policy, and the EFI_SIMPLE_TEXT_INPUT_PROTOCOL, EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL, and the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL are produced on the connected handles. The Boot Manager may restrict which consoles get connect due to platform policy, for example a security policy may require that a given console is not connected.

If Class is EFI_BOOT_MANAGER_POLICY_NETWORK_GUID then the Boot Manager will connect the protocols the platforms supports for UEFI general purpose network applications on one or more handles. If more than one network controller is available a platform will connect, one, many, or all of the networks based on platform policy. Connecting UEFI networking protocols, like EFI_DHCP4_PROTOCOL, does not establish connections on the network. The UEFI general purpose network application that called ConnectDeviceClass() may need to use the published protocols to establish the network connection. The Boot Manager can optionally have a policy to establish a network connection.

If Class is EFI_BOOT_MANAGER_POLICY_CONNECT_ALL_GUID then the Boot Manager will connect all UEFI drivers using the UEFI Boot Service EFI_BOOT_SERVICES.ConnectController(). If the Boot Manager has policy associated with connect all UEFI drivers this policy will be used.

A platform can also define platform specific Class values as a properly generated EFI_GUID would never conflict with this specification.

Parameters
[in]ThisA pointer to the EFI_BOOT_MANAGER_POLICY_PROTOCOL instance.
[in]ClassA pointer to an EFI_GUID that represents a class of devices that will be connected using the Boot Mangers platform policy.
Return values
EFI_SUCCESSAt least one devices of the Class was connected.
EFI_DEVICE_ERRORDevices were not connected due to an error.
EFI_NOT_FOUNDThe Class is not supported by the platform.
EFI_UNSUPPORTEDThe current TPL is not TPL_APPLICATION.
typedef EFI_STATUS(EFIAPI * EFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_PATH)(IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This, IN EFI_DEVICE_PATH *DevicePath, IN BOOLEAN Recursive)

Connect a device path following the platforms EFI Boot Manager policy.

The ConnectDevicePath() function allows the caller to connect a DevicePath using the same policy as the EFI Boot Manger.

Parameters
[in]ThisA pointer to the EFI_BOOT_MANAGER_POLICY_PROTOCOL instance.
[in]DevicePathPoints to the start of the EFI device path to connect. If DevicePath is NULL then all the controllers in the system will be connected using the platforms EFI Boot Manager policy.
[in]RecursiveIf TRUE, then ConnectController() is called recursively until the entire tree of controllers below the controller specified by DevicePath have been created. If FALSE, then the tree of controllers is only expanded one level. If DevicePath is NULL then Recursive is ignored.
Return values
EFI_SUCCESSThe DevicePath was connected.
EFI_NOT_FOUNDThe DevicePath was not found.
EFI_NOT_FOUNDNo driver was connected to DevicePath.
EFI_SECURITY_VIOLATIONThe user has no permission to start UEFI device drivers on the DevicePath.
EFI_UNSUPPORTEDThe current TPL is not TPL_APPLICATION.

Variable Documentation

EFI_GUID gEfiBootManagerPolicyConnectAllGuid
EFI_GUID gEfiBootManagerPolicyConsoleGuid
EFI_GUID gEfiBootManagerPolicyNetworkGuid
EFI_GUID gEfiBootManagerPolicyProtocolGuid