EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

EdkCompatibilityPkg/Foundation/Core/Dxe/ArchProtocol/Bds/Bds.h

Go to the documentation of this file.
00001 /*++ 
00002 
00003 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
00004 This program and the accompanying materials                          
00005 are licensed and made available under the terms and conditions of the BSD License         
00006 which accompanies this distribution.  The full text of the license may be found at        
00007 http://opensource.org/licenses/bsd-license.php                                            
00008                                                                                           
00009 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
00010 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
00011 
00012 Module Name:
00013 
00014   Bds.h
00015 
00016 Abstract:
00017 
00018   Boot Device Selection Architectural Protocol as defined in Tiano
00019 
00020   When the DXE core is done it calls the BDS via this protocol.
00021 
00022 --*/
00023 
00024 #ifndef _ARCH_PROTOCOL_BDS_H_
00025 #define _ARCH_PROTOCOL_BDS_H_
00026 
00027 //
00028 // Global ID for the BDS Architectural Protocol
00029 //
00030 #define EFI_BDS_ARCH_PROTOCOL_GUID \
00031   { 0x665E3FF6, 0x46CC, 0x11d4, {0x9A, 0x38, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D} }
00032 
00033 //
00034 // Declare forward reference for the BDS Architectural Protocol
00035 //
00036 EFI_FORWARD_DECLARATION (EFI_BDS_ARCH_PROTOCOL);
00037 
00038 typedef
00039 VOID
00040 (EFIAPI *EFI_BDS_ENTRY) (
00041   IN EFI_BDS_ARCH_PROTOCOL  * This
00042   );
00043 /*++
00044 
00045 Routine Description:
00046 
00047   This function uses policy data from the platform to determine what operating 
00048   system or system utility should be loaded and invoked.  This function call 
00049   also optionally make the use of user input to determine the operating system 
00050   or system utility to be loaded and invoked.  When the DXE Core has dispatched 
00051   all the drivers on the dispatch queue, this function is called.  This 
00052   function will attempt to connect the boot devices required to load and invoke 
00053   the selected operating system or system utility.  During this process, 
00054   additional firmware volumes may be discovered that may contain addition DXE 
00055   drivers that can be dispatched by the DXE Core.   If a boot device cannot be 
00056   fully connected, this function calls the DXE Service Dispatch() to allow the 
00057   DXE drivers from any newly discovered firmware volumes to be dispatched.  
00058   Then the boot device connection can be attempted again.  If the same boot 
00059   device connection operation fails twice in a row, then that boot device has 
00060   failed, and should be skipped.  This function should never return.
00061 
00062 Arguments:
00063 
00064   This - The EFI_BDS_ARCH_PROTOCOL instance.
00065 
00066 Returns: 
00067 
00068   None.
00069 
00070 --*/
00071 
00072 //
00073 // Interface stucture for the BDS Architectural Protocol
00074 //
00075 struct _EFI_BDS_ARCH_PROTOCOL {
00076   EFI_BDS_ENTRY Entry;
00077 };
00078 
00079 /*++
00080 
00081   Protocol Description:
00082     The EFI_BDS_ARCH_PROTOCOL transfers control from DXE to an operating 
00083     system or a system utility.  If there are not enough drivers initialized 
00084     when this protocol is used to access the required boot device(s), then 
00085     this protocol should add drivers to the dispatch queue and return control 
00086     back to the dispatcher.  Once the required boot devices are available, then 
00087     the boot device can be used to load and invoke an OS or a system utility.
00088 
00089   Parameters:
00090 
00091     Entry - The entry point to BDS.  This call does not take any parameters, 
00092             and the return value can be ignored.  If it returns, then the 
00093             dispatcher must be invoked again, if it never returns, then an 
00094             operating system or a system utility have been invoked.
00095 
00096 --*/
00097 
00098 extern EFI_GUID gEfiBdsArchProtocolGuid;
00099 
00100 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines