1 /*++ 2 3 Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR> 4 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 IfrParse.h 15 16 Abstract: 17 18 Prototypes and defines for the IFR parsing services. 19 20 --*/ 21 22 #ifndef _IFR_PARSE_H_ 23 #define _IFR_PARSE_H_ 24 25 #define DEFAULT_HII_PACK_FILENAME_EXTENSION ".hpk" 26 // 27 // When we parse IFR, we'll keep the IFR in a linked list of 28 // these. 29 // 30 typedef struct _IFR_PARSE_ENTRY { 31 struct _IFR_PARSE_ENTRY *Next; 32 int Tag; // for debugging 33 EFI_IFR_OP_HEADER *RawIfrHeader; 34 // 35 // GUIDs for variable storage 36 // 37 EFI_GUID *VarStoreGuid1; 38 char *VarStoreName1; 39 EFI_GUID *VarStoreGuid2; 40 char *VarStoreName2; 41 } IFR_PARSE_ENTRY; 42 43 typedef struct _IFR_PARSE_CONTEXT { 44 struct _IFR_PARSE_CONTEXT *Next; 45 EFI_HII_IFR_PACK *PackHeader; 46 char *IfrBufferStart; 47 char *CurrentPos; 48 long IfrBufferLen; 49 int Handle; 50 IFR_PARSE_ENTRY *Ifr; 51 IFR_PARSE_ENTRY *LastIfr; 52 IFR_PARSE_ENTRY *CurrentIfr; 53 FILE *OutFptr; 54 CHAR16 *Language; 55 EFI_GUID *FormsetGuid; 56 EFI_GUID NullGuid; // for use until we set the Guid field correctly 57 EFI_GUID PackageGuid; // from the PackageGuid in the HII data table 58 } IFR_PARSE_CONTEXT; 59 60 STATUS 61 IfrGetVarPack ( 62 int VarIndex, 63 EFI_HII_VARIABLE_PACK **VarPack 64 ) 65 /*++ 66 67 Routine Description: 68 69 GC_TODO: Add function description 70 71 Arguments: 72 73 VarIndex - GC_TODO: add argument description 74 VarPack - GC_TODO: add argument description 75 76 Returns: 77 78 GC_TODO: add return values 79 80 --*/ 81 ; 82 83 STATUS 84 IfrParsePack ( 85 int Handle, 86 EFI_HII_IFR_PACK *PackHeader, 87 EFI_GUID *PackageGuid 88 ) 89 /*++ 90 91 Routine Description: 92 93 GC_TODO: Add function description 94 95 Arguments: 96 97 Handle - GC_TODO: add argument description 98 PackHeader - GC_TODO: add argument description 99 PackageGuid - GC_TODO: add argument description 100 101 Returns: 102 103 GC_TODO: add return values 104 105 --*/ 106 ; 107 108 STATUS 109 IfrParseCheck ( 110 char *Buffer, 111 long BufferSize 112 ) 113 /*++ 114 115 Routine Description: 116 117 GC_TODO: Add function description 118 119 Arguments: 120 121 Buffer - GC_TODO: add argument description 122 BufferSize - GC_TODO: add argument description 123 124 Returns: 125 126 GC_TODO: add return values 127 128 --*/ 129 ; 130 131 STATUS 132 IfrParseInit ( 133 VOID 134 ) 135 /*++ 136 137 Routine Description: 138 139 GC_TODO: Add function description 140 141 Arguments: 142 143 None 144 145 Returns: 146 147 GC_TODO: add return values 148 149 --*/ 150 ; 151 152 STATUS 153 IfrParseEnd ( 154 VOID 155 ) 156 /*++ 157 158 Routine Description: 159 160 GC_TODO: Add function description 161 162 Arguments: 163 164 None 165 166 Returns: 167 168 GC_TODO: add return values 169 170 --*/ 171 ; 172 173 STATUS 174 IfrParseDump ( 175 int Handle, 176 CHAR16 *Language, 177 FILE *OutFptr 178 ) 179 /*++ 180 181 Routine Description: 182 183 GC_TODO: Add function description 184 185 Arguments: 186 187 Handle - GC_TODO: add argument description 188 Language - GC_TODO: add argument description 189 OutFptr - GC_TODO: add argument description 190 191 Returns: 192 193 GC_TODO: add return values 194 195 --*/ 196 ; 197 198 STATUS 199 IfrSetDefaults ( 200 int MfgDefaults 201 ) 202 /*++ 203 204 Routine Description: 205 206 GC_TODO: Add function description 207 208 Arguments: 209 210 MfgDefaults - GC_TODO: add argument description 211 212 Returns: 213 214 GC_TODO: add return values 215 216 --*/ 217 ; 218 219 STATUS 220 IfrGetIfrPack ( 221 int Handle, 222 EFI_HII_IFR_PACK **PackHeader, 223 EFI_GUID *FormsetGuid 224 ) 225 /*++ 226 227 Routine Description: 228 229 GC_TODO: Add function description 230 231 Arguments: 232 233 Handle - GC_TODO: add argument description 234 PackHeader - GC_TODO: add argument description 235 FormsetGuid - GC_TODO: add argument description 236 237 Returns: 238 239 GC_TODO: add return values 240 241 --*/ 242 ; 243 244 STATUS 245 IfrReferencesVarPack ( 246 int IfrHandle, 247 EFI_HII_VARIABLE_PACK *VarPack 248 ) 249 /*++ 250 251 Routine Description: 252 253 GC_TODO: Add function description 254 255 Arguments: 256 257 IfrHandle - GC_TODO: add argument description 258 VarPack - GC_TODO: add argument description 259 260 Returns: 261 262 GC_TODO: add return values 263 264 --*/ 265 ; 266 267 #endif // #ifndef _IFR_PARSE_H_ 268