Move grub_chainloader_real_boot out of the kernel.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 12 Nov 2011 14:46:50 +0000 (15:46 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 12 Nov 2011 14:46:50 +0000 (15:46 +0100)
* grub-core/Makefile.am: Remove machine/loader.h.
* grub-core/kern/i386/pc/startup.S (grub_chainloader_real_boot):
Removed.
* grub-core/lib/i386/relocator.c (grub_relocator16_esi): New extern
variable.
(grub_relocator16_keep_a20_enabled): Likewise.
(grub_relocator16_boot): Fill new variables.
* grub-core/lib/i386/relocator16.S: Add gate a20 handling.
* grub-core/loader/i386/pc/chainloader.c (grub_chainloader_boot): Use
relocator.
(grub_chainloader_unload): Likewise.
(grub_chainloader_cmd): Likewise.
* include/grub/i386/pc/loader.h: Removed.
* include/grub/i386/relocator.h (grub_relocator16_state): Add a20
and esi. All initialisers updated.

1  2 
ChangeLog
grub-core/kern/i386/pc/startup.S
grub-core/loader/i386/pc/chainloader.c

diff --cc ChangeLog
+++ b/ChangeLog
++2011-11-12  Vladimir Serbinenko  <phcoder@gmail.com>
++
++      Move grub_chainloader_real_boot out of the kernel.
++
++      * grub-core/Makefile.am: Remove machine/loader.h.
++      * grub-core/kern/i386/pc/startup.S (grub_chainloader_real_boot):
++      Removed.
++      * grub-core/lib/i386/relocator.c (grub_relocator16_esi): New extern
++      variable.
++      (grub_relocator16_keep_a20_enabled): Likewise.
++      (grub_relocator16_boot): Fill new variables.
++      * grub-core/lib/i386/relocator16.S: Add gate a20 handling.
++      * grub-core/loader/i386/pc/chainloader.c (grub_chainloader_boot): Use
++      relocator.
++      (grub_chainloader_unload): Likewise.
++      (grub_chainloader_cmd): Likewise.
++      * include/grub/i386/pc/loader.h: Removed.
++      * include/grub/i386/relocator.h (grub_relocator16_state): Add a20
++      and esi. All initialisers updated.
++
 +2011-11-12  Vladimir Serbinenko  <phcoder@gmail.com>
 +2011-11-12  Colin Watson  <cjwatson@ubuntu.com>
 +
 +      * Makefile.util.def (grub-mount): New util.
 +      * .bzrignore: Add grub-mount.
 +      * configure.ac: Check for fuse and enable grub-mount if available.
 +      * docs/man/grub-mount.h2m: New file.
 +      * util/grub-mount.c: Likewise.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/commands/efi/fixvideo.c: Gettextize.
 +      * grub-core/commands/hashsum.c: Likewise.
 +      * grub-core/commands/i386/cmostest.c: Likewise.
 +      * grub-core/commands/i386/pc/drivemap.c: Likewise.
 +      * grub-core/commands/i386/pc/lsapm.c: Likewise.
 +      * grub-core/commands/i386/pc/sendkey.c: Likewise.
 +      * grub-core/commands/lsmmap.c: Likewise.
 +      * grub-core/commands/menuentry.c: Likewise.
 +      * grub-core/commands/mips/loongson/lsspd.c: Likewise.
 +      * grub-core/commands/setpci.c: Likewise.
 +      * grub-core/loader/i386/bsd.c: Likewise.
 +      * grub-core/loader/i386/linux.c: Likewise.
 +      * util/getroot.c: Likewise.
 +      * util/grub-editenv.c: Likewise.
 +      * util/grub-fstest.c: Likewise.
 +      * util/grub-mkfont.c: Likewise.
 +      * util/grub-mkimage.c: Likewise.
 +      * util/grub-mkpasswd-pbkdf2.c: Likewise.
 +      * util/grub-pe2elf.c: Likewise.
 +      * util/grub-probe.c: Likewise.
 +      * util/grub-setup.c: Likewise.
 +      * util/ieee1275/ofpath.c: Likewise.
 +      * util/misc.c: Likewise.
 +      * util/raid.c: Likewise.
 +
 +2011-11-11  Robert Millan  <rmh@gnu.org>
 +
 +      * util/getroot.c (grub_util_get_geom_abstraction): Remove
 +      __attribute__((unused)) from `os_dev', which *is* being used.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/dl.h (GRUB_ARCH_DL_TRAMP_SIZE) [__ia64__]: Add back
 +      forgotten define.
 +      (GRUB_ARCH_DL_GOT_ALIGN) [__ia64__]: Redefine in terms of
 +      GRUB_IA64_DL_GOT_ALIGN.
 +      (GRUB_ARCH_DL_TRAMP_ALIGN) [__ia64__]: Redefine in terms of
 +      GRUB_IA64_DL_TRAMP_ALIGN.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Replace grub_fatal with normal errors in i386 linux loader.
 +
 +      * grub-core/loader/i386/linux.c (find_efi_mmap_size): Return 0 on error.
 +      (allocate_pages): Check find_efi_mmap_size return value.
 +      (grub_e820_add_region): Return error.
 +      (grub_linux_boot): Check mmap return value.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/commands/acpihalt.c: Gettextized.
 +      * grub-core/commands/cacheinfo.c: Likewise.
 +      * grub-core/commands/cmp.c: Likewise.
 +      * grub-core/commands/efi/loadbios.c: Likewise.
 +      * grub-core/commands/gptsync.c: Likewise.
 +      * grub-core/commands/ieee1275/suspend.c: Likewise.
 +      * grub-core/commands/legacycfg.c: Likewise.
 +      * grub-core/commands/memrw.c: Likewise.
 +      * grub-core/commands/minicmd.c: Likewise.
 +      * grub-core/commands/parttool.c: Likewise.
 +      * grub-core/commands/time.c: Likewise.
 +      * grub-core/commands/videoinfo.c: Likewise.
 +      * grub-core/disk/geli.c: Likewise.
 +      * grub-core/disk/i386/pc/biosdisk.c: Likewise.
 +      * grub-core/disk/luks.c: Likewise.
 +      * grub-core/disk/lvm.c: Likewise.
 +      * grub-core/font/font_cmd.c: Likewise.
 +      * grub-core/fs/zfs/zfscrypt.c: Likewise.
 +      * grub-core/fs/zfs/zfsinfo.c: Likewise.
 +      * grub-core/gfxmenu/view.c: Likewise.
 +      * grub-core/kern/emu/hostdisk.c: Likewise.
 +      * grub-core/kern/emu/main.c: Likewise.
 +      * grub-core/kern/emu/misc.c: Likewise.
 +      * grub-core/kern/emu/mm.c: Likewise.
 +      * grub-core/kern/mips/arc/init.c: Likewise.
 +      * grub-core/kern/mips/loongson/init.c: Likewise.
 +      * grub-core/kern/partition.c: Likewise.
 +      * grub-core/lib/i386/halt.c: Likewise.
 +      * grub-core/lib/mips/arc/reboot.c: Likewise.
 +      * grub-core/lib/mips/loongson/reboot.c: Likewise.
 +      * grub-core/loader/i386/pc/chainloader.c: Likewise.
 +      * grub-core/loader/i386/xnu.c: Likewise.
 +      * grub-core/loader/multiboot.c: Likewise.
 +      * grub-core/net/bootp.c: Likewise.
 +      * grub-core/net/net.c: Likewise.
 +      * grub-core/normal/term.c: Likewise.
 +      * grub-core/partmap/bsdlabel.c: Likewise.
 +      * grub-core/parttool/msdospart.c: Likewise.
 +      * grub-core/term/gfxterm.c: Likewise.
 +      * grub-core/term/terminfo.c: Likewise.
 +      * grub-core/video/i386/pc/vbe.c: Likewise.
 +      * util/grub-menulst2cfg.c: Likewise.
 +      * util/grub-mkdevicemap.c: Likewise.
 +      * util/grub-mklayout.c: Likewise.
 +      * util/grub-mkrelpath.c: Likewise.
 +      * util/grub-script-check.c: Likewise.
 +      * util/ieee1275/grub-ofpathname.c: Likewise.
 +      * util/resolve.c: Likewise.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support %1$d syntax.
 +
 +      * tests/printf_unit_test.c: New file.
 +      * Makefile.util.def (printf_test): New test.
 +      * grub-core/kern/misc.c (grub_vsnprintf_real): Support %1$d syntax.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic
 +      fix.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/efiemu/mm.c (grub_efiemu_mmap_fill): Change printf into
 +      dprintf.
 +      * grub-core/font/font.c (grub_font_load): Likewise.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-macho2img.c: Add comment concerning gettext.
 +      * grub-core/lib/legacy_parse.c: Likewise.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/misc.c (grub_vprintf): Add missing va_end.
 +      (grub_xvasprintf): Likewise.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Add const keyword to grub_env_get and gettextize week days.
 +
 +      * grub-core/hook/datehook.c (grub_datetime_names): Make const.
 +      (grub_read_hook_datetime): Return const char *.
 +      * grub-core/kern/env.c (grub_env_get): Return const char *. All users
 +      updated.
 +      * grub-core/normal/datetime.c (grub_weekday_names): Make const.
 +      Mark for gettext.
 +      (grub_get_weekday_name): Return const char *. Call gettext.
 +      * grub-core/script/argv.c (grub_script_argv_append): Receive const
 +      char * and len as the argument. All users updated.
 +      (grub_script_argv_split_append): Receive const char *.
 +      * include/grub/datetime.h (grub_get_weekday_name): Update proto.
 +      * include/grub/env.h (grub_env_get): Likewise.
 +      (grub_env_read_hook_t): Return const char *.
 +      * include/grub/script_sh.h (grub_script_argv_append): Update proto.
 +      (grub_script_argv_split_append): Likewise.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/normal/main.c (grub_normal_execute): Remove leftover call.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/misc.c (grub_strstr): Moved from here ...
 +      * include/grub/misc.h (grub_strstr): ... here. Make static and inline.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/ieee1275/ieee1275.h (grub_ieee1275_set_property):
 +      Fix prototype.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix mips compilation.
 +
 +      * grub-core/lib/xzembed/xz_dec_stream.c (xz_dec): Restrict hash_id to
 +      normal decoder.
 +      (hashes): Use in embed decoder as well (for sizes).
 +      (dec_stream_header): Fix embed decompressor logic.
 +      (dec_stream_footer): Likewise.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Issue
 +      an error and not a fatal on unrecognised relocation types.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_parse_args):
 +      Issue error rather than printf on unknown arguments.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/ieee1275/ieee1275.c (grub_ieee1275_set_property):
 +      Make buf a const.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/zfs/zfscrypt.c (GRUB_MOD_INIT), (GRUB_MOD_FINI):
 +      Fix module name.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/ntfs.c (grub_ntfs_read_symlink): Stylistic fix. Remove
 +      leftover debug printf.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/btrfs.c (grub_btrfs_embed): Spelling fix.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/efiemu/main.c (grub_efiemu_register_configuration_table):
 +      A stylistic fix.
 +
 +2011-11-11  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/commands/probe.c (grub_cmd_probe): Fix error message.
 +
 +2011-11-10  Shea Levy  <slevy@tieronedesign.com>
 +
 +      Allow all modules to perform serial IO
 +
 +      * grub-core/term-serial.c (grub_serial_find): Remove static qualifier
 +      * include/grub/serial.h (grub_serial_port_configure): New inline
 +      function.
 +      (grub_serial_port_fetch): Likewise.
 +      (grub_serial_port_put): Likewise.
 +      (grub_serial_port_fini): Likewise.
 +      (grub_serial_find): New proto.
 +
 +2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Put symlink at the end of the node and fix a potential
 +      memory corruption.
 +
 +      * grub-core/fs/iso9660.c (grub_fshelp_node): New field have_symlink.
 +      Make symlink into an array.
 +      (set_rockridge): Set have_symlink and alloc_dirents.
 +      (grub_iso9660_read_symlink): Use new layout.
 +      (grub_iso9660_iterate_dir): Fix memory corruption.
 +      Use new layout.
 +      (grub_iso9660_dir): Set have_symlink.
 +      (grub_iso9660_open): Likewise.
 +
 +2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Remove local keyword.
 +
 +      * util/grub-mkconfig_lib.in (version_test_numeric): Remove local.
 +      (version_test_gt): Likewise.
 +      (version_find_latest): Likewise.
 +      (gettext_printf): Likewise.
 +      * util/grub.d/10_windows.in (get_os_name_from_boot_ini): Likewise.
 +
 +2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/zfs/zfs.c (zfs_mount): Fix spurious warning.
 +
 +2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix ZFS memory and resource leaks.
 +
 +      * grub-core/fs/zfs/zfs.c (fill_vdev_info_real): New paramter inserted.
 +      All users updated.
 +      Free type on exit.
 +      (fill_vdev_info): New parameter inserted. All users updated.
 +      (check_pool_label): Likewise.
 +      (scan_disk): Likewise.
 +      (scan_devices): Close non-inserted disks.
 +      (fzap_iterate): Free l.
 +      (unmount_device): Free children descripto memory.
 +
 +2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Fix grub_strncat
 +      argument (access out of bounds).
 +
 +2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/btrfs.c (grub_btrfs_read_logical): Fix RAID10 logic for
 +      >= 6 drives.
 +
 +2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/i386/netbsd_bootinfo.h (grub_netbsd_btinfo_bootwedge):
 +      Fix declaration.
 +
 +2011-11-09  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix several memory leaks.
 +
 +      * grub-core/fs/btrfs.c (grub_btrfs_dir): Fix memory leak.
 +      * grub-core/fs/cpio.c (grub_cpio_find_file): Likewise.
 +      (grub_cpio_dir): Likewise.
 +      * grub-core/fs/fat.c (grub_fat_label): Likewise.
 +      * grub-core/fs/jfs.c (grub_jfs_label): Likewise.
 +      * grub-core/fs/romfs.c (grub_romfs_close): Likewise.
 +      (grub_romfs_label): Likewise.
 +      * grub-core/fs/squash4.c (squash_mount): Use zalloc for safety.
 +      (squash_unmount): New function.
 +      (grub_squash_dir): Fix memory leak.
 +      (grub_squash_open): Likewise.
 +      (grub_squash_read): Likewise.
 +      (grub_squash_mtime): Likewise.
 +      * grub-core/fs/xfs.c (grub_xfs_open): Likewise.
 +      * grub-core/fs/zfs/zfs.c (check_pool_label): Likewise.
 +      * util/grub-fstest.c (fstest): Likewise.
 +
 +2011-11-09  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/misc.h (grub_strncat): Fix the order of conditionals to
 +      avoid accessing beyond the array.
 +
 +2011-11-09  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * configure.ac: Add missing -mXX to TARGET_CPPFLAGS.
 +
 +2011-11-09  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Several AFFS fixes.
 +
 +      * grub-core/fs/affs.c (grub_affs_bblock): Replace flags with version.
 +      (GRUB_AFFS_FLAG_FFS): Removed.
 +      (GRUB_AFFS_SYMLINK_SIZE): Likewise.
 +      (GRUB_AFFS_FILETYPE_DIR): Make positive and unsigned.
 +      (GRUB_AFFS_FILETYPE_DIR), (GRUB_AFFS_FILETYPE_REG): Fix a mix-up.
 +      (grub_fshelp_node): Make block 32-bit.
 +      Add block_cache and last_block_cache.
 +      (grub_affs_read_block): Fill and use block cache.
 +      (grub_affs_read_file): Removed.
 +      (grub_affs_mount): Zero-fill node. Fix version check. Don't reread
 +      boot block.
 +      (grub_affs_read_symlink): Fix symlink size. Add a \0 at the end for
 +      safety.
 +      (grub_affs_iterate_dir): Use more appropriate types. Zero-fill allocated
 +      space.
 +      (grub_affs_close): Free block cache.
 +      (grub_affs_read): Use grub_fshelp_read_file directly.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/zfs/zfs.c (read_dva): Issue an error if read failed
 +      with no error set.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/lib/LzmaEnc.c (LzmaEnc_CodeOneBlock): Remove set but not
 +      used variable.
 +      * grub-core/kern/ia64/dl_helper.c (grub_ia64_dl_get_tramp_got_size):
 +      Likewise.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix potential problem with calling zfs_to_cpu and cpu_to_be in a row.
 +
 +      * grub-core/fs/zfs/zfscrypt.c (grub_zfs_decrypt_real): Use explicit
 +      byteswap when needed.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix FreeBSD compilation.
 +
 +      * grub-core/disk/geli.c (GRUB_MD_SHA256) [GRUB_UTIL]: Redefine in a way
 +      to avoid circular dependency.
 +      (GRUB_MD_SHA512) [GRUB_UTIL]: Likewise.
 +      * util/getroot.c (grub_util_follow_gpart_up): Move from here...
 +      * grub-core/kern/emu/hostdisk.c (+grub_util_follow_gpart_up): ... here.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix ZFS crypto error types.
 +
 +      * grub-core/fs/zfs/zfscrypt.c (grub_ccm_decrypt): Fix return type.
 +      (grub_gcm_decrypt): Likewise.
 +      (grub_zfs_load_key_real): Fix error code type. Handle possible error
 +      from PBKDF2.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Illumos support.
 +
 +      * Makefile.util.def (10_illumos): New script.
 +      * configure.ac: Set COND_HOST_ILLUMOS.
 +      * grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors) [__sun__]:
 +      Support Illumos calls.
 +      (find_partition_start) [__sun__]: Likewise.
 +      (convert_system_partition_to_system_disk) [__sun__]: Likewise.
 +      (device_is_wholedisk) [__sun__]: Handle Illumos naming scheme.
 +      (grub_util_biosdisk_get_grub_dev) [__sun__]: Handle Illumos.
 +      * util/getroot.c (find_root_device_from_libzfs) [__sun__]: Return raw
 +      device.
 +      * util/grub-probe.c (probe) [__sun__]: Do character check.
 +      * util/grub.d/10_illumos.in: New file.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support escaped commas in hostdisk.
 +
 +      * grub-core/kern/emu/hostdisk.c (unescape_cmp): New function.
 +      (find_grub_drive): Use unescape_cmp.
 +      (make_device_name): Escape commas.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub.d/10_kfreebsd.in: Use ${grub_mkrelpath} not grub-mkrelpath.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/zfs/zfs.c (zap_iterate): Remove set but not used
 +      variable.
 +
 +2011-11-08  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support trampoline jumps on powerpc.
 +
 +      * grub-core/kern/dl.c (grub_dl_load_segments) [__powerpc__]: Follow
 +      __ia64__ path.
 +      (grub_dl_load_segments): Set mod->sz.
 +      (grub_dl_flush_cache): Flush whole space occupied by module, not just
 +      segments.
 +      * grub-core/kern/ia64/dl.c (nopm): Make const while on it.
 +      (jump): Likewise.
 +      * grub-core/kern/powerpc/dl.c (grub_arch_dl_get_tramp_got_size): New
 +      function.
 +      (trampoline): New struct.
 +      (trampoline_template): New const.
 +      (grub_arch_dl_relocate_symbols): Create trampolines on overflow.
 +      * include/grub/dl.h (grub_dl): Add sz element.
 +      [__powerpc__]: Follow __ia64__.
 +      (GRUB_ARCH_DL_TRAMP_ALIGN): Define on ppc.
 +      (GRUB_ARCH_DL_GOT_ALIGN): Likewise.
 +      (GRUB_ARCH_DL_TRAMP_SIZE): Likewise.
 +      (grub_arch_dl_get_tramp_got_size) [__powerpc__]: New proto.
 +
 +2011-11-06  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      ZFS crypto support.
 +
 +      * Makefile.util.def (libgrubmods): Add grub-core/fs/zfs/zfscrypt.c.
 +      * grub-core/Makefile.core.def (zfscrypt): New module.
 +      * grub-core/fs/zfs/zfs.c (subvolume): New structure.
 +      (grub_zfs_data): Replace mdn with subvol. Put case_insensitivity inside
 +      it. All users updated.
 +      (grub_zfs_decrypt): New var.
 +      (grub_zfs_load_key): Likewise.
 +      (zio_checksum_functions): Add SHA256+MAC.
 +      (zio_checksum_verify): Handle incomplete comparison due to MAC.
 +      (zio_read): Handle encrypted blocks.
 +      (zap_verify): Remove incorrect check.
 +      (fzap_iterate): Handle non-standard fzap.
 +      (zap_iterate): Likewise.
 +      (zap_iterate_u64): New function.
 +      (dnode_get_fullpath): Load keys.
 +      * grub-core/fs/zfs/zfscrypt.c: New file.
 +      * grub-core/lib/crypto.c (grub_crypto_cipher_close): Removed.
 +      (grub_crypto_ecb_encrypt): Make input const.
 +      * include/grub/crypto.h (grub_crypto_cipher_close): Inline.
 +      (grub_crypto_ecb_encrypt): Make input const.
 +      (GRUB_CIPHER_AES): New macro.
 +      * include/grub/zfs/dmu.h (dmu_object_type): Add DMU_OT_DSL_KEYCHAIN.
 +      * include/grub/zfs/dsl_dir.h (dsl_dir_phys): Add keychain.
 +      * include/grub/zfs/spa.h (grub_zfs_endian): Moved from here ...
 +      * include/grub/zfs/zfs.h (grub_zfs_endian): ... here. Added GURB_ZFS_
 +      prefix. All users updated.
 +      (grub_zfs_add_key): New proto.
 +      (grub_zfs_decrypt): Likewise.
 +      (grub_zfs_load_key): Likewise.
 +      * include/grub/zfs/zio.h (zio_checksum): Add SHA256+MAC.
 +      * util/grub-fstest.c (options): Add -K option.
 +      (argp_parser): Likewise.
 +
 +2011-11-05  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support zle compression on ZFS.
 +
 +      * grub-core/fs/zfs/zfs.c (zle_decompress): New function.
 +      (decomp_table): Add zle.
 +      * include/grub/zfs/zio.h (zio_compress): Add zle.
 +
 +2011-11-05  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support BtrFS embedding.
 +
 +      * grub-core/fs/btrfs.c (grub_btrfs_embed) [GRUB_UTIL]: New function.
 +      (grub_btrfs_fs) [GRUB_UTIL]: Set embed.
 +      * include/grub/fs.h (grub_fs) [GRUB_UTIL]: New field embed.
 +      * util/grub-setup.c (setup): Use fs embedding if available.
 +      Add additional sanity check.
 +
 +2011-11-05  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-install.in: Fix condition for config_opt.
 +
 +2011-11-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support third redundancy strip on raidz3.
 +
 +      * grub-core/fs/zfs/zfs.c (recovery): Add Gauss for general case.
 +      Return error on singularity. All users updated.
 +      (read_device): Don't stop on 3rd failure on raidz3.
 +
 +2011-11-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support case-insensitive ZFS subvolumes.
 +
 +      * grub-core/fs/zfs/zfs.c (mzap_lookup): New parameter case_insensitive.
 +      All users updated.
 +      (zap_hash): Likewise.
 +      (name_cmp): New function.
 +      (zap_leaf_array_equal): New parameter case_insensitive.
 +      All users updated.
 +      (zap_leaf_lookup): Likewise.
 +      (fzap_lookup): Likewise.
 +      (zap_lookup): Likewise.
 +      (dnode_get_path): New parameter case_insensitive. Retrieve case
 +      sensitiviness of a volume. All users updated.
 +      (dnode_get_fullpath): New parameter case_insensitive.
 +      All users updated.
 +      (grub_zfs_dir): Set info.case_insensitiveness.
 +
 +2011-11-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support second redundancy strip on raidz(2,3).
 +
 +      * grub-core/fs/zfs/zfs.c (powx): New array.
 +      (powx_inv): Likewise.
 +      (poly): New const.
 +      (xor_out): New function.
 +      (gf_mul): Likewise.
 +      (recovery): Likewise.
 +      (read_device): Use second redundancy strip.
 +
 +2011-11-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Use a power of generator representation of GF(256) multiplication group
 +      to save space time and complexity.
 +
 +      * grub-core/disk/raid6_recover.c (raid6_table1): Removed.
 +      (raid6_table2): Likewise.
 +      (powx): New array.
 +      (powx_inv): Likewise.
 +      (poly): New const.
 +      (grub_raid_block_mul): Replace with ...
 +      (grub_raid_block_mulx): ...this.
 +      (grub_raid6_init_table): Rewritten.
 +      (grub_raid6_recover): Use power of generator representation.
 +
 +2011-11-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/disk/raid6_recover.c (grub_raid6_recover): Get start_sector
 +      for the right device.
 +
 +2011-11-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/kernel.h (grub_module_header): Make type into uint32 as
 +      expected by grub-mkimage and it's more clear since there is no implicit
 +      padding.
 +
 +2011-11-04  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/disk/raid.c (scan_devices): Don't derference NULL on whole
 +      disk.
 +      * grub-core/disk/lvm.c (do_lvm_scan): Likewise.
 +
 +2011-11-03  Philipp Matthias Hahn <pmhahn@debian.org>
 +
 +      * util/grub-mkrescue.in: Fix handling xorriso option.
 +
 +2011-11-03  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/gettext/gettext.c (grub_gettext_init_ext): Exit if local is
 +      NULL.
 +
 +2011-11-03  crocket <crockabiscuit@gmail.com>
 +
 +      * util/grub.d/10_linux.in: Add Slackware initrd naming.
 +
 +2011-11-03  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      XZ CRC64 and SHA256 support.
 +
 +      * Makefile.util.def (libgrubmods): Add crc64.c.
 +      * grub-core/Makefile.core.def (crc64): New module.
 +      * grub-core/lib/crc64.c: New file.
 +      * grub-core/lib/xzembed/xz_dec_stream.c (xz_dec_hash)
 +      [!GRUB_EMBED_DECOMPRESSOR]: Rename crc32_context to hash_context.
 +      Fix the type.
 +      (MAX_HASH_SIZE): New define.
 +      (xz_dec) [!GRUB_EMBED_DECOMPRESSOR]: Add generic hash fields.
 +      (dec_block) [!GRUB_EMBED_DECOMPRESSOR]: Handle non-crc32 hashes.
 +      (index_update) [!GRUB_EMBED_DECOMPRESSOR]: Likewise.
 +      (dec_index) [!GRUB_EMBED_DECOMPRESSOR]: Likewise.
 +      (crc32_validate) [!GRUB_EMBED_DECOMPRESSOR]: Rename to ...
 +      (hash_validate) [!GRUB_EMBED_DECOMPRESSOR]: ... this.
 +      Handle non-crc32 hashes.
 +      (hashes) [!GRUB_EMBED_DECOMPRESSOR]: New variable.
 +      (dec_stream_header): Handle non-crc32 hashes.
 +      (dec_stream_footer): Likewise.
 +      (dec_block_header): Likewise.
 +      (dec_main): Likewise.
 +      (xz_dec_init): Likewise.
 +      (xz_dec_reset): Likewise.
 +      (xz_dec_end): Likewise.
 +      * util/import_gcry.py: Add CRC64 line.
 +
 +2011-11-03  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/ufs.c (grub_ufs_mtime) [MODE_UFS2]: Check mtime field
 +      as well.
 +
 +2011-11-03  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Make reiserfs label retrieval similar to other *_label functions.
 +
 +      * grub-core/fs/reiserfs.c (grub_reiserfs_superblock): New field label.
 +      (REISERFS_MAX_LABEL_LENGTH): Removed.
 +      (REISERFS_LABEL_OFFSET): Likewise.
 +      (grub_reiserfs_label): Rewritten.
 +
 +2011-11-03  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/nilfs2.c (grub_nilfs2_mtime): Use correct superblock
 +      field.
 +
 +2011-11-03  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/zfs/zfs.c (read_device): Support raidz3.
 +
 +2011-11-02  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/zfs/zfs.c (read_device): Add ability to sustain a single
 +      drive failure on both raidz and raidz2.
 +
 +2011-11-02  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix RAIDZ(2) for >= 5 devices.
 +
 +      * grub-core/fs/zfs/zfs.c (read_device): Fix length formula. Remove
 +      asize argument. All users updated.
 +
 +2011-11-01  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix RAIDZ(2).
 +
 +      * grub-core/fs/zfs/zfs.c (grub_zfs_device_desc): New member ashift.
 +      (fill_vdev_info_real): Set ashift.
 +      (read_device): Rewrite RAIDZ part based on reverse engineering.
 +
 +2011-10-31  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/btrfs.c (grub_btrfs_extent_read): Add sanity check and
 +      don't report potentially unavialiable fields in debug output.
 +      (find_path): Fix double-free and memory leak.
 +
 +2011-10-31  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Read label on UFS1.
 +
 +      * grub-core/fs/ufs.c (grub_ufs_label): Remove MODE_UFS2 condition.
 +      (grub_ufs_fs): Always set .label.
 +
 +2011-10-31  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Use shifts in UFS.
 +
 +      * grub-core/fs/ufs.c (UFS_LOG_BLKSZ): New macro.
 +      (grub_ufs_data): New field log2_blksz.
 +      (grub_ufs_read_file): Use shifts.
 +      (grub_ufs_mount): Check block size and logarithm it.
 +
 +2011-10-31  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/ufs.c (grub_ufs_lookup_symlink): Fix handling of
 +      long symlinks.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Handle symlinks and long names on tar and cpio.
 +
 +      * grub-core/fs/cpio.c (ATTR_TYPE): New definition.
 +      (ATTR_FILE): Likewise.
 +      (ATTR_DIR): Likewise.
 +      (ATTR_LNK): Likewise.
 +      (grub_cpio_data) [MODE_USTAR]: New fields linkname and linkname_alloc.
 +      (grub_cpio_find_file): Fill mode, handle linkname field as well as
 +      L and K entries.
 +      (grub_cpio_mount): Zero-fill data.
 +      (handle_symlink): New function.
 +      (grub_cpio_dir): Handle symlinks.
 +      (grub_cpio_open): Likewise.
 +      (grub_cpio_close) [MODE_USTAR]: Free linkname.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix iso9660 filename limitations and fix memory leaks.
 +
 +      * grub-core/fs/iso9660.c (set_rockridge): Free sua at the end.
 +      (grub_iso9660_iterate_dir): Fix slash handling in symlinks.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix JFS file name length limitations.
 +
 +      * grub-core/fs/jfs.c (grub_jfs_inode): Fix in-place symlink length.
 +      (grub_jfs_diropen): Fix maximum filename length.
 +      (grub_jfs_getent): Fix filename length.
 +      (grub_jfs_lookup_symlink): Fix size checks.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/loader/mips/linux.c (loongson_machtypes): Fix fuloong type
 +      string.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Leverage BFS implementation to read AFS.
 +
 +      * Makefile.util.def (libgrubmods): Add afs.c.
 +      * grub-core/Makefile.core.def (afs): New module
 +      * grub-core/fs/afs.c: New file.
 +      * grub-core/fs/bfs.c [MODE_AFS]: Adapt for AFS.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/bfs.c: Macroify and add some necessary sanity checks.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/bfs.c: Run indent.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      BFS implementation based on the specification.
 +
 +      * grub-core/fs/bfs.c: New file.
 +      * Makefile.util.def (libgrubmods): Add bfs.c.
 +      * grub-core/Makefile.core.def (bfs): New module.
 +
 +2011-10-30  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-fstest.c (cmd_cp): Clarify error message.
 +      (cmd_cmp): Likewise.
 +
 +2011-10-30  Yves Blusseau  <blusseau@zetam.org>
 +
 +      * po/POTFILES.in: Regenerate because of the removal of afs, afs_be, befs
 +      and befs_be.
 +
 +2011-10-29  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Remove afs and befs because of copyright problem.
 +
 +      * grub-core/fs/afs.c: Removed.
 +      * grub-core/fs/afs_be.c: Removed.
 +      * grub-core/fs/befs.c: Removed.
 +      * grub-core/fs/befs_be.c: Removed.
 +      * Makefile.util.def (libgrubkern): Remove afs, afs_be, befs and befs_be.
 +      * grub-core/Makefile.core.def (afs): Removed.
 +      (afs_be): Likewise.
 +      (befs): Likewise.
 +      (befs_be): Likewise.
 +
 +2011-10-28  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Prefer rockridge over Joliet.
 +
 +      * grub-core/fs/iso9660.c (grub_iso9660_mount): Move rockridge detection
 +      to ...
 +      (set_rockridge): ... here.
 +      (grub_iso9660_mount): Check rockridge on the primary label when
 +      discovering. Ignore Joliet if Rockridge is present.
 +
 +2011-10-28  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Use shifts in nilfs2.
 +
 +      * grub-core/fs/nilfs2.c (LOG_INODE_SIZE): New definition.
 +      (LOG_NILFS_DAT_ENTRY_SIZE): Likewise.
 +      (grub_nilfs2_palloc_entries_per_group): Replace with ...
 +      (grub_nilfs2_log_palloc_entries_per_group): ... this.
 +      (grub_nilfs2_palloc_group): Use shifts and bitmasks.
 +      (grub_nilfs2_entries_per_block): Replaced with ...
 +      (grub_nilfs2_log_entries_per_block_log): ... this.
 +      (grub_nilfs2_blocks_per_group): Replaced with ...
 +      (grub_nilfs2_blocks_per_group_log): ... this.
 +      (grub_nilfs2_blocks_per_desc_block): Replaced with ...
 +      (grub_nilfs2_blocks_per_desc_block_log): ... this.
 +      (grub_nilfs2_palloc_desc_block_offset): Replaced with ...
 +      (grub_nilfs2_palloc_desc_block_offset_log): ... this.
 +      (grub_nilfs2_palloc_entry_offset): Replaced ...
 +      (grub_nilfs2_palloc_entry_offset_log): ... this. Use shifts.
 +      (grub_nilfs2_dat_translate): Use shifts.
 +      (grub_nilfs2_read_inode): Likewise.
 +      (GRUB_MOD_INIT): Ensure that logs are correct.
 +
 +2011-10-28  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Use shifts in minix filesystem.
 +
 +      * grub-core/fs/minix.c (GRUB_MINIX_ZONESZ): Use log_block_size.
 +      (GRUB_MINIX_ZONE2SECT): Likewise.
 +      (grub_minix_data): Replace block_size with log_block_size.
 +      (grub_minix_read_file): Use shifts.
 +      (grub_minix_mount): Check block size and take a logarithm.
 +
 +2011-10-28  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Use shifts in squash4.
 +
 +      * grub-core/fs/squash4.c (grub_squash_data): New field log2_blksz.
 +      (squash_mount): Check block size and take logarithm.
 +      (direct_read): Use shifts.
 +
 +2011-10-28  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Correct befs block counting logic.
 +
 +      * grub-core/fs/afs.c (GRUB_AFS_BLOCKS_PER_DI_RUN): Replaced with...
 +      (GRUB_AFS_LOG_BLOCKS_PER_DI_RUN): ... this.
 +      (GRUB_AFS_BLOCKRUN_LOG_SIZE): New definition.
 +      (grub_afs_read_inode): Use block_shift.
 +      (RANGE_SHIFT): New definition.
 +      (grub_afs_read_block): Account for RANGE_SHIFT, emit errors on
 +      unexpected conditions, use shifts and appropriate types.
 +      (GRUB_MOD_INIT): Check the value of GRUB_AFS_BLOCKRUN_LOG_SIZE.
 +
 +2011-10-28  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/disk/raid.c (scan_devices): Check partition.
 +      * grub-core/disk/lvm.c (do_lvm_scan): Likewise.
 +
 +2011-10-27  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support BFS (befs) UUID.
 +
 +      * grub-core/fs/afs.c (grub_afs_inode): Make small_data zero-size.
 +      (grub_afs_small_data_element_header): New struct.
 +      (grub_afs_read_inode): Read complete inode. Fix ino type while on it.
 +      (grub_afs_read_attribute) [MODE_BFS]: New function.
 +      (grub_afs_iterate_dir): Allocate for complete inode.
 +      (grub_afs_mount): Likewise.
 +      (grub_afs_uuid) [MODE_BFS]: New function.
 +      (grub_afs_fs) [MODE_BFS]: Add .uuid.
 +
 +2011-10-27  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/zfs/zfs.c (read_device): Silence spurious warning.
 +      (zfs_unmount): Fix memory leak.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support NTFS reparse points.
 +
 +      * grub-core/fs/ntfs.c (list_file): Set symlink type when appropriate.
 +      (symlink_descriptor): New struct.
 +      (grub_ntfs_read_symlink): New function.
 +      (grub_ntfs_iterate_dir): Use grub_ntfs_read_symlink.
 +      (grub_ntfs_open): Likewise.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/ntfs.h: Add GRUB_NTFS_ prefix. All users updated.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      fstest xnu_uuid subcommand.
 +
 +      * grub-core/commands/xnu_uuid.c (libgrubkrn): Add
 +      grub-core/commands/xnu_uuid.c.
 +      * util/grub-fstest.c (CMD_XNU_UUID): New enum value.
 +      (fstest): Handle xnu_uuid.
 +      (options): Document xnu_uuid.
 +      (argp_parser): Parse xnu_uuid.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/commands/xnu_uuid.c (grub_cmd_xnu_uuid): Support
 +      -l argument. Add newline at the end if printing.
 +      (GRUB_MOD_INIT): Document -l.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/nilfs2.c (grub_nilfs2_uuid): Add missing field length.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      ZFS multi-device and version 33 support.
 +
 +      * Makefile.util.def (libgrubkern): Add grub-core/fs/zfs/zfsinfo.c.
 +      * grub-core/fs/zfs/zfs.c (grub_zfs_device_desc): New struct.
 +      (grub_zfs_data): Add multidev-ice-related fields.
 +      (zio_checksum_verify): Zero-pad printed values. Print checksum name.
 +      (dva_get_offset): Make dva const.
 +      (zfs_fetch_nvlist): New function.
 +      (fill_vdev_info_real): Likewise.
 +      (fill_vdev_info): Likewise.
 +      (check_pool_label): Likewise.
 +      (scan_disk): Likewise.
 +      (scan_devices): Likewise.
 +      (read_device): Likewise.
 +      (read_dva): Likewise.
 +      (zio_read_gang): Use read_dva.
 +      (zio_read_data): Likewise.
 +      (zap_leaf_lookup): Add missing endian conversion.
 +      (zap_verify): Add missing endian conversion. All users updated.
 +      (fzap_lookup): Likewise.
 +      (fzap_iterate): Likewise.
 +      (dnode_get_path): Handle SA bonus.
 +      (nvlist_find_value): Make input const. All users updated.
 +      (unmount_device): New function.
 +      (zfs_unmount): Use unmount_device.
 +      (zfs_mount): Use scan_disk.
 +      (zfs_mtime): New function.
 +      (grub_zfs_open): Handle system attributes.
 +      (fill_fs_info): Likewise.
 +      (grub_zfs_dir): Likewise.
 +      (grub_zfs_fs): Add mtime.
 +      * grub-core/fs/zfs/zfsinfo.c (print_vdev_info): Add missing return.
 +      * include/grub/zfs/sa_impl.h (SA_TYPE_OFFSET): New definition.
 +      (SA_MTIME_OFFSET): Likewise.
 +      (SA_SYMLINK_OFFSET): Likewise.
 +      * include/grub/zfs/zfs.h (SPA_VERSION): Increase to 33.
 +      * util/grub-fstest.c (CMD_ZFSINFO): New enum value.
 +      (fstest): Support zfsinfo.
 +      (argp_parser): Likewise.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/datetime.h (grub_datetime2unixtime): Fix off-by-one
 +      error.
 +
 +2011-10-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      ZFS fixes.
 +
 +      * grub-core/fs/zfs/zfs.c (fzap_iterate): Fix handling of indexes
 +      sharing the same block. Iterate over correct number of indices.
 +      (dnode_get_path): Handle symlinks correctly.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/jfs.c (grub_jfs_sblock): Fix offset to volname.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Read label on HFS+.
 +
 +      * grub-core/fs/hfsplus.c (grub_hfsplus_cmp_catkey_id): New function.
 +      (grub_hfsplus_btree_search): Fix types.
 +      (grub_hfsplus_label): Implement.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/ntfs.c (grub_ntfs_uuid): Fix a memory leak.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/fat.c (grub_fat_uuid): Make uppercase to match Linux.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix symlink handling on iso9660.
 +
 +      * grub-core/fs/iso9660.c (grub_fshelp_node): Remove dir_off. Add symlink
 +      All users updated.
 +      (grub_iso9660_susp_iterate): Accept zero-size iterate.
 +      (grub_iso9660_read_symlink): Moved most of code ...
 +      (grub_iso9660_iterate_dir): ... here. Fill node->symlink.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/loader/i386/bsd.c (grub_netbsd_add_boot_disk_and_wedge):
 +      Use union to avoid breaking strict-aliasing rules.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support multi-extent iso files.
 +
 +      * grub-core/fs/iso9660.c (grub_iso9660_data): Remove first_sector.
 +      Add node.
 +      (grub_fshelp_node): Revamp. All users updated.
 +      (FLAG_*): New enum.
 +      (read_node): New function.
 +      (grub_iso9660_susp_iterate): Use read_node. Receive a node as argument.
 +      All users updated.
 +      (grub_iso9660_mount): Don't attempt to read sua when there is none.
 +      (get_node_size): New function.
 +      (grub_iso9660_iterate_dir): Use read_node. Agglomerate multi-extent
 +      entries.
 +      Fix memory leak on . and ..
 +      (grub_iso9660_read): Use read_node.
 +      (grub_iso9660_close): Free node.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix tar 4G limit and handle paths containing dot.
 +
 +      * grub-core/fs/cpio.c (grub_cpio_data): Use grub_off_t for offsets.
 +      (canonicalize): New function.
 +      (grub_cpio_find_file): Use canonicalize. Store offs in
 +      grub_disk_addr_t.
 +      (grub_cpio_dir): Use grub_disk_addr_t.
 +      (grub_cpio_open): Likewise.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix handling of uncompressed blocks on squashfs and break 4G limit.
 +
 +      * grub-core/fs/squash4.c (grub_squash_super): Add block_size. Remove
 +      unused flags.
 +      (grub_squash_inode): Add long_file and block_size.
 +      (grub_squash_cache_inode): New struct.
 +      (grub_squash_dirent): Make types into enum.
 +      (SQUASH_TYPE_LONG_REGULAR): New type.
 +      (grub_squash_frag_desc): Add field size.
 +      (SQUASH_BLOCK_FLAGS): New enum.
 +      (grub_squash_data): Use grub_squash_cache_inode.
 +      (grub_fshelp_node): Make ino_chunk 64-bit.
 +      (read_chunk): Minor argument change. All users updated.
 +      (squash_mount): Use correct le_to_cpu.
 +      (grub_squash_open): Handle LONG_REGULAR.
 +      (direct_read): New function.
 +      (grub_squash_read_data): Handle blocks correctly.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/disk.c (grub_disk_read_small): Fix memory leak.
 +
 +2011-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/romfs.c (grub_romfs_open): Add missing return.
 +
 +2011-10-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fix 2G limit on ZFS.
 +
 +      * grub-core/fs/zfs/zfs.c (zio_checksum_verify): Use more appropriate
 +      types.
 +      (uberblock_verify): Likewise.
 +      (dmu_read): Likewise.
 +      (grub_zfs_read): Likewise. Remove invalid cast.
 +
 +2011-10-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/jfs.c (grub_jfs_blkno): Use more appropriate types.
 +      (grub_jfs_blkno): Fix incorrect shift.
 +      (grub_jfs_read_file): Use more appropriate types.
 +
 +2011-10-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Support triple indirect on minix2 and minix3.
 +
 +      * grub-core/fs/minix.c (grub_minix_inode) [MODE_MINIX2 || MODE_MINIX3]:
 +      Declare triple_indir_zone.
 +      (grub_minix_get_file_block) [MODE_MINIX2 || MODE_MINIX3]: Handle triple
 +      indirect.
 +
 +2011-10-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Minix FS fixes.
 +
 +      * grub-core/fs/minix.c (GRUB_MINIX_INODE_SIZE): Size is always 32-bit.
 +      (grub_minix_inode) [!MODE_MINIX2 && !MODE_MINIX3]: Make size 32-bit.
 +      Rename ctime to mtime. All users updated.
 +      (grub_minix_get_file_block): Fix types and double indirect computations.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/fat.c (grub_fat_label) [MODE_EXFAT]: Set *label to 0
 +      if no label is found.
 +      (grub_fat_iterate_dir): Fix file size type.
 +      (grub_fat_iterate_dir): Likewise.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/lib/reed_solomon.c (gf_invert): Declare as const and
 +      save some space.
 +      * include/grub/offsets.h (GRUB_KERNEL_I386_PC_RAW_SIZE): Decrease.
 +      (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): Likewise.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/import_gcry.py: Automatically fix camellia.c and camellia.h.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/import_gcry.py: Accept space between # and include.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/lib/setjmp.S [__ia64__]: Include ./ia64/longjmp.S.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Fine grainely disable warnings on lexer. Remove Wno-error on it.
 +
 +      * grub-core/Makefile.core.def (normal): Remove -Wno-error.
 +      * grub-core/script/lexer.c: Declare yytext_ptr to avoid having
 +      yylex_strncpy.
 +      * grub-core/script/yylex.l: Add fine-grained #pragma.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/lib/posix_wrap/string.h (memcpy) [GRUB_UTIL]:
 +      New inline function.
 +      * grub-core/lib/libgcrypt_wrap/cipher_wrap.h (memcpy) [GRUB_UTIL]:
 +      Likewise.
 +      (memset) [GRUB_UTIL]: Likewise.
 +      (memcmp) [GRUB_UTIL]: Likewise.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/misc.h (grub_memcpy): Declare grub_memcpy with static
 +      inline function rather than a define.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-setup.c: Add missing include.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/ieee1275/grub-ofpathname.c: Add missing include.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/i386/pc/startup.S (grub_exit): Add missing zeroing-out.
 +      * grub-core/lib/i386/reboot_trampoline.S (grub_reboot_start):
 +      Likewise.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/io/lzopio.c (test_header): Fix incorrect memcmp instead of
 +      grub_memcmp usage.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-install.in: Add datarootdir as per automake manual
 +      suggestion.
 +      * util/grub-mknetdir.in: Likewise.
 +
 +2011-10-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub.d/10_hurd.in: Add datarootdir as per automake manual
 +      suggestion.
 +      * util/grub.d/10_kfreebsd.in: Likewise.
 +      * util/grub.d/10_linux.in: Likewise.
 +      * util/grub.d/10_netbsd.in: Likewise.
 +      * util/grub.d/10_windows.in: Likewise.
 +      * util/grub.d/20_linux_xen.in: Likewise.
 +
  2011-10-20  Vladimir Serbinenko  <phcoder@gmail.com>
  
        Remove redundant grub_kernel_image_size.
Simple merge