iPXE
eltorito.h
Go to the documentation of this file.
1 #ifndef _IPXE_ELTORITO_H
2 #define _IPXE_ELTORITO_H
3 
4 /**
5  * @file
6  *
7  * El Torito bootable CD-ROM specification
8  *
9  */
10 
11 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
12 
13 #include <stdint.h>
14 #include <ipxe/iso9660.h>
15 
16 /** An El Torito Boot Record Volume Descriptor (fixed portion) */
18  /** Descriptor type */
20  /** Identifier ("CD001") */
21  uint8_t id[5];
22  /** Version, must be 1 */
24  /** Boot system indicator; must be "EL TORITO SPECIFICATION" */
26 } __attribute__ (( packed ));
27 
28 /** An El Torito Boot Record Volume Descriptor */
30  /** Fixed portion */
32  /** Unused */
34  /** Boot catalog sector */
36 } __attribute__ (( packed ));
37 
38 /** El Torito Boot Record Volume Descriptor block address */
39 #define ELTORITO_LBA 17
40 
41 /** An El Torito Boot Catalog Validation Entry */
43  /** Header ID; must be 1 */
45  /** Platform ID
46  *
47  * 0 = 80x86
48  * 1 = PowerPC
49  * 2 = Mac
50  */
52  /** Reserved */
54  /** ID string */
56  /** Checksum word */
58  /** Signature; must be 0xaa55 */
60 } __attribute__ (( packed ));
61 
62 /** El Torito platform IDs */
67 };
68 
69 /** A bootable entry in the El Torito Boot Catalog */
71  /** Boot indicator
72  *
73  * Must be @c ELTORITO_BOOTABLE for a bootable ISO image
74  */
76  /** Media type
77  *
78  */
80  /** Load segment */
82  /** System type */
84  /** Unused */
86  /** Sector count */
88  /** Starting sector */
90  /** Unused */
92 } __attribute__ (( packed ));
93 
94 /** Boot indicator for a bootable ISO image */
95 #define ELTORITO_BOOTABLE 0x88
96 
97 /** El Torito media types */
99  /** No emulation */
101 };
102 
103 #endif /* _IPXE_ELTORITO_H */
uint8_t type
Descriptor type.
Definition: eltorito.h:19
unsigned short uint16_t
Definition: stdint.h:11
eltorito_media_type
El Torito media types.
Definition: eltorito.h:98
uint8_t platform_id
Platform ID.
Definition: eltorito.h:51
uint8_t system_id[32]
Boot system indicator; must be "EL TORITO SPECIFICATION".
Definition: eltorito.h:25
uint8_t reserved_b[20]
Unused.
Definition: eltorito.h:91
A bootable entry in the El Torito Boot Catalog.
Definition: eltorito.h:70
uint16_t length
Sector count.
Definition: eltorito.h:87
uint8_t id_string[24]
ID string.
Definition: eltorito.h:55
uint8_t header_id
Header ID; must be 1.
Definition: eltorito.h:44
An El Torito Boot Catalog Validation Entry.
Definition: eltorito.h:42
uint8_t unused[32]
Unused.
Definition: eltorito.h:33
eltorito_platform_id
El Torito platform IDs.
Definition: eltorito.h:63
uint8_t filesystem
System type.
Definition: eltorito.h:83
An El Torito Boot Record Volume Descriptor.
Definition: eltorito.h:29
enum eltorito_platform_id __attribute__
uint16_t signature
Signature; must be 0xaa55.
Definition: eltorito.h:59
An El Torito Boot Record Volume Descriptor (fixed portion)
Definition: eltorito.h:17
ISO9660 CD-ROM specification.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
struct eltorito_descriptor_fixed fixed
Fixed portion.
Definition: eltorito.h:31
uint32_t sector
Boot catalog sector.
Definition: eltorito.h:35
uint32_t start
Starting sector.
Definition: eltorito.h:89
unsigned char uint8_t
Definition: stdint.h:10
unsigned int uint32_t
Definition: stdint.h:12
uint16_t reserved
Reserved.
Definition: eltorito.h:53
uint8_t media_type
Media type.
Definition: eltorito.h:79
uint16_t load_segment
Load segment.
Definition: eltorito.h:81
uint8_t indicator
Boot indicator.
Definition: eltorito.h:75
uint8_t reserved_a
Unused.
Definition: eltorito.h:85
uint16_t checksum
Checksum word.
Definition: eltorito.h:57
No emulation.
Definition: eltorito.h:100
uint8_t version
Version, must be 1.
Definition: eltorito.h:23