]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DuetPkg/FSVariable/FSVariable.c
Patch to remove STATIC modifier. This is on longer recommended by EFI Framework codin...
[mirror_edk2.git] / DuetPkg / FSVariable / FSVariable.c
index 041369106776f3bf7acaca6b9e00aaca491777c1..653860f1b2d4b8e1d9f16c8622f49d06eb235bb6 100644 (file)
@@ -35,15 +35,13 @@ VARIABLE_STORE_HEADER mStoreHeaderTemplate = {
 //\r
 VARIABLE_GLOBAL  *mGlobal;\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
-OnVirtualAddressChange (\r
+OnVirtualAddressChangeFsv (\r
   IN EFI_EVENT        Event,\r
   IN VOID             *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 OnSimpleFileSystemInstall (\r
@@ -51,7 +49,6 @@ OnSimpleFileSystemInstall (
   IN VOID             *Context\r
   );\r
 \r
-STATIC\r
 BOOLEAN\r
 IsValidVariableHeader (\r
   IN  VARIABLE_HEADER   *Variable\r
@@ -81,7 +78,6 @@ Returns:
   return TRUE;\r
 }\r
 \r
-STATIC\r
 VARIABLE_STORE_STATUS\r
 GetVariableStoreStatus (\r
   IN VARIABLE_STORE_HEADER *VarStoreHeader\r
@@ -121,7 +117,6 @@ Returns:
   }\r
 }\r
 \r
-STATIC\r
 UINT8 *\r
 GetVariableDataPtr (\r
   IN  VARIABLE_HEADER   *Variable\r
@@ -148,7 +143,6 @@ Returns:
   return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + Variable->NameSize + GET_PAD_SIZE (Variable->NameSize));\r
 }\r
 \r
-STATIC\r
 VARIABLE_HEADER *\r
 GetNextVariablePtr (\r
   IN  VARIABLE_HEADER   *Variable\r
@@ -178,7 +172,6 @@ Returns:
   return (VARIABLE_HEADER *) ((UINTN) GetVariableDataPtr (Variable) + Variable->DataSize + GET_PAD_SIZE (Variable->DataSize));\r
 }\r
 \r
-STATIC\r
 VARIABLE_HEADER *\r
 GetEndPointer (\r
   IN VARIABLE_STORE_HEADER       *VarStoreHeader\r
@@ -250,7 +243,6 @@ Returns:
   return FALSE;\r
 }\r
 \r
-STATIC\r
 EFI_STATUS\r
 Reclaim (\r
   IN  VARIABLE_STORAGE_TYPE StorageType,\r
@@ -374,7 +366,6 @@ Returns:
   return Status;\r
 }\r
 \r
-STATIC\r
 EFI_STATUS\r
 FindVariable (\r
   IN  CHAR16                  *VariableName,\r
@@ -743,7 +734,6 @@ Returns:
     return EFI_INVALID_PARAMETER;\r
   }\r
   \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
   //\r
   //  The size of the VariableName, including the Unicode Null in bytes plus\r
   //  the DataSize is limited to maximum size of MAX_HARDWARE_ERROR_VARIABLE_SIZE (32K)\r
@@ -760,16 +750,7 @@ Returns:
       return EFI_INVALID_PARAMETER;\r
     }  \r
   }  \r
-#else  \r
-  //\r
-  //  The size of the VariableName, including the Unicode Null in bytes plus\r
-  //  the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.\r
-  //\r
-  if ((DataSize > MAX_VARIABLE_SIZE) ||\r
-      (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_VARIABLE_SIZE)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }  \r
-#endif\r
+\r
   //\r
   // Check whether the input variable is already existed\r
   //\r
@@ -984,7 +965,6 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
 EFI_STATUS\r
 EFIAPI\r
 QueryVariableInfo (\r
@@ -1028,21 +1008,12 @@ Returns:
     return EFI_INVALID_PARAMETER;\r
   }\r
   \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)  \r
   if((Attributes & (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_HARDWARE_ERROR_RECORD)) == 0) {\r
     //\r
     // Make sure the Attributes combination is supported by the platform.\r
     //\r
     return EFI_UNSUPPORTED;  \r
   }  \r
