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