/** @file\r
- ElTorito Partitions Format Definition. \r
- This file includes some defintions from \r
+ ElTorito Partitions Format Definition.\r
+ This file includes some defintions from\r
1. "El Torito" Bootable CD-ROM Format Specification, Version 1.0.\r
- 2. Volume and File Structure of CDROM for Information Interchange, \r
+ 2. Volume and File Structure of CDROM for Information Interchange,\r
Standard ECMA-119. (IS0 9660)\r
\r
-Copyright (c) 2006 - 2008, 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 - 2018, Intel Corporation. All rights reserved.<BR>\r
+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
\r
**/\r
\r
#ifndef _ELTORITO_H_\r
#define _ELTORITO_H_\r
\r
-///\r
-/// CDROM_VOLUME_DESCRIPTOR.Types, defined in ISO 9660\r
-///\r
+//\r
+// CDROM_VOLUME_DESCRIPTOR.Types, defined in ISO 9660\r
+//\r
#define CDVOL_TYPE_STANDARD 0x0\r
#define CDVOL_TYPE_CODED 0x1\r
#define CDVOL_TYPE_END 0xFF\r
\r
#pragma pack(1)\r
\r
-/// \r
-/// El Torito Volume Descriptor\r
-/// Note that the CDROM_VOLUME_DESCRIPTOR does not match the ISO-9660\r
-/// descriptor. For some reason descriptor used by El Torito is\r
-/// different, but they start the same. The El Torito descriptor\r
-/// is left shifted 1 byte starting with the SystemId. (Note this\r
-/// causes the field to get unaligned)\r
-/// \r
-typedef union { \r
+///\r
+/// CD-ROM Volume Descriptor\r
+///\r
+typedef union {\r
struct {\r
- UINT8 Type; \r
- CHAR8 Id[5]; ///< "CD001" \r
+ UINT8 Type;\r
+ CHAR8 Id[5]; ///< "CD001"\r
CHAR8 Reserved[82];\r
} Unknown;\r
\r
+ ///\r
+ /// Boot Record Volume Descriptor, defined in "El Torito" Specification.\r
+ ///\r
struct {\r
UINT8 Type; ///< Must be 0\r
- CHAR8 Id[5]; ///< "CD001" \r
- UINT8 Version; ///< Must be 1 \r
- CHAR8 SystemId[32]; ///< "EL TORITO SPECIFICATION" \r
- CHAR8 Unused[32]; ///< Must be 0 \r
+ CHAR8 Id[5]; ///< "CD001"\r
+ UINT8 Version; ///< Must be 1\r
+ CHAR8 SystemId[32]; ///< "EL TORITO SPECIFICATION"\r
+ CHAR8 Unused[32]; ///< Must be 0\r
UINT8 EltCatalog[4]; ///< Absolute pointer to first sector of Boot Catalog\r
CHAR8 Unused2[13]; ///< Must be 0\r
} BootRecordVolume;\r
\r
+ ///\r
+ /// Primary Volumn Descriptor, defined in ISO 9660.\r
+ ///\r
struct {\r
- UINT8 Type; \r
+ UINT8 Type;\r
CHAR8 Id[5]; ///< "CD001"\r
- UINT8 Version; \r
+ UINT8 Version;\r
UINT8 Unused; ///< Must be 0\r
- CHAR8 SystemId[32]; \r
- CHAR8 VolumeId[32]; \r
- UINT8 Unused2[8]; ///< Must be 0 \r
+ CHAR8 SystemId[32];\r
+ CHAR8 VolumeId[32];\r
+ UINT8 Unused2[8]; ///< Must be 0\r
UINT32 VolSpaceSize[2]; ///< the number of Logical Blocks\r
} PrimaryVolume;\r
\r
-} CDROM_VOLUME_DESCRIPTOR; \r
+} CDROM_VOLUME_DESCRIPTOR;\r
\r
///\r
/// Catalog Entry\r
/// Catalog validation entry (Catalog header)\r
///\r
struct {\r
- UINT8 Indicator;\r
+ UINT8 Indicator; ///< Must be 01\r
UINT8 PlatformId;\r
UINT16 Reserved;\r
CHAR8 ManufacId[24];\r
/// Initial/Default Entry or Section Entry\r
///\r
struct {\r
- UINT8 Indicator;\r
+ UINT8 Indicator; ///< 88 = Bootable, 00 = Not Bootable\r
UINT8 MediaType : 4;\r
- UINT8 Reserved1 : 4;\r
+ UINT8 Reserved1 : 4; ///< Must be 0\r
UINT16 LoadSegment;\r
UINT8 SystemType;\r
- UINT8 Reserved2;\r
+ UINT8 Reserved2; ///< Must be 0\r
UINT16 SectorCount;\r
UINT32 Lba;\r
} Boot;\r
/// Section Header Entry\r
///\r
struct {\r
- UINT8 Indicator;\r
+ UINT8 Indicator; ///< 90 - Header, more header follw, 91 - Final Header\r
UINT8 PlatformId;\r
- UINT16 SectionEntries;\r
+ UINT16 SectionEntries; ///< Number of section entries following this header\r
CHAR8 Id[28];\r
} Section;\r
\r