]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/SimpleFileSystem.h
Update the structure of EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL, PXE_HW_UNDI, PXE_S...
[mirror_edk2.git] / MdePkg / Include / Protocol / SimpleFileSystem.h
index 07332351808f9f445ae65ea540e6b6cdd7ab3f11..7522bc8b8f32454244dfdc4deac0f1d04b1cf370 100644 (file)
@@ -7,14 +7,14 @@
 \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 - 2011, 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
@@ -40,21 +40,26 @@ typedef struct _EFI_FILE_PROTOCOL         *EFI_FILE_HANDLE;
 /// 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
 \r
-  @param  This Protocol instance pointer.\r
-  @param  Root Returns an Open file handle for the root directory\r
+  @param  This A pointer to the volume to open the root directory.\r
+  @param  Root A pointer to the location to return the opened file handle for the\r
+               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_NO_MEDIA         The device has no media.\r
+  @retval EFI_UNSUPPORTED      This volume does not support the requested file system type.\r
+  @retval EFI_NO_MEDIA         The device has no medium.\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_MEDIA_CHANGED    The device has a different medium in it or the medium is no\r
+                               longer supported. Any existing file handles for this volume are\r
+                               no longer valid. To access the files on the new medium, the\r
+                               volume must be reopened with OpenVolume().\r
 \r
 **/\r
 typedef\r
@@ -82,22 +87,32 @@ struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL {
 };\r
 \r
 /**\r
-  Open the root directory on a volume.\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  OpenMode   Open mode for file.\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_NO_MEDIA         The device has no media.\r
-  @retval EFI_MEDIA_CHANGED    The media has changed\r
+  Opens a new file relative to the source file's location.\r
+\r
+  @param  This       A pointer to the EFI_FILE_PROTOCOL instance that is the file\r
+                     handle to the source location. This would typically be an open\r
+                     handle to a directory.\r
+  @param  NewHandle  A pointer to the location to return the opened handle for the new\r
+                     file.\r
+  @param  FileName   The Null-terminated string of the name of the file to be opened.\r
+                     The file name may contain the following path modifiers: "\", ".",\r
+                     and "..".\r
+  @param  OpenMode   The mode to open the file. The only valid combinations that the\r
+                     file may be opened with are: Read, Read/Write, or Create/Read/Write.\r
+  @param  Attributes Only valid for EFI_FILE_MODE_CREATE, in which case these are the \r
+                     attribute bits for the newly created file.\r
+\r
+  @retval EFI_SUCCESS          The file was opened.\r
+  @retval EFI_NOT_FOUND        The specified file could not be found on the device.\r
+  @retval EFI_NO_MEDIA         The device has no medium.\r
+  @retval EFI_MEDIA_CHANGED    The device has a different medium in it or the medium is no\r
+                               longer supported.\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_WRITE_PROTECTED  An attempt was made to create a file, or open a file for write\r
+                               when the media is write-protected.\r
+  @retval EFI_ACCESS_DENIED    The service denied access to the file.\r
+  @retval EFI_OUT_OF_RESOURCES Not enough resources were available to open the file.\r
   @retval EFI_VOLUME_FULL      The volume is full.\r
 \r
 **/\r
@@ -130,46 +145,54 @@ EFI_STATUS
 #define EFI_FILE_VALID_ATTR 0x0000000000000037ULL\r
 \r
 /**\r
-  Close the file handle\r
+  Closes a specified file handle.\r
 \r
-  @param  This          Protocol instance pointer.\r
+  @param  This          A pointer to the EFI_FILE_PROTOCOL instance that is the file \r
+                        handle to close.\r
 \r
-  @retval EFI_SUCCESS   The device was opened.\r
+  @retval EFI_SUCCESS   The file was closed.\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
+  @param  This                     A pointer to the EFI_FILE_PROTOCOL instance that is the\r
+                                   handle to the file to delete.\r
+\r
+  @retval EFI_SUCCESS              The file was closed and deleted, and the handle was closed.\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
-  Read data from the file.\r
+  Reads data from 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 is read.\r
+  @param  This       A pointer to the EFI_FILE_PROTOCOL instance that is the file\r
+                     handle to read data from.\r
+  @param  BufferSize On input, the size of the Buffer. On output, the amount of data\r
+                     returned in Buffer. In both cases, the size is measured in bytes.\r
+  @param  Buffer     The buffer into which the 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 medium.\r
+  @retval EFI_DEVICE_ERROR     The device reported an error.\r
+  @retval EFI_DEVICE_ERROR     An attempt was made to read from a deleted file.\r
+  @retval EFI_DEVICE_ERROR     On entry, the current file position is beyond the end of the file.\r
+  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+  @retval EFI_BUFFER_TO_SMALL  The BufferSize is too small to read the current directory\r
+                               entry. BufferSize has been updated with the size\r
+                               needed to complete the request.\r
 \r
 **/\r
 typedef\r
@@ -181,20 +204,23 @@ EFI_STATUS
   );\r
 \r
 /**\r
-  Write data from or to the file.\r
+  Writes 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 to write data.\r
+  @param  This       A pointer to the EFI_FILE_PROTOCOL instance that is the file\r
+                     handle to write data to.\r
+  @param  BufferSize On input, the size of the Buffer. On output, the amount of data\r
+                     actually written. In both cases, the size is measured in bytes.\r
+  @param  Buffer     The buffer of 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_UNSUPPORTED      Writes to open directory files are not supported.\r
+  @retval EFI_NO_MEDIA         The device has no medium.\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 file or medium is write-protected.\r
+  @retval EFI_ACCESS_DENIED    The file was opened read only.\r
+  @retval EFI_VOLUME_FULL      The volume is full.\r
 \r
 **/\r
 typedef\r
@@ -206,13 +232,16 @@ EFI_STATUS
   );\r
 \r
 /**\r
-  Set a files current position\r
+  Sets a file's current position.\r
+\r
+  @param  This            A pointer to the EFI_FILE_PROTOCOL instance that is the\r
+                          file handle to set the requested position on.\r
+  @param  Position        The byte position from the start of the file to set.\r
 \r
-  @param  This            Protocol instance pointer.\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_SUCCESS      The position was set.\r
+  @retval EFI_UNSUPPORTED  The seek request for nonzero is not valid on open\r
+                           directories.\r
+  @retval EFI_DEVICE_ERROR An attempt was made to set the position of a deleted file.\r
 \r
 **/\r
 typedef\r
@@ -223,13 +252,15 @@ EFI_STATUS
   );\r
 \r
 /**\r
-  Get a file's current position\r
+  Returns a file's current position.\r
 \r
-  @param  This            Protocol instance pointer.\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
+  @param  This            A pointer to the EFI_FILE_PROTOCOL instance that is the file\r
+                          handle to get the current position on.\r
+  @param  Position        The address to return the file's current position value.\r
+\r
+  @retval EFI_SUCCESS      The position was returned.\r
+  @retval EFI_UNSUPPORTED  The request is not valid on open directories.\r
+  @retval EFI_DEVICE_ERROR An attempt was made to get the position from a deleted file.\r
 \r
 **/\r
 typedef\r
@@ -240,22 +271,24 @@ EFI_STATUS
   );\r
 \r
 /**\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  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
-\r
+  Returns information about a file.\r
+\r
+  @param  This            A pointer to the EFI_FILE_PROTOCOL instance that is the file\r
+                          handle the requested information is for.\r
+  @param  InformationType The type identifier for the information being requested.\r
+  @param  BufferSize      On input, the size of Buffer. On output, the amount of data\r
+                          returned in Buffer. In both cases, the size is measured in bytes.\r
+  @param  Buffer          A pointer to the data buffer to return. The buffer's type is\r
+                          indicated by InformationType.\r
+\r
+  @retval EFI_SUCCESS          The information was returned.\r
+  @retval EFI_UNSUPPORTED      The InformationType is not known.\r
+  @retval EFI_NO_MEDIA         The device has no medium.\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_TOO_SMALL The BufferSize is too small to read the current directory entry.\r
+                               BufferSize has been updated with the size needed to complete\r
+                               the request.\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -267,20 +300,37 @@ EFI_STATUS
   );\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  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
+  Sets information about a file.\r
+\r
+  @param  File            A pointer to the EFI_FILE_PROTOCOL instance that is the file\r
+                          handle the information is for.\r
+  @param  InformationType The type identifier for the information being set.\r
+  @param  BufferSize      The size, in bytes, of Buffer.\r
+  @param  Buffer          A pointer to the data buffer to write. The buffer's type is\r
+                          indicated by InformationType.\r
+\r
+  @retval EFI_SUCCESS          The information was set.\r
+  @retval EFI_UNSUPPORTED      The InformationType is not known.\r
+  @retval EFI_NO_MEDIA         The device has no medium.\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  InformationType is EFI_FILE_INFO_ID and the media is\r
+                               read-only.\r
+  @retval EFI_WRITE_PROTECTED  InformationType is EFI_FILE_PROTOCOL_SYSTEM_INFO_ID\r
+                               and the media is read only.\r
+  @retval EFI_WRITE_PROTECTED  InformationType is EFI_FILE_SYSTEM_VOLUME_LABEL_ID\r
+                               and the media is read-only.\r
+  @retval EFI_ACCESS_DENIED    An attempt is made to change the name of a file to a\r
+                               file that is already present.\r
+  @retval EFI_ACCESS_DENIED    An attempt is being made to change the EFI_FILE_DIRECTORY\r
+                               Attribute.\r
+  @retval EFI_ACCESS_DENIED    An attempt is being made to change the size of a directory.\r
+  @retval EFI_ACCESS_DENIED    InformationType is EFI_FILE_INFO_ID and the file was opened\r
+                               read-only and an attempt is being made to modify a field\r
+                               other than Attribute.\r
+  @retval EFI_VOLUME_FULL      The volume is full.\r
+  @retval EFI_BAD_BUFFER_SIZE  BufferSize is smaller than the size of the type indicated\r
+                               by InformationType.\r
 \r
 **/\r
 typedef\r
@@ -293,24 +343,24 @@ EFI_STATUS
   );\r
 \r
 /**\r
-  Flush data back for the file handle\r
+  Flushes all modified data associated with a file to a device.\r
 \r
-  @param  This Protocol instance pointer.\r
+  @param  This A pointer to the EFI_FILE_PROTOCOL instance that is the file \r
+               handle to flush.\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_SUCCESS          The data was flushed.\r
+  @retval EFI_NO_MEDIA         The device has no medium.\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 file or medium is write-protected.\r
+  @retval EFI_ACCESS_DENIED    The file was opened 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