1 /*++ @file 2 3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR> 4 Portions copyright (c) 2011, Apple Inc. All rights reserved. 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef _BDS_PLATFORM_H 16 #define _BDS_PLATFORM_H 17 18 #include <PiDxe.h> 19 20 #include <Guid/EmuSystemConfig.h> 21 #include <Protocol/EmuThunk.h> 22 #include <Protocol/EmuIoThunk.h> 23 #include <Protocol/EmuGraphicsWindow.h> 24 25 #include <Library/DebugLib.h> 26 #include <Library/BaseMemoryLib.h> 27 #include <Library/UefiBootServicesTableLib.h> 28 #include <Library/UefiRuntimeServicesTableLib.h> 29 #include <Library/MemoryAllocationLib.h> 30 #include <Library/BaseLib.h> 31 #include <Library/PcdLib.h> 32 #include <Library/GenericBdsLib.h> 33 #include <Library/PlatformBdsLib.h> 34 #include <Library/DevicePathLib.h> 35 36 37 extern BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole[]; 38 extern EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[]; 39 extern EFI_DEVICE_PATH_PROTOCOL *gPlatformDriverOption[]; 40 41 #define gEndEntire \ 42 { \ 43 END_DEVICE_PATH_TYPE,\ 44 END_ENTIRE_DEVICE_PATH_SUBTYPE,\ 45 { \ 46 END_DEVICE_PATH_LENGTH,\ 47 0\ 48 }\ 49 } 50 51 52 typedef struct { 53 EMU_VENDOR_DEVICE_PATH_NODE EmuBus; 54 EMU_VENDOR_DEVICE_PATH_NODE EmuGraphicsWindow; 55 EFI_DEVICE_PATH_PROTOCOL End; 56 } EMU_PLATFORM_UGA_DEVICE_PATH; 57 58 59 // 60 // Platform BDS Functions 61 // 62 VOID 63 PlatformBdsGetDriverOption ( 64 IN LIST_ENTRY *BdsDriverLists 65 ); 66 67 EFI_STATUS 68 BdsMemoryTest ( 69 EXTENDMEM_COVERAGE_LEVEL Level 70 ); 71 72 73 VOID 74 PlatformBdsConnectSequence ( 75 VOID 76 ); 77 78 EFI_STATUS 79 ProcessCapsules ( 80 EFI_BOOT_MODE BootMode 81 ); 82 83 EFI_STATUS 84 PlatformBdsConnectConsole ( 85 IN BDS_CONSOLE_CONNECT_ENTRY *PlatformConsole 86 ); 87 88 EFI_STATUS 89 PlatformBdsNoConsoleAction ( 90 VOID 91 ); 92 93 VOID 94 PlatformBdsEnterFrontPage ( 95 IN UINT16 TimeoutDefault, 96 IN BOOLEAN ConnectAllHappened 97 ); 98 99 #endif // _BDS_PLATFORM_H 100