/** @file\r
SimpleFileSystem protocol as defined in the UEFI 2.0 specification.\r
\r
- The SimpleFileSystem protocol is the programatic access to the FAT (12,16,32) \r
+ The SimpleFileSystem protocol is the programmatic access to the FAT (12,16,32) \r
file system specified in UEFI 2.0. It can also be used to abstract a file \r
system other than FAT.\r
\r
- UEFI 2.0 can boot from any valid EFI image contained in a SimpleFileSystem\r
+ UEFI 2.0 can boot from any valid EFI image contained in a SimpleFileSystem.\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation \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
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+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
typedef struct _EFI_FILE_PROTOCOL EFI_FILE_PROTOCOL;\r
typedef struct _EFI_FILE_PROTOCOL *EFI_FILE_HANDLE;\r
\r
-\r
///\r
-/// Protocol GUID defined in EFI1.1.\r
+/// Protocol GUID name defined in EFI1.1.\r
/// \r
#define SIMPLE_FILE_SYSTEM_PROTOCOL EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID\r
\r
///\r
-/// Protocol defined in EFI1.1.\r
+/// Protocol name defined in EFI1.1.\r
/// \r
typedef EFI_SIMPLE_FILE_SYSTEM_PROTOCOL EFI_FILE_IO_INTERFACE;\r
-typedef struct _EFI_FILE_PROTOCOL EFI_FILE;\r
+typedef EFI_FILE_PROTOCOL EFI_FILE;\r
\r
/**\r
Open the root directory on a volume.\r
@param Root Returns an Open file handle for the root directory\r
\r
@retval EFI_SUCCESS The device was opened.\r
- @retval EFI_UNSUPPORTED This volume does not suppor the file system.\r
+ @retval EFI_UNSUPPORTED This volume does not support the file system.\r
@retval EFI_NO_MEDIA The device has no media.\r
@retval EFI_DEVICE_ERROR The device reported an error.\r
- @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted\r
- @retval EFI_ACCESS_DENIED The service denied access to the file\r
- @retval EFI_OUT_OF_RESOURCES The volume was not opened due to lack of resources\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_ACCESS_DENIED The service denied access to the file.\r
+ @retval EFI_OUT_OF_RESOURCES The volume was not opened due to lack of resources.\r
\r
**/\r
typedef\r
);\r
\r
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION 0x00010000\r
+\r
///\r
/// Revision defined in EFI1.1\r
/// \r
#define EFI_FILE_IO_INTERFACE_REVISION EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION\r
\r
struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL {\r
+ ///\r
+ /// The version of the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. The version\r
+ /// specified by this specification is 0x00010000. All future revisions\r
+ /// must be backwards compatible.\r
+ ///\r
UINT64 Revision;\r
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME OpenVolume;\r
};\r
\r
/**\r
- Open the root directory on a volume.\r
+ Opens a new file relative to the source file's location.\r
\r
- @param This Protocol instance pointer.\r
- @param NewHandle Returns File Handle for FileName\r
- @param FileName Null terminated string. "\", ".", and ".." are supported\r
+ @param This The protocol instance pointer.\r
+ @param NewHandle Returns File Handle for FileName.\r
+ @param FileName Null terminated string. "\", ".", and ".." are supported.\r
@param OpenMode Open mode for file.\r
- @param Attributes Only used for EFI_FILE_MODE_CREATE\r
+ @param Attributes Only used for EFI_FILE_MODE_CREATE.\r
\r
@retval EFI_SUCCESS The device was opened.\r
- @retval EFI_NOT_FOUND The specified file could not be found on the device\r
+ @retval EFI_NOT_FOUND The specified file could not be found on the device.\r
@retval EFI_NO_MEDIA The device has no media.\r
- @retval EFI_MEDIA_CHANGED The media has changed\r
+ @retval EFI_MEDIA_CHANGED The media has changed.\r
@retval EFI_DEVICE_ERROR The device reported an error.\r
- @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted\r
- @retval EFI_ACCESS_DENIED The service denied access to the file\r
- @retval EFI_OUT_OF_RESOURCES The volume was not opened due to lack of resources\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_ACCESS_DENIED The service denied access to the file.\r
+ @retval EFI_OUT_OF_RESOURCES The volume was not opened due to lack of resources.\r
@retval EFI_VOLUME_FULL The volume is full.\r
\r
**/\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_FILE_CLOSE)(\r
- IN EFI_FILE *This\r
+ IN EFI_FILE_PROTOCOL *This\r
);\r
\r
/**\r
- Close and delete the file handle\r
+ Close and delete the file handle.\r
\r
@param This Protocol instance pointer.\r
\r
@retval EFI_SUCCESS The device was opened.\r
- @retval EFI_WARN_DELETE_FAILURE The handle was closed but the file was not deleted\r
+ @retval EFI_WARN_DELETE_FAILURE The handle was closed but the file was not deleted.\r
\r
**/\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_FILE_DELETE)(\r
- IN EFI_FILE *This\r
+ IN EFI_FILE_PROTOCOL *This\r
);\r
\r
/**\r
@param Buffer The buffer in which data is read.\r
\r
@retval EFI_SUCCESS Data was read.\r
- @retval EFI_NO_MEDIA The device has no media\r
- @retval EFI_DEVICE_ERROR The device reported an error\r
- @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted\r
- @retval EFI_BUFFER_TO_SMALL BufferSize is too small. BufferSize contains required size\r
+ @retval EFI_NO_MEDIA The device has no media.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_BUFFER_TO_SMALL BufferSize is too small. BufferSize contains required size.\r
\r
**/\r
typedef\r
);\r
\r
/**\r
- Write data from to the file.\r
+ Write data to a file.\r
\r
@param This Protocol instance pointer.\r
@param BufferSize On input size of buffer, on output amount of data in buffer.\r
@param Buffer The buffer in which data to write.\r
\r
@retval EFI_SUCCESS Data was written.\r
- @retval EFI_UNSUPPORT Writes to Open directory are not supported\r
- @retval EFI_NO_MEDIA The device has no media\r
- @retval EFI_DEVICE_ERROR The device reported an error\r
- @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted\r
- @retval EFI_WRITE_PROTECTED The device is write protected\r
- @retval EFI_ACCESS_DENIED The file was open for read only\r
- @retval EFI_VOLUME_FULL The volume is full\r
+ @retval EFI_UNSUPPORT Writes to Open directory are not supported.\r
+ @retval EFI_NO_MEDIA The device has no media.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_DEVICE_ERROR An attempt was made to write to a deleted file.\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_WRITE_PROTECTED The device is write protected.\r
+ @retval EFI_ACCESS_DENIED The file was open for read only.\r
+ @retval EFI_VOLUME_FULL The volume is full.\r
\r
**/\r
typedef\r
Set a files current position\r
\r
@param This Protocol instance pointer.\r
- @param Position Byte possition from the start of the file\r
+ @param Position Byte position from the start of the file.\r
\r
@retval EFI_SUCCESS Data was written.\r
@retval EFI_UNSUPPORTED Seek request for non-zero is not valid on open.\r
);\r
\r
/**\r
- Get a files current position\r
+ Get a file's current position\r
\r
@param This Protocol instance pointer.\r
- @param Position Byte possition from the start of the file\r
+ @param Position Byte position from the start of the file.\r
\r
@retval EFI_SUCCESS Data was written.\r
- @retval EFI_UNSUPPORTED Seek request for non-zero is not valid on open.\r
+ @retval EFI_UNSUPPORTED Seek request for non-zero is not valid on open..\r
\r
**/\r
typedef\r
);\r
\r
/**\r
- Get information about a file\r
+ Get information about a file.\r
\r
@param This Protocol instance pointer.\r
- @param InformationType Type of info to return in Buffer\r
+ @param InformationType Type of information to return in Buffer.\r
@param BufferSize On input size of buffer, on output amount of data in buffer.\r
@param Buffer The buffer to return data.\r
\r
@retval EFI_SUCCESS Data was returned.\r
- @retval EFI_UNSUPPORT InformationType is not supported\r
- @retval EFI_NO_MEDIA The device has no media\r
- @retval EFI_DEVICE_ERROR The device reported an error\r
- @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted\r
- @retval EFI_WRITE_PROTECTED The device is write protected\r
- @retval EFI_ACCESS_DENIED The file was open for read only\r
- @retval EFI_BUFFER_TOO_SMALL Buffer was too small, required size returned in BufferSize\r
+ @retval EFI_UNSUPPORT InformationType is not supported.\r
+ @retval EFI_NO_MEDIA The device has no media.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_WRITE_PROTECTED The device is write protected.\r
+ @retval EFI_ACCESS_DENIED The file was open for read only.\r
+ @retval EFI_BUFFER_TOO_SMALL Buffer was too small; required size returned in BufferSize.\r
\r
**/\r
typedef\r
Set information about a file\r
\r
@param File Protocol instance pointer.\r
- @param InformationType Type of info in Buffer\r
+ @param InformationType Type of information in Buffer.\r
@param BufferSize Size of buffer.\r
@param Buffer The data to write.\r
\r
@retval EFI_SUCCESS Data was returned.\r
- @retval EFI_UNSUPPORT InformationType is not supported\r
- @retval EFI_NO_MEDIA The device has no media\r
- @retval EFI_DEVICE_ERROR The device reported an error\r
- @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted\r
- @retval EFI_WRITE_PROTECTED The device is write protected\r
- @retval EFI_ACCESS_DENIED The file was open for read only\r
+ @retval EFI_UNSUPPORT InformationType is not supported.\r
+ @retval EFI_NO_MEDIA The device has no media.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_WRITE_PROTECTED The device is write protected.\r
+ @retval EFI_ACCESS_DENIED The file was open for read only.\r
\r
**/\r
typedef\r
);\r
\r
/**\r
- Flush data back for the file handle\r
+ Flush data back for the file handle.\r
\r
@param This Protocol instance pointer.\r
\r
@retval EFI_SUCCESS Data was written.\r
- @retval EFI_UNSUPPORT Writes to Open directory are not supported\r
- @retval EFI_NO_MEDIA The device has no media\r
- @retval EFI_DEVICE_ERROR The device reported an error\r
- @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted\r
- @retval EFI_WRITE_PROTECTED The device is write protected\r
- @retval EFI_ACCESS_DENIED The file was open for read only\r
- @retval EFI_VOLUME_FULL The volume is full\r
+ @retval EFI_UNSUPPORT Writes to Open directory are not supported.\r
+ @retval EFI_NO_MEDIA The device has no media.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_WRITE_PROTECTED The device is write protected.\r
+ @retval EFI_ACCESS_DENIED The file was open for read only.\r
+ @retval EFI_VOLUME_FULL The volume is full.\r
\r
**/\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_FILE_FLUSH)(\r
- IN EFI_FILE *This\r
+ IN EFI_FILE_PROTOCOL *This\r
);\r
\r
#define EFI_FILE_PROTOCOL_REVISION 0x00010000\r