]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Guid/FileSystemInfo.h
Clarify some definitions in HII Configure Routine Protocol
[mirror_edk2.git] / MdePkg / Include / Guid / FileSystemInfo.h
CommitLineData
c2f83f0a 1/** @file\r
25cfda03
LG
2 Provides a GUID and a data structure that can be used with EFI_FILE_PROTOCOL.GetInfo()\r
3 or EFI_FILE_PROTOCOL.SetInfo() to get or set information about the system's volume.\r
1a2f870c 4 This GUID is defined in UEFI specification.\r
c2f83f0a 5\r
25cfda03 6 Copyright (c) 2006 - 2008, Intel Corporation \r
c2f83f0a 7 All rights reserved. This program and the accompanying materials \r
8 are licensed and made available under the terms and conditions of the BSD License \r
9 which accompanies this distribution. The full text of the license may be found at \r
10 http://opensource.org/licenses/bsd-license.php \r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
14\r
c2f83f0a 15**/\r
16\r
17#ifndef __FILE_SYSTEM_INFO_H__\r
18#define __FILE_SYSTEM_INFO_H__\r
19\r
fd21d1aa 20#define EFI_FILE_SYSTEM_INFO_ID \\r
c2f83f0a 21 { \\r
22 0x9576e93, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \\r
23 }\r
24\r
25typedef struct {\r
25cfda03
LG
26 ///\r
27 /// Size of the EFI_FILE_SYSTEM_INFO structure, including the Null-terminated Unicode VolumeLabel string.\r
28 ///\r
c2f83f0a 29 UINT64 Size;\r
25cfda03
LG
30 ///\r
31 /// TRUE if the volume only supports read access.\r
32 ///\r
c2f83f0a 33 BOOLEAN ReadOnly;\r
25cfda03
LG
34 ///\r
35 /// The number of bytes managed by the file system.\r
36 ///\r
c2f83f0a 37 UINT64 VolumeSize;\r
25cfda03
LG
38 ///\r
39 /// The number of available bytes for use by the file system.\r
40 ///\r
c2f83f0a 41 UINT64 FreeSpace;\r
25cfda03
LG
42 ///\r
43 /// The nominal block size by which files are typically grown.\r
44 ///\r
c2f83f0a 45 UINT32 BlockSize;\r
25cfda03
LG
46 ///\r
47 /// The Null-terminated string that is the volume's label.\r
48 ///\r
c2f83f0a 49 CHAR16 VolumeLabel[1];\r
50} EFI_FILE_SYSTEM_INFO;\r
51\r
55d473ba 52///\r
53/// The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length.\r
54/// Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs\r
55/// to be the size of the data structure without the VolumeLable field. The following macro\r
56/// computes this size correctly no matter how big the VolumeLable array is declared.\r
57/// This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant.\r
58///\r
07636730 59#define SIZE_OF_EFI_FILE_SYSTEM_INFO OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)\r
c2f83f0a 60\r
61extern EFI_GUID gEfiFileSystemInfoGuid;\r
62\r
63#endif\r