+++ /dev/null
-/** @file\r
- ElTorito Partitions Format Definition.\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
-\r
---*/\r
-\r
-#ifndef _ELTORITO_H_\r
-#define _ELTORITO_H_\r
-\r
-//\r
-// CDROM_VOLUME_DESCRIPTOR.Types\r
-//\r
-#define CDVOL_TYPE_STANDARD 0x0\r
-#define CDVOL_TYPE_CODED 0x1\r
-#define CDVOL_TYPE_END 0xFF\r
-\r
-//\r
-// CDROM_VOLUME_DESCRIPTOR.Id\r
-//\r
-#define CDVOL_ID "CD001"\r
-\r
-//\r
-// CDROM_VOLUME_DESCRIPTOR.SystemId\r
-//\r
-#define CDVOL_ELTORITO_ID "EL TORITO SPECIFICATION"\r
-\r
-//\r
-// Indicator types\r
-//\r
-#define ELTORITO_ID_CATALOG 0x01\r
-#define ELTORITO_ID_SECTION_BOOTABLE 0x88\r
-#define ELTORITO_ID_SECTION_NOT_BOOTABLE 0x00\r
-#define ELTORITO_ID_SECTION_HEADER 0x90\r
-#define ELTORITO_ID_SECTION_HEADER_FINAL 0x91\r
-\r
-//\r
-// ELTORITO_CATALOG.Boot.MediaTypes\r
-//\r
-#define ELTORITO_NO_EMULATION 0x00\r
-#define ELTORITO_12_DISKETTE 0x01\r
-#define ELTORITO_14_DISKETTE 0x02\r
-#define ELTORITO_28_DISKETTE 0x03\r
-#define ELTORITO_HARD_DISK 0x04\r
-\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 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
-} CDROM_VOLUME_DESCRIPTOR;\r
-\r
-//\r
-// Catalog Entry\r
-//\r
-typedef union {\r
- struct {\r
- CHAR8 Reserved[0x20];\r
- } Unknown;\r
-\r
- //\r
- // Catalog validation entry (Catalog header)\r
- //\r
- struct {\r
- UINT8 Indicator;\r
- UINT8 PlatformId;\r
- UINT16 Reserved;\r
- CHAR8 ManufacId[24];\r
- UINT16 Checksum;\r
- UINT16 Id55AA;\r
- } Catalog;\r
-\r
- //\r
- // Initial/Default Entry or Section Entry\r
- //\r
- struct {\r
- UINT8 Indicator;\r
- UINT8 MediaType : 4;\r
- UINT8 Reserved1 : 4;\r
- UINT16 LoadSegment;\r
- UINT8 SystemType;\r
- UINT8 Reserved2;\r
- UINT16 SectorCount;\r
- UINT32 Lba;\r
- } Boot;\r
-\r
- //\r
- // Section Header Entry\r
- //\r
- struct {\r
- UINT8 Indicator;\r
- UINT8 PlatformId;\r
- UINT16 SectionEntries;\r
- CHAR8 Id[28];\r
- } Section;\r
-\r
-} ELTORITO_CATALOG;\r
-\r
-#pragma pack()\r
-\r
-#endif\r