iPXE
SimpleFileSystem.h
Go to the documentation of this file.
1 /** @file
2  SimpleFileSystem protocol as defined in the UEFI 2.0 specification.
3 
4  The SimpleFileSystem protocol is the programmatic access to the FAT (12,16,32)
5  file system specified in UEFI 2.0. It can also be used to abstract a file
6  system other than FAT.
7 
8  UEFI 2.0 can boot from any valid EFI image contained in a SimpleFileSystem.
9 
10 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
11 This program and the accompanying materials are licensed and made available under
12 the terms and conditions of the BSD License that accompanies this distribution.
13 The full text of the license may be found at
14 http://opensource.org/licenses/bsd-license.php.
15 
16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 
19 **/
20 
21 #ifndef __SIMPLE_FILE_SYSTEM_H__
22 #define __SIMPLE_FILE_SYSTEM_H__
23 
24 FILE_LICENCE ( BSD3 );
25 
26 #define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID \
27  { \
28  0x964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
29  }
30 
32 
35 
36 ///
37 /// Protocol GUID name defined in EFI1.1.
38 ///
39 #define SIMPLE_FILE_SYSTEM_PROTOCOL EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
40 
41 ///
42 /// Protocol name defined in EFI1.1.
43 ///
46 
47 /**
48  Open the root directory on a volume.
49 
50  @param This A pointer to the volume to open the root directory.
51  @param Root A pointer to the location to return the opened file handle for the
52  root directory.
53 
54  @retval EFI_SUCCESS The device was opened.
55  @retval EFI_UNSUPPORTED This volume does not support the requested file system type.
56  @retval EFI_NO_MEDIA The device has no medium.
57  @retval EFI_DEVICE_ERROR The device reported an error.
58  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
59  @retval EFI_ACCESS_DENIED The service denied access to the file.
60  @retval EFI_OUT_OF_RESOURCES The volume was not opened due to lack of resources.
61  @retval EFI_MEDIA_CHANGED The device has a different medium in it or the medium is no
62  longer supported. Any existing file handles for this volume are
63  no longer valid. To access the files on the new medium, the
64  volume must be reopened with OpenVolume().
65 
66 **/
67 typedef
71  OUT EFI_FILE_PROTOCOL **Root
72  );
73 
74 #define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION 0x00010000
75 
76 ///
77 /// Revision defined in EFI1.1
78 ///
79 #define EFI_FILE_IO_INTERFACE_REVISION EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION
80 
82  ///
83  /// The version of the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. The version
84  /// specified by this specification is 0x00010000. All future revisions
85  /// must be backwards compatible.
86  ///
89 };
90 
91 /**
92  Opens a new file relative to the source file's location.
93 
94  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
95  handle to the source location. This would typically be an open
96  handle to a directory.
97  @param NewHandle A pointer to the location to return the opened handle for the new
98  file.
99  @param FileName The Null-terminated string of the name of the file to be opened.
100  The file name may contain the following path modifiers: "\", ".",
101  and "..".
102  @param OpenMode The mode to open the file. The only valid combinations that the
103  file may be opened with are: Read, Read/Write, or Create/Read/Write.
104  @param Attributes Only valid for EFI_FILE_MODE_CREATE, in which case these are the
105  attribute bits for the newly created file.
106 
107  @retval EFI_SUCCESS The file was opened.
108  @retval EFI_NOT_FOUND The specified file could not be found on the device.
109  @retval EFI_NO_MEDIA The device has no medium.
110  @retval EFI_MEDIA_CHANGED The device has a different medium in it or the medium is no
111  longer supported.
112  @retval EFI_DEVICE_ERROR The device reported an error.
113  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
114  @retval EFI_WRITE_PROTECTED An attempt was made to create a file, or open a file for write
115  when the media is write-protected.
116  @retval EFI_ACCESS_DENIED The service denied access to the file.
117  @retval EFI_OUT_OF_RESOURCES Not enough resources were available to open the file.
118  @retval EFI_VOLUME_FULL The volume is full.
119 
120 **/
121 typedef
124  IN EFI_FILE_PROTOCOL *This,
125  OUT EFI_FILE_PROTOCOL **NewHandle,
126  IN CHAR16 *FileName,
127  IN UINT64 OpenMode,
128  IN UINT64 Attributes
129  );
130 
131 //
132 // Open modes
133 //
134 #define EFI_FILE_MODE_READ 0x0000000000000001ULL
135 #define EFI_FILE_MODE_WRITE 0x0000000000000002ULL
136 #define EFI_FILE_MODE_CREATE 0x8000000000000000ULL
137 
138 //
139 // File attributes
140 //
141 #define EFI_FILE_READ_ONLY 0x0000000000000001ULL
142 #define EFI_FILE_HIDDEN 0x0000000000000002ULL
143 #define EFI_FILE_SYSTEM 0x0000000000000004ULL
144 #define EFI_FILE_RESERVED 0x0000000000000008ULL
145 #define EFI_FILE_DIRECTORY 0x0000000000000010ULL
146 #define EFI_FILE_ARCHIVE 0x0000000000000020ULL
147 #define EFI_FILE_VALID_ATTR 0x0000000000000037ULL
148 
149 /**
150  Closes a specified file handle.
151 
152  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
153  handle to close.
154 
155  @retval EFI_SUCCESS The file was closed.
156 
157 **/
158 typedef
161  IN EFI_FILE_PROTOCOL *This
162  );
163 
164 /**
165  Close and delete the file handle.
166 
167  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the
168  handle to the file to delete.
169 
170  @retval EFI_SUCCESS The file was closed and deleted, and the handle was closed.
171  @retval EFI_WARN_DELETE_FAILURE The handle was closed, but the file was not deleted.
172 
173 **/
174 typedef
177  IN EFI_FILE_PROTOCOL *This
178  );
179 
180 /**
181  Reads data from a file.
182 
183  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
184  handle to read data from.
185  @param BufferSize On input, the size of the Buffer. On output, the amount of data
186  returned in Buffer. In both cases, the size is measured in bytes.
187  @param Buffer The buffer into which the data is read.
188 
189  @retval EFI_SUCCESS Data was read.
190  @retval EFI_NO_MEDIA The device has no medium.
191  @retval EFI_DEVICE_ERROR The device reported an error.
192  @retval EFI_DEVICE_ERROR An attempt was made to read from a deleted file.
193  @retval EFI_DEVICE_ERROR On entry, the current file position is beyond the end of the file.
194  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
195  @retval EFI_BUFFER_TOO_SMALL The BufferSize is too small to read the current directory
196  entry. BufferSize has been updated with the size
197  needed to complete the request.
198 
199 **/
200 typedef
203  IN EFI_FILE_PROTOCOL *This,
205  OUT VOID *Buffer
206  );
207 
208 /**
209  Writes data to a file.
210 
211  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
212  handle to write data to.
213  @param BufferSize On input, the size of the Buffer. On output, the amount of data
214  actually written. In both cases, the size is measured in bytes.
215  @param Buffer The buffer of data to write.
216 
217  @retval EFI_SUCCESS Data was written.
218  @retval EFI_UNSUPPORTED Writes to open directory files are not supported.
219  @retval EFI_NO_MEDIA The device has no medium.
220  @retval EFI_DEVICE_ERROR The device reported an error.
221  @retval EFI_DEVICE_ERROR An attempt was made to write to a deleted file.
222  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
223  @retval EFI_WRITE_PROTECTED The file or medium is write-protected.
224  @retval EFI_ACCESS_DENIED The file was opened read only.
225  @retval EFI_VOLUME_FULL The volume is full.
226 
227 **/
228 typedef
231  IN EFI_FILE_PROTOCOL *This,
233  IN VOID *Buffer
234  );
235 
236 /**
237  Sets a file's current position.
238 
239  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the
240  file handle to set the requested position on.
241  @param Position The byte position from the start of the file to set.
242 
243  @retval EFI_SUCCESS The position was set.
244  @retval EFI_UNSUPPORTED The seek request for nonzero is not valid on open
245  directories.
246  @retval EFI_DEVICE_ERROR An attempt was made to set the position of a deleted file.
247 
248 **/
249 typedef
252  IN EFI_FILE_PROTOCOL *This,
253  IN UINT64 Position
254  );
255 
256 /**
257  Returns a file's current position.
258 
259  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
260  handle to get the current position on.
261  @param Position The address to return the file's current position value.
262 
263  @retval EFI_SUCCESS The position was returned.
264  @retval EFI_UNSUPPORTED The request is not valid on open directories.
265  @retval EFI_DEVICE_ERROR An attempt was made to get the position from a deleted file.
266 
267 **/
268 typedef
271  IN EFI_FILE_PROTOCOL *This,
272  OUT UINT64 *Position
273  );
274 
275 /**
276  Returns information about a file.
277 
278  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
279  handle the requested information is for.
280  @param InformationType The type identifier for the information being requested.
281  @param BufferSize On input, the size of Buffer. On output, the amount of data
282  returned in Buffer. In both cases, the size is measured in bytes.
283  @param Buffer A pointer to the data buffer to return. The buffer's type is
284  indicated by InformationType.
285 
286  @retval EFI_SUCCESS The information was returned.
287  @retval EFI_UNSUPPORTED The InformationType is not known.
288  @retval EFI_NO_MEDIA The device has no medium.
289  @retval EFI_DEVICE_ERROR The device reported an error.
290  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
291  @retval EFI_BUFFER_TOO_SMALL The BufferSize is too small to read the current directory entry.
292  BufferSize has been updated with the size needed to complete
293  the request.
294 **/
295 typedef
298  IN EFI_FILE_PROTOCOL *This,
299  IN EFI_GUID *InformationType,
301  OUT VOID *Buffer
302  );
303 
304 /**
305  Sets information about a file.
306 
307  @param File A pointer to the EFI_FILE_PROTOCOL instance that is the file
308  handle the information is for.
309  @param InformationType The type identifier for the information being set.
310  @param BufferSize The size, in bytes, of Buffer.
311  @param Buffer A pointer to the data buffer to write. The buffer's type is
312  indicated by InformationType.
313 
314  @retval EFI_SUCCESS The information was set.
315  @retval EFI_UNSUPPORTED The InformationType is not known.
316  @retval EFI_NO_MEDIA The device has no medium.
317  @retval EFI_DEVICE_ERROR The device reported an error.
318  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
319  @retval EFI_WRITE_PROTECTED InformationType is EFI_FILE_INFO_ID and the media is
320  read-only.
321  @retval EFI_WRITE_PROTECTED InformationType is EFI_FILE_PROTOCOL_SYSTEM_INFO_ID
322  and the media is read only.
323  @retval EFI_WRITE_PROTECTED InformationType is EFI_FILE_SYSTEM_VOLUME_LABEL_ID
324  and the media is read-only.
325  @retval EFI_ACCESS_DENIED An attempt is made to change the name of a file to a
326  file that is already present.
327  @retval EFI_ACCESS_DENIED An attempt is being made to change the EFI_FILE_DIRECTORY
328  Attribute.
329  @retval EFI_ACCESS_DENIED An attempt is being made to change the size of a directory.
330  @retval EFI_ACCESS_DENIED InformationType is EFI_FILE_INFO_ID and the file was opened
331  read-only and an attempt is being made to modify a field
332  other than Attribute.
333  @retval EFI_VOLUME_FULL The volume is full.
334  @retval EFI_BAD_BUFFER_SIZE BufferSize is smaller than the size of the type indicated
335  by InformationType.
336 
337 **/
338 typedef
341  IN EFI_FILE_PROTOCOL *This,
342  IN EFI_GUID *InformationType,
344  IN VOID *Buffer
345  );
346 
347 /**
348  Flushes all modified data associated with a file to a device.
349 
350  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
351  handle to flush.
352 
353  @retval EFI_SUCCESS The data was flushed.
354  @retval EFI_NO_MEDIA The device has no medium.
355  @retval EFI_DEVICE_ERROR The device reported an error.
356  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
357  @retval EFI_WRITE_PROTECTED The file or medium is write-protected.
358  @retval EFI_ACCESS_DENIED The file was opened read-only.
359  @retval EFI_VOLUME_FULL The volume is full.
360 
361 **/
362 typedef
365  IN EFI_FILE_PROTOCOL *This
366  );
367 
368 typedef struct {
369  //
370  // If Event is NULL, then blocking I/O is performed.
371  // If Event is not NULL and non-blocking I/O is supported, then non-blocking I/O is performed,
372  // and Event will be signaled when the read request is completed.
373  // The caller must be prepared to handle the case where the callback associated with Event
374  // occurs before the original asynchronous I/O request call returns.
375  //
377 
378  //
379  // Defines whether or not the signaled event encountered an error.
380  //
382 
383  //
384  // For OpenEx(): Not Used, ignored.
385  // For ReadEx(): On input, the size of the Buffer. On output, the amount of data returned in Buffer.
386  // In both cases, the size is measured in bytes.
387  // For WriteEx(): On input, the size of the Buffer. On output, the amount of data actually written.
388  // In both cases, the size is measured in bytes.
389  // For FlushEx(): Not used, ignored.
390  //
392 
393  //
394  // For OpenEx(): Not Used, ignored.
395  // For ReadEx(): The buffer into which the data is read.
396  // For WriteEx(): The buffer of data to write.
397  // For FlushEx(): Not Used, ignored.
398  //
401 
402 /**
403  Opens a new file relative to the source directory's location.
404 
405  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
406  handle to the source location.
407  @param NewHandle A pointer to the location to return the opened handle for the new
408  file.
409  @param FileName The Null-terminated string of the name of the file to be opened.
410  The file name may contain the following path modifiers: "\", ".",
411  and "..".
412  @param OpenMode The mode to open the file. The only valid combinations that the
413  file may be opened with are: Read, Read/Write, or Create/Read/Write.
414  @param Attributes Only valid for EFI_FILE_MODE_CREATE, in which case these are the
415  attribute bits for the newly created file.
416  @param Token A pointer to the token associated with the transaction.
417 
418  @retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
419  If Event is not NULL (asynchronous I/O): The request was successfully
420  queued for processing.
421  @retval EFI_NOT_FOUND The specified file could not be found on the device.
422  @retval EFI_NO_MEDIA The device has no medium.
423  @retval EFI_MEDIA_CHANGED The device has a different medium in it or the medium is no
424  longer supported.
425  @retval EFI_DEVICE_ERROR The device reported an error.
426  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
427  @retval EFI_WRITE_PROTECTED An attempt was made to create a file, or open a file for write
428  when the media is write-protected.
429  @retval EFI_ACCESS_DENIED The service denied access to the file.
430  @retval EFI_OUT_OF_RESOURCES Not enough resources were available to open the file.
431  @retval EFI_VOLUME_FULL The volume is full.
432 
433 **/
434 typedef
437  IN EFI_FILE_PROTOCOL *This,
438  OUT EFI_FILE_PROTOCOL **NewHandle,
439  IN CHAR16 *FileName,
440  IN UINT64 OpenMode,
441  IN UINT64 Attributes,
442  IN OUT EFI_FILE_IO_TOKEN *Token
443  );
444 
445 
446 /**
447  Reads data from a file.
448 
449  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file handle to read data from.
450  @param Token A pointer to the token associated with the transaction.
451 
452  @retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
453  If Event is not NULL (asynchronous I/O): The request was successfully
454  queued for processing.
455  @retval EFI_NO_MEDIA The device has no medium.
456  @retval EFI_DEVICE_ERROR The device reported an error.
457  @retval EFI_DEVICE_ERROR An attempt was made to read from a deleted file.
458  @retval EFI_DEVICE_ERROR On entry, the current file position is beyond the end of the file.
459  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
460  @retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
461 **/
462 typedef
465  IN EFI_FILE_PROTOCOL *This,
466  IN OUT EFI_FILE_IO_TOKEN *Token
467 );
468 
469 
470 /**
471  Writes data to a file.
472 
473  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file handle to write data to.
474  @param Token A pointer to the token associated with the transaction.
475 
476  @retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
477  If Event is not NULL (asynchronous I/O): The request was successfully
478  queued for processing.
479  @retval EFI_UNSUPPORTED Writes to open directory files are not supported.
480  @retval EFI_NO_MEDIA The device has no medium.
481  @retval EFI_DEVICE_ERROR The device reported an error.
482  @retval EFI_DEVICE_ERROR An attempt was made to write to a deleted file.
483  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
484  @retval EFI_WRITE_PROTECTED The file or medium is write-protected.
485  @retval EFI_ACCESS_DENIED The file was opened read only.
486  @retval EFI_VOLUME_FULL The volume is full.
487  @retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
488 **/
489 typedef
492  IN EFI_FILE_PROTOCOL *This,
493  IN OUT EFI_FILE_IO_TOKEN *Token
494 );
495 
496 /**
497  Flushes all modified data associated with a file to a device.
498 
499  @param This A pointer to the EFI_FILE_PROTOCOL instance that is the file
500  handle to flush.
501  @param Token A pointer to the token associated with the transaction.
502 
503  @retval EFI_SUCCESS If Event is NULL (blocking I/O): The data was read successfully.
504  If Event is not NULL (asynchronous I/O): The request was successfully
505  queued for processing.
506  @retval EFI_NO_MEDIA The device has no medium.
507  @retval EFI_DEVICE_ERROR The device reported an error.
508  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
509  @retval EFI_WRITE_PROTECTED The file or medium is write-protected.
510  @retval EFI_ACCESS_DENIED The file was opened read-only.
511  @retval EFI_VOLUME_FULL The volume is full.
512  @retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
513 
514 **/
515 typedef
518  IN EFI_FILE_PROTOCOL *This,
519  IN OUT EFI_FILE_IO_TOKEN *Token
520  );
521 
522 #define EFI_FILE_PROTOCOL_REVISION 0x00010000
523 #define EFI_FILE_PROTOCOL_REVISION2 0x00020000
524 #define EFI_FILE_PROTOCOL_LATEST_REVISION EFI_FILE_PROTOCOL_REVISION2
525 
526 //
527 // Revision defined in EFI1.1.
528 //
529 #define EFI_FILE_REVISION EFI_FILE_PROTOCOL_REVISION
530 
531 ///
532 /// The EFI_FILE_PROTOCOL provides file IO access to supported file systems.
533 /// An EFI_FILE_PROTOCOL provides access to a file's or directory's contents,
534 /// and is also a reference to a location in the directory tree of the file system
535 /// in which the file resides. With any given file handle, other files may be opened
536 /// relative to this file's location, yielding new file handles.
537 ///
539  ///
540  /// The version of the EFI_FILE_PROTOCOL interface. The version specified
541  /// by this specification is EFI_FILE_PROTOCOL_LATEST_REVISION.
542  /// Future versions are required to be backward compatible to version 1.0.
543  ///
559 };
560 
561 
563 
564 #endif
UINT64 Revision
The version of the EFI_FILE_PROTOCOL interface.
EFI_FILE_CLOSE Close
EFI_FILE_GET_POSITION GetPosition
UINT64 Revision
The version of the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL.
EFI_STATUS(EFIAPI * EFI_FILE_WRITE)(IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, IN VOID *Buffer)
Writes data to a file.
128 bit buffer containing a unique identifier value.
Definition: Base.h:263
VOID * EFI_EVENT
Handle to an event structure.
Definition: UefiBaseType.h:43
EFI_STATUS(EFIAPI * EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME)(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **Root)
Open the root directory on a volume.
EFI_FILE_READ_EX ReadEx
EFI_FILE_GET_INFO GetInfo
EFI_FILE_FLUSH Flush
EFI_STATUS(EFIAPI * EFI_FILE_OPEN)(IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes)
Opens a new file relative to the source file's location.
UINT16_t BufferSize
Buffer size.
Definition: pxe_api.h:64
unsigned short CHAR16
Definition: ProcessorBind.h:59
EFI_FILE_OPEN_EX OpenEx
EFI_FILE_PROTOCOL EFI_FILE
EFI_STATUS(EFIAPI * EFI_FILE_DELETE)(IN EFI_FILE_PROTOCOL *This)
Close and delete the file handle.
FILE_LICENCE(BSD3)
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME OpenVolume
EFI_STATUS(EFIAPI * EFI_FILE_SET_INFO)(IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer)
Sets information about a file.
EFI_STATUS(EFIAPI * EFI_FILE_WRITE_EX)(IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token)
Writes data to a file.
#define OUT
Definition: mlx_utils.h:29
UINT8_t FileName[128]
File name.
Definition: pxe_api.h:60
EFI_FILE_DELETE Delete
EFI_STATUS(EFIAPI * EFI_FILE_GET_POSITION)(IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position)
Returns a file's current position.
EFI_STATUS(EFIAPI * EFI_FILE_SET_POSITION)(IN EFI_FILE_PROTOCOL *This, IN UINT64 Position)
Sets a file's current position.
EFI_FILE_SET_INFO SetInfo
EFI_STATUS(EFIAPI * EFI_FILE_FLUSH)(IN EFI_FILE_PROTOCOL *This)
Flushes all modified data associated with a file to a device.
EFI_FILE_SET_POSITION SetPosition
#define EFIAPI
SEGOFF16_t Buffer
Buffer address.
Definition: pxe_api.h:65
UINT64 UINTN
Unsigned value of native width.
Definition: ProcessorBind.h:71
EFI_FILE_WRITE_EX WriteEx
EFI_FILE_FLUSH_EX FlushEx
#define VOID
Undeclared type.
Definition: Base.h:319
unsigned long long UINT64
Definition: ProcessorBind.h:54
#define IN
Definition: mlx_utils.h:28
EFI_STATUS(EFIAPI * EFI_FILE_READ_EX)(IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token)
Reads data from a file.
EFI_STATUS(EFIAPI * EFI_FILE_CLOSE)(IN EFI_FILE_PROTOCOL *This)
Closes a specified file handle.
EFI_STATUS(EFIAPI * EFI_FILE_GET_INFO)(IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer)
Returns information about a file.
EFI_STATUS(EFIAPI * EFI_FILE_FLUSH_EX)(IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token)
Flushes all modified data associated with a file to a device.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
Definition: UefiBaseType.h:35
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL EFI_FILE_IO_INTERFACE
Protocol name defined in EFI1.1.
EFI_STATUS(EFIAPI * EFI_FILE_READ)(IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer)
Reads data from a file.
EFI_GUID gEfiSimpleFileSystemProtocolGuid
EFI_STATUS(EFIAPI * EFI_FILE_OPEN_EX)(IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes, IN OUT EFI_FILE_IO_TOKEN *Token)
Opens a new file relative to the source directory's location.
EFI_FILE_WRITE Write
The EFI_FILE_PROTOCOL provides file IO access to supported file systems.
struct _EFI_FILE_PROTOCOL * EFI_FILE_HANDLE