// 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
IN VOID *Buffer\r
);\r
\r
-STATIC\r
EFI_STATUS\r
OpenStore (\r
IN EFI_DEVICE_PATH_PROTOCOL *Device,\r
//\r
// Implementation below:\r
//\r
-STATIC\r
VOID\r
FileClose (\r
IN EFI_FILE *File\r
// 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
NumBytes = Dev->Size;\r
Status = File->Write (File, &NumBytes, VAR_DATA_PTR (Dev));\r
ASSERT_EFI_ERROR (Status);\r
- FileClose (File);\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
DEBUG ((EFI_D_ERROR, "FileStorage: Mapped to file!\n"));\r
}\r
\r
// 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
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
return Status;\r
}\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
FileWriteStore (\r
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
EfiConvertPointer (0, (VOID **) &Dev->VarStore.Write);\r
}\r
\r
-STATIC\r
EFI_STATUS\r
OpenStore (\r
IN EFI_DEVICE_PATH_PROTOCOL *Device,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
- \r
+\r
//\r
// Open the root directory of the volume\r
//\r