summaryrefslogtreecommitdiffstats
path: root/OldMdePkg/Include/IndustryStandard/EfiGpt.h
blob: 1026aa079bb6a7014e59430a2360408afc69372d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/** @file
  EFI Guid Partition Table Format Definition.

Copyright (c) 2006, 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 _EFIGPT_H_
#define _EFIGPT_H_


#define PRIMARY_PART_HEADER_LBA 1

#define EFI_PTAB_HEADER_ID      "EFI PART"

#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;

//
// GPT Partition Entry Status
//
typedef struct {
  BOOLEAN OutOfRange;
  BOOLEAN Overlap;
} EFI_PARTITION_ENTRY_STATUS;

#pragma pack()

#endif