]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Nested partitions
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 26 Mar 2010 14:55:50 +0000 (15:55 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 26 Mar 2010 14:55:50 +0000 (15:55 +0100)
* commands/blocklist.c (grub_cmd_blocklist): Don't check whether
'partition' is NULL, grub_partition_get_start already does that.
* commands/loadenv.c (check_blocklists): Likewise.
(write_blocklists): Likewise.
* conf/common.rmk (grub_probe_SOURCES): Add partmap/bsdlabel.c.
(grub_fstest_SOURCES): Likewise.
(pkglib_MODULES): Add part_bsd.mod.
(part_bsd_mod_SOURCES): New variable.
(part_bsd_mod_CFLAGS): Likewise.
(part_bsd_mod_LDFLAGS): Likewise.
* conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/bsdlabel.c.
(grub_emu_SOURCES): Likewise.
* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
* include/grub/bsdlabel.h: New file.
* include/grub/partition.h (grub_partition_map): Remove 'probe' and
'get_name'.
(grub_partition): Add 'parent' and 'number'. Remove 'data'.
(grub_partition_map_list): New variable.
(grub_partition_map_register): Inline.
(grub_partition_map_unregister): Likewise.
(FOR_PARTITION_MAPS): New macro.
(grub_partition_map_iterate): Removed.
(grub_partition_get_start): Handle nested partitions.
* include/grub/msdos_partition.h: Remove bsd-related entries.
(grub_pc_partition): Remove.
* kern/disk.c (grub_disk_close): Free partition data.
(grub_disk_adjust_range): Handle nested partitions.
* kern/partition.c (grub_partition_map_probe): New function.
(grub_partition_probe): Parse name to number, handle subpartitions.
(get_partmap): New function.
(grub_partition_iterate): Handle subpartitions.
(grub_partition_get_name): Likewise.
* loader/i386/pc/bsd.c (grub_bsd_get_device): Likewise.
* loader/i386/multiboot.c (grub_multiboot_get_bootdev): Likewise.
* loader/i386/pc/chainloader.c (grub_chainloader_cmd): Likewise.
* partmap/acorn.c (acorn_partition_map_iterate): Don't force raw access.
Set 'number'.
(acorn_partition_map_probe): Remove.
(acorn_partition_map_get_name): Likewise.
* partmap/amiga.c (amiga_partition_map_iterate): Don't force raw access.
Set 'number'.
Set 'index' to 0 since there can be only one partition entry per sector.
(amiga_partition_map_probe): Remove.
(amiga_partition_map_get_name): Likewise.
* partmap/apple.c (apple_partition_map_iterate): Don't force raw access.
Set 'number'.
Set 'offset' and 'index' to real positions of partitions.
(apple_partition_map_probe): Remove.
(apple_partition_map_get_name): Likewise.
* partmap/bsdlabel.c: New file.
* partmap/gpt.c (gpt_partition_map_iterate): Don't force raw access.
Set 'number'.
Allocate 'data' so it can be correctly freed.
Set 'index' to offset inside sector.
(gpt_partition_map_probe): Remove.
(gpt_partition_map_get_name): Likewise.
* partmap/msdos.c (grub_partition_parse): Remove.
(pc_partition_map_iterate): Don't force raw access.
Set 'number'.
Make 'ext_offset' a local variable.
(pc_partition_map_probe): Remove.
(pc_partition_map_get_name): Remove.
* partmap/sun.c (sun_partition_map_iterate): Don't force raw access.
Set 'number'.
(sun_partition_map_probe): Remove.
(sun_partition_map_get_name): Likewise.
* parttool/msdospart.c (grub_pcpart_boot): Handle nested partitions.
(grub_pcpart_type): Likewise.
* util/hostdisk.c (open_device): Handle new numbering scheme.
(grub_util_biosdisk_get_grub_dev): Handle nested partitions.
* util/i386/pc/grub-setup.c (setup): Handle new numbering scheme.
* util/grub-probe.c (probe_partmap): Handle nested paritions.
* util/grub-install.in: Insert all subpartition modules.
* util/ieee1275/grub-install.in: Likewise.

1  2 
ChangeLog

diff --cc ChangeLog
index e3e39b84a9dc1423cc7856b062d33a26b149b97e,e3e39b84a9dc1423cc7856b062d33a26b149b97e..8cf9fdd585ec466c05e31c2af3aa15326afac10c
+++ b/ChangeLog
@@@ -1,3 -1,3 +1,82 @@@
++2010-03-26  Vladimir Serbinenko  <phcoder@gmail.com>
++
++      Nested partitions
++
++      * commands/blocklist.c (grub_cmd_blocklist): Don't check whether
++      'partition' is NULL, grub_partition_get_start already does that.
++      * commands/loadenv.c (check_blocklists): Likewise.
++      (write_blocklists): Likewise.
++      * conf/common.rmk (grub_probe_SOURCES): Add partmap/bsdlabel.c.
++      (grub_fstest_SOURCES): Likewise.
++      (pkglib_MODULES): Add part_bsd.mod.
++      (part_bsd_mod_SOURCES): New variable.
++      (part_bsd_mod_CFLAGS): Likewise.
++      (part_bsd_mod_LDFLAGS): Likewise.
++      * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/bsdlabel.c.
++      (grub_emu_SOURCES): Likewise.
++      * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
++      * include/grub/bsdlabel.h: New file.
++      * include/grub/partition.h (grub_partition_map): Remove 'probe' and
++      'get_name'.
++      (grub_partition): Add 'parent' and 'number'. Remove 'data'.
++      (grub_partition_map_list): New variable.
++      (grub_partition_map_register): Inline.
++      (grub_partition_map_unregister): Likewise.
++      (FOR_PARTITION_MAPS): New macro.
++      (grub_partition_map_iterate): Removed.
++      (grub_partition_get_start): Handle nested partitions.
++      * include/grub/msdos_partition.h: Remove bsd-related entries.
++      (grub_pc_partition): Remove.
++      * kern/disk.c (grub_disk_close): Free partition data.
++      (grub_disk_adjust_range): Handle nested partitions.
++      * kern/partition.c (grub_partition_map_probe): New function.
++      (grub_partition_probe): Parse name to number, handle subpartitions.
++      (get_partmap): New function.
++      (grub_partition_iterate): Handle subpartitions.
++      (grub_partition_get_name): Likewise.
++      * loader/i386/pc/bsd.c (grub_bsd_get_device): Likewise.
++      * loader/i386/multiboot.c (grub_multiboot_get_bootdev): Likewise.
++      * loader/i386/pc/chainloader.c (grub_chainloader_cmd): Likewise.
++      * partmap/acorn.c (acorn_partition_map_iterate): Don't force raw access.
++      Set 'number'.
++      (acorn_partition_map_probe): Remove.
++      (acorn_partition_map_get_name): Likewise.
++      * partmap/amiga.c (amiga_partition_map_iterate): Don't force raw access.
++      Set 'number'.
++      Set 'index' to 0 since there can be only one partition entry per sector.
++      (amiga_partition_map_probe): Remove.
++      (amiga_partition_map_get_name): Likewise.
++      * partmap/apple.c (apple_partition_map_iterate): Don't force raw access.
++      Set 'number'.
++      Set 'offset' and 'index' to real positions of partitions.
++      (apple_partition_map_probe): Remove.
++      (apple_partition_map_get_name): Likewise.
++      * partmap/bsdlabel.c: New file.
++      * partmap/gpt.c (gpt_partition_map_iterate): Don't force raw access.
++      Set 'number'.
++      Allocate 'data' so it can be correctly freed.
++      Set 'index' to offset inside sector.
++      (gpt_partition_map_probe): Remove.
++      (gpt_partition_map_get_name): Likewise.
++      * partmap/msdos.c (grub_partition_parse): Remove.
++      (pc_partition_map_iterate): Don't force raw access.
++      Set 'number'.
++      Make 'ext_offset' a local variable.
++      (pc_partition_map_probe): Remove.
++      (pc_partition_map_get_name): Remove.
++      * partmap/sun.c (sun_partition_map_iterate): Don't force raw access.
++      Set 'number'.
++      (sun_partition_map_probe): Remove.
++      (sun_partition_map_get_name): Likewise.
++      * parttool/msdospart.c (grub_pcpart_boot): Handle nested partitions.
++      (grub_pcpart_type): Likewise.
++      * util/hostdisk.c (open_device): Handle new numbering scheme.
++      (grub_util_biosdisk_get_grub_dev): Handle nested partitions.
++      * util/i386/pc/grub-setup.c (setup): Handle new numbering scheme.
++      * util/grub-probe.c (probe_partmap): Handle nested paritions.
++      * util/grub-install.in: Insert all subpartition modules.
++      * util/ieee1275/grub-install.in: Likewise.
++
  2010-03-24  Adrian Glaubitz  <glaubitz@physik.fu-berlin.de>
  
        * kern/dl.c (grub_dl_resolve_symbols): Improve error message