]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Library/FrameworkIfrSupportLib/IfrOpCodeCreation.c
remove unnecessary comments introduced by tools.
[mirror_edk2.git] / IntelFrameworkPkg / Library / FrameworkIfrSupportLib / IfrOpCodeCreation.c
CommitLineData
cf7e50f8 1/** @file\r
2ec4d269 2 Library Routines to create IFR independent of string data - assume tokens already exist\r
3 Primarily to be used for exporting op-codes at a label in pre-defined forms.\r
4\r
5d01b0f7 5Copyright (c) 2006, Intel Corporation \r
6All rights reserved. This program and the accompanying materials \r
7are licensed and made available under the terms and conditions of the BSD License \r
8which accompanies this distribution. The full text of the license may be found at \r
9http://opensource.org/licenses/bsd-license.php \r
10 \r
11THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
12WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
13\r
5d01b0f7 14\r
cf7e50f8 15**/\r
5d01b0f7 16\r
82096802 17#include "IfrSupportLibInternal.h"\r
5d01b0f7 18\r
2ec4d269 19/**\r
5d01b0f7 20 Create a SubTitle opcode independent of string creation\r
21 This is used primarily by users who need to create just one particular valid op-code and the string\r
22 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
23 location to pre-defined forms in HII)\r
24 \r
2ec4d269 25 @param StringToken StringToken of the subtitle\r
26 @param FormBuffer Output of subtitle as a form\r
5d01b0f7 27 \r
2ec4d269 28 @retval EFI_SUCCESS Subtitle created to be a form\r
29**/\r
30EFI_STATUS\r
31CreateSubTitleOpCode (\r
32 IN STRING_REF StringToken,\r
33 IN OUT VOID *FormBuffer\r
34 )\r
5d01b0f7 35{\r
dc7b4a5c 36 FRAMEWORK_EFI_IFR_SUBTITLE Subtitle;\r
5d01b0f7 37\r
dc7b4a5c 38 Subtitle.Header.OpCode = FRAMEWORK_EFI_IFR_SUBTITLE_OP;\r
39 Subtitle.Header.Length = sizeof (FRAMEWORK_EFI_IFR_SUBTITLE);\r
5d01b0f7 40 Subtitle.SubTitle = StringToken;\r
41\r
dc7b4a5c 42 CopyMem (FormBuffer, &Subtitle, sizeof (FRAMEWORK_EFI_IFR_SUBTITLE));\r
5d01b0f7 43 return EFI_SUCCESS;\r
44}\r
45\r
2ec4d269 46/**\r
47 Create a Text opcode independent of string creation\r
48 This is used primarily by users who need to create just one particular valid op-code and the string\r
49 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
50 location to pre-defined forms in HII)\r
51\r
52 @param StringToken - First string token of the text\r
53 @param StringTokenTwo - Second string token of the text\r
54 @param StringTokenThree - Help string token of the text\r
55 @param Flags - Flag of the text\r
56 @param Key - Key of the text\r
57 @param FormBuffer - Output of text as a form\r
5d01b0f7 58\r
2ec4d269 59 @retval EFI_SUCCESS - Text created to be a form\r
60**/\r
5d01b0f7 61EFI_STATUS\r
62CreateTextOpCode (\r
63 IN STRING_REF StringToken,\r
64 IN STRING_REF StringTokenTwo,\r
65 IN STRING_REF StringTokenThree,\r
66 IN UINT8 Flags,\r
67 IN UINT16 Key,\r
68 IN OUT VOID *FormBuffer\r
69 )\r
5d01b0f7 70{\r
dc7b4a5c 71 FRAMEWORK_EFI_IFR_TEXT Text;\r
5d01b0f7 72\r
dc7b4a5c 73 Text.Header.OpCode = FRAMEWORK_EFI_IFR_TEXT_OP;\r
74 Text.Header.Length = sizeof (FRAMEWORK_EFI_IFR_TEXT);\r
5d01b0f7 75 Text.Text = StringToken;\r
76\r
77 Text.TextTwo = StringTokenTwo;\r
78 Text.Help = StringTokenThree;\r
79 Text.Flags = Flags;\r
80 Text.Key = Key;\r
81\r
dc7b4a5c 82 CopyMem (FormBuffer, &Text, sizeof (FRAMEWORK_EFI_IFR_TEXT));\r
5d01b0f7 83\r
84 return EFI_SUCCESS;\r
85}\r
86\r
2ec4d269 87/**\r
88 Create a hyperlink opcode independent of string creation\r
89 This is used primarily by users who need to create just one particular valid op-code and the string\r
90 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
91 location to pre-defined forms in HII)\r
92 \r
5d01b0f7 93\r
2ec4d269 94 @param FormId - Form ID of the hyperlink\r
95 @param StringToken - Prompt string token of the hyperlink\r
96 @param StringTokenTwo - Help string token of the hyperlink\r
97 @param Flags - Flags of the hyperlink\r
98 @param Key - Key of the hyperlink\r
99 @param FormBuffer - Output of hyperlink as a form\r
100 @retval EFI_SUCCESS - Hyperlink created to be a form\r
101--*/\r
5d01b0f7 102EFI_STATUS\r
103CreateGotoOpCode (\r
104 IN UINT16 FormId,\r
105 IN STRING_REF StringToken,\r
106 IN STRING_REF StringTokenTwo,\r
107 IN UINT8 Flags,\r
108 IN UINT16 Key,\r
109 IN OUT VOID *FormBuffer\r
110 )\r
5d01b0f7 111\r
5d01b0f7 112{\r
dc7b4a5c 113 FRAMEWORK_EFI_IFR_REF Hyperlink;\r
5d01b0f7 114\r
dc7b4a5c 115 Hyperlink.Header.OpCode = FRAMEWORK_EFI_IFR_REF_OP;\r
116 Hyperlink.Header.Length = sizeof (FRAMEWORK_EFI_IFR_REF);\r
5d01b0f7 117 Hyperlink.FormId = FormId;\r
118 Hyperlink.Prompt = StringToken;\r
119 Hyperlink.Help = StringTokenTwo;\r
120 Hyperlink.Key = Key;\r
121 Hyperlink.Flags = Flags;\r
122\r
dc7b4a5c 123 CopyMem (FormBuffer, &Hyperlink, sizeof (FRAMEWORK_EFI_IFR_REF));\r
5d01b0f7 124\r
125 return EFI_SUCCESS;\r
126}\r
127\r
2ec4d269 128/**\r
129 Create a one-of opcode with a set of option op-codes to choose from independent of string creation.\r
130 This is used primarily by users who need to create just one particular valid op-code and the string\r
131 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
132 location to pre-defined forms in HII)\r
133\r
134 OptionsList is a pointer to a null-terminated list of option descriptions. Ensure that OptionsList[x].StringToken\r
135 has been filled in since this routine will not generate StringToken values.\r
136 \r
137 @param QuestionId - Question ID of the one-of box\r
138 @param DataWidth - DataWidth of the one-of box\r
139 @param PromptToken - Prompt string token of the one-of box\r
140 @param HelpToken - Help string token of the one-of box\r
141 @param OptionsList - Each string in it is an option of the one-of box\r
142 @param OptionCount - Option string count\r
143 @param FormBuffer - Output of One-Of box as a form\r
144 \r
5d01b0f7 145\r
2ec4d269 146 @retval EFI_SUCCESS - One-Of box created to be a form\r
147 @retval EFI_DEVICE_ERROR - DataWidth > 2\r
148**/\r
5d01b0f7 149EFI_STATUS\r
150CreateOneOfOpCode (\r
151 IN UINT16 QuestionId,\r
152 IN UINT8 DataWidth,\r
153 IN STRING_REF PromptToken,\r
154 IN STRING_REF HelpToken,\r
155 IN IFR_OPTION *OptionsList,\r
156 IN UINTN OptionCount,\r
157 IN OUT VOID *FormBuffer\r
158 )\r
5d01b0f7 159{\r
160 UINTN Index;\r
dc7b4a5c 161 FRAMEWORK_EFI_IFR_ONE_OF OneOf;\r
162 FRAMEWORK_EFI_IFR_ONE_OF_OPTION OneOfOption;\r
163 FRAMEWORK_EFI_IFR_END_ONE_OF EndOneOf;\r
5d01b0f7 164 UINT8 *LocalBuffer;\r
165\r
166 //\r
167 // We do not create op-code storage widths for one-of in excess of 16 bits for now\r
168 //\r
169 if (DataWidth > 2) {\r
170 return EFI_DEVICE_ERROR;\r
171 }\r
172\r
dc7b4a5c 173 OneOf.Header.OpCode = FRAMEWORK_EFI_IFR_ONE_OF_OP;\r
174 OneOf.Header.Length = sizeof (FRAMEWORK_EFI_IFR_ONE_OF);\r
5d01b0f7 175 OneOf.QuestionId = QuestionId;\r
176 OneOf.Width = DataWidth;\r
177 OneOf.Prompt = PromptToken;\r
178\r
179 OneOf.Help = HelpToken;\r
180\r
181 LocalBuffer = (UINT8 *) FormBuffer;\r
182\r
dc7b4a5c 183 CopyMem (LocalBuffer, &OneOf, sizeof (FRAMEWORK_EFI_IFR_ONE_OF));\r
5d01b0f7 184\r
dc7b4a5c 185 LocalBuffer = (UINT8 *) (LocalBuffer + sizeof (FRAMEWORK_EFI_IFR_ONE_OF));\r
5d01b0f7 186\r
187 for (Index = 0; Index < OptionCount; Index++) {\r
dc7b4a5c 188 OneOfOption.Header.OpCode = FRAMEWORK_EFI_IFR_ONE_OF_OPTION_OP;\r
189 OneOfOption.Header.Length = sizeof (FRAMEWORK_EFI_IFR_ONE_OF_OPTION);\r
5d01b0f7 190\r
191 OneOfOption.Option = OptionsList[Index].StringToken;\r
192 OneOfOption.Value = OptionsList[Index].Value;\r
193 OneOfOption.Flags = OptionsList[Index].Flags;\r
194 OneOfOption.Key = OptionsList[Index].Key;\r
195\r
dc7b4a5c 196 CopyMem (LocalBuffer, &OneOfOption, sizeof (FRAMEWORK_EFI_IFR_ONE_OF_OPTION));\r
5d01b0f7 197\r
dc7b4a5c 198 LocalBuffer = (UINT8 *) (LocalBuffer + sizeof (FRAMEWORK_EFI_IFR_ONE_OF_OPTION));\r
5d01b0f7 199 }\r
200\r
dc7b4a5c 201 EndOneOf.Header.Length = sizeof (FRAMEWORK_EFI_IFR_END_ONE_OF);\r
202 EndOneOf.Header.OpCode = FRAMEWORK_EFI_IFR_END_ONE_OF_OP;\r
5d01b0f7 203\r
dc7b4a5c 204 CopyMem (LocalBuffer, &EndOneOf, sizeof (FRAMEWORK_EFI_IFR_END_ONE_OF));\r
5d01b0f7 205\r
dc7b4a5c 206 LocalBuffer = (UINT8 *) (LocalBuffer + sizeof (FRAMEWORK_EFI_IFR_END_ONE_OF));\r
5d01b0f7 207\r
208 return EFI_SUCCESS;\r
209}\r
210\r
2ec4d269 211/**\r
212 Create a ordered list opcode with a set of option op-codes to choose from independent of string creation.\r
213 This is used primarily by users who need to create just one particular valid op-code and the string\r
214 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
215 location to pre-defined forms in HII)\r
216\r
217 OptionsList is a pointer to a null-terminated list of option descriptions. Ensure that OptionsList[x].StringToken\r
218 has been filled in since this routine will not generate StringToken values.\r
219 \r
220 @param QuestionId - Question ID of the ordered list\r
221 @param MaxEntries - MaxEntries of the ordered list\r
222 @param PromptToken - Prompt string token of the ordered list\r
223 @param HelpToken - Help string token of the ordered list\r
224 @param OptionsList - Each string in it is an option of the ordered list\r
225 @param OptionCount - Option string count\r
226 @param FormBuffer - Output of ordered list as a form\r
227 \r
228 @retval EFI_SUCCESS - Ordered list created to be a form\r
229**/\r
5d01b0f7 230EFI_STATUS\r
231CreateOrderedListOpCode (\r
232 IN UINT16 QuestionId,\r
233 IN UINT8 MaxEntries,\r
234 IN STRING_REF PromptToken,\r
235 IN STRING_REF HelpToken,\r
236 IN IFR_OPTION *OptionsList,\r
237 IN UINTN OptionCount,\r
238 IN OUT VOID *FormBuffer\r
239 )\r
5d01b0f7 240{\r
241 UINTN Index;\r
dc7b4a5c 242 FRAMEWORK_EFI_IFR_ORDERED_LIST OrderedList;\r
243 FRAMEWORK_EFI_IFR_ONE_OF_OPTION OrderedListOption;\r
244 FRAMEWORK_EFI_IFR_END_ONE_OF EndOrderedList;\r
5d01b0f7 245 UINT8 *LocalBuffer;\r
246\r
dc7b4a5c 247 OrderedList.Header.OpCode = FRAMEWORK_EFI_IFR_ORDERED_LIST_OP;\r
248 OrderedList.Header.Length = sizeof (FRAMEWORK_EFI_IFR_ORDERED_LIST);\r
5d01b0f7 249 OrderedList.QuestionId = QuestionId;\r
250 OrderedList.MaxEntries = MaxEntries;\r
251 OrderedList.Prompt = PromptToken;\r
252\r
253 OrderedList.Help = HelpToken;\r
254\r
255 LocalBuffer = (UINT8 *) FormBuffer;\r
256\r
dc7b4a5c 257 CopyMem (LocalBuffer, &OrderedList, sizeof (FRAMEWORK_EFI_IFR_ORDERED_LIST));\r
5d01b0f7 258\r
dc7b4a5c 259 LocalBuffer = (UINT8 *) (LocalBuffer + sizeof (FRAMEWORK_EFI_IFR_ORDERED_LIST));\r
5d01b0f7 260\r
261 for (Index = 0; Index < OptionCount; Index++) {\r
dc7b4a5c 262 OrderedListOption.Header.OpCode = FRAMEWORK_EFI_IFR_ONE_OF_OPTION_OP;\r
263 OrderedListOption.Header.Length = sizeof (FRAMEWORK_EFI_IFR_ONE_OF_OPTION);\r
5d01b0f7 264\r
265 OrderedListOption.Option = OptionsList[Index].StringToken;\r
266 OrderedListOption.Value = OptionsList[Index].Value;\r
267 OrderedListOption.Flags = OptionsList[Index].Flags;\r
268 OrderedListOption.Key = OptionsList[Index].Key;\r
269\r
dc7b4a5c 270 CopyMem (LocalBuffer, &OrderedListOption, sizeof (FRAMEWORK_EFI_IFR_ONE_OF_OPTION));\r
5d01b0f7 271\r
dc7b4a5c 272 LocalBuffer = (UINT8 *) (LocalBuffer + sizeof (FRAMEWORK_EFI_IFR_ONE_OF_OPTION));\r
5d01b0f7 273 }\r
274\r
dc7b4a5c 275 EndOrderedList.Header.Length = sizeof (FRAMEWORK_EFI_IFR_END_ONE_OF);\r
276 EndOrderedList.Header.OpCode = FRAMEWORK_EFI_IFR_END_ONE_OF_OP;\r
5d01b0f7 277\r
dc7b4a5c 278 CopyMem (LocalBuffer, &EndOrderedList, sizeof (FRAMEWORK_EFI_IFR_END_ONE_OF));\r
5d01b0f7 279\r
dc7b4a5c 280 LocalBuffer = (UINT8 *) (LocalBuffer + sizeof (FRAMEWORK_EFI_IFR_END_ONE_OF));\r
5d01b0f7 281\r
282 return EFI_SUCCESS;\r
283}\r
284\r
2ec4d269 285/**\r
286 Create a checkbox opcode independent of string creation\r
287 This is used primarily by users who need to create just one particular valid op-code and the string\r
288 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
289 location to pre-defined forms in HII)\r
290\r
291 @param QuestionId - Question ID of the check box\r
292 @param DataWidth - DataWidth of the check box\r
293 @param PromptToken - Prompt string token of the check box\r
294 @param HelpToken - Help string token of the check box\r
295 @param Flags - Flags of the check box\r
296 @param Key - Key of the check box\r
297 @param FormBuffer - Output of the check box as a form\r
298\r
299 @retval EFI_SUCCESS - Checkbox created to be a form\r
300 @retval EFI_DEVICE_ERROR - DataWidth > 1\r
301**/\r
5d01b0f7 302EFI_STATUS\r
303CreateCheckBoxOpCode (\r
304 IN UINT16 QuestionId,\r
305 IN UINT8 DataWidth,\r
306 IN STRING_REF PromptToken,\r
307 IN STRING_REF HelpToken,\r
308 IN UINT8 Flags,\r
309 IN UINT16 Key,\r
310 IN OUT VOID *FormBuffer\r
311 )\r
5d01b0f7 312\r
5d01b0f7 313{\r
dc7b4a5c 314 FRAMEWORK_EFI_IFR_CHECKBOX CheckBox;\r
5d01b0f7 315\r
316 //\r
317 // We do not create op-code storage widths for checkbox in excess of 8 bits for now\r
318 //\r
319 if (DataWidth > 1) {\r
320 return EFI_DEVICE_ERROR;\r
321 }\r
322\r
dc7b4a5c 323 CheckBox.Header.OpCode = FRAMEWORK_EFI_IFR_CHECKBOX_OP;\r
324 CheckBox.Header.Length = sizeof (FRAMEWORK_EFI_IFR_CHECKBOX);\r
5d01b0f7 325 CheckBox.QuestionId = QuestionId;\r
326 CheckBox.Width = DataWidth;\r
327 CheckBox.Prompt = PromptToken;\r
328\r
329 CheckBox.Help = HelpToken;\r
330 CheckBox.Flags = Flags;\r
331 CheckBox.Key = Key;\r
332\r
dc7b4a5c 333 CopyMem (FormBuffer, &CheckBox, sizeof (FRAMEWORK_EFI_IFR_CHECKBOX));\r
5d01b0f7 334\r
335 return EFI_SUCCESS;\r
336}\r
337\r
2ec4d269 338/**\r
339 Create a numeric opcode independent of string creation\r
340 This is used primarily by users who need to create just one particular valid op-code and the string\r
341 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
342 location to pre-defined forms in HII)\r
343 \r
344 @param QuestionId - Question ID of the numeric\r
345 @param DataWidth - DataWidth of the numeric\r
346 @param PromptToken - Prompt string token of the numeric\r
347 @param HelpToken - Help string token of the numeric\r
348 @param Minimum - Minumun boundary of the numeric\r
349 @param Maximum - Maximum boundary of the numeric\r
350 @param Step - Step of the numeric\r
351 @param Default - Default value of the numeric\r
352 @param Flags - Flags of the numeric\r
353 @param Key - Key of the numeric\r
354 @param FormBuffer - Output of the numeric as a form\r
355 \r
356\r
357 @retval EFI_SUCCESS - The numeric created to be a form.\r
358 @retval EFI_DEVICE_ERROR - DataWidth > 2\r
359**/\r
5d01b0f7 360EFI_STATUS\r
361CreateNumericOpCode (\r
362 IN UINT16 QuestionId,\r
363 IN UINT8 DataWidth,\r
364 IN STRING_REF PromptToken,\r
365 IN STRING_REF HelpToken,\r
366 IN UINT16 Minimum,\r
367 IN UINT16 Maximum,\r
368 IN UINT16 Step,\r
369 IN UINT16 Default,\r
370 IN UINT8 Flags,\r
371 IN UINT16 Key,\r
372 IN OUT VOID *FormBuffer\r
373 )\r
5d01b0f7 374\r
5d01b0f7 375{\r
dc7b4a5c 376 FRAMEWORK_EFI_IFR_NUMERIC Numeric;\r
5d01b0f7 377\r
378 //\r
379 // We do not create op-code storage widths for numerics in excess of 16 bits for now\r
380 //\r
381 if (DataWidth > 2) {\r
382 return EFI_DEVICE_ERROR;\r
383 }\r
384\r
dc7b4a5c 385 Numeric.Header.OpCode = FRAMEWORK_EFI_IFR_NUMERIC_OP;\r
386 Numeric.Header.Length = sizeof (FRAMEWORK_EFI_IFR_NUMERIC);\r
5d01b0f7 387 Numeric.QuestionId = QuestionId;\r
388 Numeric.Width = DataWidth;\r
389 Numeric.Prompt = PromptToken;\r
390\r
391 Numeric.Help = HelpToken;\r
392 Numeric.Minimum = Minimum;\r
393 Numeric.Maximum = Maximum;\r
394 Numeric.Step = Step;\r
395 Numeric.Default = Default;\r
396 Numeric.Flags = Flags;\r
397 Numeric.Key = Key;\r
398\r
dc7b4a5c 399 CopyMem (FormBuffer, &Numeric, sizeof (FRAMEWORK_EFI_IFR_NUMERIC));\r
5d01b0f7 400\r
401 return EFI_SUCCESS;\r
402}\r
403\r
2ec4d269 404/**\r
405 Create a numeric opcode independent of string creation\r
406 This is used primarily by users who need to create just one particular valid op-code and the string\r
407 data will be assumed to exist in the HiiDatabase already. (Useful when exporting op-codes at a label\r
408 location to pre-defined forms in HII)\r
409 \r
410 @param QuestionId Question ID of the string\r
411 @param DataWidth DataWidth of the string\r
412 @param PromptToken Prompt token of the string\r
413 @param HelpToken Help token of the string\r
414 @param MinSize Min size boundary of the string\r
415 @param MaxSize Max size boundary of the string\r
416 @param Flags Flags of the string\r
417 @param Key Key of the string\r
418 @param FormBuffer Output of the string as a form\r
419 \r
420 @retval EFI_SUCCESS String created to be a form.\r
421**/\r
5d01b0f7 422EFI_STATUS\r
423CreateStringOpCode (\r
424 IN UINT16 QuestionId,\r
425 IN UINT8 DataWidth,\r
426 IN STRING_REF PromptToken,\r
427 IN STRING_REF HelpToken,\r
428 IN UINT8 MinSize,\r
429 IN UINT8 MaxSize,\r
430 IN UINT8 Flags,\r
431 IN UINT16 Key,\r
432 IN OUT VOID *FormBuffer\r
433 )\r
5d01b0f7 434\r
5d01b0f7 435{\r
dc7b4a5c 436 FRAMEWORK_EFI_IFR_STRING String;\r
5d01b0f7 437\r
dc7b4a5c 438 String.Header.OpCode = FRAMEWORK_EFI_IFR_STRING_OP;\r
439 String.Header.Length = sizeof (FRAMEWORK_EFI_IFR_STRING);\r
5d01b0f7 440 String.QuestionId = QuestionId;\r
441 String.Width = DataWidth;\r
442 String.Prompt = PromptToken;\r
443\r
444 String.Help = HelpToken;\r
445 String.MinSize = MinSize;\r
446 String.MaxSize = MaxSize;\r
447 String.Flags = Flags;\r
448 String.Key = Key;\r
449\r
dc7b4a5c 450 CopyMem (FormBuffer, &String, sizeof (FRAMEWORK_EFI_IFR_STRING));\r
5d01b0f7 451\r
452 return EFI_SUCCESS;\r
453}\r
454\r
2ec4d269 455/**\r
456 Create a banner opcode. This is primarily used by the FrontPage implementation from BDS.\r
457 \r
458 @param Title - Title of the banner\r
459 @param LineNumber - LineNumber of the banner\r
460 @param Alignment - Alignment of the banner\r
461 @param FormBuffer - Output of banner as a form\r
5d01b0f7 462\r
2ec4d269 463 @retval EFI_SUCCESS - Banner created to be a form.\r
464**/\r
5d01b0f7 465EFI_STATUS\r
466CreateBannerOpCode (\r
467 IN UINT16 Title,\r
468 IN UINT16 LineNumber,\r
469 IN UINT8 Alignment,\r
470 IN OUT VOID *FormBuffer\r
471 )\r
5d01b0f7 472\r
5d01b0f7 473{\r
dc7b4a5c 474 FRAMEWORK_EFI_IFR_BANNER Banner;\r
5d01b0f7 475\r
dc7b4a5c 476 Banner.Header.OpCode = FRAMEWORK_EFI_IFR_BANNER_OP;\r
477 Banner.Header.Length = sizeof (FRAMEWORK_EFI_IFR_BANNER);\r
5d01b0f7 478 CopyMem (&Banner.Title, &Title, sizeof (UINT16));\r
479 CopyMem (&Banner.LineNumber, &LineNumber, sizeof (UINT16));\r
480 Banner.Alignment = Alignment;\r
481\r
dc7b4a5c 482 CopyMem (FormBuffer, &Banner, sizeof (FRAMEWORK_EFI_IFR_BANNER));\r
5d01b0f7 483\r
484 return EFI_SUCCESS;\r
485}\r
2ec4d269 486\r
487\r