]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DuetPkg/FSVariable/FileStorage.c
IntelFsp2WrapperPkg: Update gFspWrapperTokenSpaceGuid to gIntelFsp2WrapperTokenSpaceGuid.
[mirror_edk2.git] / DuetPkg / FSVariable / FileStorage.c
index 3588f3ecbc81a7d71e451edfb169b7a6ba5b4915..d07c0bb25c6d2b6775538184611b629b7f1f38d1 100644 (file)
@@ -1,7 +1,13 @@
 /*++\r
 \r
-Copyright (c) 2006 - 2007, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Caution: This file is used for Duet platform only, do not use them in real platform.\r
+All variable code, variable metadata, and variable data used by Duet platform are on \r
+disk. They can be changed by user. BIOS is not able to protoect those.\r
+Duet trusts all meta data from disk. If variable code, variable metadata and variable\r
+data is modified in inproper way, the behavior is undefined.\r
+\r
+Copyright (c) 2006 - 2014, 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
@@ -28,22 +34,19 @@ VOID             *mSFSRegistration;
 // Prototypes\r
 //\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
-OnVirtualAddressChange (\r
+OnVirtualAddressChangeFs (\r
   IN EFI_EVENT            Event,\r
   IN VOID                 *Context\r
   );\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 FileEraseStore(\r
   IN VARIABLE_STORAGE     *This\r
   );\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 FileWriteStore (\r
@@ -53,22 +56,20 @@ FileWriteStore (
   IN VOID                 *Buffer\r
   );\r
 \r
-STATIC\r
 EFI_STATUS\r
 OpenStore (\r
   IN  EFI_DEVICE_PATH_PROTOCOL  *Device,\r
   IN  CHAR16                    *FilePathName,\r
   IN  UINT64                    OpenMode,\r
-  OUT EFI_FILE                  **File\r
+  OUT EFI_FILE_PROTOCOL         **File\r
   );\r
 \r
 //\r
 // Implementation below:\r
 //\r
-STATIC\r
 VOID\r
 FileClose (\r
-  IN  EFI_FILE                   *File\r
+  IN  EFI_FILE_PROTOCOL          *File\r
   )\r
 {\r
   EFI_STATUS Status;\r
@@ -159,7 +160,7 @@ CheckStoreExists (
   Status = gBS->HandleProtocol (\r
                   Handle,\r
                   &gEfiSimpleFileSystemProtocolGuid,\r
-                  &Volume\r
+                  (VOID **) &Volume\r
                   );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
@@ -173,7 +174,6 @@ CheckStoreExists (
 // read the store_header, init store_header if it has not been inited (read sth. about format/heathy)\r
 // reclaim space using scratch memory\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 OnSimpleFileSystemInstall (\r
@@ -186,7 +186,7 @@ OnSimpleFileSystemInstall (
   EFI_HANDLE                Handle;\r
   EFI_DEVICE_PATH_PROTOCOL  *Device;\r
   VS_DEV                    *Dev;\r
-  EFI_FILE                  *File;\r
+  EFI_FILE_PROTOCOL         *File;\r
   UINTN                     NumBytes;\r
 \r
   Dev = (VS_DEV *) Context;\r
@@ -229,9 +229,7 @@ OnSimpleFileSystemInstall (
   NumBytes = Dev->Size;\r
   Status = File->Write (File, &NumBytes, VAR_DATA_PTR (Dev));\r
   ASSERT_EFI_ERROR (Status);\r
-  // KEN: bugbug here if closing file, volume handle will be free,\r
-  // and system will be hang when accessing volume handle in future.\r
-  //FileClose (File);\r
+  FileClose (File);\r
   DEBUG ((EFI_D_ERROR, "FileStorage: Mapped to file!\n"));\r
 }\r
 \r
@@ -249,11 +247,11 @@ FileStorageConstructor (
   EFI_STATUS                Status;\r
   EFI_EVENT                 Event;\r
 \r
-  Status = gBS->AllocatePool (EfiRuntimeServicesData, sizeof(VS_DEV), &Dev);\r
+  Status = gBS->AllocatePool (EfiRuntimeServicesData, sizeof(VS_DEV), (VOID **) &Dev);\r
   ASSERT_EFI_ERROR (Status);\r
   ZeroMem (Dev, sizeof(VS_DEV));\r
 \r
-  Dev->Signature          = VARIABLE_STORE_SIGNATURE;\r
+  Dev->Signature          = VS_DEV_SIGNATURE;\r
   Dev->Size               = Size;\r
   VAR_DATA_PTR (Dev)      = (UINT8 *) (UINTN) NvStorageBase;\r
   VAR_FILE_VOLUMEID (Dev) = VolumeId;\r
@@ -282,11 +280,10 @@ FileStorageConstructor (
   ASSERT_EFI_ERROR (Status);\r
 \r
   *VarStore       = &Dev->VarStore;\r
-  *GoVirtualEvent = OnVirtualAddressChange;\r
+  *GoVirtualEvent = OnVirtualAddressChangeFs;\r
   return EFI_SUCCESS;\r
 }\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 FileEraseStore(\r
@@ -295,7 +292,7 @@ FileEraseStore(
 {\r
   EFI_STATUS              Status;\r
   VS_DEV                  *Dev;\r
-  EFI_FILE                *File;\r
+  EFI_FILE_PROTOCOL       *File;\r
   UINTN                   NumBytes;\r
 \r
   Status = EFI_SUCCESS;\r
@@ -320,7 +317,6 @@ FileEraseStore(
   return Status;\r
 }\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 FileWriteStore (\r
@@ -332,7 +328,7 @@ FileWriteStore (
 {\r
   EFI_STATUS              Status;\r
   VS_DEV                  *Dev;\r
-  EFI_FILE                *File;\r
+  EFI_FILE_PROTOCOL       *File;\r
 \r
   Status = EFI_SUCCESS;\r
   Dev    = DEV_FROM_THIS(This);\r
@@ -358,10 +354,9 @@ FileWriteStore (
   return Status;\r
 }\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
-OnVirtualAddressChange (\r
+OnVirtualAddressChangeFs (\r
   IN EFI_EVENT            Event,\r
   IN VOID                 *Context\r
   )\r
@@ -370,18 +365,17 @@ OnVirtualAddressChange (
 \r
   Dev = DEV_FROM_THIS (Context);\r
 \r
-  EfiConvertPointer (0, &VAR_DATA_PTR (Dev));\r
+  EfiConvertPointer (0, (VOID **) &VAR_DATA_PTR (Dev));\r
   EfiConvertPointer (0, (VOID **) &Dev->VarStore.Erase);\r
   EfiConvertPointer (0, (VOID **) &Dev->VarStore.Write);\r
 }\r
 \r
-STATIC\r
 EFI_STATUS\r
 OpenStore (\r
   IN  EFI_DEVICE_PATH_PROTOCOL  *Device,\r
   IN  CHAR16                    *FilePathName,\r
   IN  UINT64                    OpenMode,\r
-  OUT EFI_FILE                  **File\r
+  OUT EFI_FILE_PROTOCOL         **File\r
   )\r
 {\r
   EFI_HANDLE                        Handle;\r
@@ -404,7 +398,7 @@ OpenStore (
   Status = gBS->HandleProtocol (\r
                   Handle,\r
                   &gEfiSimpleFileSystemProtocolGuid,\r
-                  &Volume\r
+                  (VOID **) &Volume\r
                   );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r