1 /*++ 2 3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 FileSystemInfo.h 15 16 Abstract: 17 18 FileSystemInfo protocol as defined in the EFI 1.0 specification. 19 20 21 --*/ 22 23 #ifndef _FILE_SYSTEM_INFO_H_ 24 #define _FILE_SYSTEM_INFO_H_ 25 26 #define EFI_FILE_SYSTEM_INFO_ID_GUID \ 27 { \ 28 0x9576e93, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} \ 29 } 30 31 typedef struct { 32 UINT64 Size; 33 BOOLEAN ReadOnly; 34 UINT64 VolumeSize; 35 UINT64 FreeSpace; 36 UINT32 BlockSize; 37 CHAR16 VolumeLabel[1]; 38 } EFI_FILE_SYSTEM_INFO; 39 40 // 41 // The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length. 42 // Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs 43 // to be the size of the data structure without the VolumeLable field. The following macro 44 // computes this size correctly no matter how big the VolumeLable array is declared. 45 // This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant. 46 // 47 #define SIZE_OF_EFI_FILE_SYSTEM_INFO EFI_FIELD_OFFSET (EFI_FILE_SYSTEM_INFO, VolumeLabel) 48 49 extern EFI_GUID gEfiFileSystemInfoGuid; 50 51 #endif 52