-/**@file\r
+/** @file\r
Firmware File System driver that produce Firmware Volume protocol.\r
Layers on top of Firmware Block protocol to produce a file abstraction \r
of FV based files.\r
- \r
-Copyright (c) 2006 - 2007 Intel Corporation. <BR>\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
+Copyright (c) 2006 - 2008, Intel Corporation. <BR>\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
// FFS helper functions\r
//\r
\r
-EFI_STATUS\r
-GetFwVolHeader (\r
- IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb,\r
- OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader\r
- )\r
-/*++\r
\r
-Routine Description:\r
+/**\r
given the supplied FW_VOL_BLOCK_PROTOCOL, allocate a buffer for output and\r
copy the volume header into it.\r
\r
-Arguments:\r
- Fvb - The FW_VOL_BLOCK_PROTOCOL instance from which to read the volume\r
- header\r
- FwVolHeader - Pointer to pointer to allocated buffer in which the volume\r
- header is returned.\r
-\r
-Returns:\r
- EFI_OUT_OF_RESOURCES - No enough buffer could be allocated.\r
- EFI_SUCCESS - Successfully read volume header to the allocated buffer.\r
+ @param Fvb The FW_VOL_BLOCK_PROTOCOL instance from which to \r
+ read the volume header \r
+ @param FwVolHeader Pointer to pointer to allocated buffer in which \r
+ the volume header is returned. \r
\r
---*/\r
+ @retval EFI_OUT_OF_RESOURCES No enough buffer could be allocated. \r
+ @retval EFI_SUCCESS Successfully read volume header to the allocated \r
+ buffer.\r
\r
+**/\r
+EFI_STATUS\r
+GetFwVolHeader (\r
+ IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb,\r
+ OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader\r
+ )\r
{\r
EFI_STATUS Status;\r
EFI_FIRMWARE_VOLUME_HEADER TempFvh;\r
}\r
\r
\r
-STATIC\r
-VOID\r
-FreeFvDeviceResource (\r
- IN FV_DEVICE *FvDevice\r
- )\r
-/*++\r
\r
-Routine Description:\r
+/**\r
Free FvDevice resource when error happens\r
\r
-Arguments:\r
- FvDevice - pointer to the FvDevice to be freed.\r
+ @param FvDevice pointer to the FvDevice to be freed. \r
\r
-Returns:\r
- None.\r
+ @return None.\r
\r
---*/\r
+**/\r
+VOID\r
+FreeFvDeviceResource (\r
+ IN FV_DEVICE *FvDevice\r
+ )\r
{\r
FFS_FILE_LIST_ENTRY *FfsFileEntry;\r
LIST_ENTRY *NextEntry;\r
}\r
\r
\r
-EFI_STATUS\r
-FvCheck (\r
- IN OUT FV_DEVICE *FvDevice\r
- )\r
-/*++\r
\r
-Routine Description:\r
+/**\r
Check if a FV is consistent and allocate cache\r
\r
-Arguments:\r
- FvDevice - pointer to the FvDevice to be checked.\r
+ @param FvDevice pointer to the FvDevice to be checked. \r
\r
-Returns:\r
- EFI_OUT_OF_RESOURCES - No enough buffer could be allocated.\r
- EFI_SUCCESS - FV is consistent and cache is allocated.\r
- EFI_VOLUME_CORRUPTED - File system is corrupted.\r
+ @retval EFI_OUT_OF_RESOURCES No enough buffer could be allocated. \r
+ @retval EFI_SUCCESS FV is consistent and cache is allocated. \r
+ @retval EFI_VOLUME_CORRUPTED File system is corrupted.\r
\r
---*/\r
+**/\r
+EFI_STATUS\r
+FvCheck (\r
+ IN OUT FV_DEVICE *FvDevice\r
+ )\r
{\r
EFI_STATUS Status;\r
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;\r
//\r
// Scan to check the free space & File list\r
//\r
- if (FvbAttributes & EFI_FVB2_ERASE_POLARITY) {\r
+ if ((FvbAttributes & EFI_FVB2_ERASE_POLARITY) != 0) {\r
FvDevice->ErasePolarity = 1;\r
} else {\r
FvDevice->ErasePolarity = 0;\r
}\r
\r
\r
-STATIC\r
+\r
+/**\r
+ This notification function is invoked when an instance of the\r
+ EFI_FW_VOLUME_BLOCK_PROTOCOL is produced. It layers an instance of the\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL on the same handle. This is the function where\r
+ the actual initialization of the EFI_FIRMWARE_VOLUME2_PROTOCOL is done.\r
+\r
+ @param Event The event that occured \r
+ @param Context For EFI compatiblity. Not used.\r
+\r
+**/\r
VOID\r
EFIAPI\r
NotifyFwVolBlock (\r
IN EFI_EVENT Event,\r
IN VOID *Context\r
)\r
-/*++\r
-\r
-Routine Description:\r
- This notification function is invoked when an instance of the\r
- EFI_FW_VOLUME_BLOCK_PROTOCOL is produced. It layers an instance of the\r
- EFI_FIRMWARE_VOLUME2_PROTOCOL on the same handle. This is the function where\r
- the actual initialization of the EFI_FIRMWARE_VOLUME2_PROTOCOL is done.\r
-\r
-Arguments:\r
- Event - The event that occured\r
- Context - For EFI compatiblity. Not used.\r
-\r
-Returns:\r
-\r
- None.\r
-\r
---*/\r
{\r
EFI_HANDLE Handle;\r
EFI_STATUS Status;\r
}\r
\r
\r
+\r
+/**\r
+ This routine is the driver initialization entry point. It initializes the\r
+ libraries, and registers two notification functions. These notification\r
+ functions are responsible for building the FV stack dynamically.\r
+\r
+ @param ImageHandle The image handle. \r
+ @param SystemTable The system table. \r
+\r
+ @retval EFI_SUCCESS Function successfully returned.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
FwVolDriverInit (\r
IN EFI_HANDLE ImageHandle,\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
-/*++\r
-\r
-Routine Description:\r
- This routine is the driver initialization entry point. It initializes the\r
- libraries, and registers two notification functions. These notification\r
- functions are responsible for building the FV stack dynamically.\r
- \r
-Arguments:\r
- ImageHandle - The image handle.\r
- SystemTable - The system table.\r
- \r
-Returns:\r
- EFI_SUCCESS - Function successfully returned.\r
-\r
---*/\r
{\r
gEfiFwVolBlockEvent = CoreCreateProtocolNotifyEvent (\r
&gEfiFirmwareVolumeBlockProtocolGuid,\r
return EFI_SUCCESS;\r
}\r
\r
+\r