34
34
/* The offset of GRUB_INSTALL_BSD_PART. */
35
35
#define GRUB_KERNEL_I386_PC_INSTALL_BSD_PART 0x18
37
/* The offset of GRUB_PREFIX. */
38
#define GRUB_KERNEL_I386_PC_PREFIX 0x1c
40
/* End of the data section. */
41
#define GRUB_KERNEL_I386_PC_DATA_END 0x5c
37
/* Offset of reed_solomon_redundancy. */
38
#define GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY 0x1c
43
40
/* The size of the first region which won't be compressed. */
44
#define GRUB_KERNEL_I386_PC_RAW_SIZE (GRUB_KERNEL_I386_PC_DATA_END + 0x5F0)
41
#define GRUB_KERNEL_I386_PC_RAW_SIZE 0xc90
43
#define GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART 0x6f8
45
/* The offset of GRUB_PREFIX. */
46
#define GRUB_KERNEL_I386_PC_PREFIX GRUB_KERNEL_I386_PC_RAW_SIZE
48
/* End of the data section. */
49
#define GRUB_KERNEL_I386_PC_PREFIX_END (GRUB_KERNEL_I386_PC_PREFIX + 0x40)
46
51
/* The segment where the kernel is loaded. */
47
52
#define GRUB_BOOT_I386_PC_KERNEL_SEG 0x800
100
105
#define GRUB_KERNEL_MIPS_YEELOONG_LINK_ALIGN 32
102
#define GRUB_KERNEL_MIPS_YEELOONG_RAW_SIZE 0x200
103
#define GRUB_KERNEL_MIPS_YEELOONG_COMPRESSED_SIZE 0x8
104
#define GRUB_KERNEL_MIPS_YEELOONG_TOTAL_MODULE_SIZE 0xc
105
#define GRUB_KERNEL_MIPS_YEELOONG_KERNEL_IMAGE_SIZE 0x10
107
#define GRUB_KERNEL_MIPS_YEELOONG_COMPRESSED_SIZE 0x8
108
#define GRUB_KERNEL_MIPS_YEELOONG_UNCOMPRESSED_SIZE 0xc
107
#define GRUB_KERNEL_MIPS_YEELOONG_PREFIX GRUB_KERNEL_MIPS_YEELOONG_RAW_SIZE
108
#define GRUB_KERNEL_MIPS_YEELOONG_DATA_END GRUB_KERNEL_MIPS_YEELOONG_RAW_SIZE + 0x48
110
#define GRUB_KERNEL_MIPS_YEELOONG_TOTAL_MODULE_SIZE 0x08
111
#define GRUB_KERNEL_MIPS_YEELOONG_PREFIX 0x0c
112
#define GRUB_KERNEL_MIPS_YEELOONG_PREFIX_END 0x54
110
114
/* The offset of GRUB_PREFIX. */
111
115
#define GRUB_KERNEL_I386_EFI_PREFIX 0x8
113
117
/* End of the data section. */
114
#define GRUB_KERNEL_I386_EFI_DATA_END 0x50
118
#define GRUB_KERNEL_I386_EFI_PREFIX_END 0x50
116
120
/* The offset of GRUB_PREFIX. */
117
121
#define GRUB_KERNEL_X86_64_EFI_PREFIX 0x8
119
123
/* End of the data section. */
120
#define GRUB_KERNEL_X86_64_EFI_DATA_END 0x50
124
#define GRUB_KERNEL_X86_64_EFI_PREFIX_END 0x50
122
126
#define GRUB_KERNEL_I386_COREBOOT_PREFIX 0x2
123
#define GRUB_KERNEL_I386_COREBOOT_DATA_END 0x42
127
#define GRUB_KERNEL_I386_COREBOOT_PREFIX_END 0x42
124
128
#define GRUB_KERNEL_I386_COREBOOT_LINK_ADDR 0x8200
130
#define GRUB_KERNEL_I386_MULTIBOOT_PREFIX GRUB_KERNEL_I386_COREBOOT_PREFIX
131
#define GRUB_KERNEL_I386_MULTIBOOT_PREFIX_END GRUB_KERNEL_I386_COREBOOT_PREFIX_END
126
133
#define GRUB_KERNEL_I386_IEEE1275_PREFIX 0x2
127
#define GRUB_KERNEL_I386_IEEE1275_DATA_END 0x42
134
#define GRUB_KERNEL_I386_IEEE1275_PREFIX_END 0x42
128
135
#define GRUB_KERNEL_I386_IEEE1275_LINK_ADDR 0x10000
130
137
#define GRUB_KERNEL_I386_IEEE1275_MOD_ALIGN 0x1000
131
138
#define GRUB_KERNEL_I386_COREBOOT_MOD_ALIGN 0x1
139
#define GRUB_KERNEL_I386_MULTIBOOT_MOD_ALIGN GRUB_KERNEL_I386_COREBOOT_MOD_ALIGN
133
141
/* Non-zero value is only needed for PowerMacs. */
134
142
#define GRUB_KERNEL_I386_IEEE1275_MOD_GAP 0x0
143
151
rewrite grub-mkimage to generate valid ELF files. */
144
152
#define GRUB_KERNEL_POWERPC_IEEE1275_MOD_GAP 0x8000
147
155
#define GRUB_OFFSETS_CONCAT_(a,b,c) a ## b ## c
148
156
#define GRUB_OFFSETS_CONCAT(a,b,c) GRUB_OFFSETS_CONCAT_(a,b,c)
149
#define GRUB_KERNEL_MACHINE_MOD_ALIGN GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _MOD_ALIGN)
150
#define GRUB_KERNEL_MACHINE_MOD_GAP GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _MOD_GAP)
151
#define GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _TOTAL_MODULE_SIZE)
152
#define GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _KERNEL_IMAGE_SIZE)
153
#define GRUB_KERNEL_MACHINE_COMPRESSED_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _COMPRESSED_SIZE)
157
#define GRUB_KERNEL_MACHINE_MOD_ALIGN GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _MOD_ALIGN)
158
#define GRUB_KERNEL_MACHINE_MOD_GAP GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _MOD_GAP)
159
#define GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _TOTAL_MODULE_SIZE)
160
#define GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _KERNEL_IMAGE_SIZE)
161
#define GRUB_KERNEL_MACHINE_COMPRESSED_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _COMPRESSED_SIZE)
162
#define GRUB_KERNEL_MACHINE_UNCOMPRESSED_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _UNCOMPRESSED_SIZE)
155
#define GRUB_KERNEL_MACHINE_PREFIX GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _PREFIX)
156
#define GRUB_KERNEL_MACHINE_DATA_END GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _DATA_END)
157
#define GRUB_BOOT_MACHINE_KERNEL_SEG GRUB_OFFSETS_CONCAT (GRUB_BOOT_, MACHINE, _KERNEL_SEG)
158
#define GRUB_MEMORY_MACHINE_UPPER GRUB_OFFSETS_CONCAT (GRUB_MEMORY_, MACHINE, _UPPER)
159
#define GRUB_KERNEL_MACHINE_RAW_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _RAW_SIZE)
160
#define GRUB_KERNEL_MACHINE_INSTALL_BSD_PART GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _INSTALL_BSD_PART)
161
#define GRUB_KERNEL_MACHINE_INSTALL_DOS_PART GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, MACHINE, _INSTALL_DOS_PART)
164
#define GRUB_KERNEL_MACHINE_PREFIX GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _PREFIX)
165
#define GRUB_KERNEL_MACHINE_PREFIX_END GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _PREFIX_END)
166
#define GRUB_BOOT_MACHINE_KERNEL_SEG GRUB_OFFSETS_CONCAT (GRUB_BOOT_, GRUB_MACHINE, _KERNEL_SEG)
167
#define GRUB_MEMORY_MACHINE_UPPER GRUB_OFFSETS_CONCAT (GRUB_MEMORY_, GRUB_MACHINE, _UPPER)
168
#define GRUB_KERNEL_MACHINE_RAW_SIZE GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _RAW_SIZE)
169
#define GRUB_KERNEL_MACHINE_INSTALL_BSD_PART GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _INSTALL_BSD_PART)
170
#define GRUB_KERNEL_MACHINE_INSTALL_DOS_PART GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _INSTALL_DOS_PART)