Commit graph

401 commits

Author SHA1 Message Date
fzielcke
9fc5388a5d 2008-11-25 Felix Zielcke <fzielcke@z-51.de>
* util/grub-fstest.c (grub_term_get_current_input): Change return type
	to `grub_term_input_t'.
	(grub_term_get_current_output): Change return type to
	`grub_term_output_t'.
2008-11-25 16:40:17 +00:00
robertmh
73e8e268b7 * util/grub-mkconfig_lib.in (grub_warn): New function.
(convert_system_path_to_grub_path): Use grub_warn() when issuing
        warnings, to obtain consistent formatting.
        * util/grub.d/00_header.in: Likewise.
        * util/update-grub_lib.in: Likewise.
2008-11-20 19:22:20 +00:00
robertmh
6c529df74c 2008-11-10 Robert Millan <rmh@aybabtu.com>
* util/grub.d/00_header.in: Add backward compatibility check for
        versions of terminal.mod that don't understand `terminal_input' or
        `terminal_output'.
2008-11-10 08:49:26 +00:00
robertmh
0025933a5e 2008-11-08 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
        `struct  grub_term_output'.  Remove `.checkkey' and `.getkey'
        members.  Update all users.
        * util/console.c (grub_ncurses_term): Split in ...
        (grub_ncurses_term_input): ... this, and ...
        (grub_ncurses_term_output): ... this.  Update all users.
2008-11-08 12:17:51 +00:00
proski
b6c15a2d2a 2008-11-07 Pavel Roskin <proski@gnu.org>
* util/grub.d/00_header.in: Remove incorrect space before
	"serial".
2008-11-07 22:30:24 +00:00
robertmh
651c29b79e 2008-11-07 Robert Millan <rmh@aybabtu.com>
Modularize at_keyboard.mod:

            * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
            (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
            (at_keyboard_mod_LDFLAGS): New variables.

            Actual terminal split:

            * include/grub/term.h (struct grub_term): Split in ...
            (struct grub_term_input): ... this, and ...
            (struct grub_term_output): ... this.  Update all users.
            (grub_term_set_current): Split in ...
            (grub_term_set_current_input): ... this, and ...
            (grub_term_set_current_output): ... this.
            (grub_term_get_current): Split in ...
            (grub_term_get_current_input): ... this, and ...
            (grub_term_get_current_output): ... this.
            (grub_term_register): Split in ...
            (grub_term_register_input): ... this, and ...
            (grub_term_register_output): ... this.
            (grub_term_unregister): Split in ...
            (grub_term_unregister_input): ... this, and ...
            (grub_term_unregister_output): ... this.
            (grub_term_iterate): Split in ...
            (grub_term_iterate_input): ... this, and ...
            (grub_term_iterate_output): ... this.

            * kern/term.c (grub_term_list): Split in ...
            (grub_term_list_input): ... this, and ...
            (grub_term_list_output): ... this.  Update all users.
            (grub_cur_term): Split in ...
            (grub_cur_term_input): ... this, and ...
            (grub_cur_term_output): ... this.  Update all users.
            (grub_term_set_current): Split in ...
            (grub_term_set_current_input): ... this, and ...
            (grub_term_set_current_output): ... this.
            (grub_term_get_current): Split in ...
            (grub_term_get_current_input): ... this, and ...
            (grub_term_get_current_output): ... this.
            (grub_term_register): Split in ...
            (grub_term_register_input): ... this, and ...
            (grub_term_register_output): ... this.
            (grub_term_unregister): Split in ...
            (grub_term_unregister_input): ... this, and ...
            (grub_term_unregister_output): ... this.
            (grub_term_iterate): Split in ...
            (grub_term_iterate_input): ... this, and ...
            (grub_term_iterate_output): ... this.

            * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
            a check for input and one for output (and only attempt to get keys
            from user when input works).

            * util/grub-probe.c (grub_term_get_current): Split in ...
            (grub_term_get_current_input): ... this, and ...
            (grub_term_get_current_output): ... this.
            * util/grub-fstest.c: Likewise.
            * util/i386/pc/grub-setup.c: Likewise.
            * util/grub-editenv.c: Likewise.

            Portability adjustments:

            * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
            `term/i386/pc/at_keyboard.c'.
            * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
            grub_keyboard_controller_init() (now handled by terminal .init).
            * kern/i386/coreboot/init.c (grub_machine_init): Add call to
            grub_at_keyboard_init().
            * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
            (grub_console_checkkey, grub_console_getkey): Remove (now provided by
            at_keyboard.mod via input terminal interface).
            * include/grub/i386/coreboot/console.h: Convert into a stub for
            `<grub/i386/pc/console.h>'.

            Migrate full terminals to new API:

            * term/efi/console.c (grub_console_term): Split into ...
            (grub_console_term_input): ... this, and ...
            (grub_console_term_output): ... this.  Update all users.
            * term/ieee1275/ofconsole.c: Remove __i386__ hack.
            (grub_ofconsole_init): Split into ...
            (grub_ofconsole_init_input): ... this, and ...
            (grub_ofconsole_init_output): ... this.
            (grub_ofconsole_term): Split into ...
            (grub_ofconsole_term_input): ... this, and ...
            (grub_ofconsole_term_output): ... this.  Update all users.
            * term/i386/pc/serial.c (grub_serial_term): Split into ...
            (grub_serial_term_input): ... this, and ...
            (grub_serial_term_output): ... this.  Update all users.
            * term/i386/pc/console.c (grub_console_term): Split into ...
            (grub_console_term_input): ... this, and ...
            (grub_console_term_output): ... this.  Update all users.
            (grub_console_term_input): Only enable it on PC/BIOS platform.
            (grub_console_init): Remove grub_keyboard_controller_init() call.

            Migrate input terminals to new API:

            * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
            `i386' and `i386/pc' to enable build on x86_64 (this driver is
            i386-specific anyway).
            (grub_console_checkkey): Rename to ...
            (grub_at_keyboard_checkkey): ... this.  Static-ize.  Update all
            users.
            (grub_keyboard_controller_orig): New variable.
            (grub_console_getkey): Rename to ...
            (grub_at_keyboard_getkey): ... this.  Static-ize.  Update all
            users.
            (grub_keyboard_controller_init): Static-ize.  Save original
            controller value so that it can be restored ...
            (grub_keyboard_controller_fini): ... here (new function).
            (grub_at_keyboard_term): New structure.
            (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
            functions.

            Migrate output terminals to new API:

            * term/i386/pc/vga.c (grub_vga_term): Change type to
            `struct  grub_term_output'.  Remove `.checkkey' and `.getkey'
            members.  Update all users.
            * term/gfxterm.c (grub_video_term): Change type to
            `struct  grub_term_output'.  Remove `.checkkey' and `.getkey'
            members.  Update all users.
            * include/grub/i386/pc/console.h (grub_console_checkkey)
            (grub_console_getkey): Do not export (no longer needed by gfxterm,
            etc).

            Migrate `terminal' command and userland tools to new API:

            * commands/terminal.c (grub_cmd_terminal): Split into ...
            (grub_cmd_terminal_input): ... this, and ...
            (grub_cmd_terminal_output): ... this.
            (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
            `terminal_input' and `terminal_output'.
            * util/grub.d/00_header.in: Adjust `terminal' calls to new
            `terminal_input' / `terminal_output' API.
            * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
            ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
            provided ${GRUB_TERMINAL}, convert it).
2008-11-07 19:11:39 +00:00
robertmh
96e5d876a4 2008-11-04 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_freebsd.in: New file.  Generate grub configuration
        for FreeBSD.
        * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
2008-11-04 15:20:35 +00:00
robertmh
7ab28c2157 2008-10-29 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-install.in: Handle empty string as output from
        make_system_path_relative_to_its_root().
