Revision: 17404
          http://sourceforge.net/p/edk2/code/17404
Author:   niruiyu
Date:     2015-05-11 06:34:18 +0000 (Mon, 11 May 2015)
Log Message:
-----------
MdePkg: Add BootManagerPolicy protocol definition.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <[email protected]>
Reviewed-by: Eric Dong <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdePkg/MdePkg.dec

Added Paths:
-----------
    trunk/edk2/MdePkg/Include/Protocol/BootManagerPolicy.h

Added: trunk/edk2/MdePkg/Include/Protocol/BootManagerPolicy.h
===================================================================
--- trunk/edk2/MdePkg/Include/Protocol/BootManagerPolicy.h                      
        (rev 0)
+++ trunk/edk2/MdePkg/Include/Protocol/BootManagerPolicy.h      2015-05-11 
06:34:18 UTC (rev 17404)
@@ -0,0 +1,138 @@
+/** @file
+  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, 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 __BOOT_MANAGER_POLICY_H__
+#define __BOOT_MANAGER_POLICY_H__
+
+#define EFI_BOOT_MANAGER_POLICY_PROTOCOL_GUID \
+  { \
+    0xFEDF8E0C, 0xE147, 0x11E3, { 0x99, 0x03, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 
0xFA } \
+  }
+
+#define EFI_BOOT_MANAGER_POLICY_CONSOLE_GUID \
+  { \
+    0xCAB0E94C, 0xE15F, 0x11E3, { 0x91, 0x8D, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 
0xFA } \
+  }
+
+#define EFI_BOOT_MANAGER_POLICY_NETWORK_GUID \
+  { \
+    0xD04159DC, 0xE15F, 0x11E3, { 0xB2, 0x61, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 
0xFA } \
+  }
+
+#define EFI_BOOT_MANAGER_POLICY_CONNECT_ALL_GUID \
+  { \
+    0x113B2126, 0xFC8A, 0x11E3, { 0xBD, 0x6C, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 
0xFA } \
+  }
+
+typedef struct _EFI_BOOT_MANAGER_POLICY_PROTOCOL 
EFI_BOOT_MANAGER_POLICY_PROTOCOL;
+
+#define EFI_BOOT_MANAGER_POLICY_PROTOCOL_REVISION 0x00010000
+
+/**
+  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.
+
+  @param[in] This       A pointer to the EFI_BOOT_MANAGER_POLICY_PROTOCOL 
instance.
+  @param[in] DevicePath Points 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.
+  @param[in] Recursive  If 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.
+
+  @retval EFI_SUCCESS            The DevicePath was connected.
+  @retval EFI_NOT_FOUND          The DevicePath was not found.
+  @retval EFI_NOT_FOUND          No driver was connected to DevicePath.
+  @retval EFI_SECURITY_VIOLATION The user has no permission to start UEFI 
device 
+                                 drivers on the DevicePath.
+  @retval EFI_UNSUPPORTED        The 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 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.
+
+  @param[in] This  A pointer to the EFI_BOOT_MANAGER_POLICY_PROTOCOL instance.
+  @param[in] Class A pointer to an EFI_GUID that represents a class of devices
+                   that will be connected using the Boot Mangers platform 
policy.
+
+  @retval EFI_SUCCESS      At least one devices of the Class was connected.
+  @retval EFI_DEVICE_ERROR Devices were not connected due to an error.
+  @retval EFI_NOT_FOUND    The Class is not supported by the platform.
+  @retval EFI_UNSUPPORTED  The current TPL is not TPL_APPLICATION.
+**/        
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_CLASS)(
+  IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This,
+  IN EFI_GUID                         *Class
+  );
+
+struct _EFI_BOOT_MANAGER_POLICY_PROTOCOL {
+  UINT64                                       Revision;
+  EFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_PATH  ConnectDevicePath;
+  EFI_BOOT_MANAGER_POLICY_CONNECT_DEVICE_CLASS ConnectDeviceClass;
+};
+
+extern EFI_GUID gEfiBootManagerPolicyProtocolGuid;
+
+extern EFI_GUID gEfiBootManagerPolicyConsoleGuid;
+extern EFI_GUID gEfiBootManagerPolicyNetworkGuid;
+extern EFI_GUID gEfiBootManagerPolicyConnectAllGuid;
+
+#endif

Modified: trunk/edk2/MdePkg/MdePkg.dec
===================================================================
--- trunk/edk2/MdePkg/MdePkg.dec        2015-05-11 06:33:45 UTC (rev 17403)
+++ trunk/edk2/MdePkg/MdePkg.dec        2015-05-11 06:34:18 UTC (rev 17404)
@@ -586,6 +586,11 @@
   ## Include/Guid/SmBios.h
   gEfiSmbios3TableGuid = { 0xF2FD1544, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 
0xBB, 0xCF, 0x20, 0xE3, 0x94 }}
 
+  ## Include/Protocol/BootManagerPolicy.h
+  gEfiBootManagerPolicyConsoleGuid    = { 0xCAB0E94C, 0xE15F, 0x11E3, { 0x91, 
0x8D, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA }}
+  gEfiBootManagerPolicyNetworkGuid    = { 0xD04159DC, 0xE15F, 0x11E3, { 0xB2, 
0x61, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA }}
+  gEfiBootManagerPolicyConnectAllGuid = { 0x113B2126, 0xFC8A, 0x11E3, { 0xBD, 
0x6C, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA }}
+
   #
   # GUID defined in PI1.0
   #
@@ -1488,6 +1493,9 @@
   ## Include/Protocol/RegularExpressionProtocol.h
   gEfiRegularExpressionProtocolGuid = { 0xB3F79D9A, 0x436C, 0xDC11, {0xB0, 
0x52, 0xCD, 0x85, 0xDF, 0x52, 0x4C, 0xE6 }}
 
+  ## Include/Protocol/BootManagerPolicy.h
+  gEfiBootManagerPolicyProtocolGuid    = { 0xfedf8e0c, 0xe147, 0x11e3, { 0x99, 
0x03, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa }}
+
 #
 # [Error.gEfiMdePkgTokenSpaceGuid]
 #   0x80000001 | Invalid value provided.


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to