From 3eb9473ea9a949badfe06ae61d2d3fcfa53651c7 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Thu, 28 Jun 2007 07:00:39 +0000 Subject: Add in the 1st version of ECP. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Efi/Protocol/FileSystemInfo/FileSystemInfo.c | 27 ++++++++++++ .../Efi/Protocol/FileSystemInfo/FileSystemInfo.h | 51 ++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.c create mode 100644 EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.h (limited to 'EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo') diff --git a/EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.c b/EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.c new file mode 100644 index 0000000000..fe7a1b0dd3 --- /dev/null +++ b/EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.c @@ -0,0 +1,27 @@ +/*++ + +Copyright (c) 2004, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + FileSystemInfo.c + +Abstract: + + FileSystemInfo protocol as defined in the EFI 1.0 specification. + +--*/ + +#include "EfiSpec.h" +#include EFI_PROTOCOL_DEFINITION (FileSystemInfo) + +EFI_GUID gEfiFileSystemInfoGuid = EFI_FILE_SYSTEM_INFO_ID_GUID; + +EFI_GUID_STRING(&gEfiFileSystemInfoGuid, "File System Info ID", "EFI File System Info ID GUID"); diff --git a/EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.h b/EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.h new file mode 100644 index 0000000000..fd3c737a9b --- /dev/null +++ b/EdkCompatibilityPkg/Foundation/Efi/Protocol/FileSystemInfo/FileSystemInfo.h @@ -0,0 +1,51 @@ +/*++ + +Copyright (c) 2004, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + FileSystemInfo.h + +Abstract: + + FileSystemInfo protocol as defined in the EFI 1.0 specification. + + +--*/ + +#ifndef _FILE_SYSTEM_INFO_H_ +#define _FILE_SYSTEM_INFO_H_ + +#define EFI_FILE_SYSTEM_INFO_ID_GUID \ + { \ + 0x9576e93, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b \ + } + +typedef struct { + UINT64 Size; + BOOLEAN ReadOnly; + UINT64 VolumeSize; + UINT64 FreeSpace; + UINT32 BlockSize; + CHAR16 VolumeLabel[1]; +} EFI_FILE_SYSTEM_INFO; + +// +// The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length. +// Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs +// to be the size of the data structure without the VolumeLable field. The following macro +// computes this size correctly no matter how big the VolumeLable array is declared. +// This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant. +// +#define SIZE_OF_EFI_FILE_SYSTEM_INFO EFI_FIELD_OFFSET (EFI_FILE_SYSTEM_INFO, VolumeLabel) + +extern EFI_GUID gEfiFileSystemInfoGuid; + +#endif -- cgit v1.2.3