2008-10-29 19:14:12 +00:00
fzielcke
c9618ab2fa 2008-10-03 Felix Zielcke <fzielcke@z-51.de>
* util/i386/pc: Source grub-mkconfig_lib instead of update-grub_lib.
2008-10-03 18:05:21 +00:00
fzielcke
bf981c620b 2008-10-03 Felix Zielcke <fzielcke@z-51.de>
* util/update-grub_lib.in: Mention filename in warning message.
2008-10-03 07:22:45 +00:00
fzielcke
18ade780ed 2008-09-29 Felix Zielcke <fzielcke@z-51.de>
* util/update-grub_lib.in: Copy to ...
	* util/grub-mkconfig_lib.in: ... this.  Update all users.
	* util/update-grub_lib.in: Make it a stub to `grub-mkconfigig_lib.in'.
	* util/update-grub.in: Rename to ...
	* util/grub-mkconfig.in: ... this.  Update all users.  Remove `-y'
	option. Add `--output' option to allow users to specify the generated
	configuration file.  Default to stdout.
	(update_grub_dir): Rename to ...
	(grub_mkconfig_dir): ... this.
	(grub_cfg): Default to an empty string.
	* conf/common.rmk (update-grub): Rename to ...
	(grub-mkconfig): ... this.
	(update-grub_lib): Copy to ...
	(grub-mkconfig_lib): ... this.
	(update-grub_SCRIPTS): Copy to ...
	(grub-mkconfig_SCRIPTS): ... this. Update all users.
	(update-grub_DATA): Rename to ...
	(grub-mkconfig_DATA): ... this.
2008-09-29 14:57:05 +00:00
robertmh
add6f17a17 2008-09-25 Robert Millan <rmh@aybabtu.com>
* util/grub-mkdevicemap.c (make_device_map): Actually replace all
        instances of grub_util_get_disk_name() (see previous commit).
2008-09-25 14:40:59 +00:00
robertmh
0e981d36bb Forgot to remove files / run autogen.sh 2008-09-25 14:17:43 +00:00
robertmh
d2a367b86f 2008-09-25 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
        `util/i386/get_disk_name.c'.
        * conf/i386-efi.rmk: Likewise.
        * conf/x86_64-efi.rmk: Likewise.
        * conf/i386-coreboot.rmk: Likewise.
        * conf/i386-ieee1275.rmk: Likewise.
        * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
        `util/ieee1275/get_disk_name.c'.
        * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
        * util/ieee1275/get_disk_name.c: Remove file.
        * util/i386/get_disk_name.c: Remove file.
        * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
        "hd%d" for device.map entries, rather than using
        grub_util_get_disk_name().
2008-09-25 14:15:24 +00:00
fzielcke
7fd75377be 2008-09-09 Felix Zielcke <fzielcke@z-51.de>
* util/hostdisk.c: Change #include <grub/util/biosdisk.h> to
        #include <grub/util/hostdisk.h>.
2008-09-09 07:28:17 +00:00
robertmh
40da438f10 2008-09-08 Robert Millan <rmh@aybabtu.com>
* util/hostdisk.c (open_device): Replace a grub_util_info() call
        with grub_dprintf("hostdisk", ...), as it was so verbose that it
        clobbered useful information.
2008-09-08 14:00:29 +00:00
robertmh
ddbf5556a7 2008-09-08 Robert Millan <rmh@aybabtu.com>
* include/grub/util/biosdisk.h: Move to ...
        * include/grub/util/hostdisk.h: ... here.  Update all users.
        * util/biosdisk.c: Move to ...
        * util/hostdisk.c: ... here.  Update all users.
2008-09-08 13:52:30 +00:00
fzielcke
4ee5592137 2008-09-04 Felix Zielcke <fzielcke@z-51.de>
* util/getroot.c: Include <config.h>.
        (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
        add support for /dev/md/N devices and handle LVM double dash escaping.
2008-09-04 19:54:59 +00:00
robertmh
64d2d53c6b 2008-08-31 Colin D Bennett <colin@gibibit.com>
* util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
2008-08-31 16:28:32 +00:00
proski
7c5d8d950c 2008-08-30 Pavel Roskin <proski@gnu.org>
* util/genmoddep.c: Remove for real this time.
	* DISTLIST: Remove util/genmoddep.c.
2008-08-31 02:19:17 +00:00
bean
6e5a42fe9a 2008-08-29 Bean <bean123ch@gmail.com>
* configure.ac: Change host_os to cygwin for mingw.
	(asprintf): New check for function.

	* include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
	#if ! defined (__CYGWIN__) && ! defined (__MINGW32__).

	* include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
	declear asprintf if HAVE_ASPRINTF is not set, declear fseeko, ftello,
	sync, sleep and grub_util_get_disk_size for mingw.

	* util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
	to get size in mingw.
	(open_device): Use flag O_BINARY if it's defined.
	(find_root_device): Add dummy code for mingw.

	* util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
	(get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
	(get_scsi_disk_name): Return 0 for mingw.

	* util/hostfs.c: #include <grub/util/misc.h>.
	(grub_hostfs_open): Use "rb" flag to open file, use
	grub_util_get_disk_size to get disk size for mingw.

	* util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
	(asprintf): New function if HAVE_ASPRINTF is not set.
	(sync): New function for mingw.
	(sleep): Likewise.
	(grub_util_get_disk_size): Likewise.
2008-08-29 19:55:23 +00:00
robertmh
1c282483bf 2008-08-28 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
2008-08-28 19:08:21 +00:00
robertmh
678e849cd3 2008-08-28 Robert Millan <rmh@aybabtu.com>
Change find_grub_drive() syntax so it doesn't prevent it from
        detecting NULL names as errors.

        * util/biosdisk.c (find_grub_drive): Move free slot search code
        from here ...
        (find_free_slot): ... to here.
        (read_device_map): Use find_free_slot() to search for free slots.
2008-08-28 14:36:18 +00:00
robertmh
c07ae501cb 2008-08-26 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (grub_util_biosdisk_open, open_device)
        (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
        descriptive.
2008-08-26 19:09:07 +00:00
bean
5ed20adcb9 2008-08-23 Bean <bean123ch@gmail.com>
* conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
	(grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
	disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
	(pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
	dm_nv.mod.
	(raid5rec_mod_SOURCES): New macro.
	(raid5rec_mod_CFLAGS): Likewise.
	(raid5rec_mod_LDFLAGS): Likewise.
	(raid6rec_mod_SOURCES): Likewise.
	(raid6rec_mod_CFLAGS): Likewise.
	(raid6rec_mod_LDFLAGS): Likewise.
	(mdraid_mod_SOURCES): Likewise.
	(mdraid_mod_CFLAGS): Likewise.
	(mdraid_mod_LDFLAGS): Likewise.
	(dm_nv_mod_SOURCES): Likewise.
	(dm_nv_mod_CFLAGS): Likewise.
	(dm_nv_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
	(grub_emu_SOURCES):  Add disk/raid5_recover.c, disk/raid6_recover.c,
	disk/mdraid_linux.c and disk/dmraid_nvidia.c.

	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
	disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.

	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.

	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.

	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

	* disk/raid5_recover.c: New file.

	* disk/raid6_recover.c: Likewise.

	* disk/mdraid_linux.c: Likewise.

	* disk/dmraid_nvidia.c: Likewise.

	* disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
	ULONG_MAX.

	* disk/raid.c (grub_raid_open): Use the size of the smallest disk to
	calculate the size of raid device.
	(grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
	different layout of raid5.
	(grub_raid_scan_device): Remove code specific to mdraid.
	(grub_raid_list): New variable.
	(free_array): New function.
	(grub_raid_register): Likewise.
	(grub_raid_unregister): Likewise.
	(grub_raid_rescan): Likewise.
	(GRUB_MOD_INIT): Don't iterate device here.
	(GRUB_MOD_FINI): Use free_array to release resource.

	* include/grub/raid.h: Remove macro and structure specific to mdraid.
	(grub_raid5_recover_func_t): New function variable type.
	(grub_raid6_recover_func_t): Likewise.
	(grub_raid5_recover_func): New variable.
	(grub_raid6_recover_func): Likewise.
	(grub_raid_register): New function.
	(grub_raid_unregister): Likewise.
	(grub_raid_rescan): Likewise.
	(grub_raid_block_xor): Likewise.

	* util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
	(CMD_CRC): New macro.
	(part): Removed.
	(read_file): Handle device as well as file.
	(cmd_crc): New function.
	(fstest): Handle multiple disks.
	(options): Remove part, raw and long, add root and diskcount.
	(usage): Add crc, remove -p, -r, -l, add -r and -c.
	(main): Find the first non option entry and ignore subsequence options,
	add handling for the new options, support multiple disks.

	* util/grub-probe.c (probe): Add mdraid to abstraction_name.
2008-08-23 14:51:19 +00:00
robertmh
8415f2617c 2008-08-23 Robert Millan <rmh@aybabtu.com>
* util/getroot.c (find_root_device): Skip anything that starts with
        a dot, not just directories.  This avoids things like /dev/.tmp.md0.
2008-08-23 12:19:43 +00:00
fzielcke
d5a7dc5b74 2008-08-22 Felix Zielcke <fzielcke@z-51.de>
* util/update-grub.in (GRUB_GFXMODE): Export variable.
	* util/grub.d/00_header.in: Allow the administrator to change default
	gfxmode via ${GRUB_GFXMODE}.
2008-08-22 12:58:46 +00:00
robertmh
eba0ce9f97 2008-08-14 Robert Millan <rmh@aybabtu.com>
* conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
        (grub_mkelfimage_SOURCES): New variable.
        (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.

        * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
        (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
        * conf/powerpc-ieee1275.rmk: Likewise.
        * conf/i386-ieee1275.rmk: Likewise.

        * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
        * kern/i386/coreboot/init.c: Likewise.

        * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
        with `<grub/cpu/kernel.h>'.
        (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
        to ...
        (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
        * kern/i386/coreboot/startup.S: Likewise.

        * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
        (GRUB_MOD_GAP): Remove.
        * include/grub/powerpc/kernel.h: New file.
        * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
        (GRUB_KERNEL_MACHINE_DATA_END): Remove.
        * include/grub/i386/kernel.h: New file.
        * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
        (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
        (GRUB_KERNEL_MACHINE_DATA_END): Remove.

        * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
        `grub-mkelfimage'.
        Use --directory when invoking grub_mkimage.

        * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
        (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
        GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
        and GRUB_KERNEL_CPU_PREFIX.
2008-08-14 18:59:33 +00:00
fzielcke
b86408f869 2008-08-14 Felix Zielcke <fzielcke@z-51.de>
* include/grub/err.h (grub_err_printf): New function prototype.
        * util/misc.c (grub_err_printf): New function.
        * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
        grub_printf.
        * kern/err.c (grub_print_error): Use grub_err_printf.
2008-08-14 18:46:47 +00:00
robertmh
042bd419da 2008-08-08 Robert Millan <rmh@aybabtu.com>
* kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
        (grub_last_time): Change type to grub_uint64_t.
        (grub_disk_open): Migrate code from to using grub_get_time_ms().
        (grub_disk_close): Likewise.

        * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
        (run_menu): Migrate code from to using grub_get_time_ms().

        * util/misc.c (grub_get_time_ms): New function.
2008-08-07 23:48:13 +00:00
chrfranke
1cbb58ac62 2008-08-06 Christian Franke <franke@computer.org>
* conf/common.rmk: Build and install `10_windows'.
	* util/grub.d/10_windows.in: New script.
2008-08-06 18:45:51 +00:00
bean
6977d49f98 2008-08-05 Bean <bean123ch@gmail.com>
* util/console.c (grub_console_cur_color): New variable.
	(grub_console_standard_color): Likewise.
	(grub_console_normal_color): Likewise.
	(grub_console_highlight_color): Likewise.
	(color_map): Likewise.
	(use_color): Likewise.
	(NUM_COLORS): New macro.
	(grub_ncurses_setcolorstate): Handle color properly.
	(grub_ncurses_setcolor): Don't change color here, just remember the
	settings, color will be set in grub_ncurses_setcolorstate.
	(grub_ncurses_getcolor): New function.
	(grub_ncurses_init): Initialize color pairs.
	(grub_ncurses_term): New member grub_ncurses_getcolor.
2008-08-05 14:20:00 +00:00
robertmh
52768e37c2 2008-08-03 Robert Millan <rmh@aybabtu.com>
* util/grub.d/00_header.in: Be platform-agnostic.  Probe for existence
        of modules instead of assuming which platform provides what.
        * util/update-grub.in: Likewise.
2008-08-03 16:38:40 +00:00
robertmh
2a5cd121da 2008-08-02 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-install.in: Remove trailing slash from prefix.
2008-08-02 20:30:19 +00:00
robertmh
3bd0a12aca 2008-08-02 Robert Millan <rmh@aybabtu.com>
* disk/memdisk.c (memdisk_size): Don't initialize.
        (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().

        * include/grub/i386/pc/kernel.h
        (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
        (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
        (grub_memdisk_image_size, grub_arch_memdisk_addr)
        (grub_arch_memdisk_size): Remove.

        * include/grub/kernel.h (struct grub_module_header): Remove `offset'
        field (was only used to transfer a constant).  Add `type' field to
        support multiple module types.
        (grub_module_iterate): New function.

        * kern/device.c (grub_device_open): Do not hide error messages
        when grub_disk_open() fails.  Use grub_print_error() instead.

        * kern/i386/pc/init.c (grub_arch_modules_addr)
        (grub_arch_memdisk_size): Remove functions.
        (grub_arch_modules_addr): Return the module address in high memory
        (now that it isn't copied anymore).

        * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
        (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
        decompression routine (grub_total_module_size already includes that
        now).  Don't copy modules back to low memory.

        * kern/main.c: Include `<grub/mm.h>'.
        (grub_load_modules): Split out (and use) ...
        (grub_module_iterate): ... this function, which iterates through
        module objects and runs a hook.
        Comment out grub_mm_init_region() call, as it would cause non-ELF
        modules to be overwritten.

        * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
        the memdisk image in its own region, make it part of the module list.
        * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
        (main): Parse --memdisk|-m option, and pass user-provided path as
        parameter to generate_image().
        (add_segments): Pass `memdisk_path' down to load_modules().
        (load_modules): Embed memdisk image in module section when requested.
        * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
        `header.type' instead of `header.offset'.

        * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
        (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
        (memdisk_mod_LDFLAGS): New variables.
        * conf/i386-coreboot.rmk: Likewise.
        * conf/i386-ieee1275.rmk: Likewise.
2008-08-02 12:17:44 +00:00
robertmh
cdfb3d2273 2008-08-01 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
        within menuentries, not before them.
        util/grub.d/10_hurd.in: Likewise.
2008-08-01 12:56:56 +00:00
robertmh
59198b722c 2008-07-30 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
        Increase from 0x50 to 0x60.
        * util/i386/pc/grub-install.in: Detect cross-disk installs, and
        use UUIDs to identify the root drive for them.  If that's not
        possible, abort.
        * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
        check, for cross-disk installs.
2008-07-30 10:44:38 +00:00
robertmh
ae88bca301 2008-07-30 Robert Millan <rmh@aybabtu.com>
* kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
        is non-empty, use it to set the `prefix' environment variable instead
        of the usual approach.
        * kern/i386/linuxbios/init.c (make_install_device): Remove function.
        (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
        environment variable instead of dummy make_install_device().

        * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
        (start): Insert a data section, with `grub_prefix' variable.
        * kern/i386/linuxbios/startup.S: Likewise.

        * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
        New variable reference.
        * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
        New macro.  Defines offset of `grub_prefix' within startup.S (relative
        to `start').
        (GRUB_KERNEL_MACHINE_DATA_END): New macro.  Defines the end of data
        section within startup.S (relative to `start').
        * include/grub/i386/coreboot/kernel.h: Likewise.

        * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
        Overwrite grub_prefix with its contents, at the beginning of the
        first segment.
        (main): Understand -p|--prefix.
2008-07-30 10:42:11 +00:00
robertmh
14f41dd1ed 2008-07-30 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_hurd.in: Source /grub/update-grub_lib.
2008-07-30 00:21:35 +00:00
chrfranke
2921d33798 2008-07-29 Christian Franke <franke@computer.org>
* util/update-grub_lib.in (make_system_path_relative_to_its_root):
	Add conversion of emulated mount points on Cygwin.
2008-07-29 16:47:31 +00:00
chrfranke
b609876d15 2008-07-29 Christian Franke <franke@computer.org>
* util/update-grub.in: Add a check for admin
	group on Cygwin.
	Remove old `grub.cfg.new' before creation.
	Add `-f' to `mv' to handle the different filesystem
	semantics of Windows.
2008-07-29 15:38:05 +00:00
bean
a85cd5a0b5 2008-07-27 Bean <bean123ch@gmail.com>
* commands/crc.c: New file.

	* lib/crc.c: Likewise.

	* include/grub/lib/crc.h: Likewise.

	* util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.

	* commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
	(hexdump): Move this function to ...

	* lib/hexdump.c: ... here.

	* include/grub/hexdump.h: Renamed to ...

	* include/grub/lib/hexdump.h: ... this.

	* commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h

	* util/grub-editenv.c: Likewise.

	* include/envblk.h: Renamed to ...

	* include/lib/envblk.h: ... this.

	* util/envblk.c: Renamed to ...

	* lib/envblk.c: ... this.

	* conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
	lib/hexdump.c.
	(grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
	(pkglib_MODULES): Add crc.mod.
	(hexdump_mod_SOURCES): Add lib/hexdump.c.
	(loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
	(crc_mod_SOURCES): New macro.
	(crc_mod_CFLAGS): Likewise.
	(crc_mod_LDFLAGS): Likewise.

	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.

	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2008-07-27 13:51:30 +00:00
proski
cc349fb3dd 2008-07-27 Pavel Roskin <proski@gnu.org>
* util/getroot.c (find_root_device): Rephrase a comment to avoid
	spurious warnings about a comment within a comment.
2008-07-27 05:57:10 +00:00
robertmh
9051607e1e 2008-07-25 Robert Millan <rmh@aybabtu.com>
* util/getroot.c (find_root_device): Skip devices that match
        /dev/dm-[0-9].  This lets the real device be found for any type of
        abstraction (LVM, EVMS, RAID..).
        (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
        and /dev/evms (for EVMS) before traversing /dev.  If a /dev/dm-[0-9]
        device is found first, find_root_device() will now skip it.
2008-07-25 19:05:06 +00:00
chrfranke
3a0fa256ac 2008-07-24 Christian Franke <franke@computer.org>
* util/i386/pc/grub-install.in: If `--debug' is specified,
	pass `--verbose' to grub-setup.
	Abort script if make_system_path_relative_to_its_root() fails.
2008-07-24 19:02:47 +00:00
bean
2a8a80e4f4 2008-07-24 Bean <bean123ch@gmail.com>
* common.rmk (bin_UTILITIES): Add grub-pe2elf.
	(grub_pe2elf_SOURCES): New macro.
	(CLEANFILES): Add grub-pe2elf.

	* include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
	(GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
	(GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
	(GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
	(GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
	(GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
	(GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
	(GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
	(GRUB_PE32_SCN_ALIGN_MASK): Likewise.
	(GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
	(GRUB_PE32_SYM_CLASS_STATIC): Likewise.
	(GRUB_PE32_SYM_CLASS_FILE): Likewise.
	(GRUB_PE32_DT_FUNCTION): Likewise.
	(GRUB_PE32_REL_I386_DIR32): Likewise.
	(GRUB_PE32_REL_I386_REL32): Likewise.
	(grub_pe32_symbol): New structure.
	(grub_pe32_reloc): Likewise.

	* util/grub-pe2elf.c: New file.

	* configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
	start symbol in non pc platform.

	* genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.

	The following patches are from Christian Franke.

	* include/grub/dl.h: Remove .previous, gas supports this only
	for ELF format.

	* include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
	Remove .type, gas supports this only for ELF format.

	* kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
	nullbytes in symbol table. This fixes an infinite loop if table is
	zero filled.

	* Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
	TARGET_IMG_LDFLAGS and EXEEXT.

	* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
	TARGET_IMG_LDFLAGS_AC.
	(grub_CHECK_STACK_ARG_PROBE): New function.

	* conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.

	* conf/i386-pc-cygwin-ld-img.sc: New linker script.

	* configure.ac: Add check for linker script "conf/${target}-img-ld.c"
	to set TARGET_IMG_LD* accordingly.
	Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
	Add call to grub_CHECK_STACK_ARG_PROBE.
	Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.

	* genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.

	* genmk.rb: Add EXEEXT to CLEANFILES.
2008-07-24 14:56:30 +00:00
robertmh
12ccdb75a9 2008-07-23 Robert Millan <rmh@aybabtu.com>
* Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
        define the codes for arrows and lines used for the menu).
        (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
        as well.

        * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
        fonts, because the latter are too slow.
2008-07-22 22:23:45 +00:00
bean
2001169405 2008-07-17 Bean <bean123ch@gmail.com>
* conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
	(appleldr_mod_SOURCE): New variavle.
	(appleldr_mod_CFLAGS): Likewise.
	(appleldr_mod_LDFLAGS): Likewise.
	(pci_mod_SOURCES): Likewise.
	(pci_mod_CFLAGS): Likewise.
	(pci_mod_LDFLAGS): Likewise.
	(lspci_mod_SOURCES): Likewise.
	(lspci_mod_CFLAGS): Likewise.
	(lspci_mod_LDFLAGS): Likewise.

	* conf/x86_64-efi.rmk: New file.

	* disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
	macro.
	(grub_efidisk_write): Likewise.

	* include/efi/api.h (efi_call_0): New macro.
	(efi_call_1): Likewise.
	(efi_call_2): Likewise.
	(efi_call_3): Likewise.
	(efi_call_4): Likewise.
	(efi_call_5): Likewise.
	(efi_call_6): Likewise.

	* include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
	grub_rescue_cmd_chainloader.

	* include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
	(grub_pe32_optional_header): Change some fields based on i386 or
	x86_64 platform.
	(GRUB_PE32_PE32_MAGIC): Likewise.

	* include/grub/efi/uga_draw.h: New file.

	* include/grub/elf.h (STN_ABS): New constant.
	(R_X86_64_NONE): Relocation constant for x86_64.
	(R_X86_64_64): Likewise.
	(R_X86_64_PC32): Likewise.
	(R_X86_64_GOT32): Likewise.
	(R_X86_64_PLT32): Likewise.
	(R_X86_64_COPY): Likewise.
	(R_X86_64_GLOB_DAT): Likewise.
	(R_X86_64_JUMP_SLOT): Likewise.
	(R_X86_64_RELATIVE): Likewise.
	(R_X86_64_GOTPCREL): Likewise.
	(R_X86_64_32): Likewise.
	(R_X86_64_32S): Likewise.
	(R_X86_64_16): Likewise.
	(R_X86_64_PC16): Likewise.
	(R_X86_64_8): Likewise.
	(R_X86_64_PC8): Likewise.

	* include/grub/i386/efi/pci.h: New file.

	* include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
	Change it value based on platform.
	(GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
	(GRUB_E820_RAM): Likewise.
	(GRUB_E820_RESERVED): Likewise.
	(GRUB_E820_ACPI): Likewise.
	(GRUB_E820_NVS): Likewise.
	(GRUB_E820_EXEC_CODE): Likewise.
	(GRUB_E820_MAX_ENTRY): Likewise.
	(grub_e820_mmap): New structure.
	(linux_kernel_header): Change the efi field according to different
	kernel version, also field from linux_kernel_header.

	* include/grub/kernel.h (grub_module_info): Add padding for x86_64.

	* include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
	(GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
	(GRUB_PCI_ADDR_SPACE_IO): Likewise.
	(GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
	(GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
	(GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
	(GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
	(GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
	(GRUB_PCI_ADDR_MEM_MASK): Likewise.
	(GRUB_PCI_ADDR_IO_MASK): Likewise.

	* include/grub/x86_64/efi/kernel.h: New file.

	* include/grub/x86_64/efi/loader.h: Likewise.

	* include/grub/x86_64/efi/machine.h: Likewise.

	* include/grub/x86_64/efi/pci.h: Likewise.

	* include/grub/x86_64/efi/time.h: Likewise.

	* include/grub/x86_64/linux.h: Likewise.

	* include/grub/x86_64/setjmp.h: Likewise.

	* include/grub/x86_64/time.h: Likewise.

	* include/grub/x86_64/types.h: Likewise.

	* kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
	 GRUB_TARGET_SIZEOF_VOID_P.

	* kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
	(grub_efi_locate_handle): Likewise.
	(grub_efi_open_protocol): Likewise.
	(grub_efi_set_text_mode): Likewise.
	(grub_efi_stall): Likewise.
	(grub_exit): Likewise.
	(grub_reboot): Likewise.
	(grub_halt): Likewise.
	(grub_efi_exit_boot_services): Likewise.
	(grub_get_rtc): Likewise.

	* kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
	(GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
	(grub_efi_allocate_pages): Wrap efi calls.
	(grub_efi_free_pages): Wrap efi calls.
	(grub_efi_get_memory_map): Wrap efi calls.

	* kern/x86_64/dl.c: New file.

	* kern/x86_64/efi/callwrap.S: Likewise.

	* kern/x86_64/efi/startup.S: Likewise.

	* loader/efi/appleloader.c: Likewise.

	* loader/efi/chainloader.c (cmdline): New variable.
	(grub_chainloader_unload): Wrap efi calls.
	(grub_chainloader_boot): Likewise.
	(grub_rescue_cmd_chainloader): Wrap efi calls, handle
	command line.

	* loader/efi/chainloader_normal.c (chainloader_command):
	Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
	command line.

	* loader/i386/efi/linux.c (allocate_pages): Change allocation
	method.
	(grub_e820_add_region): New function.
	(grub_linux_boot): Construct e820 map from efi map, handle x86_64
	booting.
	(grub_find_video_card): New function.
	(grub_linux_setup_video): New function.
	(grub_rescue_cmd_linux): Probe for video information.

	* normal/x86_64/setjmp.S: New file.

	* term/efi/console.c (map_char): New function.
	(grub_console_putchar): Map unicode char.
	(grub_console_checkkey): Wrap efi calls.
	(grub_console_getkey): Likewise.
	(grub_console_getwh): Likewise.
	(grub_console_gotoxy): Likewise.
	(grub_console_cls): Likewise.
	(grub_console_setcolorstate): Likewise.
	(grub_console_setcursor): Likewise.

	* util/i386/efi/grub-mkimage.c: Add support for x86_64.
2008-07-17 09:50:26 +00:00
proski
59652a208f 2008-07-16 Pavel Roskin <proski@gnu.org>
* util/i386/efi/grub-mkimage.c (get_target_address): Return a
	pointer, not an integer.  This fixes a warning and prevents
	precision loss on 64-bit systems.
	(relocate_addresses): Remove unneeded cast.
2008-07-16 06:55:42 +00:00
proski
fe9870876d Fix typos in ChangeLog and comments 2008-07-13 18:13:36 +00:00
bean
aa24b516a2 2008-07-13 Bean <bean123ch@gmail.com>
* Makefile.in (enable_lzo): New rule.

	* conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.

	* configure.ac (ENABLE_LZO): New option --enable-lzo.

	* boot/i386/pc/lnxboot.S: #include <config.h>.

	* include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
	its value accordding to the compression algorithm used, lzo or lzma.

	* util/i386/pc/grub-mkimage.c (compress_kernel): Use different
	compression algorithm according to configure macro.

	* kern/i386/pc/startup.S (codestart): Likewise.

	* kern/i386/pc/lzma_decode.S: New file.

	* include/grub/lib/LzFind.h: Likewise.

	* include/grub/lib/LzHash.h: Likewise.

	* include/grub/lib/LzmaDec.h: Likewise.

	* include/grub/lib/LzmaEnc.h: Likewise.

	* include/grub/lib/LzmaTypes.h: Likewise.

	* lib/LzFind.c: Likewise.

	* lib/LzmaDec.c: Likewise.

	* lib/LzmaEnc.c: Likewise.
2008-07-13 01:55:15 +00:00
robertmh
9a745147b8 2008-07-12 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
2008-07-12 15:40:50 +00:00
robertmh
d49a4cf6a7 2008-07-11 Robert Millan <rmh@aybabtu.com>
* util/grub.d/40_custom.in: New file. Example on how to add custom
        entries to /etc/grub.d.
        * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
        40_custom (implicitly, by merging all the grub.d rules).
2008-07-11 20:09:14 +00:00
proski
fdecb8fdbb 2008-07-04 Pavel Roskin <proski@gnu.org>
* util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
	of sizeof(long).  This fixes PowerPC image generation on x86_64.
2008-07-04 01:53:52 +00:00
robertmh
8516d2a8e1 2008-07-04 Robert Millan <rmh@aybabtu.com>
This fixes a performance issue when pc & gpt partmap iterators
        didn't abort iteration even after our hook found what it was
        looking for (often causing expensive probes of non-existant drives).

        Some callers relied on previous buggy behaviour, since they would
        rise an error when their own hooks caused early abortion of its
        iteration.

        * kern/device.c (grub_device_open): Improve error message.
        * disk/lvm.c (grub_lvm_open): Likewise.
        * disk/raid.c (grub_raid_open): Likewise.

        * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
        when hook requests it, independently of grub_errno.
        (pc_partition_map_probe): Do not fail when find_func() caused
        early abortion of pc_partition_map_iterate().

        * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
        when hook requests it, independently of grub_errno.
        (gpt_partition_map_probe): Do not fail when find_func() caused
        early abortion of gpt_partition_map_iterate().

        * kern/partition.c (grub_partition_iterate): Abort parent iteration
        when hook requests it, independently of grub_errno.  Do not fail when
        part_map_iterate_hook() caused early abortion of p->iterate().

        * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
        when grub_partition_iterate() returned with non-zero.
2008-07-03 22:56:43 +00:00
proski
11e16b157b 2008-07-02 Pavel Roskin <proski@gnu.org>
* util/grub-editenv.c (cmd_info): Cast argument to long
	explicitly.  ptrdiff_t reduces to int on i386.
2008-07-02 22:00:42 +00:00
proski
cbabfdd464 2008-07-02 Pavel Roskin <proski@gnu.org>
* util/grub-editenv.c (main): Be specific which parameter is
	missing.
2008-07-02 20:51:46 +00:00
proski
08d3ef095f 2008-07-02 Pavel Roskin <proski@gnu.org>
* util/grub-editenv.c (cmd_info): Fix warning in printf format.
2008-07-02 19:11:26 +00:00
bean
d4156eeedf 2008-07-02 Bean <bean123ch@gmail.com>
* include/grub/ieee1275.h (grub_ieee1275_flag): New constant
	GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
	and GRUB_IEEE1275_FLAG_NO_ANSI.

	* kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
	GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
	and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.

	* kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
	immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.

	* kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
	GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.

	* term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
	esc sequence on non ANSI terminal.
	(grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.

	* util/elf/grub-mkimage.c (add_segments): Move ELF header to the
	beginning of file.
2008-07-02 07:38:46 +00:00
bean
2270f77bea 2008-07-02 Bean <bean123ch@gmail.com>
* conf/common.rmk (bin_UTILITIES): Add grub-editenv.
	(grub_editenv_SOURCES): New variable.
	(pkglib_MODULES): Add loadenv.mod.
	(loadenv_mod_SOURCES): New variable.
	(loadenv_mod_CFLAGS): Likewise.
	(loadenv_mod_LDFLAGS): Likewise.

	* include/grub/envblk.h: New file.

	* util/envblk.c: New file.

	* util/grub-editenv.c: New file.

	* commands/loadenv.c: New file.
2008-07-02 07:20:11 +00:00
proski
56c7668bae 2008-06-30 Pavel Roskin <proski@gnu.org>
* util/i386/pc/grub-setup.c (setup): Write install_dos_part and
	install_bsd_part immediately before core.img is embedded or
	modified on disk.  This fixes core.img verification if core.img
	cannot be embedded.
2008-06-30 23:52:24 +00:00
proski
3aefa85781 2008-06-30 Pavel Roskin <proski@gnu.org>
* util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
	core_path to calculate the blocklist.
	Patch from Javier Martín <lordhabbit@gmail.com>
2008-06-30 20:44:58 +00:00
robertmh
674835c830 2008-06-29 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (font_path): Search for fonts in
        /boot/grub first, which is more likely to be readable (we aren't
        deciding where fonts live, just looking for them).
2008-06-29 14:29:48 +00:00
proski
6c2d8df669 2008-06-26 Pavel Roskin <proski@gnu.org>
* util/biosdisk.c (read_device_map): Don't leave dead map
	entries for devices failing stat() check.
2008-06-26 16:15:52 +00:00
proski
f527dbc80b 2008-06-26 Pavel Roskin <proski@gnu.org>
* util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
	core_path_dev for the core.img path on the target device.
2008-06-26 15:29:32 +00:00
robertmh
37aaf354c9 2008-06-26 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
        "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
        Linux image includes no initrd.
2008-06-26 07:03:26 +00:00
robertmh
25ff262a6c 2008-06-21 Javier Mart\303\255n <lordhabbit@gmail.com>
* util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
        call to resolve the core image location that effectively appended the
        name twice.
2008-06-21 14:21:03 +00:00
robertmh
76a2bd44b3 2008-06-21 Robert Millan <rmh@aybabtu.com>
* util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
        call from here ...

        * util/grub.d/10_hurd.in: ... to here ...
        * util/grub.d/10_linux.in: ... and here.
2008-06-21 13:51:19 +00:00
robertmh
73940cec58 2008-06-19 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (prepare_grub_to_access_device): Remove
        check for partition that provides /boot/grub.  Its logic is flawed,
        as it prevents prepare_grub_to_access_device() from being called
        multiple times.
2008-06-19 12:31:42 +00:00
robertmh
3c62a39d26 2008-06-19 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (prepare_grub_to_access_device): Issue
        "insmod" command directly when abstraction modules are needed,
        instead of reliing on GRUB_PRELOAD_MODULES (which had no effect
        since it had already been processed).
2008-06-19 12:29:44 +00:00
robertmh
7847c51e22 2008-06-18 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
        it in prefix.

        * util/i386/pc/grub-setup.c (main): Don't handle prefix at all.  Set
        `must_embed' to 1 when root_dev is a RAID device.  When dest_dev is
        a RAID device, run setup() for all members independently on whether
        LVM abstraction is being used.
        (setup): Don't handle prefix at all; let grub-mkimage take care of it.
        If grub-mkimage has set `*install_dos_part == -2', don't override this
        value.
        Perform *install_dos_part adjustments independently on whether
        we're embedding or not.
        Clarify error message when image is too big for embedding.
        Remove duplicate *install_dos_part stanza.
2008-06-18 17:35:26 +00:00
robertmh
0aac2f79b7 2008-06-17 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (prepare_grub_to_access_device): Use
        /boot/grub for the check in last commit, not /boot (they could be
        different partitions).
2008-06-17 13:35:04 +00:00
robertmh
3cca7ef3b6 2008-06-16 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (prepare_grub_to_access_device): If we were
        asked to setup access for the same partition that provides /boot,
        don't bother using UUIDs since our root already has the value we
        want.
2008-06-16 22:08:03 +00:00
robertmh
347396d87f 2008-06-16 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (convert_system_partition_to_system_disk): Detect
        I2O devices.
        Patch from Sven Mueller <sven@debian.org>.
2008-06-16 20:45:21 +00:00
robertmh
991477f8a7 2008-06-16 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Check for $EUID instead of $UID.
        Reported by Vincent Zweije.
2008-06-16 20:29:55 +00:00
robertmh
50465dd603 2008-06-15 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_linux.in: Use the underliing device for loop-AES
        devices.
        Reported by Max Vozeler.
2008-06-15 20:15:57 +00:00
robertmh
a920728493 2008-06-15 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
        in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
        skipped later.
        (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
        the beginning of the prefix.

        * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
        It is assumed that if we have a memdisk, grub-mkimage has set
        grub_prefix to include the "(memdisk)" drive in it.
2008-06-15 18:21:16 +00:00
robertmh
23a64d8eaf 2008-06-14 Robert Millan <rmh@aybabtu.com>
* util/i386/efi/grub-install.in (modules): Remove `_chain'.
        * util/i386/pc/grub-install.in (modules): Likewise.
2008-06-14 19:04:44 +00:00
robertmh
f5679726cd 2008-06-08 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-setup.c (main): If install drive is an LVM,
        don't append the RAID prefix afterwards.
        Reported by Clint Adams.
2008-06-08 22:54:34 +00:00
proski
dc20b0f9f5 2008-06-07 Pavel Roskin <proski@gnu.org>
* util/biosdisk.c (open_device): Revert last change to the
	function, it broke installation.  The sector needs to be
	different dependent on which device is opened.
2008-06-07 04:30:22 +00:00
robertmh
26a1f8c455 2008-06-06 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (open_device): Do not modify sector offset when
        accessing a partition.  kern/disk.c already handles this for us.
2008-06-06 15:56:46 +00:00
robertmh
25d6b3273b 2008-06-06 Robert Millan <rmh@aybabtu.com>
* util/grub-emu.c (grub_machine_init): Move code in this function from
        here ...
        (main): ... to here (before grub_util_biosdisk_init() call, to prevent
        segfault in case grub_printf() is called).

        * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
        grub_probe.  Update all users not to explicitly add it again.
        (grub_device): New variable; contains corresponding device for grubdir.
        (fs_module, partmap_module, devabstraction_module): Pass
        `--device ${grub_device}' to grub_probe to avoid traversing /dev
        every time.
2008-06-06 15:49:23 +00:00
robertmh
1ad36d3785 2008-06-04 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (get_drive): Rename to ...
        (find_grub_drive): ... this.  Update all users.

        (get_os_disk): Rename to ...
        (convert_system_partition_to_system_disk): ... this.  Update all users.

        (find_drive): Rename to ...
        (find_system_device): ... this.  Update all users.
2008-06-04 13:59:55 +00:00
robertmh
e6a30859dd 2008-06-04 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (get_os_disk): Handle IDA devices.
        * util/grub-mkdevicemap.c (get_mmc_disk_name)
        (make_device_map): Likewise.
2008-06-04 11:20:36 +00:00
robertmh
00c108a446 2008-06-01 Robert Millan <rmh@aybabtu.com>
*  util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
        before dereferencing it.

        * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
        union with fat12/fat16-specific ones.  Add some new fields, including
        `num_serial' for both versions.
        (struct grub_fat_data): Add `uuid' member.
        (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
        names.  Initialize `data->uuid' using `num_serial'.
        (grub_fat_uuid): New function.
        (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.

        * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
        (grub_reiserfs_uuid): New function.
        (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
        member.

        * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
        (grub_xfs_uuid): New function.
        (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
2008-06-01 13:30:00 +00:00
robertmh
1385c5bb3d 2008-06-01 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (prepare_grub_to_access_device): Generate
        code that is backward compatible with pre-uuid search command.
2008-06-01 10:42:48 +00:00
robertmh
69ba137ec8 2008-05-31 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
        * util/update-grub.in: Likewise.
2008-05-31 09:47:06 +00:00
proski
520ae21bb7 2008-05-30 Pavel Roskin <proski@gnu.org>
* util/biosdisk.c (linux_find_partition): Simplify logic and
	make the code more universal.  Keep special processing for
	devfs, but use a simple rule for all other devices.  If the
	device ends with a number, append 'p' and the partition number.
	Otherwise, append only the partition number.
2008-05-30 21:55:31 +00:00
robertmh
5786569b41 2008-05-30 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
        * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
        GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
        the `root' parameter to Linux.
2008-05-30 21:53:17 +00:00
robertmh
51500452b9 2008-05-30 Robert Millan <rmh@aybabtu.com>
* commands/search.c (options): Rename --fs_uuid to --fs-uuid.
        * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
        --fs_uuid with --fs-uuid.
        * util/update-grub.in: Allow filesystem UUID probes to fail (since not
        all filesystems support them).
2008-05-30 20:55:29 +00:00
robertmh
cab63c95dc 2008-05-30 Robert Millan <rmh@aybabtu.com>
* util/grub.d/00_header.in: Remove obsolete comment referencing
        convert_system_path_to_grub_path().
        * util/update-grub.in: Likewise.
        * util/update-grub_lib.in (is_path_readable_by_grub): New function.
        (convert_system_path_to_grub_path): Add a warning message explaining
        that this function is deprecated.  Rely on is_path_readable_by_grub()
        for the readability checks.
        (font_path): Use is_path_readable_by_grub() for the readability
        check rather than convert_system_path_to_grub_path().
2008-05-30 15:09:11 +00:00
robertmh
972e2f7a66 2008-05-30 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (prepare_grub_to_access_device): New function.
        * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
        converting it first.
        * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
        grub.cfg for access to font file, and afterwards call it again to set
        the root device.
2008-05-30 14:39:44 +00:00
robertmh
6219127445 2008-05-30 Robert Millan <rmh@aybabtu.com>
* commands/search.c (options): Add --fs_uuid option.
        (search_fs_uuid): New function.
        (grub_cmd_search): Fix --set argument passing.
        Use search_fs_uuid() when requested via --fs_uuid.
        (grub_search_init): Update help message.
        * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
        and redeclare it as an array of 16-bit words.
        (grub_ext2_uuid): New function.
        (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
        * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
        * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
        (GRUB_DEVICE_BOOT_UUID): New variables.
        (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
        * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
        whenever possible.
        * util/grub.d/10_hurd.in: Avoid explicit use of root drive.  Instead,
        just assume `root' variable has the right value.
        * util/grub.d/10_linux.in: Likewise.
        * util/grub-probe.c (probe): Probe for filesystem UUID when requested
        via PRINT_FS_UUID.
        (main): Recognise `-t fs_uuid' argument.
2008-05-30 11:04:08 +00:00
robertmh
01b73ec8eb 2008-05-30 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (map): Redefine structure to hold information
        about GRUB drive name.
        (get_drive): Reimplement without assuming (and verifiing) BIOS-like
        drive names.
        (call_hook): Remove.
        (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
        member.  Assume drive has partitions.
        (grub_util_biosdisk_open): Access device names via `.device' struct
        member.
        (open_device): Likewise.
        (find_drive): Likewise.
        (read_device_map): Adjust map[] usage to match the new struct
        definition.  Don't check for duplicates (still possible, but not cheap
        anymore).
        (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
        (make_device_name): Remove assumption of BIOS-like drive names.
2008-05-30 10:50:00 +00:00
robertmh
eee96e0837 2008-05-29 Robert Millan <rmh@aybabtu.com>
* util/powerpc/ieee1275/grub-install.in: Move from here ...
        * util/ieee1275/grub-install.in: ... to here.
        * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
        * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
        (grub_install_SOURCES): Likewise.
2008-05-29 16:27:24 +00:00
robertmh
da9a6a9463 2008-05-29 Robert Millan <rmh@aybabtu.com>
* fs/affs.c: Update copyright year.
        * fs/ext2.c: Likewise.
        * fs/fshelp.c: Likewise.
        * fs/hfsplus.c: Likewise.
        * fs/ntfs.c: Likewise.
        * fs/xfs.c: Likewise.
        * include/grub/fshelp.h: Likewise.
        * util/grub-mkdevicemap.c: Likewise.
2008-05-29 13:01:43 +00:00
robertmh
12e65f3ab6 2008-05-28 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Allow chmod call to fail, since /boot/grub/
        might need to be fatfs to support some firmware implementations
        (e.g. OFW or EFI).
2008-05-28 19:55:10 +00:00
robertmh
23023641b8 2008-05-28 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
        devices.
        * util/grub-mkdevicemap.c (get_mmc_disk_name)
        (make_device_map): Likewise.
2008-05-28 19:53:25 +00:00
chrfranke
eedf167fef 2008-05-16 Christian Franke <franke@computer.org>
* util/biosdisk.c: [__CYGWIN__] Add includes.
	(grub_util_biosdisk_open): Use Linux code also for Cygwin.
	(get_os_disk): Move variable declarations to OS specific
	parts to avoid warning.
	[__GNU__] (get_os_disk): Fix /dev/sdXsN case.
	[__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
	(grub_util_biosdisk_get_grub_dev): Use Linux code also for
	Cygwin.
	* util/getroot.c: [__CYGWIN__] Add includes.
	(strip_extra_slashes): Fix "/" case.
	[__CYGWIN__] (get_win32_path): New function.
	[__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
	[__CYGWIN__] (find_root_device): Disable.
	[__CYGWIN__] (get_bootsec_serial): New function.
	[__CYGWIN__] (find_cygwin_root_device): Likewise.
	[__linux__] (grub_guess_root_device): Add early returns to simplify
	structure.
	[__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
	[__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
	check for Linux only.
2008-05-16 21:39:52 +00:00
robertmh
1cf4059a49 2008-05-09 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
        devices.
        * util/grub-mkdevicemap.c (get_virtio_disk_name)
        (make_device_map): Likewise.
        Reported by Aurelien Jarno <aurel32@debian.org>
2008-05-09 12:13:03 +00:00
proski
ed7593907d 2008-05-07 Ian Campbell <ijc@hellion.org.uk>
* util/biosdisk.c (get_os_disk): Recognise xvd type disks.
	* util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
	(make_device_map): Output entries for xvd type disks.
2008-05-07 20:46:57 +00:00
robertmh
b56c4eaa3f 2008-05-07 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
        devices.
        * util/grub-mkdevicemap.c (get_cciss_disk_name)
        (make_device_map): Likewise.
        Reported by Roland Dreier <rdreier@cisco.com>
2008-05-07 20:28:26 +00:00
robertmh
b0346e0f43 2008-05-06 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (make_system_path_relative_to_its_root):
        Do not print a trailing slash (therefore, the root directory is an
        empty string).
        (convert_system_path_to_grub_path): Do not remove trailing slash
        from make_system_path_relative_to_its_root() output.

        * util/i386/pc/grub-install.in: Add trailing slash to output from
        make_system_path_relative_to_its_root().
2008-05-06 13:44:11 +00:00
robertmh
6cf12cbd25 2008-05-06 Robert Millan <rmh@aybabtu.com>
* util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'.  This
        ensures that output lines aren't intermangled with those sent to
        stderr (via grub_util_info()).
        * util/grub-probe.c (grub_refresh): Likewise.
        * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
2008-05-06 13:00:57 +00:00
chrfranke
0fbb311786 2008-05-05 Christian Franke <franke@computer.org>
* util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
	Add Cygwin device names.
	(get_ide_disk_name) [__CYGWIN__]: Likewise.
	(get_scsi_disk_name) [__CYGWIN__]: Likewise.
	(check_device): Return error instead of success on empty name.
	(make_device_map): Move label inside linux specific code to
	prevent compiler warning.
2008-05-05 20:58:53 +00:00
robertmh
8124cdb77e 2008-04-30 Robert Millan <rmh@aybabtu.com>
Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
        * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
        first boot option.
        * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
2008-04-30 11:06:27 +00:00
tschwinge
e89d61e9a8 2008-04-18 Thomas Schwinge <tschwinge@gnu.org>
* util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
	value.
	* util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
2008-04-18 16:42:57 +00:00
robertmh
57490c2bd6 2008-04-18 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Fix syntax error when setting
        `GRUB_PRELOAD_MODULES'.
        Reported by Stephane Chazelas <stephane@artesyncp.com>
2008-04-18 13:20:55 +00:00
robertmh
e54a72f5cb 2008-04-13 Christian Franke <franke@computer.org>
* util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
        to create a floppy emulation boot CD when non emulation mode
        does not work.
        Enable Joliet CD filesystem extension.
2008-04-13 15:13:49 +00:00
robertmh
58cd3d85e0 2008-04-13 Robert Millan <rmh@aybabtu.com>
* gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
        * genmk.rb (partmap): New variable.
        (CLEANFILES, PARTMAPFILES): Add #{partmap}.
        (#{partmap}): New target rule.
        * genpartmaplist.sh: New file.
        * Makefile.in (pkglib_DATA): Add partmap.lst.
        (partmap.lst): New target rule.
        * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
        modules (including all partition maps), instead of preloading them.
2008-04-13 10:55:19 +00:00
robertmh
78b51059c3 2007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
* util/grub.d/30_os-prober.in: New script. Use `os-prober' and
        `linux-boot-prober' (if installed) to detect other operating
        systems which are installed on the computer and add them to
        the boot menu.
        * conf/common.rmk: Build and install 30_os-prober.
2008-04-13 10:51:54 +00:00
robertmh
a02a73c5f8 2008-04-07 Robert Millan <rmh@aybabtu.com>
Revert grub/machine/init.h addition by Pavel (since it breaks on
        i386-ieee1275 and others):
        * util/i386/pc/misc.c: Remove grub/machine/init.h.
        * util/powerpc/ieee1275/misc.c: Likewise.
2008-04-07 17:18:13 +00:00
robertmh
25c024b14d 2008-04-07 Robert Millan <rmh@aybabtu.com>
* util/grub-probe.c (probe): Improve error message.
2008-04-07 15:23:09 +00:00
robertmh
3cbd2f98c6 2008-04-07 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (read_device_map): Skip devices that don't exist
        (this prevents the presence of a bogus entry from ruining the whole
        thing).
2008-04-07 15:00:27 +00:00
proski
36747a6221 2008-04-06 Pavel Roskin <proski@gnu.org>
* util/biosdisk.c: Include grub/util/biosdisk.h.
	* util/grub-fstest.c (execute_command): Make static.
	* util/grub-mkdevicemap.c (check_device): Likewise.
	* util/i386/pc/misc.c: Include grub/machine/init.h.
	* util/powerpc/ieee1275/misc.c: Likewise.
	* util/lvm.c: Include grub/util/lvm.h.
	* util/misc.c: Include grub/kernel.h, grub/misc.h and
	grub/cache.h.
	* util/raid.c: Include grub/util/raid.h.
	(grub_util_getdiskname): Make static.
2008-04-06 17:51:56 +00:00
proski
87a297bf55 2008-04-06 Pavel Roskin <proski@gnu.org>
* util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
	grub_hostfs_fini(), as they are called from grub_init_all() and
	grub_fini_all() respectively.  This fixes an infinite loop in
	grub-fstest due to double registration of hostfs.
	Reported by Christian Franke <Christian.Franke@t-online.de>
2008-04-06 17:16:39 +00:00
proski
070e49e4e8 2008-04-04 Pavel Roskin <proski@gnu.org>
* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
	Fix signedness warnings.
	* kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
	Likewise.
	* util/ieee1275/get_disk_name.c: Include config.h so that
	_GNU_SOURCE is defined and getline() is declared.  Mark an
	unused argument as such.  Fix a signedness warning.
2008-04-04 06:45:07 +00:00
proski
828a27686e 2008-04-01 Pavel Roskin <proski@gnu.org>
* util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek().  The
	later is obsolete, potentially dangerous and sets a bad example.
	* util/i386/efi/grub-mkimage.c (make_header): Likewise.
	* util/misc.c (grub_util_get_image_size): Likewise.
2008-04-02 01:49:18 +00:00
proski
4cb68e896b 2008-03-30 Pavel Roskin <proski@gnu.org>
* disk/host.c: Include grub/misc.h to fix a warning.
	* util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
	warnings about implicit declarations.
2008-03-30 18:32:15 +00:00
proski
8790bb0466 2008-03-30 Pavel Roskin <proski@gnu.org>
* fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
	variable.
	* include/grub/i386/loader.h: Change declaration of
	grub_linux_boot() to match what grub_loader_set() expects.
	* util/getroot.c (grub_guess_root_device): Return const char* to
	fix a warning.
	* util/grub-probe.c (probe): Fix a warning about uninitialized
	abstraction_name variable.
	* util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
	second argument as unused to fix a warning.
2008-03-30 18:04:40 +00:00
proski
0ecef90d9b 2008-03-30 Pavel Roskin <proski@gnu.org>
* util/update-grub_lib.in: Define datarootdir, since Autoconf
	2.60 and newer uses it to define datadir.
2008-03-30 06:22:31 +00:00
proski
0bf6d401c1 2008-03-30 Pavel Roskin <proski@gnu.org>
* commands/sleep.c: Fix warning about implicit declaration.
	* disk/memdisk.c: Likewise.
	* loader/aout.c: Likewise.
	* loader/i386/bsd_normal.c: Likewise.
	* util/grub-probe.c: Likewise.
2008-03-30 06:13:45 +00:00
robertmh
b00ab6967e 2008-02-28 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Reorganise terminal validity check.  Accept
        `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
        Based on suggestion by Franklin PIAT.
2008-02-28 10:39:42 +00:00
robertmh
79ca2d78d4 2008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
* include/grub/util/getroot.h (grub_util_check_block_device): Export new
        function.
        * util/getroot.c (grub_util_check_block_device): New function that
        returns the given argument if it is a block device and returns NULL else.
        * util/grub-probe.c (argument_is_device): New variable.
        (probe): Promote device_name from a variable to an argument. Receive
        device_name from grub_util_check_block_device() if path is NULL and from
        grub_guess_root_device() else. Do not free() device_name anymore.
        (options): Introduce new parameter '-d, --device'.
        (main): Add description of the new parameter to the help screen.
        Rename path variable to argument. Set argument_is_device if the '-d'
        option is given. Pass argument to probe() depending on
        argument_is_device.
2008-02-28 10:11:06 +00:00
robertmh
b93bdb0f6d 2008-02-19 Robert Millan <rmh@aybabtu.com>
* partmap/gpt.c: Include `<grub/gpt_partition.h>'.
        (grub_gpt_partition_type_empty): Redefine with macro from
        `<grub/gpt_partition.h>'.
        (gpt_partition_map_iterate): Adjust partition type comparison.

        Export `entry' as partmap-specific `part.data' struct.
        (grub_gpt_header, grub_gpt_partentry): Move from here ...

        * include/grub/gpt_partition.h (grub_gpt_header)
        (grub_gpt_partentry): ... to here (new file).

        * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.

        (grub_gpt_partition_type_bios_boot): New const variable, defined
        with macro from `<grub/gpt_partition.h>'.

        (setup): Replace `first_start' with `embed_region', which keeps
        track of the embed region (and is partmap-agnostic).

        Replace find_first_partition_start() with find_usable_region(),
        which finds a usable region for embedding using partmap-specific
        knowledge (supports PC/MSDOS and GPT).

        Fix all assumptions that the embed region start at sector 1, using
        `embed_region.start' from now on.  Similarly, use `embed_region.end'
        rather than `first_start' to calculate available size.

        In grub_util_info() message, replace "into after the MBR" with an
        indication of the specific sector our embed region starts at.
2008-02-19 14:00:11 +00:00
robertmh
32b0fc496b 2008-02-17 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
        set `first_start' to 0 for non-PC/MSDOS partition maps.
2008-02-17 10:32:02 +00:00
robertmh
aca6350297 2008-02-16 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
        do not assume partition map is PC/MSDOS before performing checks that
        are specific to that layout.
2008-02-16 22:31:35 +00:00
robertmh
c74493e01f 2008-02-12 Robert Millan <rmh@aybabtu.com>
* util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
        /dev (like it is done for /dev/mapper).  This doesn't provide support
        for EVMS, but at least it is now easy to identify the problem when it
        arises.
2008-02-12 22:45:58 +00:00
robertmh
d0db4b0454 2008-02-11 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
        (grub_util_biosdisk_get_grub_dev): Check open() exit status by
        comparing it with -1, not 0.
2008-02-11 15:47:35 +00:00
robertmh
68807e5f37 2008-02-09 Robert Millan <rmh@aybabtu.com>
* configure.ac: Probe for `help2man'.
        * Makefile.in (builddir): New variable.
        (HELP2MAN): Likewise.  Set to `true' when @HELP2MAN@ doesn't provide it,
        or otherwise add a few flags/options to it.
        (install-local): For every executable utility or script that is
        installed, invoke $(HELP2MAN) to install a manpage based on --help
        output.

        * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
        that it doesn't prevent --help from working in build tree.

        * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
        with `bug-grub@gnu.org'.
        * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
        * util/update-grub.in (usage): New function.
        Implement proper argument check, with support for --help and --version
        (as well as existing -y).
2008-02-09 12:31:11 +00:00
robertmh
b92f0c1843 2008-02-09 Robert Millan <rmh@aybabtu.com>
* disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function.  Construct
        and return a grub_diskmemberlist_t composed of LVM physical volumes.
        [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.

        * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function.  Construct
        and return a grub_diskmemberlist_t composed of physical array members.
        [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.

        * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
        prototype.
        [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
        [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
        [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.

        * util/grub-probe.c (probe): Move partmap probing code from here ...
        (probe_partmap): ... to here.
        (probe): Use probe_partmap() once for the disk we're probing, and
        additionally, when such disk contains a memberlist() struct member,
        once for each disk that is contained in the structure returned by
        memberlist().
2008-02-09 10:49:29 +00:00
robertmh
91a4bf68ff 2008-02-09 Robert Millan <rmh@aybabtu.com>
* util/grub-probe.c (main): When `verbosity > 1', set `debug'
        environment variable to 'all' in order to obtain debug output from
        non-util/ code.
        * util/i386/pc/grub-setup.c (main): Likewise.
2008-02-09 10:46:37 +00:00
robertmh
b37a922267 2008-02-08 Robert Millan <rmh@aybabtu.com>
* disk/raid.c: Update copyright.
        * fs/cpio.c: Likewise.
        * include/grub/raid.h: Likewise.
        * loader/i386/pc/multiboot.c: Likewise.
        * util/hostfs.c: Likewise.
2008-02-08 21:27:55 +00:00
robertmh
1ec8425d1d 2008-02-07 Christian Franke <franke@computer.org>
* util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
        instead of fseek and ftell to support large files.
        (grub_hostfs_read): Likewise.
2008-02-07 22:14:33 +00:00
robertmh
9216e0e742 2008-02-06 Robert Millan <rmh@aybabtu.com>
* util/grub-probe.c (probe): Simplify partmap probing (with the
        assumption that the first word up to the underscore equals to
        the module name).
2008-02-06 21:06:34 +00:00
bean
c32865bfcf 2008-02-05 Bean <bean123ch@gmail.com>
* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
	address of entry.
	(grub_multiboot_load_elf64): Likewise.
	(grub_multiboot): Initialize mbi structure.

	* util/grub-fstest.c: Don't include unused header file script.h.

	* conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the begginning
	of file.
	(grub_fstest_SOURCES): Likewise.
2008-02-06 16:02:44 +00:00
bean
99fadbaafd 2008-02-04 Bean <bean123ch@gmail.com>
* Makefile.in (enable_grub_fstest): New variable.

	* conf/common.rmk (grub_fstest_init.lst): New rule.
	(grub_fstest_init.h): Likewise.
	(grub_fstest_init.c): Likewise.
	(util/grub-fstest.c_DEPENDENCIES): New variable.
	(grub_fstest_SOURCES): Likewise.

	* configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.

	* util/grub-fstest.c: New file.
2008-02-04 08:45:07 +00:00
okuji
bf567c5067 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
Make grub-setup handle a separate root device.

    * util/i386/pc/grub-setup.c (setup): Always open the root device,
    so that the root device can be compared with the destination
    device.
    When embedding the core image, if the root and destination devices
    are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
    0xFF.
    When not embedding, set ROOT_DRIVE to 0xFF.
2008-02-03 21:53:32 +00:00
robertmh
e0ca067708 2008-02-03 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
        use `cdboot.img' for cdrom images.
2008-02-03 18:30:20 +00:00
robertmh
3b3f662905 2008-02-03 Robert Millan <rmh@aybabtu.com>
* util/grub.d/00_header.in: Issue scripting commands for GRUB to
        only setup gfxterm when `font' command has succeeded.
2008-02-03 18:27:41 +00:00
proski
078522ab28 2008-01-31 Pavel Roskin <proski@gnu.org>
* util/powerpc/ieee1275/grub-mkrescue.in: New file.
	* conf/powerpc-ieee1275.rmk: Add grub-mkrescue support for
	PowerPC.
	* DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
2008-01-31 17:09:39 +00:00
robertmh
11cc30ac40 2008-01-28 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
        * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
        `ifndef GRUB_MOD_GAP' hack.
        * util/elf/grub-mkimage.c (add_segments): Likewise.
2008-01-28 16:58:13 +00:00
robertmh
962ca13330 * util/elf/grub-mkimage.c (add_segments): Likewise. 2008-01-27 23:16:58 +00:00
proski
3f51de772d * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
to create a gap between _end and the modules added to the image
with grub-mkrescue.  That fixes "CLAIM failed" on PowerMAC.
* kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
* util/elf/grub-mkimage.c (add_segments): Likewise.
2008-01-27 20:30:58 +00:00
robertmh
2a9525e6c3 2008-01-25 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
        make all filesystem sources appear together (possibly fixing omissions
        while at it).
        * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
        * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
        * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

        * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.  Additionally,
        add `kern/file.c'.
        * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
        * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
        * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
        * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.

        * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
        (probe): Add a sanity check to make sure of our ability to read
        requested files when probing for filesystem type.

        * genmk.rb: Update copyright year (2007).

        * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
        (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
        (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
        (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
        (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
        : Remove function prototypes.
2008-01-25 22:33:57 +00:00
robertmh
06ab530333 2008-01-23 Robert Millan <rmh@aybabtu.com>
* kern/i386/pc/init.c (make_install_device): When memdisk image is
        present, "(memdisk)/boot/grub" becomes the default prefix.

        * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
        a memdisk tarball with all the modules.  Add --overlay=DIR option that
        allows users to overlay additional files into the image.
2008-01-23 11:25:52 +00:00
robertmh
261bd4bc56 2008-01-21 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
        (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
        address.
        (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
        a C macro.
        * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
        Indicates start of upper memory.
        * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
        (generate_image): Abort when image size is big enough to corrupt
        upper memory.

        * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
        (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
        * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
        instead of hardcoding 0xA0000.
        * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
        (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
        instead of hardcoding 0xA0000.
2008-01-21 15:48:27 +00:00
robertmh
55a581dc06 2008-01-21 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
        (pkglib_MODULES): Add `memdisk.mod'.
        (memdisk_mod_SOURCES): New variable.
        (memdisk_mod_CFLAGS): Likewise.
        (memdisk_mod_LDFLAGS): Likewise.

        * disk/memdisk.c: New file.

        * include/grub/disk.h (grub_disk_dev_id): Add
        `GRUB_DISK_DEVICE_MEMDISK_ID'.

        * include/grub/i386/pc/kernel.h
        (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
        (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
        (grub_kernel_image_size): New variable declaration.
        (grub_total_module_size): Likewise.
        (grub_memdisk_image_size): Likewise.

        * include/grub/i386/pc/memory.h
        (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.

        * include/grub/kernel.h: Include `<grub/symbol.h>'.
        (grub_arch_memdisk_addr): New variable declaration.
        (grub_arch_memdisk_size): Likewise.

        * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
        (grub_arch_memdisk_size): Likewise.

        * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
        (codestart): Replace hardcoded `0x100000' with
        `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.

        * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
        (generate_image): Add `memdisk_path' parameter.  When `memdisk_path' is
        not NULL, append the contents of the file it refers to, at the end of
        the compressed kernel image.  Initialize `grub_memdisk_image_size'
        variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
        (options): Add "memdisk"|'m' option.
        (main): Parse --memdisk|-m option, and pass user-provided path as
        parameter to generate_image().
2008-01-20 23:20:36 +00:00
robertmh
47bf09a4ed 2008-01-15 Christian Franke <franke@computer.org>
* util/grub-emu.c: Replace <argp.h> by <getopt.h>.
        (argp_program_version): Remove variable.
        (argp_program_bug_address): Likewise.
        (options): Convert from struct argp_option to struct option.
        (struct arguments): Remove.
        (parse_opt): Remove.
        (usage): New function.
        (main): Replace struct args members by simple variables.
        Replace argp_parse() by getopt_long().
        Add switch to evaluate options.
        Add missing "(...)" around root_dev in prefix string.
2008-01-15 11:49:22 +00:00
robertmh
e622c55943 2008-01-14 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_linux.in (prefix): Define.
        (exec_prefix): Likewise.  Both definitions are later used by `libdir'.
2008-01-14 12:24:48 +00:00