]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/SimpleFileSystem.h
Refine code to make code follow the coding style.
[mirror_edk2.git] / MdePkg / Include / Protocol / SimpleFileSystem.h
index add8ad6eeb7c1e935b13f9039f1d1806722ee6d7..cfc2c92ae24238f2dbb3abd301785d5b24174b83 100644 (file)
@@ -1,22 +1,20 @@
 /** @file\r
-  SimpleFileSystem protocol as defined in the EFI 1.0 specification.\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
-  file system specified in EFI 1.0. It can also be used to abstract a file  \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
-  EFI 1.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, 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
-\r
-  Module Name:  SimpleFileSystem.h\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
   }\r
 \r
 typedef struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL;\r
-typedef struct _EFI_FILE  EFI_FILE;\r
-typedef struct _EFI_FILE  *EFI_FILE_HANDLE;\r
-typedef struct _EFI_FILE  EFI_FILE_PROTOCOL;\r
+\r
+typedef struct _EFI_FILE_PROTOCOL         EFI_FILE_PROTOCOL;\r
+typedef struct _EFI_FILE_PROTOCOL         *EFI_FILE_HANDLE;\r
+\r
+///\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 name defined in EFI1.1.\r
+/// \r
+typedef EFI_SIMPLE_FILE_SYSTEM_PROTOCOL   EFI_FILE_IO_INTERFACE;\r
+typedef EFI_FILE_PROTOCOL                 EFI_FILE;\r
 \r
 /**\r
   Open the root directory on a volume.\r
@@ -40,59 +49,67 @@ typedef struct _EFI_FILE  EFI_FILE_PROTOCOL;
   @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
 EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME) (\r
+(EFIAPI *EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME)(\r
   IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL    *This,\r
-  OUT EFI_FILE                          **Root\r
-  )\r
-;\r
+  OUT EFI_FILE_PROTOCOL                 **Root\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_OPEN) (\r
-  IN EFI_FILE                 *This,\r
-  OUT EFI_FILE                **NewHandle,\r
+(EFIAPI *EFI_FILE_OPEN)(\r
+  IN EFI_FILE_PROTOCOL        *This,\r
+  OUT EFI_FILE_PROTOCOL       **NewHandle,\r
   IN CHAR16                   *FileName,\r
   IN UINT64                   OpenMode,\r
   IN UINT64                   Attributes\r
-  )\r
-;\r
+  );\r
 \r
 //\r
 // Open modes\r
@@ -122,26 +139,24 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_FILE_CLOSE) (\r
-  IN EFI_FILE  *This\r
-  )\r
-;\r
+(EFIAPI *EFI_FILE_CLOSE)(\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
-  )\r
-;\r
+(EFIAPI *EFI_FILE_DELETE)(\r
+  IN EFI_FILE_PROTOCOL  *This\r
+  );\r
 \r
 /**\r
   Read data from the file.\r
@@ -151,52 +166,51 @@ EFI_STATUS
   @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
 EFI_STATUS\r
-(EFIAPI *EFI_FILE_READ) (\r
-  IN EFI_FILE                 *This,\r
+(EFIAPI *EFI_FILE_READ)(\r
+  IN EFI_FILE_PROTOCOL        *This,\r
   IN OUT UINTN                *BufferSize,\r
   OUT VOID                    *Buffer\r
-  )\r
-;\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
 EFI_STATUS\r
-(EFIAPI *EFI_FILE_WRITE) (\r
-  IN EFI_FILE                 *This,\r
+(EFIAPI *EFI_FILE_WRITE)(\r
+  IN EFI_FILE_PROTOCOL        *This,\r
   IN OUT UINTN                *BufferSize,\r
   IN VOID                     *Buffer\r
-  )\r
-;\r
+  );\r
 \r
 /**\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
@@ -204,111 +218,121 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_FILE_SET_POSITION) (\r
-  IN EFI_FILE                 *This,\r
+(EFIAPI *EFI_FILE_SET_POSITION)(\r
+  IN EFI_FILE_PROTOCOL        *This,\r
   IN UINT64                   Position\r
-  )\r
-;\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
 EFI_STATUS\r
-(EFIAPI *EFI_FILE_GET_POSITION) (\r
-  IN EFI_FILE                 *This,\r
+(EFIAPI *EFI_FILE_GET_POSITION)(\r
+  IN EFI_FILE_PROTOCOL        *This,\r
   OUT UINT64                  *Position\r
-  )\r
-;\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
 EFI_STATUS\r
-(EFIAPI *EFI_FILE_GET_INFO) (\r
-  IN EFI_FILE                 *This,\r
+(EFIAPI *EFI_FILE_GET_INFO)(\r
+  IN EFI_FILE_PROTOCOL        *This,\r
   IN EFI_GUID                 *InformationType,\r
   IN OUT UINTN                *BufferSize,\r
   OUT VOID                    *Buffer\r
-  )\r
-;\r
+  );\r
 \r
 /**\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
 EFI_STATUS\r
-(EFIAPI *EFI_FILE_SET_INFO) (\r
-  IN EFI_FILE                 *This,\r
+(EFIAPI *EFI_FILE_SET_INFO)(\r
+  IN EFI_FILE_PROTOCOL        *This,\r
   IN EFI_GUID                 *InformationType,\r
   IN UINTN                    BufferSize,\r
   IN VOID                     *Buffer\r
-  )\r
-;\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
-  )\r
-;\r
+(EFIAPI *EFI_FILE_FLUSH)(\r
+  IN EFI_FILE_PROTOCOL  *This\r
+  );\r
 \r
-#define EFI_FILE_HANDLE_REVISION   0x00010000\r
-#define EFI_FILE_PROTOCOL_REVISION EFI_FILE_HANDLE_REVISION\r
-\r
-struct _EFI_FILE {\r
+#define EFI_FILE_PROTOCOL_REVISION   0x00010000\r
+//\r
+// Revision defined in EFI1.1.\r
+// \r
+#define EFI_FILE_REVISION   EFI_FILE_PROTOCOL_REVISION\r
+\r
+///\r
+/// The EFI_FILE_PROTOCOL provides file IO access to supported file systems.\r
+/// An EFI_FILE_PROTOCOL provides access to a file's or directory's contents, \r
+/// and is also a reference to a location in the directory tree of the file system \r
+/// in which the file resides. With any given file handle, other files may be opened \r
+/// relative to this file's location, yielding new file handles.\r
+///\r
+struct _EFI_FILE_PROTOCOL {\r
+  ///\r
+  /// The version of the EFI_FILE_PROTOCOL interface. The version specified \r
+  /// by this specification is 0x00010000. Future versions are required \r
+  /// to be backward compatible to version 1.0.\r
+  ///\r
   UINT64                Revision;\r
   EFI_FILE_OPEN         Open;\r
   EFI_FILE_CLOSE        Close;\r