]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Library/HiiLib.h
MdeModulePkg: Add match2 opcode support in SetupBrowserDxe and sample code in DriverS...
[mirror_edk2.git] / MdeModulePkg / Include / Library / HiiLib.h
index 7860ccbfc4f81b099877eb8da72cf135ff2985a5..0e323df221cb5fbf0155cfbece094ee742c0c74b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Public include file for the HII Library\r
 \r
-Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under \r
 the terms and conditions of the BSD License that accompanies this distribution.  \r
 The full text of the license may be found at\r
@@ -679,6 +679,49 @@ HiiCreateGotoOpCode (
   IN EFI_QUESTION_ID  QuestionId\r
   );\r
 \r
+/**\r
+  Create EFI_IFR_REF_OP, EFI_IFR_REF2_OP, EFI_IFR_REF3_OP and EFI_IFR_REF4_OP opcode.\r
+\r
+  When RefDevicePath is not zero, EFI_IFR_REF4 opcode will be created. \r
+  When RefDevicePath is zero and RefFormSetId is not NULL, EFI_IFR_REF3 opcode will be created.\r
+  When RefDevicePath is zero, RefFormSetId is NULL and RefQuestionId is not zero, EFI_IFR_REF2 opcode will be created.\r
+  When RefDevicePath is zero, RefFormSetId is NULL and RefQuestionId is zero, EFI_IFR_REF opcode will be created.\r
+\r
+  If OpCodeHandle is NULL, then ASSERT().\r
+  If any reserved bits are set in QuestionFlags, then ASSERT().\r
+\r
+  @param[in]  OpCodeHandle   The handle to the buffer of opcodes.\r
+  @param[in]  RefFormId      The Destination Form ID.\r
+  @param[in]  Prompt         The string ID for Prompt.\r
+  @param[in]  Help           The string ID for Help.\r
+  @param[in]  QuestionFlags  The flags in Question Header\r
+  @param[in]  QuestionId     Question ID.\r
+  @param[in]  RefQuestionId  The question on the form to which this link is referring. \r
+                             If its value is zero, then the link refers to the top of the form.\r
+  @param[in]  RefFormSetId   The form set to which this link is referring. If its value is NULL, and RefDevicePath is \r
+                             zero, then the link is to the current form set.\r
+  @param[in]  RefDevicePath  The string identifier that specifies the string containing the text representation of \r
+                             the device path to which the form set containing the form specified by FormId.\r
+                             If its value is zero, then the link refers to the current page.\r
+\r
+  @retval NULL   There is not enough space left in Buffer to add the opcode.\r
+  @retval Other  A pointer to the created opcode.\r
+\r
+**/\r
+UINT8 *\r
+EFIAPI\r
+HiiCreateGotoExOpCode (\r
+  IN VOID             *OpCodeHandle,\r
+  IN EFI_FORM_ID      RefFormId,\r
+  IN EFI_STRING_ID    Prompt,\r
+  IN EFI_STRING_ID    Help,\r
+  IN UINT8            QuestionFlags,\r
+  IN EFI_QUESTION_ID  QuestionId,\r
+  IN EFI_QUESTION_ID  RefQuestionId,\r
+  IN EFI_GUID         *RefFormSetId,    OPTIONAL\r
+  IN EFI_STRING_ID    RefDevicePath\r
+  );\r
+\r
 /**\r
   Create EFI_IFR_CHECKBOX_OP opcode.\r
 \r
@@ -689,7 +732,8 @@ HiiCreateGotoOpCode (
   @param[in]  OpCodeHandle          The handle to the buffer of opcodes.\r
   @param[in]  QuestionId            The question ID.\r
   @param[in]  VarStoreId            The storage ID.\r
-  @param[in]  VarOffset             The offset in Storage.\r
+  @param[in]  VarOffset             Offset in Storage or String ID of the name (VarName)\r
+                                    for this name/value pair.\r
   @param[in]  Prompt                The string ID for Prompt.\r
   @param[in]  Help                  The string ID for Help.\r
   @param[in]  QuestionFlags         The flags in Question Header.\r
@@ -725,7 +769,8 @@ HiiCreateCheckBoxOpCode (
   @param[in]  OpCodeHandle          The handle to the buffer of opcodes.\r
   @param[in]  QuestionId            The question ID.\r
   @param[in]  VarStoreId            The storage ID.\r
-  @param[in]  VarOffset             The offset in Storage.\r
+  @param[in]  VarOffset             Offset in Storage or String ID of the name (VarName)\r
+                                    for this name/value pair.\r
   @param[in]  Prompt                The string ID for Prompt.\r
   @param[in]  Help                  The string ID for Help.\r
   @param[in]  QuestionFlags         The flags in Question Header.\r
@@ -767,7 +812,8 @@ HiiCreateNumericOpCode (
   @param[in]  OpCodeHandle          The handle to the buffer of opcodes.\r
   @param[in]  QuestionId            The question ID.\r
   @param[in]  VarStoreId            The storage ID.\r
-  @param[in]  VarOffset             The offset in Storage.\r
+  @param[in]  VarOffset             Offset in Storage or String ID of the name (VarName)\r
+                                    for this name/value pair.\r
   @param[in]  Prompt                The string ID for Prompt.\r
   @param[in]  Help                  The string ID for Help.\r
   @param[in]  QuestionFlags         The flags in Question Header.\r
@@ -807,7 +853,8 @@ HiiCreateStringOpCode (
   @param[in]  OpCodeHandle          The handle to the buffer of opcodes.\r
   @param[in]  QuestionId            The question ID.\r
   @param[in]  VarStoreId            The storage ID.\r
-  @param[in]  VarOffset             The offset in Storage.\r
+  @param[in]  VarOffset             Offset in Storage or String ID of the name (VarName)\r
+                                    for this name/value pair.\r
   @param[in]  Prompt                The string ID for Prompt.\r
   @param[in]  Help                  The string ID for Help.\r
   @param[in]  QuestionFlags         The flags in Question Header.\r
@@ -845,7 +892,8 @@ HiiCreateOneOfOpCode (
   @param[in]  OpCodeHandle          The handle to the buffer of opcodes.\r
   @param[in]  QuestionId            The question ID.\r
   @param[in]  VarStoreId            The storage ID.\r
-  @param[in]  VarOffset             The offset in Storage.\r
+  @param[in]  VarOffset             Offset in Storage or String ID of the name (VarName)\r
+                                    for this name/value pair.\r
   @param[in]  Prompt                The string ID for Prompt.\r
   @param[in]  Help                  The string ID for Help.\r
   @param[in]  QuestionFlags         The flags in Question Header.\r
@@ -911,7 +959,8 @@ HiiCreateTextOpCode (
   @param[in]  QuestionId            Question ID\r
   @param[in]  VarStoreId            Storage ID, optional. If DateFlags is not\r
                                     QF_DATE_STORAGE_NORMAL, this parameter is ignored.\r
-  @param[in]  VarOffset             Offset in Storage, optional. If DateFlags is not\r
+  @param[in]  VarOffset             Offset in Storage or String ID of the name (VarName)\r
+                                    for this name/value pair, optional. If DateFlags is not\r
                                     QF_DATE_STORAGE_NORMAL, this parameter is ignored.\r
   @param[in]  Prompt                String ID for Prompt\r
   @param[in]  Help                  String ID for Help\r
@@ -949,7 +998,8 @@ HiiCreateDateOpCode (
   @param[in]  QuestionId            Question ID\r
   @param[in]  VarStoreId            Storage ID, optional. If TimeFlags is not\r
                                     QF_TIME_STORAGE_NORMAL, this parameter is ignored.\r
-  @param[in]  VarOffset             Offset in Storage, optional. If TimeFlags is not\r
+  @param[in]  VarOffset             Offset in Storage or String ID of the name (VarName)\r
+                                    for this name/value pair, optional. If TimeFlags is not\r
                                     QF_TIME_STORAGE_NORMAL, this parameter is ignored.\r
   @param[in]  Prompt                String ID for Prompt\r
   @param[in]  Help                  String ID for Help\r