]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/ElTorito.h
MdePkg: Clean up source files
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / ElTorito.h
index 60b7a215231bb7b363275b63e2d3095c4fc39e5d..6d1ce2aafa23c88054c9a70cc7398443f0803a7a 100644 (file)
@@ -1,14 +1,18 @@
 /** @file\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
+     Standard ECMA-119. (IS0 9660)\r
 \r
-Copyright (c) 2006, 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
@@ -16,7 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define _ELTORITO_H_\r
 \r
 //\r
-// CDROM_VOLUME_DESCRIPTOR.Types\r
+// CDROM_VOLUME_DESCRIPTOR.Types, defined in ISO 9660\r
 //\r
 #define CDVOL_TYPE_STANDARD 0x0\r
 #define CDVOL_TYPE_CODED    0x1\r
@@ -54,22 +58,42 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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 struct {\r
-  UINT8   Type;\r
-  CHAR8   Id[5];  // CD001\r
-  UINT8   Version;\r
-  CHAR8   SystemId[26];\r
-  CHAR8   Unused[38];\r
-  UINT8   EltCatalog[4];\r
-  CHAR8   Unused2[5];\r
-  UINT32  VolSpaceSize[2];\r
+typedef union {\r
+  struct {\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
+    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
+    CHAR8   Id[5];           ///< "CD001"\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
+    UINT32  VolSpaceSize[2]; ///< the number of Logical Blocks\r
+  } PrimaryVolume;\r
+\r
 } CDROM_VOLUME_DESCRIPTOR;\r
 \r
 ///\r
@@ -84,7 +108,7 @@ typedef union {
   /// 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
@@ -96,12 +120,12 @@ typedef union {
   /// 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
@@ -110,9 +134,9 @@ typedef union {
   /// 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