for (Index = 0; Index < PrimaryHeader->NumberOfPartitionEntries; Index++) {\r
if (CompareGuid (&PartEntry[Index].PartitionTypeGUID, &gEfiPartTypeUnusedGuid) ||\r
PEntryStatus[Index].OutOfRange ||\r
- PEntryStatus[Index].Overlap\r
+ PEntryStatus[Index].Overlap ||\r
+ PEntryStatus[Index].OsSpecific\r
) {\r
//\r
- // Don't use null EFI Partition Entries or Invalid Partition Entries\r
+ // Don't use null EFI Partition Entries, Invalid Partition Entries or OS specific\r
+ // partition Entries\r
//\r
continue;\r
}\r
EFI_LBA EndingLBA;\r
UINTN Index1;\r
UINTN Index2;\r
+ UINT64 Attributes;\r
\r
DEBUG ((EFI_D_INFO, " start check partition entries\n"));\r
for (Index1 = 0; Index1 < PartHeader->NumberOfPartitionEntries; Index1++) {\r
\r
}\r
}\r
+\r
+ Attributes = PartEntry[Index1].Attributes;\r
+ if ((Attributes & BIT1) != 0) {\r
+ //\r
+ // If Bit 1 is set, this indicate that this is an OS specific GUID partition. \r
+ //\r
+ PEntryStatus[Index1].OsSpecific = TRUE;\r
+ }\r
}\r
\r
DEBUG ((EFI_D_INFO, " End check partition entries\n"));\r
of the raw block devices media. Currently "El Torito CD-ROM", Legacy \r
MBR, and GPT partition schemes are supported.\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
+Copyright (c) 2006 - 2009, Intel Corporation. <BR>\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
typedef struct {\r
BOOLEAN OutOfRange;\r
BOOLEAN Overlap;\r
+ BOOLEAN OsSpecific;\r
} EFI_PARTITION_ENTRY_STATUS;\r
\r
//\r