]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/UefiIfrDefault.h
Rename module name from ***To*** to ***On***. AAAOnBBB means this module produce...
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / FrameworkHiiOnUefiHiiThunk / UefiIfrDefault.h
diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/UefiIfrDefault.h b/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/UefiIfrDefault.h
new file mode 100644 (file)
index 0000000..e06b282
--- /dev/null
@@ -0,0 +1,99 @@
+/** @file\r
+  Header file for Function and Macro defintions for to extract default values from UEFI Form package.\r
+\r
+  Copyright (c) 2008, Intel Corporation\r
+  All rights reserved. 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
+**/\r
+\r
+#ifndef _HII_THUNK_UEFI_IFR_DEFAULT_\r
+#define _HII_THUNK_UEFI_IFR_DEFAULT_\r
+\r
+#define UEFI_IFR_BUFFER_STORAGE_NODE_FROM_LIST(a) CR(a, UEFI_IFR_BUFFER_STORAGE_NODE, List, UEFI_IFR_BUFFER_STORAGE_NODE_SIGNATURE)\r
+#define UEFI_IFR_BUFFER_STORAGE_NODE_SIGNATURE  SIGNATURE_32 ('I', 'b', 'S', 'n')\r
+typedef struct {\r
+  LIST_ENTRY   List;\r
+  UINT32       Signature;\r
+\r
+  EFI_GUID     Guid;\r
+  CHAR16       *Name;\r
+  UINT16       DefaultId;\r
+  UINT16       StoreId;\r
+  UINTN        Size;\r
+  UINT8        *Buffer;\r
+  \r
+} UEFI_IFR_BUFFER_STORAGE_NODE;\r
+\r
+/**\r
+  Get the default value for Buffer Type storage from the first FormSet\r
+  in the Package List specified by a EFI_HII_HANDLE.\r
+  \r
+  The results can be multiple instances of UEFI_IFR_BUFFER_STORAGE_NODE. \r
+  They are inserted to the link list.\r
+  \r
+  @param  UefiHiiHandle           The handle for the package list.\r
+  @param  UefiDefaultsListHead The head of link list for the output.\r
+\r
+  @retval   EFI_SUCCESS          Successful.\r
+  \r
+**/\r
+EFI_STATUS\r
+UefiIfrGetBufferTypeDefaults (\r
+  IN  HII_THUNK_CONTEXT   *ThunkContext,\r
+  OUT LIST_ENTRY          **UefiDefaults\r
+);\r
+\r
+/**\r
+  Convert the UEFI Buffer Type default values to a Framework HII default\r
+  values specified by a EFI_HII_VARIABLE_PACK_LIST structure.\r
+  \r
+  @param  ListHead                  The link list of UEFI_IFR_BUFFER_STORAGE_NODE\r
+                                              which contains the default values retrived from\r
+                                              a UEFI form set.\r
+  @param  DefaultMask            The default mask.\r
+                                             The valid values are FRAMEWORK_EFI_IFR_FLAG_DEFAULT\r
+                                             and FRAMEWORK_EFI_IFR_FLAG_MANUFACTURING.\r
+                                            UEFI spec only map FRAMEWORK_EFI_IFR_FLAG_DEFAULT and FRAMEWORK_EFI_IFR_FLAG_MANUFACTURING \r
+                                            from specification to valid default class.\r
+  @param  VariablePackList     The output default value in a format defined in Framework.\r
+                                             \r
+\r
+  @retval   EFI_SUCCESS                       Successful.\r
+  @retval   EFI_INVALID_PARAMETER      The default mask is not FRAMEWORK_EFI_IFR_FLAG_DEFAULT or \r
+                                                           FRAMEWORK_EFI_IFR_FLAG_MANUFACTURING.\r
+**/\r
+\r
+EFI_STATUS\r
+UefiDefaultsToFwDefaults (\r
+  IN     LIST_ENTRY                  *UefiIfrDefaults,\r
+  IN     UINTN                       DefaultMask,\r
+  IN     EFI_VARSTORE_ID             UefiFormSetDefaultVarStoreId,\r
+  OUT    EFI_HII_VARIABLE_PACK_LIST  **VariablePackList\r
+  );\r
+\r
+/**\r
+  Free up all buffer allocated for the link list of UEFI_IFR_BUFFER_STORAGE_NODE.\r
+    \r
+  @param  ListHead                  The link list of UEFI_IFR_BUFFER_STORAGE_NODE\r
+                                              which contains the default values retrived from\r
+                                              a UEFI form set.\r
+                                             \r
+\r
+  @retval   EFI_SUCCESS                       Successful.\r
+  @retval   EFI_INVALID_PARAMETER      The default mask is not FRAMEWORK_EFI_IFR_FLAG_DEFAULT or \r
+                                                           FRAMEWORK_EFI_IFR_FLAG_MANUFACTURING.\r
+**/\r
+VOID\r
+FreeDefaultList (\r
+  IN     LIST_ENTRY                  *UefiIfrDefaults\r
+  );\r
+\r
+#endif\r
+\r
+\r