#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
#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
+/// CD-ROM Volume Descriptor\r
/// \r
typedef union { \r
struct {\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 EltCatalog[4]; ///< Absolute pointer to first sector of Boot Catalog\r
CHAR8 Unused2[13]; ///< Must be 0\r
} BootRecordVolume;\r
-\r
+ \r
+ ///\r
+ /// Primary Volumn Descriptor, defined in ISO 9660.\r
+ ///\r
struct {\r
UINT8 Type; \r
CHAR8 Id[5]; ///< "CD001"\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