Integrate hints into autogeneration scripts.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 24 Dec 2011 14:09:26 +0000 (15:09 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 24 Dec 2011 14:09:26 +0000 (15:09 +0100)
* docs/grub.texi (Filesystems): Add a hostdisk example.
* Makefile.util.def (grub-mkdevicemap): Remove ofpath.
(grub-probe): Add ofpath.
* gentpl.py: Remove group nosparc64.
* grub-core/commands/search.c (cache_entry): New struct.
(cache): New var.
(FUNC_NAME): Use and save cache. Fix handling of trailing comma.
* grub-core/commands/search_wrap.c (options): Add platform-specific
hint options.
(grub_cmd_search): Handle platform-specific hints.
(GRUB_MOD_INIT): Declare grub_cmd_search as accept_dash.
* grub-core/kern/emu/hostdisk.c (map): New field device_map.
(grub_util_biosdisk_data): Likewise.
(grub_util_biosdisk_open): Set device_map.
(read_device_map): Handle "" as indication of no map.
Set device_map.
(find_system_device): Add hostdisk/ prefix for autogenerated entries.
(grub_util_biosdisk_get_compatibility_hint): New function.
* grub-core/normal/main.c (features): Add feature_platform_search_hint.
* include/grub/emu/hostdisk.h
(grub_util_biosdisk_get_compatibility_hint): New proto.
* util/grub-install.in: Don't call grub-mkdevicemap.
Add platform-specific hint to load.cfg.
* util/grub-mkconfig.in: Don't call grub-mkdevicemap.
* util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Add
hints. Set root preliminary to compatibility hint, not to OS name.
* util/grub-probe.c (PRINT_*): Add hints.
(print): Make static.
(escape_of_path): New function.
(guess_bios_drive): Likewise.
(guess_efi_drive): Likewise.
(guess_baremetal_drive): Likewise.
(print_full_name): Likewise.
(probe): Handle hints.
(main): Likewise.
* util/ieee1275/devicemap.c: Removed.
* util/ieee1275/ofpath.c (find_obppath): Allow to fail. All users
updated.
(grub_util_devname_to_ofpath): Return NULL on failure.

* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev): Fix
resource leak.
* util/getroot.c (grub_util_pull_device): Fix memory leak.

* po/POTFILES.in: Regenerated.

Allow purely long options

* grub-core/lib/arg.c (SHORT_ARG_HELP): Removed.
(SHORT_ARG_USAGE): Likewise.
(grub_arg_show_help): Compare opt with help_options.
(parse_option): Receive opt as argument. If makes big simplificatons.
All users updated

1  2 
ChangeLog
docs/grub.texi
gentpl.py
grub-core/fs/cpio.c
po/POTFILES.in

diff --cc ChangeLog
+++ b/ChangeLog
@@@ -1,8 -1,3 +1,66 @@@
++2011-12-24  Vladimir Serbinenko  <phcoder@gmail.com>
++
++      Integrate hints into autogeneration scripts.
++
++      * docs/grub.texi (Filesystems): Add a hostdisk example.
++      * Makefile.util.def (grub-mkdevicemap): Remove ofpath.
++      (grub-probe): Add ofpath.
++      * gentpl.py: Remove group nosparc64.
++      * grub-core/commands/search.c (cache_entry): New struct.
++      (cache): New var.
++      (FUNC_NAME): Use and save cache. Fix handling of trailing comma.
++      * grub-core/commands/search_wrap.c (options): Add platform-specific
++      hint options.
++      (grub_cmd_search): Handle platform-specific hints.
++      (GRUB_MOD_INIT): Declare grub_cmd_search as accept_dash.
++      * grub-core/kern/emu/hostdisk.c (map): New field device_map.
++      (grub_util_biosdisk_data): Likewise.
++      (grub_util_biosdisk_open): Set device_map.
++      (read_device_map): Handle "" as indication of no map.
++      Set device_map.
++      (find_system_device): Add hostdisk/ prefix for autogenerated entries.
++      (grub_util_biosdisk_get_compatibility_hint): New function.
++      * grub-core/normal/main.c (features): Add feature_platform_search_hint.
++      * include/grub/emu/hostdisk.h
++      (grub_util_biosdisk_get_compatibility_hint): New proto.
++      * util/grub-install.in: Don't call grub-mkdevicemap.
++      Add platform-specific hint to load.cfg.
++      * util/grub-mkconfig.in: Don't call grub-mkdevicemap.
++      * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Add
++      hints. Set root preliminary to compatibility hint, not to OS name.
++      * util/grub-probe.c (PRINT_*): Add hints.
++      (print): Make static.
++      (escape_of_path): New function.
++      (guess_bios_drive): Likewise.
++      (guess_efi_drive): Likewise.
++      (guess_baremetal_drive): Likewise.
++      (print_full_name): Likewise.
++      (probe): Handle hints.
++      (main): Likewise.
++      * util/ieee1275/devicemap.c: Removed.
++      * util/ieee1275/ofpath.c (find_obppath): Allow to fail. All users
++      updated.
++      (grub_util_devname_to_ofpath): Return NULL on failure.
++
++      * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev): Fix
++      resource leak.
++      * util/getroot.c (grub_util_pull_device): Fix memory leak.
++
++      * po/POTFILES.in: Regenerated.
++
++      Allow purely long options
++
++      * grub-core/lib/arg.c (SHORT_ARG_HELP): Removed.
++      (SHORT_ARG_USAGE): Likewise.
++      (grub_arg_show_help): Compare opt with help_options.
++      (parse_option): Receive opt as argument. If makes big simplificatons.
++      All users updated
++
 +2011-12-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/lib/libgcrypt_wrap/cipher_wrap.h (WORDS_BIGENDIAN):
 +      Restructure to avoid warning.
 +
  2011-12-24  Vladimir Serbinenko  <phcoder@gmail.com>
  
        * util/grub-install.in: Account for possible escaped comma in device
