• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2   EFI Guid Partition Table Format Definition.
3 
4   Copyright (c) 2006 - 2008, Intel Corporation
5   All rights reserved. This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef __UEFI_GPT_H__
16 #define __UEFI_GPT_H__
17 
18 ///
19 /// The primary GUID Partition Table Header must be
20 /// located in LBA 1 (i.e., the second logical block).
21 ///
22 #define PRIMARY_PART_HEADER_LBA 1
23 
24 ///
25 /// EFI Partition Table Signature: "EFI PART"
26 ///
27 #define EFI_PTAB_HEADER_ID      0x5452415020494645ULL
28 
29 #pragma pack(1)
30 
31 ///
32 /// GPT Partition Table Header
33 ///
34 typedef struct {
35   EFI_TABLE_HEADER  Header;
36   EFI_LBA           MyLBA;
37   EFI_LBA           AlternateLBA;
38   EFI_LBA           FirstUsableLBA;
39   EFI_LBA           LastUsableLBA;
40   EFI_GUID          DiskGUID;
41   EFI_LBA           PartitionEntryLBA;
42   UINT32            NumberOfPartitionEntries;
43   UINT32            SizeOfPartitionEntry;
44   UINT32            PartitionEntryArrayCRC32;
45 } EFI_PARTITION_TABLE_HEADER;
46 
47 ///
48 /// GPT Partition Entry
49 ///
50 typedef struct {
51   EFI_GUID  PartitionTypeGUID;
52   EFI_GUID  UniquePartitionGUID;
53   EFI_LBA   StartingLBA;
54   EFI_LBA   EndingLBA;
55   UINT64    Attributes;
56   CHAR16    PartitionName[36];
57 } EFI_PARTITION_ENTRY;
58 
59 #pragma pack()
60 #endif
61 
62 
63