]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/ElTorito.h
added EFI_SIGNATURE_XX in Base.h, and updated the industry header files to use them.
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / ElTorito.h
CommitLineData
a7ed1e2e 1/** @file\r
3052ec6b 2 ElTorito Partitions Format Definition. \r
3 This file includes some defintions from \r
4 1. "El Torito" Bootable CD-ROM Format Specification, Version 1.0.\r
5 2. Volume and File Structure of CDROM for Information Interchange, \r
6 Standard ECMA-119. (IS0 9660)\r
a7ed1e2e 7\r
3052ec6b 8Copyright (c) 2006 - 2008, Intel Corporation \r
a7ed1e2e 9All rights reserved. This program and the accompanying materials \r
10are licensed and made available under the terms and conditions of the BSD License \r
11which accompanies this distribution. The full text of the license may be found at \r
12http://opensource.org/licenses/bsd-license.php \r
13 \r
14THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
15WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
16\r
67e66cd5 17**/\r
a7ed1e2e 18\r
19#ifndef _ELTORITO_H_\r
20#define _ELTORITO_H_\r
21\r
3052ec6b 22///\r
23/// CDROM_VOLUME_DESCRIPTOR.Types, defined in ISO 9660\r
24///\r
a7ed1e2e 25#define CDVOL_TYPE_STANDARD 0x0\r
26#define CDVOL_TYPE_CODED 0x1\r
27#define CDVOL_TYPE_END 0xFF\r
28\r
1bc5d021 29///\r
30/// CDROM_VOLUME_DESCRIPTOR.Id\r
31///\r
a7ed1e2e 32#define CDVOL_ID "CD001"\r
33\r
1bc5d021 34///\r
35/// CDROM_VOLUME_DESCRIPTOR.SystemId\r
36///\r
a7ed1e2e 37#define CDVOL_ELTORITO_ID "EL TORITO SPECIFICATION"\r
38\r
39//\r
40// Indicator types\r
41//\r
42#define ELTORITO_ID_CATALOG 0x01\r
43#define ELTORITO_ID_SECTION_BOOTABLE 0x88\r
44#define ELTORITO_ID_SECTION_NOT_BOOTABLE 0x00\r
45#define ELTORITO_ID_SECTION_HEADER 0x90\r
46#define ELTORITO_ID_SECTION_HEADER_FINAL 0x91\r
47\r
48//\r
49// ELTORITO_CATALOG.Boot.MediaTypes\r
50//\r
51#define ELTORITO_NO_EMULATION 0x00\r
52#define ELTORITO_12_DISKETTE 0x01\r
53#define ELTORITO_14_DISKETTE 0x02\r
54#define ELTORITO_28_DISKETTE 0x03\r
55#define ELTORITO_HARD_DISK 0x04\r
56\r
57\r
58#pragma pack(1)\r
59\r
3052ec6b 60/// \r
13c31065 61/// CD-ROM Volume Descriptor\r
3052ec6b 62/// \r
63typedef union { \r
64 struct {\r
65 UINT8 Type; \r
66 CHAR8 Id[5]; ///< "CD001" \r
67 CHAR8 Reserved[82];\r
68 } Unknown;\r
69\r
70 struct {\r
71 UINT8 Type; ///< Must be 0\r
72 CHAR8 Id[5]; ///< "CD001" \r
73 UINT8 Version; ///< Must be 1 \r
74 CHAR8 SystemId[32]; ///< "EL TORITO SPECIFICATION" \r
75 CHAR8 Unused[32]; ///< Must be 0 \r
76 UINT8 EltCatalog[4]; ///< Absolute pointer to first sector of Boot Catalog\r
77 CHAR8 Unused2[13]; ///< Must be 0\r
78 } BootRecordVolume;\r
79\r
80 struct {\r
81 UINT8 Type; \r
82 CHAR8 Id[5]; ///< "CD001"\r
83 UINT8 Version; \r
84 UINT8 Unused; ///< Must be 0\r
85 CHAR8 SystemId[32]; \r
86 CHAR8 VolumeId[32]; \r
87 UINT8 Unused2[8]; ///< Must be 0 \r
88 UINT32 VolSpaceSize[2]; ///< the number of Logical Blocks\r
89 } PrimaryVolume;\r
90\r
91} CDROM_VOLUME_DESCRIPTOR; \r
a7ed1e2e 92\r
1bc5d021 93///\r
94/// Catalog Entry\r
95///\r
a7ed1e2e 96typedef union {\r
97 struct {\r
98 CHAR8 Reserved[0x20];\r
99 } Unknown;\r
100\r
1bc5d021 101 ///\r
102 /// Catalog validation entry (Catalog header)\r
103 ///\r
a7ed1e2e 104 struct {\r
105 UINT8 Indicator;\r
106 UINT8 PlatformId;\r
107 UINT16 Reserved;\r
108 CHAR8 ManufacId[24];\r
109 UINT16 Checksum;\r
110 UINT16 Id55AA;\r
111 } Catalog;\r
112\r
1bc5d021 113 ///\r
114 /// Initial/Default Entry or Section Entry\r
115 ///\r
a7ed1e2e 116 struct {\r
117 UINT8 Indicator;\r
118 UINT8 MediaType : 4;\r
119 UINT8 Reserved1 : 4;\r
120 UINT16 LoadSegment;\r
121 UINT8 SystemType;\r
122 UINT8 Reserved2;\r
123 UINT16 SectorCount;\r
124 UINT32 Lba;\r
125 } Boot;\r
126\r
1bc5d021 127 ///\r
128 /// Section Header Entry\r
129 ///\r
a7ed1e2e 130 struct {\r
131 UINT8 Indicator;\r
132 UINT8 PlatformId;\r
133 UINT16 SectionEntries;\r
134 CHAR8 Id[28];\r
135 } Section;\r
136\r
137} ELTORITO_CATALOG;\r
138\r
139#pragma pack()\r
140\r
141#endif\r