-/*++\r
+/** @file\r
+ Functions that perform file read/write.\r
\r
Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials are licensed and made available\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
\r
-Module Name:\r
+**/\r
\r
- ReadWrite.c\r
+#include "Fat.h"\r
\r
-Abstract:\r
+/**\r
\r
- Functions that perform file read/write\r
+ Get the file's position of the file.\r
\r
-Revision History\r
\r
---*/\r
+ @param FHand - The handle of file.\r
+ @param Position - The file's position of the file.\r
\r
-#include "Fat.h"\r
+ @retval EFI_SUCCESS - Get the info successfully.\r
+ @retval EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
+ @retval EFI_UNSUPPORTED - The open file is not a file.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
FatGetPosition (\r
IN EFI_FILE_PROTOCOL *FHand,\r
OUT UINT64 *Position\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Get the file's position of the file.\r
-\r
-Arguments:\r
-\r
- FHand - The handle of file.\r
- Position - The file's position of the file.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Get the info successfully.\r
- EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
- EFI_UNSUPPORTED - The open file is not a file.\r
-\r
---*/\r
{\r
FAT_IFILE *IFile;\r
FAT_OFILE *OFile;\r
return EFI_SUCCESS;\r
}\r
\r
+/**\r
+\r
+ Set the file's position of the file.\r
+\r
+ @param FHand - The handle of file.\r
+ @param Position - The file's position of the file.\r
+\r
+ @retval EFI_SUCCESS - Set the info successfully.\r
+ @retval EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
+ @retval EFI_UNSUPPORTED - Set a directory with a not-zero position.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
FatSetPosition (\r
IN EFI_FILE_PROTOCOL *FHand,\r
IN UINT64 Position\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Set the file's position of the file.\r
-\r
-Arguments:\r
-\r
- FHand - The handle of file.\r
- Position - The file's position of the file.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Set the info successfully.\r
- EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
- EFI_UNSUPPORTED - Set a directory with a not-zero position.\r
-\r
---*/\r
{\r
FAT_IFILE *IFile;\r
FAT_OFILE *OFile;\r
return EFI_SUCCESS;\r
}\r
\r
+/**\r
+\r
+ Get the file info from the open file of the IFile into Buffer.\r
+\r
+ @param IFile - The instance of the open file.\r
+ @param BufferSize - Size of Buffer.\r
+ @param Buffer - Buffer containing read data.\r
+\r
+ @retval EFI_SUCCESS - Get the file info successfully.\r
+ @retval other - An error occurred when operation the disk.\r
+\r
+**/\r
EFI_STATUS\r
FatIFileReadDir (\r
IN FAT_IFILE *IFile,\r
IN OUT UINTN *BufferSize,\r
OUT VOID *Buffer\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Get the file info from the open file of the IFile into Buffer.\r
-\r
-Arguments:\r
-\r
- IFile - The instance of the open file.\r
- BufferSize - Size of Buffer.\r
- Buffer - Buffer containing read data.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Get the file info successfully.\r
- other - An error occurred when operation the disk.\r
-\r
---*/\r
{\r
EFI_STATUS Status;\r
FAT_OFILE *OFile;\r
return Status;\r
}\r
\r
+/**\r
+\r
+ Get the file info from the open file of the IFile into Buffer.\r
+\r
+ @param FHand - The file handle to access.\r
+ @param IoMode - Indicate whether the access mode is reading or writing.\r
+ @param BufferSize - Size of Buffer.\r
+ @param Buffer - Buffer containing read data.\r
+ @param Token - A pointer to the token associated with the transaction.\r
+\r
+ @retval EFI_SUCCESS - Get the file info successfully.\r
+ @retval EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
+ @retval EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
+ @retval EFI_WRITE_PROTECTED - The disk is write protect.\r
+ @retval EFI_ACCESS_DENIED - The file is read-only.\r
+ @return other - An error occurred when operating on the disk.\r
+\r
+**/\r
EFI_STATUS\r
FatIFileAccess (\r
IN EFI_FILE_PROTOCOL *FHand,\r
IN OUT VOID *Buffer,\r
IN EFI_FILE_IO_TOKEN *Token\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Get the file info from the open file of the IFile into Buffer.\r
-\r
-Arguments:\r
-\r
- FHand - The file handle to access.\r
- IoMode - Indicate whether the access mode is reading or writing.\r
- BufferSize - Size of Buffer.\r
- Buffer - Buffer containing read data.\r
- Token - A pointer to the token associated with the transaction.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Get the file info successfully.\r
- EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
- EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
- EFI_WRITE_PROTECTED - The disk is write protect.\r
- EFI_ACCESS_DENIED - The file is read-only.\r
- other - An error occurred when operating on the disk.\r
-\r
---*/\r
{\r
EFI_STATUS Status;\r
FAT_IFILE *IFile;\r
return Status;\r
}\r
\r
+/**\r
+\r
+ Get the file info.\r
+\r
+ @param FHand - The handle of the file.\r
+ @param BufferSize - Size of Buffer.\r
+ @param Buffer - Buffer containing read data.\r
+\r
+\r
+ @retval EFI_SUCCESS - Get the file info successfully.\r
+ @retval EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
+ @retval EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
+ @return other - An error occurred when operation the disk.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
FatRead (\r
IN OUT UINTN *BufferSize,\r
OUT VOID *Buffer\r
)\r
-/*++\r
+{\r
+ return FatIFileAccess (FHand, ReadData, BufferSize, Buffer, NULL);\r
+}\r
\r
-Routine Description:\r
+/**\r
\r
Get the file info.\r
\r
-Arguments:\r
-\r
- FHand - The handle of the file.\r
- BufferSize - Size of Buffer.\r
- Buffer - Buffer containing read data.\r
+ @param FHand - The handle of the file.\r
+ @param Token - A pointer to the token associated with the transaction.\r
\r
-Returns:\r
-\r
- EFI_SUCCESS - Get the file info successfully.\r
- EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
- EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
- other - An error occurred when operation the disk.\r
-\r
---*/\r
-{\r
- return FatIFileAccess (FHand, ReadData, BufferSize, Buffer, NULL);\r
-}\r
+ @retval EFI_SUCCESS - Get the file info successfully.\r
+ @retval EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
+ @retval EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
+ @return other - An error occurred when operation the disk.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
FatReadEx (\r
IN EFI_FILE_PROTOCOL *FHand,\r
IN OUT EFI_FILE_IO_TOKEN *Token\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Get the file info.\r
-\r
-Arguments:\r
+{\r
+ return FatIFileAccess (FHand, ReadData, &Token->BufferSize, Token->Buffer, Token);\r
+}\r
\r
- FHand - The handle of the file.\r
- Token - A pointer to the token associated with the transaction.\r
+/**\r
\r
-Returns:\r
+ Write the content of buffer into files.\r
\r
- EFI_SUCCESS - Get the file info successfully.\r
- EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
- EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
- other - An error occurred when operation the disk.\r
+ @param FHand - The handle of the file.\r
+ @param BufferSize - Size of Buffer.\r
+ @param Buffer - Buffer containing write data.\r
\r
---*/\r
-{\r
- return FatIFileAccess (FHand, ReadData, &Token->BufferSize, Token->Buffer, Token);\r
-}\r
+ @retval EFI_SUCCESS - Set the file info successfully.\r
+ @retval EFI_WRITE_PROTECTED - The disk is write protect.\r
+ @retval EFI_ACCESS_DENIED - The file is read-only.\r
+ @retval EFI_DEVICE_ERROR - The OFile is not valid.\r
+ @retval EFI_UNSUPPORTED - The open file is not a file.\r
+ - The writing file size is larger than 4GB.\r
+ @return other - An error occurred when operation the disk.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
FatWrite (\r
IN OUT UINTN *BufferSize,\r
IN VOID *Buffer\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Write the content of buffer into files.\r
+{\r
+ return FatIFileAccess (FHand, WriteData, BufferSize, Buffer, NULL);\r
+}\r
\r
-Arguments:\r
+/**\r
\r
- FHand - The handle of the file.\r
- BufferSize - Size of Buffer.\r
- Buffer - Buffer containing write data.\r
+ Get the file info.\r
\r
-Returns:\r
+ @param FHand - The handle of the file.\r
+ @param Token - A pointer to the token associated with the transaction.\r
\r
- EFI_SUCCESS - Set the file info successfully.\r
- EFI_WRITE_PROTECTED - The disk is write protect.\r
- EFI_ACCESS_DENIED - The file is read-only.\r
- EFI_DEVICE_ERROR - The OFile is not valid.\r
- EFI_UNSUPPORTED - The open file is not a file.\r
- - The writing file size is larger than 4GB.\r
- other - An error occurred when operation the disk.\r
-\r
---*/\r
-{\r
- return FatIFileAccess (FHand, WriteData, BufferSize, Buffer, NULL);\r
-}\r
+ @retval EFI_SUCCESS - Get the file info successfully.\r
+ @retval EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
+ @retval EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
+ @return other - An error occurred when operation the disk.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
FatWriteEx (\r
IN EFI_FILE_PROTOCOL *FHand,\r
IN OUT EFI_FILE_IO_TOKEN *Token\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Get the file info.\r
-\r
-Arguments:\r
+{\r
+ return FatIFileAccess (FHand, WriteData, &Token->BufferSize, Token->Buffer, Token);\r
+}\r
\r
- FHand - The handle of the file.\r
- Token - A pointer to the token associated with the transaction.\r
+/**\r
\r
-Returns:\r
+ This function reads data from a file or writes data to a file.\r
+ It uses OFile->PosRem to determine how much data can be accessed in one time.\r
\r
- EFI_SUCCESS - Get the file info successfully.\r
- EFI_DEVICE_ERROR - Can not find the OFile for the file.\r
- EFI_VOLUME_CORRUPTED - The file type of open file is error.\r
- other - An error occurred when operation the disk.\r
+ @param OFile - The open file.\r
+ @param IoMode - Indicate whether the access mode is reading or writing.\r
+ @param Position - The position where data will be accessed.\r
+ @param DataBufferSize - Size of Buffer.\r
+ @param UserBuffer - Buffer containing data.\r
+ @param Task point to task instance.\r
\r
---*/\r
-{\r
- return FatIFileAccess (FHand, WriteData, &Token->BufferSize, Token->Buffer, Token);\r
-}\r
+ @retval EFI_SUCCESS - Access the data successfully.\r
+ @return other - An error occurred when operating on the disk.\r
\r
+**/\r
EFI_STATUS\r
FatAccessOFile (\r
IN FAT_OFILE *OFile,\r
IN OUT UINT8 *UserBuffer,\r
IN FAT_TASK *Task\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- This function reads data from a file or writes data to a file.\r
- It uses OFile->PosRem to determine how much data can be accessed in one time.\r
-\r
-Arguments:\r
-\r
- OFile - The open file.\r
- IoMode - Indicate whether the access mode is reading or writing.\r
- Position - The position where data will be accessed.\r
- DataBufferSize - Size of Buffer.\r
- UserBuffer - Buffer containing data.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Access the data successfully.\r
- other - An error occurred when operating on the disk.\r
-\r
---*/\r
{\r
FAT_VOLUME *Volume;\r
UINTN Len;\r
return Status;\r
}\r
\r
-EFI_STATUS\r
-FatExpandOFile (\r
- IN FAT_OFILE *OFile,\r
- IN UINT64 ExpandedSize\r
- )\r
-/*++\r
-\r
-Routine Description:\r
+/**\r
\r
Expand OFile by appending zero bytes at the end of OFile.\r
\r
-Arguments:\r
-\r
- OFile - The open file.\r
- ExpandedSize - The number of zero bytes appended at the end of the file.\r
+ @param OFile - The open file.\r
+ @param ExpandedSize - The number of zero bytes appended at the end of the file.\r
\r
-Returns:\r
+ @retval EFI_SUCCESS - The file is expanded successfully.\r
+ @return other - An error occurred when expanding file.\r
\r
- EFI_SUCCESS - The file is expanded successfully.\r
- other - An error occurred when expanding file.\r
-\r
---*/\r
+**/\r
+EFI_STATUS\r
+FatExpandOFile (\r
+ IN FAT_OFILE *OFile,\r
+ IN UINT64 ExpandedSize\r
+ )\r
{\r
EFI_STATUS Status;\r
UINTN WritePos;\r
return Status;\r
}\r
\r
-EFI_STATUS\r
-FatWriteZeroPool (\r
- IN FAT_OFILE *OFile,\r
- IN UINTN WritePos\r
- )\r
-/*++\r
-\r
-Routine Description:\r
+/**\r
\r
Write zero pool from the WritePos to the end of OFile.\r
\r
-Arguments:\r
-\r
- OFile - The open file to write zero pool.\r
- WritePos - The number of zero bytes written.\r
-\r
-Returns:\r
+ @param OFile - The open file to write zero pool.\r
+ @param WritePos - The number of zero bytes written.\r
\r
- EFI_SUCCESS - Write the zero pool successfully.\r
- EFI_OUT_OF_RESOURCES - Not enough memory to perform the operation.\r
- other - An error occurred when writing disk.\r
+ @retval EFI_SUCCESS - Write the zero pool successfully.\r
+ @retval EFI_OUT_OF_RESOURCES - Not enough memory to perform the operation.\r
+ @return other - An error occurred when writing disk.\r
\r
---*/\r
+**/\r
+EFI_STATUS\r
+FatWriteZeroPool (\r
+ IN FAT_OFILE *OFile,\r
+ IN UINTN WritePos\r
+ )\r
{\r
EFI_STATUS Status;\r
VOID *ZeroBuffer;\r
return Status;\r
}\r
\r
-EFI_STATUS\r
-FatTruncateOFile (\r
- IN FAT_OFILE *OFile,\r
- IN UINTN TruncatedSize\r
- )\r
-/*++\r
-\r
-Routine Description:\r
+/**\r
\r
Truncate the OFile to smaller file size.\r
\r
-Arguments:\r
-\r
- OFile - The open file.\r
- TruncatedSize - The new file size.\r
+ @param OFile - The open file.\r
+ @param TruncatedSize - The new file size.\r
\r
-Returns:\r
+ @retval EFI_SUCCESS - The file is truncated successfully.\r
+ @return other - An error occurred when truncating file.\r
\r
- EFI_SUCCESS - The file is truncated successfully.\r
- other - An error occurred when truncating file.\r
-\r
---*/\r
+**/\r
+EFI_STATUS\r
+FatTruncateOFile (\r
+ IN FAT_OFILE *OFile,\r
+ IN UINTN TruncatedSize\r
+ )\r
{\r
OFile->FileSize = TruncatedSize;\r
return FatShrinkEof (OFile);\r