iPXE
FileSystemInfo.h
Go to the documentation of this file.
1/** @file
2 Provides a GUID and a data structure that can be used with EFI_FILE_PROTOCOL.GetInfo()
3 or EFI_FILE_PROTOCOL.SetInfo() to get or set information about the system's volume.
4 This GUID is defined in UEFI specification.
5
6Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
7SPDX-License-Identifier: BSD-2-Clause-Patent
8
9**/
10
11#ifndef __FILE_SYSTEM_INFO_H__
12#define __FILE_SYSTEM_INFO_H__
13
14FILE_LICENCE ( BSD2_PATENT );
15FILE_SECBOOT ( PERMITTED );
16
17#define EFI_FILE_SYSTEM_INFO_ID \
18 { \
19 0x9576e93, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
20 }
21
22typedef struct {
23 ///
24 /// The size of the EFI_FILE_SYSTEM_INFO structure, including the Null-terminated VolumeLabel string.
25 ///
27 ///
28 /// TRUE if the volume only supports read access.
29 ///
31 ///
32 /// The number of bytes managed by the file system.
33 ///
35 ///
36 /// The number of available bytes for use by the file system.
37 ///
39 ///
40 /// The nominal block size by which files are typically grown.
41 ///
43 ///
44 /// The Null-terminated string that is the volume's label.
45 ///
48
49///
50/// The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length.
51/// Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs
52/// to be the size of the data structure without the VolumeLable field. The following macro
53/// computes this size correctly no matter how big the VolumeLable array is declared.
54/// This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant.
55///
56#define SIZE_OF_EFI_FILE_SYSTEM_INFO OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)
57
59
60#endif
unsigned char BOOLEAN
Logical Boolean.
unsigned long long UINT64
8-byte unsigned value.
unsigned short CHAR16
2-byte Character.
unsigned int UINT32
4-byte unsigned value.
EFI_GUID gEfiFileSystemInfoGuid
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
BOOLEAN ReadOnly
TRUE if the volume only supports read access.
CHAR16 VolumeLabel[1]
The Null-terminated string that is the volume's label.
UINT64 VolumeSize
The number of bytes managed by the file system.
UINT64 FreeSpace
The number of available bytes for use by the file system.
UINT32 BlockSize
The nominal block size by which files are typically grown.
UINT64 Size
The size of the EFI_FILE_SYSTEM_INFO structure, including the Null-terminated VolumeLabel string.