diff --cc docs/grub.texi
@@@ -2249,8 -2249,8 +2249,9 @@@ RAID (md), ofdisk (ieee1275), LVM (lv) 
  of disk prefixed by driver name. Conflicts are solved by suffixing a number
  if necessarry. Commas need to be escaped.
  Loopback uses whatever name specified to @command{loopback} command.
++Hostdisk uses names specified in device.map or hostdisk/<OS NAME>.
  For crypto and RAID (md) additionally you can use the syntax
--<driver name>uuid/<uuid>
++<driver name>uuid/<uuid>.
  
  @example
  (fd0)
  (lv/system-root)
  (md/myraid)
  (md/0)
--(ieee1275/disk)
++(ieee1275/disk2)
  (memdisk)
  (host)
  (myloop)
++(hostdisk//dev/sda)
  @end example
  
  @var{part-num} represents the partition number of @var{device}, starting
diff --cc gentpl.py
+++ b/gentpl.py
@@@ -47,7 -47,7 +47,6 @@@ GROUPS["terminfomodule"]   = GRUB_PLATF
  for i in GROUPS["terminfoinkernel"]: GROUPS["terminfomodule"].remove(i)
  
  # Miscelaneous groups schedulded to disappear in future
--GROUPS["nosparc64"] = GRUB_PLATFORMS[:]; GROUPS["nosparc64"].remove("sparc64_ieee1275")
  GROUPS["i386_coreboot_multiboot_qemu"] = ["i386_coreboot", "i386_multiboot", "i386_qemu"]
  GROUPS["nopc"] = GRUB_PLATFORMS[:]; GROUPS["nopc"].remove("i386_pc")
  
@@@ -723,6 -723,6 +723,8 @@@ GRUB_MOD_INIT (tar
  GRUB_MOD_INIT (odc)
  #elif defined (MODE_NEWC)
  GRUB_MOD_INIT (newc)
++#elif defined (MODE_BIGENDIAN)
++GRUB_MOD_INIT (cpio_be)
  #else
  GRUB_MOD_INIT (cpio)
  #endif
@@@ -737,6 -737,6 +739,8 @@@ GRUB_MOD_FINI (tar
  GRUB_MOD_FINI (odc)
  #elif defined (MODE_NEWC)
  GRUB_MOD_FINI (newc)
++#elif defined (MODE_BIGENDIAN)
++GRUB_MOD_FINI (cpio_be)
  #else
  GRUB_MOD_FINI (cpio)
  #endif
diff --cc po/POTFILES.in
@@@ -19,6 -19,6 +19,7 @@@
  ./grub-core/commands/arc/lsdev.c
  ./grub-core/commands/blocklist.c
  ./grub-core/commands/boot.c
++./grub-core/commands/cacheinfo.c
  ./grub-core/commands/cat.c
  ./grub-core/commands/cmp.c
  ./grub-core/commands/configfile.c
  ./grub-core/font/font.c
  ./grub-core/font/font_cmd.c
  ./grub-core/fs/affs.c
++./grub-core/fs/afs.c
++./grub-core/fs/bfs.c
  ./grub-core/fs/btrfs.c
++./grub-core/fs/cpio_be.c
  ./grub-core/fs/cpio.c
++./grub-core/fs/exfat.c
  ./grub-core/fs/ext2.c
  ./grub-core/fs/fat.c
  ./grub-core/fs/fshelp.c
  ./grub-core/fs/minix2.c
  ./grub-core/fs/minix3.c
  ./grub-core/fs/minix.c
++./grub-core/fs/newc.c
  ./grub-core/fs/nilfs2.c
  ./grub-core/fs/ntfs.c
  ./grub-core/fs/ntfscomp.c
++./grub-core/fs/odc.c
  ./grub-core/fs/reiserfs.c
  ./grub-core/fs/romfs.c
  ./grub-core/fs/sfs.c
  ./grub-core/fs/ufs.c
  ./grub-core/fs/xfs.c
  ./grub-core/fs/zfs/zfs.c
++./grub-core/fs/zfs/zfscrypt.c
  ./grub-core/fs/zfs/zfs_fletcher.c
  ./grub-core/fs/zfs/zfsinfo.c
  ./grub-core/fs/zfs/zfs_lzjb.c
  ./grub-core/hook/datehook.c
  ./grub-core/io/bufio.c
  ./grub-core/io/gzio.c
++./grub-core/io/lzopio.c
  ./grub-core/io/xzio.c
  ./grub-core/kern/command.c
  ./grub-core/kern/corecmd.c
  ./grub-core/kern/time.c
  ./grub-core/kern/vga_init.c
  ./grub-core/kern/x86_64/dl.c
++./grub-core/lib/adler32.c
  ./grub-core/lib/arc/datetime.c
  ./grub-core/lib/arg.c
  ./grub-core/lib/cmdline.c
  ./grub-core/lib/cmos_datetime.c
++./grub-core/lib/crc64.c
  ./grub-core/lib/crc.c
  ./grub-core/lib/crypto.c
  ./grub-core/lib/efi/datetime.c
  ./grub-core/lib/efi/halt.c
++./grub-core/lib/efi/reboot.c
  ./grub-core/lib/efi/relocator.c
  ./grub-core/lib/emu/halt.c
  ./grub-core/lib/envblk.c
  ./grub-core/lib/i386/halt.c
  ./grub-core/lib/i386/pc/biosnum.c
  ./grub-core/lib/i386/pc/vesa_modes_table.c
++./grub-core/lib/i386/reboot.c
  ./grub-core/lib/i386/relocator.c
  ./grub-core/lib/ieee1275/cmos.c
  ./grub-core/lib/ieee1275/datetime.c
  ./grub-core/lib/ieee1275/halt.c
++./grub-core/lib/ieee1275/reboot.c
  ./grub-core/lib/ieee1275/relocator.c
  ./grub-core/lib/legacy_parse.c
  ./grub-core/lib/libgcrypt/cipher/ac.c
  ./grub-core/lib/LzFind.c
  ./grub-core/lib/LzmaDec.c
  ./grub-core/lib/LzmaEnc.c
++./grub-core/lib/minilzo/minilzo.c
++./grub-core/lib/mips/arc/reboot.c
++./grub-core/lib/mips/loongson/reboot.c
++./grub-core/lib/mips/qemu_mips/reboot.c
  ./grub-core/lib/mips/relocator.c
  ./grub-core/lib/pbkdf2.c
  ./grub-core/lib/powerpc/relocator.c
++./grub-core/lib/priority_queue.c
  ./grub-core/lib/reed_solomon.c
  ./grub-core/lib/relocator.c
  ./grub-core/lib/xzembed/xz_dec_bcj.c
  ./grub-core/loader/i386/pc/freedos.c
  ./grub-core/loader/i386/pc/linux.c
  ./grub-core/loader/i386/pc/ntldr.c
++./grub-core/loader/i386/pc/plan9.c
  ./grub-core/loader/i386/xnu.c
  ./grub-core/loader/ia64/efi/linux.c
  ./grub-core/loader/macho32.c
  ./grub-core/mmap/mmap.c
  ./grub-core/net/arp.c
  ./grub-core/net/bootp.c
++./grub-core/net/dns.c
  ./grub-core/net/drivers/efi/efinet.c
  ./grub-core/net/drivers/emu/emunet.c
  ./grub-core/net/drivers/i386/pc/pxe.c
  ./grub-core/net/drivers/ieee1275/ofnet.c
  ./grub-core/net/ethernet.c
++./grub-core/net/http.c
++./grub-core/net/icmp6.c
++./grub-core/net/icmp.c
  ./grub-core/net/ip.c
  ./grub-core/net/netbuff.c
  ./grub-core/net/net.c
++./grub-core/net/tcp.c
  ./grub-core/net/tftp.c
  ./grub-core/net/udp.c
  ./grub-core/normal/auth.c
  ./grub-core/partmap/dvh.c
  ./grub-core/partmap/gpt.c
  ./grub-core/partmap/msdos.c
++./grub-core/partmap/plan.c
  ./grub-core/partmap/sun.c
  ./grub-core/partmap/sunpc.c
  ./grub-core/parttool/msdospart.c
  ./grub-core/video/i386/pc/vbe.c
  ./grub-core/video/i386/pc/vga.c
  ./grub-core/video/ieee1275.c
++./grub-core/video/radeon_fuloong2e.c
  ./grub-core/video/readers/jpeg.c
  ./grub-core/video/readers/png.c
  ./grub-core/video/readers/tga.c
  ./grub-core/video/video.c
  ./tests/example_unit_test.c
  ./tests/lib/unit_test.c
++./tests/printf_unit_test.c
  ./util/bin2h.c
  ./util/deviceiter.c
  ./util/devicemap.c
  ./util/grub-mklayout.c
  ./util/grub-mkpasswd-pbkdf2.c
  ./util/grub-mkrelpath.c
++./util/grub-mount.c
  ./util/grub-pe2elf.c
  ./util/grub-probe.c
  ./util/grub-script-check.c
  ./util/grub-setup.c
--./util/ieee1275/devicemap.c
  ./util/ieee1275/grub-ofpathname.c
  ./util/ieee1275/ofpath.c
  ./util/lvm.c