]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Merge pciaccess branch
authorRobert Millan <rmh@aybabtu.com>
Fri, 11 Dec 2009 21:12:57 +0000 (21:12 +0000)
committerRobert Millan <rmh@aybabtu.com>
Fri, 11 Dec 2009 21:12:57 +0000 (21:12 +0000)
1  2 
ChangeLog
Makefile.in
configure.ac
util/pci.c

diff --cc ChangeLog
index 668cc3e88b5e7d71b43452ea887f24f9501f2647,de76474103ae8ed412be99659b4f71aec21f285c..e7e873000ff55569ec65b02d217b1bfc4042c9f5
+++ b/ChangeLog
++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.
diff --cc Makefile.in
Simple merge
diff --cc configure.ac
Simple merge
diff --cc util/pci.c
index 0000000000000000000000000000000000000000,8915068aaaed6daadb71e4ac4b18730cb265926a..a0c1867be335bb75e21fc20969bc67cd2ab2ebfb
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,76 +1,76 @@@
 -  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 ();
+ }