]> git.proxmox.com Git - mirror_edk2.git/blob - EdkModulePkg/Include/Library/EdkGenericPlatformBdsLib.h
Change the EfiAquireLock with RaiseTPL as the call to Boot Service UnloadImage can...
[mirror_edk2.git] / EdkModulePkg / Include / Library / EdkGenericPlatformBdsLib.h
1 /*++
2
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 BdsPlatform.h
15
16 Abstract:
17
18 Head file for BDS Platform specific code
19
20 --*/
21
22 #ifndef _BDS_PLATFORM_LIB_H
23 #define _BDS_PLATFORM_LIB_H
24
25 extern BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole[];
26 extern EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[];
27 extern EFI_DEVICE_PATH_PROTOCOL *gPlatformDriverOption[];
28 //
29 // Bds AP Context data
30 //
31 #define EFI_BDS_ARCH_PROTOCOL_INSTANCE_SIGNATURE EFI_SIGNATURE_32 ('B', 'd', 's', 'A')
32 typedef struct {
33 UINTN Signature;
34
35 EFI_HANDLE Handle;
36
37 EFI_BDS_ARCH_PROTOCOL Bds;
38
39 //
40 // Save the current boot mode
41 //
42 EFI_BOOT_MODE BootMode;
43
44 //
45 // Set true if boot with default settings
46 //
47 BOOLEAN DefaultBoot;
48
49 //
50 // The system default timeout for choose the boot option
51 //
52 UINT16 TimeoutDefault;
53
54 //
55 // Memory Test Level
56 //
57 EXTENDMEM_COVERAGE_LEVEL MemoryTestLevel;
58
59 } EFI_BDS_ARCH_PROTOCOL_INSTANCE;
60
61 #define EFI_BDS_ARCH_PROTOCOL_INSTANCE_FROM_THIS(_this) \
62 CR (_this, \
63 EFI_BDS_ARCH_PROTOCOL_INSTANCE, \
64 Bds, \
65 EFI_BDS_ARCH_PROTOCOL_INSTANCE_SIGNATURE \
66 )
67
68
69 #define gEndEntire \
70 { \
71 END_DEVICE_PATH_TYPE,\
72 END_ENTIRE_DEVICE_PATH_SUBTYPE,\
73 {\
74 END_DEVICE_PATH_LENGTH,\
75 0\
76 }\
77 }
78
79 //
80 // Platform BDS Functions
81 //
82 VOID
83 PlatformBdsInit (
84 IN EFI_BDS_ARCH_PROTOCOL_INSTANCE *PrivateData
85 )
86 ;
87
88 VOID
89 PlatformBdsPolicyBehavior (
90 IN EFI_BDS_ARCH_PROTOCOL_INSTANCE *PrivateData,
91 IN LIST_ENTRY *DriverOptionList,
92 IN LIST_ENTRY *BootOptionList
93 )
94 ;
95
96 EFI_STATUS
97 BdsMemoryTest (
98 EXTENDMEM_COVERAGE_LEVEL Level
99 )
100 ;
101
102 EFI_STATUS
103 PlatformBdsShowProgress (
104 EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,
105 EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,
106 CHAR16 *Title,
107 EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,
108 UINTN Progress,
109 UINTN PreviousValue
110 )
111 ;
112
113 VOID
114 PlatformBdsBootFail (
115 IN BDS_COMMON_OPTION *Option,
116 IN EFI_STATUS Status,
117 IN CHAR16 *ExitData,
118 IN UINTN ExitDataSize
119 )
120 ;
121
122 VOID
123 PlatformBdsBootSuccess (
124 IN BDS_COMMON_OPTION *Option
125 )
126 ;
127
128 EFI_STATUS
129 ProcessCapsules (
130 EFI_BOOT_MODE BootMode
131 )
132 ;
133
134 VOID
135 PlatformBdsEnterFrontPage (
136 IN UINT16 TimeoutDefault,
137 IN BOOLEAN ConnectAllHappened
138 );
139
140 #endif // _BDS_PLATFORM_LIB_H