++2009-12-11 Vladimir Serbinenko <phcoder@gmail.com>
++
++ libpciaccess support.
++
++ * Makefile.in (LIBPCIACCESS): New variable.
++ (enable_grub_emu_pci): Likewise.
++ * conf/any-emu.rmk (grub_emu_SOURCES) [enable_grub_emu_pci]: Add
++ util/pci.c and commands/lspci.c.
++ (grub_emu_LDFLAGS) [enable_grub_emu_pci]: Add $(LIBPCIACCESS).
++ * configure.ac (grub-emu-pci): New option.
++ * include/grub/i386/pci.h (grub_pci_device_map_range): New function.
++ (grub_pci_device_unmap_range): Likewise.
++ * include/grub/pci.h [GRUB_UTIL]: Include grub/pciutils.h.
++ (grub_pci_device) [!GRUB_UTIL]: New structure. All users updated.
++ (grub_pci_address_t) [!GRUB_UTIL]: New type.
++ (grub_pci_device_t) [!GRUB_UTIL]: Likewise.
++ (grub_pci_get_bus) [!GRUB_UTIL]: New function.
++ (grub_pci_get_device) [!GRUB_UTIL]: Likewise.
++ (grub_pci_get_function) [!GRUB_UTIL]: Likewise.
++ * include/grub/pciutils.h: New file.
++ * util/pci.c: Likewise.
++
+2009-12-11 Felix Zielcke <fzielcke@z-51.de>
+
+ * util/misc.c: Don't include <errno.h> twice.
+
+2009-12-10 Felix Zielcke <fzielcke@z-51.de>
+
+ * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Show the disk
+ name in an error message.
+ (grub_biosdisk_rw): Likewise.
+
+2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Eliminate NTFS 4Gib barrier.
+
+ * fs/ntfs.c (read_attr): Use grub_disk_addr_t and grub_size_t.
+ (read_run_data): Likewise.
+ (grub_ntfs_read_run_list): Likewise.
+ (grub_ntfs_read_block): Likewise.
+ (grub_ntfs_iterate_dir): Likewise.
+ (read_mft): Likewise.
+ (read_data): Likewise.
+ Use COM_LOG_LEN.
+ * fs/ntfscomp.c (read_block): Cast ctx->target_vcn & 0xF to unsigned
+ to avoid 64-bit division
+ * include/grub/ntfs.h (COM_LOG_LEN): New definition.
+ (grub_ntfs_rlst): Use grub_disk_addr_t.
+
+2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Eliminate grub-fstest 4Gib barrier.
+
+ * util/grub-fstest.c (skip, leng): Use grub_disk_addr_t.
+ (read_file): Fix error reporting.
+
+2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Eliminate hexdump 4Gib barrier.
+
+ * commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_addr_t.
+ * lib/arg.c (grub_arg_parse): Use grub_strtoull.
+
+2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * kern/device.c (grub_device_iterate): Ignore errors during first scan.
+ Fixes amarsh bug.
+
+2009-12-09 Bruce Dubbs <bruce.dubbs@gmail.com>
+
+ Remove miscellaneous files in distclean target.
+
+ * Makefile.in: Remove docs/{grub.info,version.texi,stamp-vti}
+
+2009-12-09 Colin Watson <cjwatson@ubuntu.com>
+
+ * util/grub-mkconfig_lib.in: Don't set grub_probe or grub_mkrelpath
+ if they're already set. This resolves the conflict between my
+ grub-install change on 2009-10-06 and Felix' change on 2009-11-11,
+ fixing the --grub-probe option again.
+ * util/sparc64/ieee1275/grub-install.in: Revert the last piece of my
+ change on 2009-10-06, so that we now once again source
+ `${libdir}/grub/grub-mkconfig_lib' after options have been parsed.
+
+2009-12-08 Robert Millan <rmh.grub@aybabtu.com>
+
+ * conf/common.rmk [sparc64-ieee1275] (grub_mkdevicemap_SOURCES): Use
+ `util/ieee1275/ofpath.c' and `util/ieee1275/devicemap.c' instead of
+ `util/devicemap.c'.
+
+2009-12-08 Carles Pina i Estany <carles@pina.cat>
+
+ * include/grub/misc.h (grub_printf_): New declaration.
+ * kern/misc.c (grub_printf_): New definition.
+ * normal/main.c (grub_normal_reader_init): Use `grub_printf_' and `N_'
+ instead of `grub_printf' and `_'.
+ * normal/menu_entry.c (store_completion): Likewise.
+ (run): Likewise.
+ (grub_menu_entry_run): Likewise.
+ * normal/menu_text.c (grub_wait_after_message): Likewise.
+ (notify_booting): Likewise.
+ (notify_fallback): Likewise.
+ (notify_execution_failure): Likewise.
+
+2009-12-07 Colin Watson <cjwatson@ubuntu.com>
+
+ * configure.ac: Check for vasprintf.
+ * util/misc.c (asprintf): Move allocation from here ...
+ (vasprintf): ... to here. New function.
+ (xasprintf): New function.
+ * include/grub/util/misc.h (vasprintf, xasprintf): Add
+ prototypes.
+ * util/getroot.c (grub_util_get_grub_dev): Use xasprintf.
+ * util/grub-mkfont.c (write_font): Likewise.
+ * util/grub-probe.c (probe): Likewise.
+ * util/hostdisk.c (make_device_name): Likewise.
+
+2009-12-06 David S. Miller <davem@sunset.davemloft.net>
+
+ * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Recognize
+ anything even prefixed with 'cdrom' as a cdrom.
+
+2009-12-06 Felix Zielcke <fzielcke@z-51.de>
+
+ * util/misc.c (make_system_path_relative_to_its_root): Correctly cope with
+ mount points.
+
+2009-12-05 Carles Pina i Estany <carles@pina.cat>
+
+ * gettext/gettext.c: Include `<grub/list.h>'. Define grub_gettext_msg,
+ grub_gettext_msg_list.
+ (grub_gettext_gettranslation_from_position): Return const char *
+ and not char *.
+ (grub_gettext_translate): Add the translated strings into a list,
+ returns from the list if existing there.
+ (grub_gettext_init_ext): Add \n at the end of grub_dprintf string.
+ (grub_gettext_delete_list): Delete the list.
+ (grub_gettext_env_write_lang): Call grub_gettext_delete_list when
+ lang environment variable is changed.
+ (GRUB_MOD_FINI): Call grub_gettext_delete_list.
+
+2009-12-05 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Rename kernel.mod to kernel.img.
+
+ * conf/i386-efi.rmk (pkglib_MODULES): Change kernel.mod to kernel.img.
+ (kernel_mod_EXPORTS): Rename to ...
+ (kernel_img_EXPORTS): ... this.
+ (kernel_mod_SOURCES): Rename to ...
+ (kernel_img_SOURCES): ... this.
+ (kernel_mod_HEADERS): Rename to ...
+ (kernel_img_HEADERS): ... this. All users updated.
+ (kernel_mod_CFLAGS): Rename to ...
+ (kernel_img_CFLAGS): ... this.
+ (kernel_mod_ASFLAGS): Rename to ...
+ (kernel_img_ASFLAGS): ... this.
+ (kernel_mod_LDFLAGS): Rename to ...
+ (kernel_img_LDFLAGS): ... this.
+ * conf/x86_64-efi.rmk: Likewise.
+ * util/i386/efi/grub-mkimage.c (read_kernel_module): Rename to ...
+ (read_kernel_image): ... this. All users updated.
+ (read_kernel_image): Read "kernel.img" instead of "kernel.mod".
+
+2009-12-05 Carles Pina i Estany <carles@pina.cat>
+
+ * normal/menu_text.c (grub_color_menu_high): Gettexttize string.
+ (print_spaces): New function.
+ (grub_print_ucs4): New function.
+ (getstringwidth): New function.
+ (print_message_indented): New function.
+ (print_message): Gettexttize strings using print_message_indented.
+ (run_menu): Replaces grub_printf by print_spaces and dynamic terminal
+ width.
+ (get_entry_number): Gettextize and uses dynamic terminal width.
+ (notify_booting, notify_fallback, notify_execution_failure):
+ Gettextize.
+ * normal/menu_entry.c (store_completion): Cleanup the gettextized
+ string.
+ (run): Likewise.
+ (grub_menu_entry_run): Likewise.
+ * PO/POTFILES: Add normal/menu_entry.c.
+
+2009-12-05 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * configure.ac (TARGET_ASFLAGS): Add "-D<MACHINE>".
+
+2009-12-05 Carles Pina i Estany <carles@pina.cat>
+
+ * util/grub-install.in: Install gettext .mo files.
+ * util/grub-mkrescue.in (process_input_dir): Copy gettext .mo files.
+
+2009-12-05 Carles Pina i Estany <carles@pina.cat>
+
+ * gettext/gettext.c (grub_gettext_init_ext): Replace grub_printf with
+ grub_dprintf.
+
+2009-12-05 Robert Millan <rmh.grub@aybabtu.com>
+
+ * kern/ieee1275/openfw.c (grub_reboot): Disable for i386. The
+ non-firmware-dependant one in realmode.S takes precedence.
+
+2009-12-04 Robert Millan <rmh.grub@aybabtu.com>
+
+ * commands/halt.c: Replace misc arch-specific headers with
+ `<grub/misc.h>'.
+ * commands/reboot.c: Likewise.
+ * commands/i386/pc/halt.c: Replace `<grub/machine/init.h>' with
+ `<grub/misc.h>'.
+ * conf/i386-coreboot.rmk (kernel_img_HEADERS): Remove `cpu/reboot.h'.
+ (halt_mod_SOURCES): Move `kern/i386/halt.c' from here ...
+ (kernel_img_SOURCES): ... to here.
+
+ * include/grub/efi/efi.h (grub_reboot, grub_halt): Remove prototypes.
+ * include/grub/i386/pc/init.h: Likewise.
+ * include/grub/powerpc/ieee1275/kernel.h: Likewise.
+ * include/grub/sparc64/ieee1275/kernel.h: Likewise.
+
+ * include/grub/misc.h (grub_reboot, grub_halt): New prototypes.
+
+ * include/grub/i386/halt.h: Remove.
+ * include/grub/i386/reboot.h: Likewise.
+
+ * kern/i386/halt.c: Remove `<grub/cpu/halt.h>'.
+
+2009-12-03 David S. Miller <davem@sunset.davemloft.net>
+
+ * conf/sparc64-ieee1275.rmk (grub_mkimage_SOURCES,
+ grub_setup_SOURCES, grub_ofpathname_SOURCES): Add gnulib/progname.c
+ * util/sparc64/ieee1275/grub-mkimage.c: Include <grub/i18n.h> and
+ "progname.h"
+ * util/sparc64/ieee1275/grub-ofpathname.c: Likewise.
+ * util/sparc64/ieee1275/grub-setup.c: Likewise.
+ (usage): Add missing comma in printf.
+
+2009-12-02 Robert Millan <rmh.grub@aybabtu.com>
+
+ Use the same reboot approach on i386 coreboot and qemu as we do on
+ BIOS.
+
+ * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add `cpu/reboot.h'.
+ (reboot_mod_SOURCES): Remove `kern/i386/reboot.c'.
+ * kern/i386/reboot.c: Remove.
+ * include/grub/i386/reboot.h (grub_reboot): Export function.
+ * kern/i386/pc/startup.S (grub_reboot): Move from here ...
+ * kern/i386/realmode.S (grub_reboot): ... to here. Jump to
+ 0xf000:0xfff0 instead of 0xffff:0x0000.
+ [!GRUB_MACHINE_PCBIOS] (prot_to_real): Do not restore interrupts.
+ * kern/i386/qemu/startup.S: Include `"../realmode.S"'.
+
2009-11-30 Robert Millan <rmh.grub@aybabtu.com>
Fix $srcdir != $objdir build.
--- /dev/null
- err = pci_device_map_range(dev, base, size, PCI_DEV_MAP_FLAG_WRITABLE, &addr);
+ /* pci.c - Generic PCI interfaces. */
+ /*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2007,2009 Free Software Foundation, Inc.
+ *
+ * GRUB is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+ #include <grub/pci.h>
+ #include <grub/dl.h>
+ #include <grub/util/misc.h>
+
+ grub_pci_address_t
+ grub_pci_make_address (grub_pci_device_t dev, int reg)
+ {
+ grub_pci_address_t ret;
+ ret.dev = dev;
+ ret.pos = reg << 2;
+ return ret;
+ }
+
+ void
+ grub_pci_iterate (grub_pci_iteratefunc_t hook)
+ {
+ struct pci_device_iterator *iter;
+ struct pci_slot_match slot;
+ struct pci_device *dev;
+ slot.domain = PCI_MATCH_ANY;
+ slot.bus = PCI_MATCH_ANY;
+ slot.dev = PCI_MATCH_ANY;
+ slot.func = PCI_MATCH_ANY;
+ iter = pci_slot_match_iterator_create (&slot);
+ while ((dev = pci_device_next (iter)))
+ hook (dev, dev->vendor_id | (dev->device_id << 16));
+ pci_iterator_destroy (iter);
+ }
+
+ void *
+ grub_pci_device_map_range (grub_pci_device_t dev, grub_addr_t base,
+ grub_size_t size)
+ {
+ void *addr;
+ int err;
++ err = pci_device_map_range (dev, base, size, PCI_DEV_MAP_FLAG_WRITABLE, &addr);
+ if (err)
+ grub_util_error ("mapping 0x%x failed (error %d)\n", base, err);
+ return addr;
+ }
+
+ void
+ grub_pci_device_unmap_range (grub_pci_device_t dev, void *mem,
+ grub_size_t size)
+ {
+ pci_device_unmap_range (dev, mem, size);
+ }
+
+ GRUB_MOD_INIT (pci)
+ {
+ pci_system_init ();
+ }
+
+ GRUB_MOD_FINI (pci)
+ {
+ pci_system_cleanup ();
+ }