]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DuetPkg/FSVariable/FileStorage.c
IntelSiliconPkg/VTdDxe: Disable PMR
[mirror_edk2.git] / DuetPkg / FSVariable / FileStorage.c
index c4c239a4fc6242e45f54195a8ca073f36c193d71..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
@@ -266,7 +264,7 @@ FileStorageConstructor (
   // add notify on SFS's installation.\r
 \r
   Status = gBS->CreateEvent (\r
-                  EFI_EVENT_NOTIFY_SIGNAL,\r
+                  EVT_NOTIFY_SIGNAL,\r
                   TPL_CALLBACK,\r
                   OnSimpleFileSystemInstall,\r
                   Dev,\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