]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrOpCodeCreation.c
EdkCompatibilityPkg: Remove EdkCompatibilityPkg
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / Dxe / UefiEfiIfrSupportLib / UefiIfrOpCodeCreation.c
diff --git a/EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrOpCodeCreation.c b/EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrOpCodeCreation.c
deleted file mode 100644 (file)
index f96f3a2..0000000
+++ /dev/null
@@ -1,636 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-Module Name:\r
-\r
-  UefiIfrOpCodeCreation.c\r
-\r
-Abstract:\r
-\r
-  Library Routines to create IFR independent of string data - assume tokens already exist\r
-  Primarily to be used for exporting op-codes at a label in pre-defined forms.\r
-\r
-Revision History:\r
-\r
---*/\r
-\r
-#include "UefiIfrLibrary.h"\r
-\r
-EFI_GUID mIfrVendorGuid = EFI_IFR_TIANO_GUID;\r
-\r
-STATIC\r
-BOOLEAN\r
-IsValidQuestionFlags (\r
-  IN UINT8                   Flags\r
-  )\r
-{\r
-  return (BOOLEAN)((Flags & (~QUESTION_FLAGS)) ? FALSE : TRUE);\r
-}\r
-\r
-STATIC\r
-BOOLEAN\r
-IsValidValueType (\r
-  IN UINT8                   Type\r
-  )\r
-{\r
-  return (BOOLEAN)((Type <= EFI_IFR_TYPE_OTHER) ? TRUE : FALSE);\r
-}\r
-\r
-STATIC\r
-BOOLEAN\r
-IsValidNumricFlags (\r
-  IN UINT8                   Flags\r
-  )\r
-{\r
-  if (Flags & ~(EFI_IFR_NUMERIC_SIZE | EFI_IFR_DISPLAY)) {\r
-    return FALSE;\r
-  }\r
-\r
-  if ((Flags & EFI_IFR_DISPLAY) > EFI_IFR_DISPLAY_UINT_HEX) {\r
-    return FALSE;\r
-  }\r
-\r
-  return TRUE;\r
-}\r
-\r
-STATIC\r
-BOOLEAN\r
-IsValidCheckboxFlags (\r
-  IN UINT8                   Flags\r
-  )\r
-{\r
-  return (BOOLEAN)((Flags <= EFI_IFR_CHECKBOX_DEFAULT_MFG) ? TRUE : FALSE);\r
-}\r
-\r
-EFI_STATUS\r
-CreateEndOpCode (\r
-  IN OUT EFI_HII_UPDATE_DATA *Data\r
-  )\r
-{\r
-  EFI_IFR_END                 End;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_END) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  End.Header.Length  = (UINT8) sizeof (EFI_IFR_END);\r
-  End.Header.OpCode  = EFI_IFR_END_OP;\r
-  End.Header.Scope   = 0;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &End, sizeof (EFI_IFR_END));\r
-  Data->Offset += sizeof (EFI_IFR_END);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateDefaultOpCode (\r
-  IN     EFI_IFR_TYPE_VALUE  *Value,\r
-  IN     UINT8               Type,\r
-  IN OUT EFI_HII_UPDATE_DATA *Data\r
-  )\r
-{\r
-  EFI_IFR_DEFAULT            Default;\r
-  UINT8                      *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if ((Value == NULL) || !IsValidValueType (Type)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_DEFAULT) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  Default.Header.OpCode = EFI_IFR_DEFAULT_OP;\r
-  Default.Header.Length = (UINT8) sizeof (EFI_IFR_DEFAULT);\r
-  Default.Header.Scope  = 0;\r
-  Default.Type          = Type;\r
-  Default.DefaultId     = EFI_HII_DEFAULT_CLASS_STANDARD;\r
-  EfiCopyMem (&Default.Value, Value, sizeof(EFI_IFR_TYPE_VALUE));\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &Default, sizeof (EFI_IFR_DEFAULT));\r
-  Data->Offset += sizeof (EFI_IFR_DEFAULT);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateActionOpCode (\r
-  IN     EFI_QUESTION_ID      QuestionId,\r
-  IN     EFI_STRING_ID        Prompt,\r
-  IN     EFI_STRING_ID        Help,\r
-  IN     UINT8                QuestionFlags,\r
-  IN     EFI_STRING_ID        QuestionConfig,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  EFI_IFR_ACTION              Action;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (!IsValidQuestionFlags (QuestionFlags)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_ACTION) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  Action.Header.OpCode          = EFI_IFR_ACTION_OP;\r
-  Action.Header.Length          = (UINT8) sizeof (EFI_IFR_ACTION);\r
-  Action.Header.Scope           = 0;\r
-  Action.Question.QuestionId    = QuestionId;\r
-  Action.Question.Header.Prompt = Prompt;\r
-  Action.Question.Header.Help   = Help;\r
-  Action.Question.VarStoreId    = INVALID_VARSTORE_ID;\r
-  Action.Question.Flags         = QuestionFlags;\r
-  Action.QuestionConfig         = QuestionConfig;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &Action, sizeof (EFI_IFR_ACTION));\r
-  Data->Offset += sizeof (EFI_IFR_ACTION);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateSubTitleOpCode (\r
-  IN      EFI_STRING_ID       Prompt,\r
-  IN      EFI_STRING_ID       Help,\r
-  IN      UINT8               Flags,\r
-  IN      UINT8               Scope,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  EFI_IFR_SUBTITLE            Subtitle;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_SUBTITLE) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  Subtitle.Header.OpCode    = EFI_IFR_SUBTITLE_OP;\r
-  Subtitle.Header.Length    = (UINT8) sizeof (EFI_IFR_SUBTITLE);\r
-  Subtitle.Header.Scope     = Scope;\r
-  Subtitle.Statement.Prompt = Prompt;\r
-  Subtitle.Statement.Help   = Help;\r
-  Subtitle.Flags            = Flags;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &Subtitle, sizeof (EFI_IFR_SUBTITLE));\r
-  Data->Offset += sizeof (EFI_IFR_SUBTITLE);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-\r
-EFI_STATUS\r
-CreateTextOpCode (\r
-  IN     EFI_STRING_ID        Prompt,\r
-  IN     EFI_STRING_ID        Help,\r
-  IN     EFI_STRING_ID        TextTwo,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  EFI_IFR_TEXT                Text;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_TEXT) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  Text.Header.OpCode    = EFI_IFR_TEXT_OP;\r
-  Text.Header.Length    = (UINT8) sizeof (EFI_IFR_TEXT);\r
-  Text.Header.Scope     = 0;\r
-  Text.Statement.Prompt = Prompt;\r
-  Text.Statement.Help   = Help;\r
-  Text.TextTwo          = TextTwo;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &Text, sizeof (EFI_IFR_TEXT));\r
-  Data->Offset += sizeof (EFI_IFR_TEXT);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateGotoOpCode (\r
-  IN     EFI_FORM_ID          FormId,\r
-  IN     EFI_STRING_ID        Prompt,\r
-  IN     EFI_STRING_ID        Help,\r
-  IN     UINT8                QuestionFlags,\r
-  IN     EFI_QUESTION_ID      QuestionId,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  EFI_IFR_REF                 Goto;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (!IsValidQuestionFlags (QuestionFlags)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_REF) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  Goto.Header.OpCode          = EFI_IFR_REF_OP;\r
-  Goto.Header.Length          = (UINT8) sizeof (EFI_IFR_REF);\r
-  Goto.Header.Scope           = 0;\r
-  Goto.Question.Header.Prompt = Prompt;\r
-  Goto.Question.Header.Help   = Help;\r
-  Goto.Question.VarStoreId    = INVALID_VARSTORE_ID;\r
-  Goto.Question.QuestionId    = QuestionId;\r
-  Goto.Question.Flags         = QuestionFlags;\r
-  Goto.FormId                 = FormId;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &Goto, sizeof (EFI_IFR_REF));\r
-  Data->Offset += sizeof (EFI_IFR_REF);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateOneOfOptionOpCode (\r
-  IN     UINTN                OptionCount,\r
-  IN     IFR_OPTION           *OptionsList,\r
-  IN     UINT8                Type,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  UINTN                       Index;\r
-  UINT8                       *LocalBuffer;\r
-  EFI_IFR_ONE_OF_OPTION       OneOfOption;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if ((OptionCount != 0) && (OptionsList == NULL)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Data->Offset + OptionCount * sizeof (EFI_IFR_ONE_OF_OPTION) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  for (Index = 0; Index < OptionCount; Index++) {\r
-    OneOfOption.Header.OpCode = EFI_IFR_ONE_OF_OPTION_OP;\r
-    OneOfOption.Header.Length = (UINT8) sizeof (EFI_IFR_ONE_OF_OPTION);\r
-    OneOfOption.Header.Scope  = 0;\r
-\r
-    OneOfOption.Option        = OptionsList[Index].StringToken;\r
-    OneOfOption.Value         = OptionsList[Index].Value;\r
-    OneOfOption.Flags         = (UINT8)(OptionsList[Index].Flags & (EFI_IFR_OPTION_DEFAULT | EFI_IFR_OPTION_DEFAULT_MFG));\r
-    OneOfOption.Type          = Type;\r
-\r
-    LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-    EfiCopyMem (LocalBuffer, &OneOfOption, sizeof (EFI_IFR_ONE_OF_OPTION));\r
-    Data->Offset += sizeof (EFI_IFR_ONE_OF_OPTION);\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateOneOfOpCode (\r
-  IN     EFI_QUESTION_ID      QuestionId,\r
-  IN     EFI_VARSTORE_ID      VarStoreId,\r
-  IN     UINT16               VarOffset,\r
-  IN     EFI_STRING_ID        Prompt,\r
-  IN     EFI_STRING_ID        Help,\r
-  IN     UINT8                QuestionFlags,\r
-  IN     UINT8                OneOfFlags,\r
-  IN     IFR_OPTION           *OptionsList,\r
-  IN     UINTN                OptionCount,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  UINTN                       Length;\r
-  EFI_IFR_ONE_OF              OneOf;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (!IsValidNumricFlags (OneOfFlags) ||\r
-      !IsValidQuestionFlags (QuestionFlags) ||\r
-      ((OptionCount != 0) && (OptionsList == NULL))) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  Length = sizeof (EFI_IFR_ONE_OF) + OptionCount * sizeof (EFI_IFR_ONE_OF_OPTION) + sizeof (EFI_IFR_END);\r
-  if (Data->Offset + Length > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  OneOf.Header.OpCode                   = EFI_IFR_ONE_OF_OP;\r
-  OneOf.Header.Length                   = (UINT8) sizeof (EFI_IFR_ONE_OF);\r
-  OneOf.Header.Scope                    = 1;\r
-  OneOf.Question.Header.Prompt          = Prompt;\r
-  OneOf.Question.Header.Help            = Help;\r
-  OneOf.Question.QuestionId             = QuestionId;\r
-  OneOf.Question.VarStoreId             = VarStoreId;\r
-  OneOf.Question.VarStoreInfo.VarOffset = VarOffset;\r
-  OneOf.Question.Flags                  = QuestionFlags;\r
-  OneOf.Flags                           = OneOfFlags;\r
-  EfiZeroMem ((VOID *) &OneOf.data, sizeof (MINMAXSTEP_DATA));\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &OneOf, sizeof (EFI_IFR_ONE_OF));\r
-  Data->Offset += sizeof (EFI_IFR_ONE_OF);\r
-\r
-  CreateOneOfOptionOpCode (OptionCount, OptionsList, (UINT8)(OneOfFlags & EFI_IFR_NUMERIC_SIZE), Data);\r
-\r
-  CreateEndOpCode (Data);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateOrderedListOpCode (\r
-  IN      EFI_QUESTION_ID     QuestionId,\r
-  IN      EFI_VARSTORE_ID     VarStoreId,\r
-  IN      UINT16              VarOffset,\r
-  IN      EFI_STRING_ID       Prompt,\r
-  IN      EFI_STRING_ID       Help,\r
-  IN      UINT8               QuestionFlags,\r
-  IN      UINT8               OrderedListFlags,\r
-  IN      UINT8               DataType,\r
-  IN      UINT8               MaxContainers,\r
-  IN      IFR_OPTION          *OptionsList,\r
-  IN     UINTN                OptionCount,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  UINTN                       Length;\r
-  EFI_IFR_ORDERED_LIST        OrderedList;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (!IsValidQuestionFlags (QuestionFlags) ||\r
-      ((OptionCount != 0) && (OptionsList == NULL))) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if ((OrderedListFlags & (~(EFI_IFR_UNIQUE_SET | EFI_IFR_NO_EMPTY_SET))) != 0) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  Length = sizeof (EFI_IFR_ORDERED_LIST) + OptionCount * sizeof (EFI_IFR_ONE_OF_OPTION) + sizeof (EFI_IFR_END);\r
-  if (Data->Offset + Length > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  OrderedList.Header.OpCode                   = EFI_IFR_ORDERED_LIST_OP;\r
-  OrderedList.Header.Length                   = (UINT8) sizeof (EFI_IFR_ORDERED_LIST);\r
-  OrderedList.Header.Scope                    = 1;\r
-  OrderedList.Question.Header.Prompt          = Prompt;\r
-  OrderedList.Question.Header.Help            = Help;\r
-  OrderedList.Question.QuestionId             = QuestionId;\r
-  OrderedList.Question.VarStoreId             = VarStoreId;\r
-  OrderedList.Question.VarStoreInfo.VarOffset = VarOffset;\r
-  OrderedList.Question.Flags                  = QuestionFlags;\r
-  OrderedList.MaxContainers                   = MaxContainers;\r
-  OrderedList.Flags                           = OrderedListFlags;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &OrderedList, sizeof (EFI_IFR_ORDERED_LIST));\r
-  Data->Offset += sizeof (EFI_IFR_ORDERED_LIST);\r
-\r
-  CreateOneOfOptionOpCode (OptionCount, OptionsList, DataType, Data);\r
-\r
-  CreateEndOpCode (Data);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateCheckBoxOpCode (\r
-  IN      EFI_QUESTION_ID     QuestionId,\r
-  IN      EFI_VARSTORE_ID     VarStoreId,\r
-  IN      UINT16              VarOffset,\r
-  IN      EFI_STRING_ID       Prompt,\r
-  IN      EFI_STRING_ID       Help,\r
-  IN      UINT8               QuestionFlags,\r
-  IN      UINT8               CheckBoxFlags,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  EFI_IFR_CHECKBOX            CheckBox;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (!IsValidQuestionFlags (QuestionFlags) || !IsValidCheckboxFlags (CheckBoxFlags)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_CHECKBOX) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  CheckBox.Header.OpCode                   = EFI_IFR_CHECKBOX_OP;\r
-  CheckBox.Header.Length                   = (UINT8) sizeof (EFI_IFR_CHECKBOX);\r
-  CheckBox.Header.Scope                    = 0;\r
-  CheckBox.Question.QuestionId             = QuestionId;\r
-  CheckBox.Question.VarStoreId             = VarStoreId;\r
-  CheckBox.Question.VarStoreInfo.VarOffset = VarOffset;\r
-  CheckBox.Question.Header.Prompt          = Prompt;\r
-  CheckBox.Question.Header.Help            = Help;\r
-  CheckBox.Question.Flags                  = QuestionFlags;\r
-  CheckBox.Flags                           = CheckBoxFlags;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &CheckBox, sizeof (EFI_IFR_CHECKBOX));\r
-  Data->Offset += sizeof (EFI_IFR_CHECKBOX);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateNumericOpCode (\r
-  IN     EFI_QUESTION_ID     QuestionId,\r
-  IN     EFI_VARSTORE_ID     VarStoreId,\r
-  IN     UINT16              VarOffset,\r
-  IN     EFI_STRING_ID       Prompt,\r
-  IN     EFI_STRING_ID       Help,\r
-  IN     UINT8               QuestionFlags,\r
-  IN     UINT8               NumericFlags,\r
-  IN     UINT64              Minimum,\r
-  IN     UINT64              Maximum,\r
-  IN     UINT64              Step,\r
-  IN     UINT64              Default,\r
-  IN OUT EFI_HII_UPDATE_DATA *Data\r
-  )\r
-{\r
-  EFI_STATUS                  Status;\r
-  EFI_IFR_NUMERIC             Numeric;\r
-  MINMAXSTEP_DATA             MinMaxStep;\r
-  EFI_IFR_TYPE_VALUE          DefaultValue;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (!IsValidQuestionFlags (QuestionFlags) || !IsValidNumricFlags (NumericFlags)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_CHECKBOX) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  Numeric.Header.OpCode                   = EFI_IFR_NUMERIC_OP;\r
-  Numeric.Header.Length                   = (UINT8) sizeof (EFI_IFR_NUMERIC);\r
-  Numeric.Header.Scope                    = 1;\r
-  Numeric.Question.QuestionId             = QuestionId;\r
-  Numeric.Question.VarStoreId             = VarStoreId;\r
-  Numeric.Question.VarStoreInfo.VarOffset = VarOffset;\r
-  Numeric.Question.Header.Prompt          = Prompt;\r
-  Numeric.Question.Header.Help            = Help;\r
-  Numeric.Question.Flags                  = QuestionFlags;\r
-  Numeric.Flags                           = NumericFlags;\r
-\r
-  switch (NumericFlags & EFI_IFR_NUMERIC_SIZE) {\r
-  case EFI_IFR_NUMERIC_SIZE_1:\r
-    MinMaxStep.u8.MinValue = (UINT8) Minimum;\r
-    MinMaxStep.u8.MaxValue = (UINT8) Maximum;\r
-    MinMaxStep.u8.Step     = (UINT8) Step;\r
-    break;\r
-\r
-  case EFI_IFR_NUMERIC_SIZE_2:\r
-    MinMaxStep.u16.MinValue = (UINT16) Minimum;\r
-    MinMaxStep.u16.MaxValue = (UINT16) Maximum;\r
-    MinMaxStep.u16.Step     = (UINT16) Step;\r
-    break;\r
-\r
-  case EFI_IFR_NUMERIC_SIZE_4:\r
-    MinMaxStep.u32.MinValue = (UINT32) Minimum;\r
-    MinMaxStep.u32.MaxValue = (UINT32) Maximum;\r
-    MinMaxStep.u32.Step     = (UINT32) Step;\r
-    break;\r
-\r
-  case EFI_IFR_NUMERIC_SIZE_8:\r
-    MinMaxStep.u64.MinValue = Minimum;\r
-    MinMaxStep.u64.MaxValue = Maximum;\r
-    MinMaxStep.u64.Step     = Step;\r
-    break;\r
-  }\r
-\r
-  EfiCopyMem (&Numeric.data, &MinMaxStep, sizeof (MINMAXSTEP_DATA));\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &Numeric, sizeof (EFI_IFR_NUMERIC));\r
-  Data->Offset += sizeof (EFI_IFR_NUMERIC);\r
-\r
-  DefaultValue.u64 = Default;\r
-  Status = CreateDefaultOpCode (&DefaultValue, (UINT8)(NumericFlags & EFI_IFR_NUMERIC_SIZE), Data);\r
-  if (EFI_ERROR(Status)) {\r
-    return Status;\r
-  }\r
-\r
-  CreateEndOpCode (Data);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateStringOpCode (\r
-  IN      EFI_QUESTION_ID     QuestionId,\r
-  IN      EFI_VARSTORE_ID     VarStoreId,\r
-  IN      UINT16              VarOffset,\r
-  IN      EFI_STRING_ID       Prompt,\r
-  IN      EFI_STRING_ID       Help,\r
-  IN      UINT8               QuestionFlags,\r
-  IN      UINT8               StringFlags,\r
-  IN      UINT8               MinSize,\r
-  IN      UINT8               MaxSize,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  EFI_IFR_STRING              String;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (!IsValidQuestionFlags (QuestionFlags) || (StringFlags & (~EFI_IFR_STRING_MULTI_LINE))) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_STRING) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  String.Header.OpCode                   = EFI_IFR_STRING_OP;\r
-  String.Header.Length                   = (UINT8) sizeof (EFI_IFR_STRING);\r
-  String.Header.Scope                    = 0;\r
-  String.Question.Header.Prompt          = Prompt;\r
-  String.Question.Header.Help            = Help;\r
-  String.Question.QuestionId             = QuestionId;\r
-  String.Question.VarStoreId             = VarStoreId;\r
-  String.Question.VarStoreInfo.VarOffset = VarOffset;\r
-  String.Question.Flags                  = QuestionFlags;\r
-  String.MinSize                         = MinSize;\r
-  String.MaxSize                         = MaxSize;\r
-  String.Flags                           = StringFlags;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &String, sizeof (EFI_IFR_STRING));\r
-  Data->Offset += sizeof (EFI_IFR_STRING);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateBannerOpCode (\r
-  IN      EFI_STRING_ID       Title,\r
-  IN      UINT16              LineNumber,\r
-  IN      UINT8               Alignment,\r
-  IN OUT EFI_HII_UPDATE_DATA  *Data\r
-  )\r
-{\r
-  EFI_IFR_GUID_BANNER         Banner;\r
-  UINT8                       *LocalBuffer;\r
-\r
-  ASSERT (Data != NULL && Data->Data != NULL);\r
-\r
-  if (Data->Offset + sizeof (EFI_IFR_GUID_BANNER) > Data->BufferSize) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-\r
-  Banner.Header.OpCode  = EFI_IFR_GUID_OP;\r
-  Banner.Header.Length  = (UINT8) sizeof (EFI_IFR_GUID_BANNER);\r
-  Banner.Header.Scope   = 0;\r
-  EfiCopyMem (&Banner.Guid, &mIfrVendorGuid, sizeof (EFI_IFR_GUID));\r
-  Banner.ExtendOpCode   = EFI_IFR_EXTEND_OP_BANNER;\r
-  Banner.Title          = Title;\r
-  Banner.LineNumber     = LineNumber;\r
-  Banner.Alignment      = Alignment;\r
-\r
-  LocalBuffer = (UINT8 *) Data->Data + Data->Offset;\r
-  EfiCopyMem (LocalBuffer, &Banner, sizeof (EFI_IFR_GUID_BANNER));\r
-  Data->Offset += sizeof (EFI_IFR_GUID_BANNER);\r
-\r
-  return EFI_SUCCESS;\r
-}\r