/** @file | |
EFI Guid Partition Table Format Definition. | |
Copyright (c) 2006 - 2008, 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. | |
**/ | |
#ifndef __UEFI_GPT_H__ | |
#define __UEFI_GPT_H__ | |
/// | |
/// The primary GUID Partition Table Header must be | |
/// located in LBA 1 (i.e., the second logical block). | |
/// | |
#define PRIMARY_PART_HEADER_LBA 1 | |
/// | |
/// EFI Partition Table Signature: "EFI PART" | |
/// | |
#define EFI_PTAB_HEADER_ID 0x5452415020494645ULL | |
#pragma pack(1) | |
/// | |
/// GPT Partition Table Header | |
/// | |
typedef struct { | |
EFI_TABLE_HEADER Header; | |
EFI_LBA MyLBA; | |
EFI_LBA AlternateLBA; | |
EFI_LBA FirstUsableLBA; | |
EFI_LBA LastUsableLBA; | |
EFI_GUID DiskGUID; | |
EFI_LBA PartitionEntryLBA; | |
UINT32 NumberOfPartitionEntries; | |
UINT32 SizeOfPartitionEntry; | |
UINT32 PartitionEntryArrayCRC32; | |
} EFI_PARTITION_TABLE_HEADER; | |
/// | |
/// GPT Partition Entry | |
/// | |
typedef struct { | |
EFI_GUID PartitionTypeGUID; | |
EFI_GUID UniquePartitionGUID; | |
EFI_LBA StartingLBA; | |
EFI_LBA EndingLBA; | |
UINT64 Attributes; | |
CHAR16 PartitionName[36]; | |
} EFI_PARTITION_ENTRY; | |
#pragma pack() | |
#endif | |