-#else\r
-  if((Attributes & (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)) == 0) {\r
-    //\r
-    // Make sure the Attributes combination is supported by the platform.\r
-    //\r
-    return EFI_UNSUPPORTED;  \r
-  } \r
-#endif  \r
   else if ((Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) == EFI_VARIABLE_RUNTIME_ACCESS) {\r
     //\r
     // Make sure if runtime bit is set, boot service bit is set also.\r
@@ -1070,14 +1041,12 @@ Returns:
   //\r
   *MaximumVariableSize = MAX_VARIABLE_SIZE - sizeof (VARIABLE_HEADER);\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
   //\r
   // Harware error record variable needs larger size.\r
   //\r
   if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {\r
     *MaximumVariableSize = MAX_HARDWARE_ERROR_VARIABLE_SIZE - sizeof (VARIABLE_HEADER);\r
   }\r
-#endif\r
   \r
   //\r
   // Point to the starting address of the variables.\r
@@ -1124,7 +1093,6 @@ Returns:
 \r
   return EFI_SUCCESS;\r
 }\r
-#endif\r
 \r
 EFI_STATUS\r
 EFIAPI\r
@@ -1154,12 +1122,11 @@ Returns:
   EFI_STATUS                      Status;\r
   EFI_HANDLE                      NewHandle;\r
   VS_DEV                          *Dev;\r
-  VOID                            *HobList;\r
+  EFI_PEI_HOB_POINTERS            GuidHob;\r
   VARIABLE_HEADER                 *NextVariable;\r
   VARIABLE_STORE_HEADER           *VariableStoreHeader;\r
   EFI_FLASH_MAP_FS_ENTRY_DATA     *FlashMapEntryData;\r
   EFI_FLASH_SUBAREA_ENTRY         VariableStoreEntry;\r
-  VOID                            *Buffer;\r
   UINT64                          BaseAddress;\r
   UINT64                          Length;\r
   EFI_GCD_MEMORY_SPACE_DESCRIPTOR GcdDescriptor;\r
@@ -1173,32 +1140,27 @@ Returns:
     return Status;\r
   }\r
 \r
-  Status = EfiGetSystemConfigurationTable (&gEfiHobListGuid, &HobList);\r
-\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  \r
-  for (FlashMapEntryData = NULL; ;) {\r
-    Buffer = GetNextGuidHob (&gEfiFlashMapHobGuid, &HobList);\r
-\r
-    FlashMapEntryData = (EFI_FLASH_MAP_FS_ENTRY_DATA *) Buffer;\r
-\r
-    //\r
-    // Get the variable store area\r
-    //\r
+  GuidHob.Raw = GetHobList ();\r
+  FlashMapEntryData = NULL;\r
+  while ((GuidHob.Raw = GetNextGuidHob (&gEfiFlashMapHobGuid, GuidHob.Raw)) != NULL) {\r
+    FlashMapEntryData = (EFI_FLASH_MAP_FS_ENTRY_DATA *) GET_GUID_HOB_DATA (GuidHob.Guid);\r
     if (FlashMapEntryData->AreaType == EFI_FLASH_AREA_EFI_VARIABLES) {\r
       break;\r
     }\r
+    GuidHob.Raw = GET_NEXT_HOB (GuidHob); \r
   }\r
 \r
-  if (EFI_ERROR (Status) || FlashMapEntryData == NULL) {\r
+  if (FlashMapEntryData == NULL) {\r
+    DEBUG ((EFI_D_ERROR, "FSVariable: Could not find flash area for variable!\n"));\r
     Status = EFI_NOT_FOUND;\r
     return Status;\r
   }\r
-\r
-  VariableStoreEntry = FlashMapEntryData->Entries[0];\r
+  \r
+  CopyMem(\r
+    (VOID*)&VariableStoreEntry,\r
+    (VOID*)&FlashMapEntryData->Entries[0],\r
+    sizeof(EFI_FLASH_SUBAREA_ENTRY)\r
+    );\r
 \r
   //\r
   // Mark the variable storage region of the FLASH as RUNTIME\r
@@ -1309,9 +1271,7 @@ Returns:
   SystemTable->RuntimeServices->GetNextVariableName = GetNextVariableName;\r
   SystemTable->RuntimeServices->SetVariable         = SetVariable;\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   SystemTable->RuntimeServices->QueryVariableInfo   = QueryVariableInfo;\r
-#endif\r
 \r
   //\r
   // Now install the Variable Runtime Architectural Protocol on a new handle\r
@@ -1336,10 +1296,9 @@ Returns:
 \r
 \r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
-OnVirtualAddressChange (\r
+OnVirtualAddressChangeFsv (\r
   IN EFI_EVENT        Event,\r
   IN VOID             *Context\r
   )\r