~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/ipxe/src/include/ipxe/efi/Guid/FileSystemInfo.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
6
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
 
7
This program and the accompanying materials are licensed and made available under
 
8
the terms and conditions of the BSD License that accompanies this distribution.
 
9
The full text of the license may be found at
 
10
http://opensource.org/licenses/bsd-license.php.
 
11
 
 
12
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 
13
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
14
 
 
15
**/
 
16
 
 
17
#ifndef __FILE_SYSTEM_INFO_H__
 
18
#define __FILE_SYSTEM_INFO_H__
 
19
 
 
20
FILE_LICENCE ( BSD3 );
 
21
 
 
22
#define EFI_FILE_SYSTEM_INFO_ID \
 
23
  { \
 
24
    0x9576e93, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
 
25
  }
 
26
 
 
27
typedef struct {
 
28
  ///
 
29
  /// The size of the EFI_FILE_SYSTEM_INFO structure, including the Null-terminated VolumeLabel string.
 
30
  ///
 
31
  UINT64  Size;
 
32
  ///
 
33
  /// TRUE if the volume only supports read access.
 
34
  ///
 
35
  BOOLEAN ReadOnly;
 
36
  ///
 
37
  /// The number of bytes managed by the file system.
 
38
  ///
 
39
  UINT64  VolumeSize;
 
40
  ///
 
41
  /// The number of available bytes for use by the file system.
 
42
  ///
 
43
  UINT64  FreeSpace;
 
44
  ///
 
45
  /// The nominal block size by which files are typically grown.
 
46
  ///
 
47
  UINT32  BlockSize;
 
48
  ///
 
49
  /// The Null-terminated string that is the volume's label.
 
50
  ///
 
51
  CHAR16  VolumeLabel[1];
 
52
} EFI_FILE_SYSTEM_INFO;
 
53
 
 
54
///
 
55
/// The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length.
 
56
/// Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs
 
57
/// to be the size of the data structure without the VolumeLable field.  The following macro
 
58
/// computes this size correctly no matter how big the VolumeLable array is declared.
 
59
/// This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant.
 
60
///
 
61
#define SIZE_OF_EFI_FILE_SYSTEM_INFO  OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)
 
62
 
 
63
extern EFI_GUID gEfiFileSystemInfoGuid;
 
64
 
 
65
#endif