]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Uefi/UefiGpt.h
MdePkg/ProcessorBind: add defines for page allocation granularity
[mirror_edk2.git] / MdePkg / Include / Uefi / UefiGpt.h
index f97030cf2283775e39fa58641dea9bd0e5526e0f..f2d0fa0b09f69c85fd5f81edc0b2f6bc70600379 100644 (file)
 /** @file\r
   EFI Guid Partition Table Format Definition.\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution.  \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php.                                          \r
+    \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
 #ifndef __UEFI_GPT_H__\r
 #define __UEFI_GPT_H__\r
 \r
+///\r
+/// The primary GUID Partition Table Header must be\r
+/// located in LBA 1 (i.e., the second logical block).\r
+///\r
 #define PRIMARY_PART_HEADER_LBA 1\r
-\r
 ///\r
-/// EFI Partition Table Signature: "EFI PART"\r
+/// EFI Partition Table Signature: "EFI PART".\r
 /// \r
-#define EFI_PTAB_HEADER_ID      0x5452415020494645ULL\r
+#define EFI_PTAB_HEADER_ID      SIGNATURE_64 ('E','F','I',' ','P','A','R','T')\r
 \r
 #pragma pack(1)\r
 \r
 ///\r
-/// GPT Partition Table Header\r
+/// GPT Partition Table Header.\r
 ///\r
 typedef struct {\r
+  ///\r
+  /// The table header for the GPT partition Table.\r
+  /// This header contains EFI_PTAB_HEADER_ID.\r
+  ///\r
   EFI_TABLE_HEADER  Header;\r
+  ///\r
+  /// The LBA that contains this data structure.\r
+  ///\r
   EFI_LBA           MyLBA;\r
+  ///\r
+  /// LBA address of the alternate GUID Partition Table Header.\r
+  ///\r
   EFI_LBA           AlternateLBA;\r
+  ///\r
+  /// The first usable logical block that may be used\r
+  /// by a partition described by a GUID Partition Entry.\r
+  ///\r
   EFI_LBA           FirstUsableLBA;\r
+  ///\r
+  /// The last usable logical block that may be used\r
+  /// by a partition described by a GUID Partition Entry.\r
+  ///\r
   EFI_LBA           LastUsableLBA;\r
+  ///\r
+  /// GUID that can be used to uniquely identify the disk.\r
+  ///\r
   EFI_GUID          DiskGUID;\r
+  ///\r
+  /// The starting LBA of the GUID Partition Entry array.\r
+  ///\r
   EFI_LBA           PartitionEntryLBA;\r
+  ///\r
+  /// The number of Partition Entries in the GUID Partition Entry array.\r
+  ///\r
   UINT32            NumberOfPartitionEntries;\r
+  ///\r
+  /// The size, in bytes, of each the GUID Partition\r
+  /// Entry structures in the GUID Partition Entry\r
+  /// array. This field shall be set to a value of 128 x 2^n where n is\r
+  /// an integer greater than or equal to zero (e.g., 128, 256, 512, etc.).\r
+  ///\r
   UINT32            SizeOfPartitionEntry;\r
+  ///\r
+  /// The CRC32 of the GUID Partition Entry array.\r
+  /// Starts at PartitionEntryLBA and is\r
+  /// computed over a byte length of\r
+  /// NumberOfPartitionEntries * SizeOfPartitionEntry.\r
+  ///\r
   UINT32            PartitionEntryArrayCRC32;\r
 } EFI_PARTITION_TABLE_HEADER;\r
 \r
 ///\r
-/// GPT Partition Entry\r
+/// GPT Partition Entry.\r
 ///\r
 typedef struct {\r
+  ///\r
+  /// Unique ID that defines the purpose and type of this Partition. A value of\r
+  /// zero defines that this partition entry is not being used.\r
+  ///\r
   EFI_GUID  PartitionTypeGUID;\r
+  ///\r
+  /// GUID that is unique for every partition entry. Every partition ever\r
+  /// created will have a unique GUID.\r
+  /// This GUID must be assigned when the GUID Partition Entry is created.\r
+  ///\r
   EFI_GUID  UniquePartitionGUID;\r
+  ///\r
+  /// Starting LBA of the partition defined by this entry\r
+  ///\r
   EFI_LBA   StartingLBA;\r
+  ///\r
+  /// Ending LBA of the partition defined by this entry.\r
+  ///\r
   EFI_LBA   EndingLBA;\r
+  ///\r
+  /// Attribute bits, all bits reserved by UEFI\r
+  /// Bit 0:      If this bit is set, the partition is required for the platform to function. The owner/creator of the\r
+  ///             partition indicates that deletion or modification of the contents can result in loss of platform\r
+  ///             features or failure for the platform to boot or operate. The system cannot function normally if\r
+  ///             this partition is removed, and it should be considered part of the hardware of the system.\r
+  ///             Actions such as running diagnostics, system recovery, or even OS install or boot, could\r
+  ///             potentially stop working if this partition is removed. Unless OS software or firmware\r
+  ///             recognizes this partition, it should never be removed or modified as the UEFI firmware or\r
+  ///             platform hardware may become non-functional.\r
+  /// Bit 1:      If this bit is set, then firmware must not produce an EFI_BLOCK_IO_PROTOCOL device for\r
+  ///             this partition. By not producing an EFI_BLOCK_IO_PROTOCOL partition, file system\r
+  ///             mappings will not be created for this partition in UEFI.\r
+  /// Bit 2:      This bit is set aside to let systems with traditional PC-AT BIOS firmware implementations\r
+  ///             inform certain limited, special-purpose software running on these systems that a GPT \r
+  ///             partition may be bootable. The UEFI boot manager must ignore this bit when selecting\r
+  ///             a UEFI-compliant application, e.g., an OS loader.\r
+  /// Bits 3-47:  Undefined and must be zero. Reserved for expansion by future versions of the UEFI\r
+  ///             specification.\r
+  /// Bits 48-63: Reserved for GUID specific use. The use of these bits will vary depending on the\r
+  ///             PartitionTypeGUID. Only the owner of the PartitionTypeGUID is allowed\r
+  ///             to modify these bits. They must be preserved if Bits 0-47 are modified..\r
+  ///\r
   UINT64    Attributes;\r
+  ///\r
+  /// Null-terminated name of the partition.\r
+  ///\r
   CHAR16    PartitionName[36];\r
 } EFI_PARTITION_ENTRY;\r
 \r
-///\r
-/// GPT Partition Entry Status\r
-///\r
-typedef struct {\r
-  BOOLEAN OutOfRange;\r
-  BOOLEAN Overlap;\r
-} EFI_PARTITION_ENTRY_STATUS;\r
-\r
 #pragma pack()\r
 #endif\r
 \r