Write embedding zone using Reed-Solomon.
* Makefile.util.def (grub-setup): Add grub-core/lib/reed_solomon.c. * grub-core/Makefile.am (rs_decoder.S): New target. (kern/i386/pc/startup.S): Depend on rs_decoder.S. * grub-core/kern/i386/pc/startup.S (reed_solomon_redundancy): New field. (multiboot): Move to RS part. (post_reed_solomon): New label. (grub_boot_drive): Move to non-RS part since it's modified in memory on boot. Include rs_decoder.S. * grub-core/lib/reed_solomon.c: New file. * include/grub/offsets.h (GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY): New definition. (GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE): Removed. (GRUB_KERNEL_I386_PC_RAW_SIZE): Updated. (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): New definition. * include/grub/partition.h (grub_partition_map): Change prototype of embed to allow returning additional sectors. * include/grub/reed_solomon.h: New file. * util/grub-setup.c (setup): Handle Reed-Solomon.
This commit is contained in:
commit
b65830fae1
11 changed files with 687 additions and 65 deletions
|
@ -48,6 +48,12 @@ CLEANFILES += grub_script.tab.c grub_script.tab.h
|
|||
grub_script.yy.h: script/yylex.l
|
||||
$(LEX) -o grub_script.yy.c --header-file=grub_script.yy.h $<
|
||||
grub_script.yy.c: grub_script.yy.h
|
||||
|
||||
rs_decoder.S: $(srcdir)/lib/reed_solomon.c
|
||||
$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I$(top_builddir) -S -DSTANDALONE -o $@ $< -g0 -mregparm=3
|
||||
|
||||
kern/i386/pc/startup.S: $(builddir)/rs_decoder.S
|
||||
|
||||
CLEANFILES += grub_script.yy.c grub_script.yy.h
|
||||
|
||||
include $(srcdir)/Makefile.core.am
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue