Commit graph

1253 commits

Author SHA1 Message Date
robertmh
057bc4acaf 2008-08-06 Robert Millan <rmh@aybabtu.com>
* conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
        * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
2008-08-06 12:27:28 +00:00
bean
2b99f12345 2008-08-06 Bean <bean123ch@gmail.com>
* fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
	(grub_pxefs_fs_int): Remove dummy definition.
	(grub_pxefs_open): Use data->block_size to store the current block
	size setting.
	(grub_pxefs_read): Use block size stored in data->block_size. As the
	value of grub_pxe_blksize can be changed after the file is opened.
2008-08-06 06:17:14 +00:00
bean
9f0234cb9a 2008-08-06 Bean <bean123ch@gmail.com>
* fs/i386/pc/pxe.c (curr_file): new variable.
	(grub_pxefs_open): Simply the handling of pxe file system. Don't
	require the dummy internal file system anymore.
	(grub_pxefs_read): Removed.
	(grub_pxefs_close): Likewise.
	(grub_pxefs_fs_int): Likewise.
	(grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
	connection when we switch file.
	(grub_pxefs_close_int): Renamed to grub_pxefs_close.
2008-08-06 04:05:12 +00:00
robertmh
a55d42e0e0 2008-08-06 Robert Millan <rmh@aybabtu.com>
* conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
        `halt.mod'.
        (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
        (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.

        * kern/i386/halt.c: New file.
        * kern/i386/reboot.c: Likewise.
        * include/grub/i386/reboot.h: Likewise.
        * include/grub/i386/halt.h: Likewise.

        * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
        Include `<grub/cpu/halt.h>'.
        * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
        [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.

        * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
        (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
        (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
        (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
        (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
        (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
        from here ...
        * include/grub/i386/at_keyboard.h: ... to here.
2008-08-06 00:20:04 +00:00
robertmh
24371d2620 2008-08-05 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
        * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
        * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
        `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
        `kern/generic/millisleep.c'.

        * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
        instead of grub_get_rtc().
        (grub_tsc_init): Initialize `tsc_boot_time'.

        * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
        (grub_machine_init): Use grub_tsc_init() rather than
        installing an RTC-based handler via grub_install_get_time_ms().

        * kern/i386/pit.c: New file.
        * include/grub/i386/pit.h: Likewise.
2008-08-05 20:24:00 +00:00
bean
9e7007b310 2008-08-05 Bean <bean123ch@gmail.com>
* boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.

	* conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
	(pkglib_MODULES): Add pxe.mod and pxecmd.mod.
	(pxe_mod_SOURCES): New macro.
	(pxe_mod_CFLAGS): Likewise.
	(pxe_mod_LDFLAGS): Likewise.
	(pxecmd_mod_SOURCES): Likewise.
	(pxecmd_mod_CFLAGS): Likewise.
	(pxecmd_mod_LDFLAGS): Likewise.

	* kern/i386/pc/startup.S (grub_pxe_scan): New function.
	(grub_pxe_call): Likewise.

	* include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.

	* commands/i386/pc/pxecmd.c: New file.

	* disk/i386/pc/pxe.c: Likewise.

	* include/grub/i386/pc/pxe.h: Likewise.
2008-08-05 15:15:59 +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
marco_g
bf06a93f70 Urgh, and now actually add the files :-) 2008-08-05 12:30:42 +00:00
marco_g
9c2ff3eefe 2008-08-05 Colin D Bennett <colin@gibibit.com>
High resolution timer support.  Implemented for x86 CPUs using TSC.
	Extracted generic grub_millisleep() so it's linked in only as needed.
	This requires a Pentium compatible CPU; if the RDTSC instruction is
	not supported, then it falls back on the generic grub_get_time_ms()
	implementation that uses the machine's RTC.

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
	`kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
	`kern/generic/millisleep.c'.

	* conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
	`kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.

	* conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
	`kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.

	* conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.

	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
	`kern/generic/millisleep.c'.

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

	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.

	* kern/generic/rtc_get_time_ms.c: New file.

	* kern/generic/millisleep.c: New file.
 	
	* kern/misc.c: Don't include
	<kern/time.h> anymore.
	(grub_millisleep_generic): Removed.

	* commands/sleep.c (grub_interruptible_millisleep): Uses
	grub_get_time_ms() instead of grub_get_rtc().

	* include/grub/i386/tsc.h (grub_get_tsc): New file.  New inline
	function.
	(grub_cpu_is_cpuid_supported): New inline function.
	(grub_cpu_is_tsc_supported): New inline function.
	(grub_tsc_init): New function prototype.
	(grub_tsc_get_time_ms): New function prototype.

	* kern/i386/tsc.c (grub_get_time_ms): New file.

	* include/grub/time.h: Include <grub/types.h.
	(grub_millisleep_generic): Removed.
	(grub_get_time_ms): New prototype.
	(grub_install_get_time_ms): New prototype.
	(grub_rtc_get_time_ms): New prototype.

	* kern/time.c (grub_get_time_ms): New function.
	(grub_install_get_time_ms): New function.

	* kern/i386/efi/init.c: Include <grub/cpu/tsc.h>.  Don't include
	<grub/time.h> anymore.
	(grub_millisleep): Removed.
	(grub_machine_init): Call grub_tsc_init.

	* kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
	get_time_ms() implementation.

	* kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
	(ieee1275_get_time_ms): New function.
	(grub_machine_init): Install get_time_ms() implementation.

	* kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
	(grub_machine_init): Call grub_tsc_init().
	(grub_millisleep): Removed.
 
	* kern/ieee1275/init.c (grub_millisleep): Removed.
	(grub_machine_init): Install ieee1275_get_time_ms()
	implementation.
	(ieee1275_get_time_ms): New function.
	(grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
	real work.
2008-08-05 11:54:37 +00:00
marco_g
9ec92aaf1f 2008-08-05 Marco Gerards <marco@gnu.org>
* disk/ata.c: Include <grub/pci.h>.
	(enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
	(grub_ata_initialize): Rewritten.
	(grub_ata_device_initialize): New function.
2008-08-05 09:41:10 +00:00
proski
8d23f50773 2008-08-04 Pavel Roskin <proski@gnu.org>
* kern/main.c: Include grub/mm.h.
2008-08-04 22:54:06 +00:00
proski
825aa57ad0 Typos, spacing 2008-08-04 22:50:09 +00:00
robertmh
5e15ee3d38 2008-08-04 Robert Millan <rmh@aybabtu.com>
* conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
        (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
        corruption problem).
2008-08-04 11:38:45 +00:00
robertmh
a9053f8f5d 2008-08-04 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
        warnings introduced in my last commit.
2008-08-04 09:30:36 +00:00
robertmh
dd19c7d795 2008-08-03 Robert Millan <rmh@aybabtu.com>
Make PCI available on all i386 architectures.

        * include/grub/i386/pc/pci.h: Move from here ...
        * include/grub/i386/pci.h: ... to here.

        * include/grub/i386/pc/pci.h: Remove.
        * include/grub/i386/efi/pci.h: Remove.
        * include/grub/x86_64/efi/pci.h: Remove.

        * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
        `<grub/cpu/pci.h>'.

        * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
        (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
        (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.

        * conf/i386-ieee1275.rmk: Likewise.
2008-08-03 18:14:07 +00:00
robertmh
e14a6184ba 2008-08-03 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
        (grub_console_setcursor): Make it possible to set cursor off.
2008-08-03 17:09:21 +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
2d52f57f10 2008-08-03 Robert Millan <rmh@aybabtu.com>
* kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
        instead of `grub_install_dos_part' to determine whether a drive needs
        to be prepended to prefix (`grub_install_dos_part' is not reliable,
        because it can be overriden when loading GRUB via Multiboot).
2008-08-02 23:24:34 +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
93808428ce 2008-08-02 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
        of informational grub_dprintf() calls.
2008-08-02 15:51:12 +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
a927cc7383 2008-08-02 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/multiboot.c (playground, forward_relocator)
        (backward_relocator): New variables.  Used to allocate and relocate
        the payload, respectively.
        (grub_multiboot_load_elf32): Load into heap instead of requested
        address, install the appropiate relocator code in each bound of
        the payload, and set the entry point such that
        grub_multiboot_real_boot() will jump to one of them.

        * kern/i386/loader.S (grub_multiboot_payload_size)
        (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
        (grub_multiboot_payload_entry_offset): New variables.
        (grub_multiboot_real_boot): Set cpu context to what the relocator
        expects, and jump to the relocator instead of the payload.

        * include/grub/i386/loader.h (grub_multiboot_payload_size)
        (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
        (grub_multiboot_payload_entry_offset): Export.
2008-08-02 12:12:14 +00:00
bean
b15d8a0cc6 2008-08-01 Bean <bean123ch@gmail.com>
* normal/menu_entry.c (editor_getline): Don't return the original
	string as result, as it will be released by lexer once it has done
	using it.
2008-08-01 18:18:32 +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
bean
9175e93d11 2008-08-01 Bean <bean123ch@gmail.com>
* conf/common.rmk (pkglib_MODULES): Add bufio.mod.
	(bufio_mod_SOURCES): New macro.
	(bufio_mod_CFLAGS): Likewise.
	(bufio_mod_LDFLAGS): Likewise.

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

	* io/bufio.c: Likewise.

	* video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
	(grub_video_reader_png): Use grub_buffile_open to open file.

	* video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
	(grub_video_reader_jpeg): Use grub_buffile_open to open file.

	* video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
	(grub_video_reader_tga): Use grub_buffile_open to open file.

	* font/manager.c: Include <grub/bufio.h>.
	(add_font): Use grub_buffile_open to open file.
2008-08-01 04:06:55 +00:00
robertmh
3d8383e7a5 2008-07-31 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
        ELF segments, use a macro for arbitrarily accessing any of them instead
        of preparing a pointer that allows access to one at a time.
        (grub_multiboot_load_elf64): Likewise.
2008-07-31 20:48:40 +00:00
bean
16e641b612 2008-07-31 Bean <bean123ch@gmail.com>
* boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
	GRUB_KERNEL_MACHINE_DATA_END.
2008-07-31 14:15:53 +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
robertmh
4ca049a365 2008-07-30 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/vga_text.c (grub_console_cls): Use
        grub_console_gotoxy() to go back to beginning of the screen.
        Found by Patrick Georgi <patrick.georgi@coresystems.de>
2008-07-29 23:29:03 +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
e93e4679ce 2008-07-29 Bean <bean123ch@gmail.com>
* normal/main.c (get_line): Fix buffer overflow bug.
2008-07-29 15:07:47 +00:00
robertmh
41694fd019 2008-07-28 Robert Millan <rmh@aybabtu.com>
* partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
        (struct grub_apple_header): New struct.  Describes the layout of
        the partmap header.
        (apple_partition_map_iterate): Check the header magic as well as the
        partition magic (which was already being checked).
2008-07-28 22:37:32 +00:00
proski
cfd0b4e6fa 2008-07-28 Pavel Roskin <proski@gnu.org>
* genmk.rb: Add a warning to the beginning of the output that
	it's a generated file and should not be edited.
2008-07-28 22:35:40 +00:00
proski
c298def0bf Fix spacing 2008-07-28 19:27:42 +00:00
robertmh
93cce01644 2008-07-28 Robert Millan <rmh@aybabtu.com>
* disk/raid.c (grub_raid_scan_device): Do not abort when two disks
        with the same number are found, just use issue a warning with
        grub_dprintf(), as this error has been reported to be non-fatal.
2008-07-28 09:25:37 +00:00
robertmh
cd1df915ea 2008-07-27 Robert Millan <rmh@aybabtu.com>
* disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
        information.
2008-07-27 20:57:43 +00:00
bean
b70a8427ce 2008-07-27 Bean <bean123ch@gmail.com>
* fs/fat.c (GRUB_FAT_MAXFILE): New constant.
	(grub_fat_find_dir): Ignore case when comparing filename.
2008-07-27 14:46:45 +00:00
bean
8f5e379ff3 2008-07-27 Bean <bean123ch@gmail.com>
* fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
	smallino, as it's more descriptive, and i8count can be confused with
	the other field count.
	(grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
	inode type.
2008-07-27 14:20:49 +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
robertmh
8749e9e524 2008-07-27 Felix Zielcke <fzielcke@z-51.de>
* commands/help.c: Include <grub/term.h>.
        (TERM_WIDTH): Removed.  Updated all users.
2008-07-27 13:04:02 +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
proski
51cc519338 Typo fix 2008-07-24 23:37:22 +00:00
proski
01453bfcd7 2008-07-24 Pavel Roskin <proski@gnu.org>
* include/grub/types.h: Use __builtin_bswap32() and
	__builtin_bswap64() with gcc 4.3 and newer.
2008-07-24 23:36:13 +00:00
chrfranke
6af9849fbd Remove trailing whitespace. 2008-07-24 19:40:05 +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
7810e74787 2008-07-24 Bean <bean123ch@gmail.com>
* configure.ac: Fixed a bug caused by the previous cygwin patch,
	variable `target_platform' should be `platform'.
2008-07-24 18:14:41 +00:00
bean
42290e17c5 2008-07-24 Bean <bean123ch@gmail.com>
* video/reader/png.c (DELFATE_HLIT_MAX): Change value.
	(grub_png_init_fixed_block): New function.
	(grub_png_decode_image_data): Handle fixed huffman code compression.
2008-07-24 15:02:36 +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
18eeaf04d7 2008-07-21 Bean <bean123ch@gmail.com>
* kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
	a20. Run keyboard test last, as it will cause macbook to halt.
2008-07-21 10:40:01 +00:00
proski
b095e2adbf 2008-07-18 Pavel Roskin <proski@gnu.org>
* kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P.  We cannot
	load foreign architecture modules correctly anyway.  Keep
	support for loading host architecture modules, whether we
	compile them or not.
2008-07-18 16:11:35 +00:00
proski
3f4ce737bb 2008-07-17 Pavel Roskin <proski@gnu.org>
* configure.ac: Use -m32 or -m64 regardless of whether we had to
	change target_cpu.  The compiler default can mismatch target_cpu
	in any case.
2008-07-18 03:21:47 +00:00
proski
c11f6d160d Typo fix 2008-07-18 01:13:58 +00:00
proski
4ad2d0499c 2008-07-17 Pavel Roskin <proski@gnu.org>
* disk/efi/efidisk.c: Fix format warnings on x86_64.
	* kern/efi/efi.c: Likewise.
2008-07-18 01:11:33 +00:00
proski
f6130a12bd 2008-07-17 Pavel Roskin <proski@gnu.org>
* aclocal.m4 (grub_PROG_TARGET_CC): New macro.  Check if the
	target compiler is functional.
	* configure.ac: Call grub_PROG_TARGET_CC once all target flags
	are set up.
2008-07-17 20:19:55 +00:00
proski
58393a2d35 2008-07-17 Pavel Roskin <proski@gnu.org>
* configure.ac: Default to efi platform for x86_64-apple.  Allow
	powerpc64 CPU, default to ieee1275 platform for it.  Split CPU
	adjustments from the rest, only do them if target is not
	explicitly given.  Merge other adjustments with the final sanity
	check.  Remove an extraneous check for supported CPU.  Be
	specific which CPU and which platform is not supported.
2008-07-17 18:13:57 +00:00
proski
737feb3579 2008-07-17 Pavel Roskin <proski@gnu.org>
* configure.ac: Default to pc platform for x86_64.
2008-07-17 15:31:16 +00:00
robertmh
546f966aa5 2008-07-17 Robert Millan <rmh@aybabtu.com>
Partial LinuxBIOS -> Coreboot rename.

        * conf/i386-linuxbios.rmk: Renamed to ...
        * conf/i386-coreboot.rmk: ... this.
        * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
        * configure.ac: Accept coreboot as input platform (but maintain
        compatibility with linuxbios).
        * include/grub/i386/linuxbios: Renamed to ...
        * include/grub/i386/coreboot: ... this.
2008-07-17 15:05:12 +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
ef29405511 2008-07-16 Pavel Roskin <proski@gnu.org>
* loader/i386/efi/linux.c (allocate_pages): Fix warnings in
	format strings.
2008-07-16 07:06:11 +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
506b2b3e2b 2008-07-15 Pavel Roskin <proski@gnu.org>
* kern/i386/ieee1275/init.c: Include grub/cache.h.
2008-07-15 13:29:53 +00:00
proski
62ead89c20 2008-07-15 Pavel Roskin <proski@gnu.org>
* term/ieee1275/ofconsole.c: Disable code unused on i386.
2008-07-15 13:27:02 +00:00
proski
c4cd51d7a4 2008-07-15 Pavel Roskin <proski@gnu.org>
* kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
	Fix comparison between signed and unsigned.
2008-07-15 13:22:27 +00:00
proski
0d3d8f2843 2008-07-15 Pavel Roskin <proski@gnu.org>
* include/grub/i386/ieee1275/console.h: Declare
	grub_console_init() and grub_console_fini().
2008-07-15 04:37:32 +00:00
proski
8804b286f4 2008-07-15 Pavel Roskin <proski@gnu.org>
* loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
	It's empty and unused.
2008-07-15 04:17:48 +00:00
proski
ee01cf35f0 2008-07-15 Pavel Roskin <proski@gnu.org>
* fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
	beginning to avoid warnings with some compilers.
2008-07-15 04:12:28 +00:00
proski
afc3b5d7c4 2008-07-15 Pavel Roskin <proski@gnu.org>
* loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
	[__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
2008-07-15 04:07:37 +00:00
proski
407aceb4da 2008-07-14 Pavel Roskin <proski@gnu.org>
* kern/env.c (grub_register_variable_hook): Don't copy empty
	string, it leaks memory.  Pass "" to grub_env_set(), it should
	handle constant strings.
2008-07-14 05:03:19 +00:00
proski
e4e8eaa5b3 2008-07-14 Pavel Roskin <proski@gnu.org>
* commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
	* commands/cmp.c (grub_cmd_cmp): Likewise.
	* kern/dl.c (grub_dl_flush_cache): Likewise.
	(grub_dl_load_core): Likewise.
	* kern/elf.c (grub_elf32_load_phdrs): Likewise.
	(grub_elf64_load_phdrs): Likewise.
2008-07-14 04:46:19 +00:00
proski
fe9870876d Fix typos in ChangeLog and comments 2008-07-13 18:13:36 +00:00
proski
d4e2dad356 2008-07-13 Pavel Roskin <proski@gnu.org>
* lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
	between signed and unsigned.
	(LzmaEnc_Finish): Fix warning about an unused parameter.
2008-07-13 17:46:25 +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
bean
4ae821ac9a 2008-07-13 Bean <bean123ch@gmail.com>
* fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
	(grub_ext4_extent_header): New structure.
	(grub_ext4_extent): Likewise.
	(grub_ext4_extent_idx): Likewise.
	(grub_ext4_find_leaf): New function.
	(grub_ext2_read_block): Handle extents.
2008-07-13 01:13:12 +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
0059cf6fdd 2008-07-11 Pavel Roskin <proski@gnu.org>
* commands/read.c (grub_getline): Fix invalid memory access.
	Don't add newline to the variable value.
2008-07-11 17:35:06 +00:00
proski
947414b4b9 2008-07-11 Pavel Roskin <proski@gnu.org>
* term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
	[!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
	(serial_hw_get_port): Check validity of the port number.
	(grub_cmd_serial): Check return value of serial_hw_get_port().
2008-07-11 16:40:45 +00:00
proski
62a02d00d6 2008-07-07 Pavel Roskin <proski@gnu.org>
* boot/i386/pc/diskboot.S (notification_string): Replace
	"Loading kernel" with just "loading".  This is shorter, less
	confusing and saves a few bytes for possible future changes.
2008-07-07 15:11:06 +00:00
proski
ea387a48e9 2008-07-05 Pavel Roskin <proski@gnu.org>
* disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
	size for ATAPI devices, they are undefined.  Output sector
	number in decimal form.
2008-07-06 01:24:19 +00:00
proski
3e5581b0bf 2008-07-05 Pavel Roskin <proski@gnu.org>
* disk/ata.c: Use named constants for status bits.
2008-07-06 00:57:36 +00:00
proski
bcd35b903d 2008-07-04 Pavel Roskin <proski@gnu.org>
* kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
	grub_addr_t before casting it to the void pointer to fix a
	warning.  Non-addressable regions are discarded earlier.
	(grub_arch_modules_addr): Cast _end to grub_addr_t.
	* kern/i386/linuxbios/table.c: Include grub/misc.h.
	(check_signature): Don't shadow table_header.
	(grub_linuxbios_table_iterate): Cast numeric constants to
	grub_linuxbios_table_header_t.
	* include/grub/i386/linuxbios/init.h: Add noreturn attribute to
	grub_stop().
2008-07-04 03:26:10 +00:00
proski
af58ab3dbc 2008-07-04 Pavel Roskin <proski@gnu.org>
* kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
	prevent warnings.
2008-07-04 03:01:55 +00:00
proski
1759aa57d4 2008-07-04 Pavel Roskin <proski@gnu.org>
* include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
	pointer, which can cause warnings.  Support 64-bit addresses.
2008-07-04 02:12:54 +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
277d0de997 2008-07-03 Pavel Roskin <proski@gnu.org>
* disk/ata.c (grub_ata_pio_write): Check status before writing,
	like we do in grub_ata_pio_read().
	(grub_ata_readwrite): Always write individual sectors.  Fix the
	sector count for the remainder.
	(grub_ata_write): Enable writing to ATA devices.  Correctly
	report error for ATAPI devices.
2008-07-03 20:53:00 +00:00
proski
e43fc69027 2008-07-02 Pavel Roskin <proski@gnu.org>
* boot/i386/pc/cdboot.S: Add _start entry to fix a linker
	warning.
2008-07-03 00:52:28 +00:00
proski
f707af4216 2008-07-02 Pavel Roskin <proski@gnu.org>
* disk/ata.c (grub_ata_readwrite): Don't increment sector number
	for every read sector, we already increment it for the whole
	batch.  This fixes reading more than 256 sectors at once.
2008-07-02 23:58:06 +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
b8fbce0ab9 2008-07-02 Pavel Roskin <proski@gnu.org>
* disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
	(memdisk): Make memdisk_orig_addr a pointer.
2008-07-02 20:18:51 +00:00
proski
c9c8e6063f 2008-07-02 Pavel Roskin <proski@gnu.org>
* fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
	for file offsets, use grub_off_t instead.  Fix printf format
	warnings.
2008-07-02 20:02:54 +00:00
proski
ca62e5986f 2008-07-02 Pavel Roskin <proski@gnu.org>
* fs/reiserfs.c: Remove #warning, TODO list items don't belong
	there.  Real unexpected warnings should not drown in the noise
	about known problems.
2008-07-02 19:37:09 +00:00
proski
ce8d1766c2 2008-07-02 Pavel Roskin <proski@gnu.org>
* commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
	grub_disk_addr_t for memory addresses.
2008-07-02 19:30:56 +00:00
proski
00c7a56aeb 2008-07-02 Pavel Roskin <proski@gnu.org>
* loader/aout.c (grub_aout_load): Cast load_addr to pointer
	explicitly to fix a warning.
2008-07-02 19:22:35 +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
proski
cb71ba20e9 2008-07-02 Pavel Roskin <proski@gnu.org>
* Makefile.in (MODULE_LDFLAGS): New variable.
	* aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro.  Check if
	the linker accepts --build-id=none.
	* configure.ac: Call grub_PROG_LD_BUILD_ID_NONE.  Substitute
	MODULE_LDFLAGS.
	* genmk.rb: Use MODULE_LDFLAGS when linking modules.
2008-07-02 19:03:23 +00:00
proski
d4c9b428e1 2008-07-02 Pavel Roskin <proski@gnu.org>
* fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
	those in Linux XFS code.  Provide a way to access 64-bit parent
	inode.
	(grub_xfs_iterate_dir): Use the new names.  Avoid reading past
	the end of struct grub_xfs_dir_header.
2008-07-02 18:40:32 +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
d89b76343e 2008-07-01 Pavel Roskin <proski@gnu.org>
* include/multiboot2.h (struct multiboot_tag_module): Use char,
	not unsigned char.  This fixes warnings and is consistent with
	other tags.
2008-07-02 01:17:43 +00:00
proski
bf1835b13c 2008-07-01 Pavel Roskin <proski@gnu.org>
* disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
2008-07-02 01:07:37 +00:00
proski
8222a04b6f 2008-07-01 Pavel Roskin <proski@gnu.org>
* normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
2008-07-02 01:00:37 +00:00
proski
6a42d99dd5 2008-07-01 Pavel Roskin <proski@gnu.org>
* term/tparm.c (analyze): Always set *popcount.
2008-07-02 00:54:18 +00:00
proski
10b159d1b2 2008-07-01 Pavel Roskin <proski@gnu.org>
* loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
	cast to fix a warning.
2008-07-02 00:39:55 +00:00
proski
b8789f6c20 2008-07-01 Pavel Roskin <proski@gnu.org>
* loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
	cast to suppress a warning.
2008-07-02 00:37:48 +00:00
proski
29d7e38ad8 2008-07-01 Pavel Roskin <proski@gnu.org>
* fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
	grub_fshelp_read_file() expects.
2008-07-01 23:33:49 +00:00
proski
f341f6692c 2008-07-01 Pavel Roskin <proski@gnu.org>
* fs/fat.c: Fix UUID calculation on big-endian systems.  We
	write uuid as a 32-bit value in CPU byte order, so declare and
	use it as such.
2008-07-01 23:18:25 +00:00
proski
0e9e51ec4f 2008-07-01 Pavel Roskin <proski@gnu.org>
* disk/raid.c: Cast grub_dprintf() arguments to unsigned long
	long if the format specifier expects it.
	* partmap/gpt.c (gpt_partition_map_iterate): Likewise.
	* partmap/pc.c (pc_partition_map_iterate): Likewise.
	* fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
	long to fix a warning.
	* fs/reiserfs.c (grub_reiserfs_read): Change casts in
	grub_dprintf() arguments to fix warnings.
2008-07-01 23:02:16 +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
5444088da6 2008-06-29 Robert Millan <rmh@aybabtu.com>
* fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro.  Maps filesystem
        block to disk block.
        (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
        Patch from Niels B\303\266hm <bitbucket@arcor.de>
2008-06-29 21:33:38 +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
proski
f19dbdb73f Remove trailing spaces and tabs, replace spaces with tabs when needed 2008-06-26 15:02:58 +00:00
robertmh
aebe3d13bb 2008-06-26 Robert Millan <rmh@aybabtu.com>
* disk/fs_uuid.c: New file.
        * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
        (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
        (fs_uuid_mod_LDFLAGS): New variables.
        * include/grub/disk.h (grub_disk_dev_id): Add
        `GRUB_DISK_DEVICE_UUID_ID'.
        * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
        implement iterate().
2008-06-26 14:26:07 +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
650e1c79b9 2008-06-19 Robert Millan <rmh@aybabtu.com>
* kern/main.c (grub_main): Export `prefix' variable inmediately
        after it has been set by grub_machine_set_prefix().
2008-06-19 20:08:57 +00:00
robertmh
6ce63911ab 2008-06-19 Robert Millan <rmh@aybabtu.com>
* commands/search.c (search_label, search_fs_uuid, search_file): Print
        search result when not saving to variable, not the other way around.
        When saving to variable, abort iteration as soon as a match is found.
2008-06-19 13:09:16 +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
proski
47395a42d7 2008-06-19 Pavel Roskin <proski@gnu.org>
* conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
	changed.  This is needed in case GRUB_LIBDIR changes.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-linuxbios.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
2008-06-19 05:14:16 +00:00
proski
a145ac2d9a 2008-06-18 Pavel Roskin <proski@gnu.org>
* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
	kernel_elf_symlist.c to symlist.c for consistency with other
	architectures.  Update all users.
	* conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
2008-06-19 01:04:59 +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
b23e5644cf 2008-06-17 Robert Millan <rmh@aybabtu.com>
* term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
        (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
        variables.
        (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
        values in grub_ofconsole_normal_color and
        grub_ofconsole_highlight_color (they're not directly related to
        background and foreground).
        (grub_ofconsole_setcolorstate): Extract background and foreground
        from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
2008-06-17 15:27:14 +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
bean
d31a32a14c 2008-06-16 Bean <bean123ch@gmail.com>
* fs/ext2.c (grub_ext2_blockgroup): Revert to pre journal state.
	(grub_ext2_read_block): Likewise.
	(grub_ext2_read_inode): Likewise.
	(grub_ext2_mount): Likewise.
	(grub_ext2_close): Likewise.
	(grub_ext3_get_journal): Removed.

	* fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre journal state.
	(grub_reiserfs_read_symlink): Likewise.
	(grub_reiserfs_mount): Likewise.
	(grub_reiserfs_open): Likewise.
	(grub_reiserfs_read): Likewise.
	(grub_reiserfs_close): Likewise.
	(grub_reiserfs_get_journal): Removed.

	* fs/fshelp.c (grub_fshelp_read): Removed.
	(grub_fshelp_map_block): Likewise.

	* include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
	(grub_fshelp_journal): Likewise.
	(grub_fshelp_read): Likewise.
	(grub_fshelp_map_block): Likewise.
2008-06-16 19:02:08 +00:00
proski
3540a760ea 2008-06-16 Pavel Roskin <proski@gnu.org>
* conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
	floating point anymore.
	* include/grub/powerpc/libgcc.h: Leave only necessary exports.
2008-06-16 05:00:50 +00:00
proski
fe6b695a02 Fix typos 2008-06-16 01:10:14 +00:00
proski
95614c84f8 2008-06-15 Pavel Roskin <proski@gnu.org>
* commands/ls.c (grub_ls_list_files): Use integer calculations
	for human readable format, avoid floating point use.
	* kern/misc.c (grub_ftoa): Remove.
	(grub_vsprintf): Remove floating point support.
2008-06-16 00:42:48 +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
a7cbd45a07 2008-06-15 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
        Initialize keyboard controller after registering the terminal, so that
        grub_printf() can be called from grub_keyboard_controller_init().
2008-06-15 14:19:34 +00:00
robertmh
21cf716ad4 2008-06-15 Robert Millan <rmh@aybabtu.com>
* fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
        extent-btree which is written as big endian on disk.
        Reported by Alain Greppin  <al@chilibi.org>.
2008-06-15 13:31:18 +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
proski
d687651c07 2008-06-13 Pavel Roskin <proski@gnu.org>
* commands/ls.c (grub_ls_list_files): Fix format warnings.
2008-06-13 21:51:14 +00:00
bean
dfe9ddd4cb 2008-06-13 Bean <bean123ch@gmail.com>
* commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.

	* fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.

	* fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
	to indicate sparse block.
2008-06-13 06:47:46 +00:00
proski
e6d1a308ed 2008-06-12 Pavel Roskin <proski@gnu.org>
* fs/ext2.c (grub_ext2_read_inode): Don't normalize block
	number, grub_fshelp_read() does it for us.
2008-06-12 16:13:21 +00:00
proski
16ae7781ef 2008-06-12 Pavel Roskin <proski@gnu.org>
* fs/fshelp.c (grub_fshelp_read): New function.  Implement
	linear disk read with journal translation.
	* fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
	* include/grub/fshelp.h: Declare grub_fshelp_read().
2008-06-12 14:48:27 +00:00
proski
40fd3a2b99 2008-06-09 Pavel Roskin <proski@gnu.org>
* fs/minix.c (grub_minix_mount): Handle error reading
	superblock.
2008-06-09 15:32:43 +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
robertmh
ce525529f9 2008-06-08 Robert Millan <rmh@aybabtu.com>
Based on description from Pavel:
        * kern/disk.c (grub_disk_check_range): Rename to ...
        (grub_disk_adjust_range): ... this.  Add a comment explaining the
        tasks performed by this function.
2008-06-08 19:46:43 +00:00
robertmh
ad4936a035 2008-06-08 Robert Millan <rmh@aybabtu.com>
* include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
        `num_serial' (for consistency with other variables).
        (struct grub_ntfs_data): Add `uuid' member.
        * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
        (grub_ntfs_uuid): New function.
        (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
2008-06-08 19:18:58 +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
c5e3cfba13 2008-06-06 Robert Millan <rmh@aybabtu.com>
Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
        rest of GRUB, and breakage doesn't happen if its value were modified.

        * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
        Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
        a constant (same value).
        * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
        `GRUB_KERNEL_MACHINE_DATA_END' (same value).
2008-06-06 16:29:19 +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
9ece62fb9f 2008-06-05 Robert Millan <rmh@aybabtu.com>
* normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
        is found, print it (same layout as with labels).
2008-06-05 21:27:54 +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
c682dfd71d 2008-05-31 Robert Millan <rmh@aybabtu.com>
* disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
        floppies after everything else, to ensure floppy drive isn't accessed
        unnecessarily (patch from Bean).
2008-05-31 21:14:27 +00:00
robertmh
b7db5d47d9 2008-05-31 Robert Millan <rmh@aybabtu.com>
* commands/search.c (search_label, search_fs_uuid, search_file): Do
        not print device names when we were asked to set a variable.
2008-05-31 21:08:04 +00:00
robertmh
6e037aa956 2008-05-31 Robert Millan <rmh@aybabtu.com>
* term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
        using "cursor-on" and "cursor-off" commands (understood at least by
        the Open Firmware flavour on OLPC).
2008-05-31 18:09:14 +00:00
robertmh
41305bc8f7 2008-05-31 Michael Gorven <michael@gorven.za.net>
* term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
        on and off sequences.
2008-05-31 15:46: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
811d3878d8 2008-05-30 Robert Millan <rmh@aybabtu.com>
* fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
        grub_printf() flags, since we're printing in units of 2 bytes.
2008-05-30 20:47:43 +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
proski
22f16596ae 2008-05-30 Pavel Roskin <proski@gnu.org>
* conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
	compiling execute.c doesn't need grub_script.tab.h anymore.
	(normal/command.c_DEPENDENCIES): Likewise.
	(normal/function.c_DEPENDENCIES): Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-linuxbios.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.
2008-05-30 04:20:48 +00:00
proski
d1dff95dc7 2008-05-29 Pavel Roskin <proski@gnu.org>
* disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
	when scanning metadata for volume group name.
2008-05-30 03:57:16 +00:00
proski
528ad8f272 2008-05-29 Pavel Roskin <proski@gnu.org>
* include/grub/script.h: Don't include grub_script.tab.h.  It's
	a generated file, which may only be included from the files with
	DEPENDENCIES rules in the makefile.  Don't use typedef YYSTYPE,
	use union YYSTYPE, as the later allows forward declaration.
	* normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
2008-05-30 03:26:56 +00:00
robertmh
47248e0825 2008-05-29 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
        (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
        [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
        (grub_console_checkkey): Add grub_dprintf() call to report unknown
        scan codes.
2008-05-29 18:15:27 +00:00
robertmh
ee63252905 2008-05-29 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
        control key combinations.
2008-05-29 17:40:27 +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
bean
887d2619bf 2008-05-20 Bean <bean123ch@gmail.com>
* fs/fshelp.c (grub_fshelp_map_block): New function.
	(grub_fshelp_find_file): Use 64-bit type for pos and block address.
	Use `>>' and `&' operator to avoid 64-bit divide and modulo.

	* include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
	(GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
	(grub_fshelp_journal): New structure.
	(grub_fshelp_map_block): New function prototype.
	(grub_fshelp_read_file): Use grub_disk_addr_t as block type.
	(grub_fshelp_map_block): Likewise.

	* fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
	(EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
	(EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
	(EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
	(EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
	(EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
	(EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
	(EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
	(EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
	(EXT3_JOURNAL_FLAG_DELETED): Likewise.
	(EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
	(grub_ext2_sblock): New members for journal support.
	(grub_ext3_journal_header): New structure.
	(grub_ext3_journal_revoke_header): Likewise.
	(grub_ext3_journal_block_tag): Likewise.
	(grub_ext3_journal_sblock): Likewise.
	(grub_fshelp_node): New members logfile and journal.
	(grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
	grub_fshelp_map_block to get real block number.
	(grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
	number.
	(grub_ext2_read_inode): Likewise.
	(grub_ext3_get_journal): New function.
	(grub_read_inode): Initialize journal using grub_ext3_get_journal.
	(grub_ext2_close): Release memory used by journal.

	* fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
	(REISERFS_MAGIC_DESC_BLOCK): New macro.
	(grub_reiserfs_transaction_header): Renamed to
	grub_reiserfs_description_block, replace field data with real_blocks.
	(grub_reiserfs_commit_block): New structure.
	(grub_reiserfs_data): New member journal.
	(grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
	number.
	(grub_reiserfs_read_symlink): Likewise.
	(grub_reiserfs_iterate_dir): Likewise.
	(grub_reiserfs_open): Likewise.
	(grub_reiserfs_read): Likewise.
	(grub_reiserfs_get_journal): New function.
	(grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
	three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
	using grub_reiserfs_get_journal.
	(grub_reiserfs_close): Release memory used by journal.

	* fs/affs.c (grub_affs_read_block): Change block type to
	grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.

	* fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.

	* fs/hfsplus.c (grub_hfsplus_read_block): Likewise.

	* fs/ntfs.c (grub_ntfs_read_block): Likewise.

	* fs/udf.c (grub_udf_read_block): Change block type to
	grub_disk_addr_t. Use type cast to avoid warning.

	* fs/xfs.c (grub_xfs_read_block): Likewise.
2008-05-20 05:00:53 +00:00
chrfranke
b7c6bed50e 2008-05-16 Christian Franke <franke@computer.org>
* commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
	to ensure that break with ESC will always work.
	* commands/sleep.c (grub_interruptible_millisleep): Likewise.
	Remove ESC from keyboard queue.
2008-05-16 21:55:29 +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
bean
a079699e97 2008-05-15 Bean <bean123ch@gmail.com>
* kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
	keyboard hang problem in apple's intel mac.
2008-05-15 11:51:22 +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
7f8866edc1 2008-05-07 Robert Millan <rmh@aybabtu.com>
* disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
        grub_strstr() call.  Correct a few mistakes in failure path handling.
2008-05-07 12:39: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
robertmh
094c01d09c 2008-04-29 Robert Millan <rmh@aybabtu.com>
* docs/grub.cfg: New file (example GRUB configuration).
2008-04-29 12:17:33 +00:00
robertmh
329ce2a5f5 2008-04-26 Robert Millan <rmh@aybabtu.com>
* DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST).  Add
        `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
        and `disk/ieee1275/nand.c'.
2008-04-26 17:57:56 +00:00
robertmh
f4b1fc0217 2008-04-26 Robert Millan <rmh@aybabtu.com>
* DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST).
2008-04-26 17:55:41 +00:00
bean
25f16ec1f6 2008-04-25 Bean <bean123ch@gmail.com>
* Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
	i386-linuxbios.

	* commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
	change the buffer size to 4096 for cdrom device.

	* conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
	and nand.mod.
	(_linux_mod_SOURCES): New variable.
	(_linux_mod_CFLAGS): Likewise.
	(_linux_mod_LDFLAGS): Likewise.
	(linux_mod_SOURCES): Likewise.
	(linux_mod_CFLAGS): Likewise.
	(linux_mod_LDFLAGS): Likewise.
	(nand_mod_SOURCES): Likewise.
	(nand_mod_CFLAGS): Likewise.
	(nand_mod_LDFLAGS): Likewise.

	* disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
	GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
	type property. (nand device in olpc don't have this property)

	* include/grub/disk.h (grub_disk_dev_id): New macro
	GRUB_DISK_DEVICE_NAND_ID.

	* include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
	function prototype.
	(grub_rescue_cmd_initrd): Likewise.

	* include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
	(linux_kernel_params): Add new member ofw_signature, ofw_num_items,
	ofw_cif_handler and ofw_idt, adjust padding number.

	* include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
	GRUB_MACHINE_IEEE1275 is defined.

	* include/grub/ieee1275/ieee1275.h (grub_available_iterate):
	Use NESTED_FUNC_ATTR attribute on the hook parameter.

	* kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
	on nested function heap_init.
	(grub_upper_mem): New variable for i386-ieee1275.
	(grub_get_extended_memory): New function for i386-ieee1275.
	(grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.

	* kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
	NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
	property.

	* loader/i386/ieee1275/linux.c: New file.

	* loader/i386/ieee1275/linux_normal.c: New file.

	* disk/ieee1275/nand.c: New file.
2008-04-25 19:41:51 +00:00
tschwinge
e0c5dacbf4 Typo fixes. 2008-04-19 17:47:21 +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
602566f64a 2008-04-18 Robert Millan <rmh@aybabtu.com>
Restructures early code path on ieee1275 to unify grub_main() as
        the first C function that is executed in every platform.

        * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
        * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
        cmain().
        * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
        * kern/ieee1275/cmain.c (cmain): Rename to ...
        * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
        * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
        at the beginning.
2008-04-18 15:53:20 +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
1977517daf 2008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
        section into account, newer toolchains generate unique build ids
        * configure.ac: remove the test for --build-id=none acceptance,
        we want build ids to bre preserved
        * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
        far from other sections don't cause the raw binary images grow
        size
2008-04-17 14:14:10 +00:00
robertmh
bfb1f1a2bc 2008-04-15 Robert Millan <rmh@aybabtu.com>
* disk/lvm.c: Update copyright year.
        * kern/misc.c: Likewise.
2008-04-15 13:28:14 +00:00
chaac
01979850ed 2008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
* disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
        there is no memory left for physical volume name.
2008-04-14 19:39:04 +00:00
chaac
0a1150e26b 2008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
* disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
        volume name mapping to support bigger than 9 character names properly.
2008-04-14 19:08:38 +00:00
robertmh
82ead3fe32 2008-04-13 Robert Millan <rmh@aybabtu.com>
* disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
        as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
2008-04-13 18:40:25 +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
9fe8603472 2008-04-13 Robert Millan <rmh@aybabtu.com>
* kern/misc.c (grub_strncat): Fix off-by-one error.
        Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>

        * kern/env.c (grub_env_context_close): Clear current context, not
        previous one.
        Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>

        * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
2008-04-13 14:58:42 +00:00
robertmh
7ceeee39d7 2008-04-13 Robert Millan <rmh@aybabtu.com>
Improve robustness when handling LVM.

        * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
        (and leave `*p' unmodified).
        (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
        through it.
        (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
        iterating through it.
        (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
        through it.
        (grub_lvm_scan_device): Check the return value (and fail gracefuly
        when due) on each grub_lvm_getvalue() or grub_strstr() call.
        Don't assume `vg->pvs != NULL' when iterating through it.
2008-04-13 12:22:22 +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
a91627b40a 2008-04-12 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/init.c: Move from here ...
        * kern/ieee1275/init.c: ... to here.  Update all users.

        * kern/powerpc/ieee1275/cmain.c: Move from here ...
        * kern/ieee1275/cmain.c: ... to here.  Update all users.

        * kern/powerpc/ieee1275/openfw.c: Move from here ...
        * kern/ieee1275/openfw.c: ... to here.  Update all users.

        * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
        * loader/ieee1275/multiboot2.c: ... to here.  Update all users.
2008-04-12 21:09:36 +00:00
proski
322562eae8 2008-04-10 Pavel Roskin <proski@gnu.org>
* configure.ac: Always use "_cv_" in cache variables for
	compatibility with Autoconf 2.62.
2008-04-10 22:26:50 +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
f6ce7629ad 2008-04-05 Pavel Roskin <proski@gnu.org>
* bus/pci.c (grub_pci_iterate): For multifunction devices, probe
	all 8 functions.  Otherwise, probe function 0 only.
2008-04-05 07:20:29 +00:00
proski
8b088a4c48 2008-04-04 Pavel Roskin <proski@gnu.org>
* commands/lspci.c (grub_lspci_iter): Print the bus number
	correctly.
2008-04-05 02:07:11 +00:00
proski
4f657021a9 2008-04-04 Pavel Roskin <proski@gnu.org>
* commands/lspci.c (grub_pci_classes): Fix typos.
	(grub_lspci_iter): Don't print func twice.  Print vendor ID
	before device ID, as it's normally done.
2008-04-04 08:07:07 +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
26887f221a 2008-04-02 Pavel Roskin <proski@gnu.org>
* genkernsyms.sh.in: Use more robust assignments for CC and
	srcdir.  Quote srcdir.
	* gensymlist.sh.in: Likewise.  Assert at the compile time that
	the symbol table is not empty.
2008-04-02 07:29:59 +00:00
proski
ba7328dcba 2008-04-02 Pavel Roskin <proski@gnu.org>
* disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
	* fs/cpio.c (grub_cpio_read): Likewise.
2008-04-02 06:10:44 +00:00
proski
4b6e1995be 2008-04-01 Pavel Roskin <proski@gnu.org>
* disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
	* disk/host.c (grub_host_open): Likewise.
	* disk/loopback.c (grub_loopback_open): Likewise.
	* disk/memdisk.c (grub_memdisk_open): Use a string pointer for
	disk->id as in disk/host.c, not a multi-character constant.
2008-04-02 04:25:41 +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
2bb4fb47e8 2008-04-01 Pavel Roskin <proski@gnu.org>
* disk/loopback.c (options): Improve help for "--partitions".
2008-04-02 01:31:11 +00:00
proski
0f582c6b88 2008-04-01 Pavel Roskin <proski@gnu.org>
* normal/arg.c (grub_arg_show_help): Fix spacing of the long
	options to align them with the short options, e.g. "echo -e".
2008-04-02 01:27:09 +00:00
bean
a33224e04b 2008-03-31 Bean <bean123ch@gmail.com>
* video/reader/png.c (grub_png_data): New member is_16bit and
	image_data.
	(grub_png_decode_image_header): Detect 16 bit png image.
	(grub_png_convert_image): New function to convert 16 bit image to 8 bit.
	(grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
	(grub_video_reader_png): Release memory occupied by image_data.

	* fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
	4096 bytes.
	(grub_nfs_mount): Skip the test for sector per cluster.

	* include/grub/ntfs.h (MAX_SPC): Removed.
2008-03-31 12:00:48 +00:00
bean
86cb4f54b4 2008-03-31 Bean <bean123ch@gmail.com>
* conf/common.rmk (pkgdata_MODULES): Add afs.mod.
	(grub_probe_SOURCES): Add fs/afs.c.
	(grub_fstest_SOURCES): Likewise.
	(afs_mod_SOURCES): New variable.
	(afs_mod_CFLAGS): Likewise.
	(afs_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
	(grub_emu_SOURCES): Likewise.

	* 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.

	* fs/afs.c: New file.
2008-03-31 11:18:00 +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
9a3f3296d5 2008-03-30 Pavel Roskin <proski@gnu.org>
* loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
	missing grub_error() call.
2008-03-30 16:17:17 +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
proski
7cdacf9717 2008-03-30 Pavel Roskin <proski@gnu.org>
* commands/i386/cpuid.c (has_longmode): Make static.
	* disk/i386/pc/biosdisk.c (cd_drive): Likewise.
	* include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
2008-03-30 05:05:01 +00:00
proski
17c74c21f0 2008-03-30 Pavel Roskin <proski@gnu.org>
* kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
	GDT.  This is more robust, as %ds can change.
	(grub_biosdisk_rw_int13_extensions): Don't clear %ds before
	calling real_to_prot().
	(grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
2008-03-30 04:13:47 +00:00
proski
80a3e68b59 2008-03-28 Pavel Roskin <proski@gnu.org>
* kern/i386/pc/startup.S: Assert that uncompressed functions
	don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
	* kern/i386/pc/lzo1x.S: Remove all .align directives in the
	code, as they push parts of the code (error handlers) beyond
	GRUB_KERNEL_MACHINE_RAW_SIZE.  Speed is not as important in this
	code as correctness and size.
2008-03-28 17:16:46 +00:00
proski
77bcd27207 2008-03-28 Pavel Roskin <proski@gnu.org>
* kern/i386/pc/startup.S
	(grub_biosdisk_get_diskinfo_int13_extensions): When converting
	data block address to the real mode, keep offset minimal.  This
	works around a bug in AWARD BIOS on old Athlon systems, which
	makes CD detection hang.
2008-03-28 17:06:29 +00:00
proski
c5dfd43b5f 2008-03-26 Pavel Roskin <proski@gnu.org>
* normal/color.c (grub_parse_color_name_pair): Make `name' a
	const.
	* include/grub/normal.h: Add grub_parse_color_name_pair()
	declaration.
2008-03-26 13:01:02 +00:00
bean
bf962df2da 2008-03-24 Bean <bean123ch@gmail.com>
* disk/i386/pc/biosdisk.c (cd_start): Removed.
	(cd_count): Removed.
	(cd_drive): New variable.
	(grub_biosdisk_get_drive): Don't check for (cdN) device.
	(grub_biosdisk_call_hook): Likewise.
	(grub_biosdisk_iterate): Change cdrom detection method.
	(grub_biosdisk_open): Replace cd_start with cd_drive.
	(GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
	detect cdrom device.

	* include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
	Removed.
	(GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
	(GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
	(GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
	(GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
	(GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
	(GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
	(GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
	(grub_biosdisk_cdrp): New structure.
	(grub_biosdisk_get_cdinfo_int13_extensions): New function.

	* include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.

	* kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
	device.

	* kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
	New function.
2008-03-24 04:13:37 +00:00
robertmh
68e7fc7aa8 2008-03-20 Robert Millan <rmh@aybabtu.com>
Remove 2 TiB limit in ata.mod.
        * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
        (grub_ata_dumpinfo): Print sector count with 0x%llx.
        (grub_ata_identify): Interpret `&info16[100]' as a pointer to
        grub_uint64_t instead of grub_uint32_t.
2008-03-20 21:00:15 +00:00
bean
38ad2cf5a5 2008-03-05 Bean <bean123ch@gmail.com>
* loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
	(grub_multiboot): Set boot device.

	* boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
2008-03-05 05:09:35 +00:00
bean
2b89344ec4 2008-03-02 Bean <bean123ch@gmail.com>
* fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
	symlink_buffer.
2008-03-02 08:16:52 +00:00
robertmh
90fd32d1bd Fix wrong commit date. 2008-03-01 22:03:15 +00:00
okuji
87a95d1fb3 2008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
    texinfo.tex.

    * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
    modified.

    * docs/fdl.texi: New file.

    * docs/mdate-sh: New file. Copied from gnulib.
    * docs/texinfo.tex: Likewise.

    * config.guess: Updated from gnulib.
    * install-sh: Likewise.
2008-03-01 17:27:51 +00:00
robertmh
7dc15d8e6a 2008-02-28 Robert Millan <rmh@aybabtu.com>
* conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
        (aout_mod_SOURCES): New variable.
        (aout_mod_CFLAGS): Likewise.
        (aout_mod_LDFLAGS): Likewise.

        * conf/i386-ieee1275.rmk: Likewise.
2008-02-28 13:04:35 +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
bean
0d16e571f1 2008-02-24 Bean <bean123ch@gmail.com>
* fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
	(GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
	(GRUB_ISO9660_VOLDESC_SUPP): Likewise.
	(GRUB_ISO9660_VOLDESC_PART): Likewise.
	(GRUB_ISO9660_VOLDESC_END): Likewise.
	(grub_iso9660_primary_voldesc): New member escape.
	(grub_iso9660_data): New member joliet.
	(grub_iso9660_convert_string): New function.
	(grub_iso9660_mount): Detect joliet extension.
	(grub_iso9660_iterate_dir): Convert filename when joliet is detected.
	(grub_iso9660_iso9660_label): Likewise.

	* conf/common.rmk (pkgdata_MODULES): Add udf.mod.
	(grub_setup_SOURCES): Add fs/udf.c.
	(grub_fstest_SOURCES): Likewise.
	(udf_mod_SOURCES): New variable.
	(udf_mod_CFLAGS): Likewise.
	(udf_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
	(grub_emu_SOURCES): Likewise.

	* 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.

	* fs/udf.c: New file.
2008-02-24 15:34:15 +00:00
robertmh
8a594a17c7 2008-02-24 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
        (normal/lexer.c_DEPENDENCIES): New variables.
        * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
        (normal/lexer.c_DEPENDENCIES): Likewise.
        * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
        (normal/lexer.c_DEPENDENCIES): Likewise.
        * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
        (normal/lexer.c_DEPENDENCIES): Likewise.
        * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
        (normal/lexer.c_DEPENDENCIES): Likewise.
        * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
        (normal/lexer.c_DEPENDENCIES): Likewise.
2008-02-24 15:06:30 +00:00
robertmh
2dc33c03b0 2008-02-23 Robert Millan <rmh@aybabtu.com>
* partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
        since they were intended to be in hex.  This didn't break previously
        because of a bug in gpt_partition_map_iterate() (see below).

        (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
        when checking the validity of GPT header.
        Remove `partno', since it always provides the same information as `i'.
2008-02-23 20:33:32 +00:00
okuji
f6f4cfb011 2008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
* include/grub/efi/time.h: Fix a wrong comment.
2008-02-21 21:22:23 +00:00
proski
79ff665f5e 2008-02-19 Pavel Roskin <proski@gnu.org>
* kern/rescue.c (grub_enter_rescue_mode): Improve initial
	message.
2008-02-19 19:52:42 +00:00
bean
d38e24c285 2008-02-19 Bean <bean123ch@gmail.com>
* conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
	(aout_mod_SOURCES): New variable.
	(aout_mod_CFLAGS): Likewise.
	(aout_mod_LDFLAGS): Likewise.
	(_bsd_mod_SOURCES): New variable.
	(_bsd_mod_CFLAGS): Likewise.
	(_bsd_mod_LDFLAGS): Likewise.
	(bsd_mod_SOURCES): New variable.
	(bsd_mod_CFLAGS): Likewise.
	(bsd_mod_LDFLAGS): Likewise.

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

	* include/grub/i386/loader.h (grub_unix_real_boot): New function.

	* include/grub/i386/bsd.h: New file.

	* include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
	to make it public.

	* kern/elf.c (grub_elf32_load): Get the physical address after the hook
	function is called, so that it's possible to change it inside the hook.
	(grub_elf64_load): Likewise.
	(grub_elf_file): Don't close the file if elf header is not found.
	(grub_elf_close): Close the file if grub_elf_file fails (The new
	grub_elf_file won't close it).
	(grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
	(grub_elf64_size): Likewise.

	* kern/i386/loader.S (grub_unix_real_boot): New function.

	* loader/aout.c: New file.

	* loader/i386/bsd.c: New file.

	* loader/i386/bsd_normal.c: New file.

	* loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.

	* loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
	can test othe formats.
2008-02-19 16:40:45 +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
66cb40f6c1 2008-02-19 Robert Millan <rmh@aybabtu.com>
* DISTLIST: Replace `commands/ieee1275/halt.c' and
        `commands/ieee1275/reboot.c' with `commands/halt.c' and
        `commands/reboot.c'.
        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
        (halt_mod_SOURCES): Likewise.
        * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
        (halt_mod_SOURCES): Likewise.
2008-02-19 07:33:41 +00:00
robertmh
b7202015a7 2008-02-17 Christian Franke <franke@computer.org>
* commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
2008-02-17 13:52:18 +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
0de8be863b 2008-02-13 Robert Millan <rmh@aybabtu.com>
* conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
        `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
        * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
2008-02-13 20:04:37 +00:00
okuji
c3db83643a 2008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac: Only a cosmetic change on the handling of
      -fno-stack-protector.
2008-02-13 03:35:48 +00:00
boeglin
f714229e34 2008-02-12 Alexandre Boeglin <alex@boeglin.org>
* conf/i386-efi.rmk (grub_emu_SOURCES): Replace commands/i386/pc/halt.c and
  reboot.c by commands/halt.c and reboot.c.
  (grub_install_SOURCES): Add halt.mod and reboot.mod.
  (halt_mod_SOURCES): New variable.
  (halt_mod_CFLAGS): Likewise.
  (halt_mod_LDFLAGS): Likewise.
  (reboot_mod_SOURCES): Likewise.
  (reboot_mod_CFLAGS): Likewise.
  (reboot_mod_LDFLAGS): Likewise.

  * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace commands/ieee1275/halt.c
  and reboot.c by commands/halt.c and reboot.c.
  (halt_mod_SOURCES): Likewise.
  (reboot_mod_SOURCES): Likewise.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Replace commands/i386/pc/reboot.c by
  commands/reboot.c.
  (reboot_mod_SOURCES): Likewise.

  * commands/i386/pc/reboot.c: merge this file ...

  * commands/ieee1275/reboot.c: ... and this file ...

  * commands/reboot.c: ... to this file.
  Add some precompiler directive to include the correct header for each
  machine.

  * commands/ieee1275/halt.c: move this file ...

  * commands/halt.c: ... to here.
  Add some precompiler directive to include the correct header for each
  machine.

  * include/grub/efi/efi.h (grub_reboot): New function declaration.
  (grub_halt): Likewise.

  * kern/efi/efi.c (grub_reboot): New function.
  (grub_halt): Likewise.
2008-02-12 23:47:07 +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
bf7486424d 2008-02-10 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
        `disk/lvm.c'.
        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
        * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.

        * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
        `disk/lvm.c' to the end of the list.
        * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
        * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
2008-02-10 20:00:37 +00:00
robertmh
b5db202af3 2008-02-10 Robert Millan <rmh@aybabtu.com>
* kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'.  Call
        grub_print_error() instead.  This will let user know why we're entering
        rescue mode.
        Based on suggestions from Sam Morris.
2008-02-10 17:05:10 +00:00
boeglin
83abee317d 2008-02-10 Alexandre Boeglin <alex@boeglin.org>
* normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
  on remaining N args, instead of "--" arg N times.
2008-02-10 15:18:03 +00:00
chaac
78d5a08be1 2008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
* font/manager.c (unknown_glyph): Added variable for unknown glyph.
        (fill_with_default_glyph): Changed to use unknown_glyph for fill
        pattern for unknown glyphs.
2008-02-10 11:04:38 +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
0d9ff7f075 2008-02-08 Christian Franke <franke@computer.org>
* commands/cat.c (grub_cmd_cat): Print '\r' as hex to
        avoid overwriting previous output.
        * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
2008-02-09 11:02:26 +00:00
robertmh
c196216293 2008-02-09 Robert Millan <rmh@aybabtu.com>
* normal/menu.c (run_menu): If timeout is set to zero, don't bother
        drawing the menu.
2008-02-09 11:00:19 +00:00
robertmh
3dac2e3fdd 2008-02-09 Robert Millan <rmh@aybabtu.com>
* commands/sleep.c: New file.
        * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
        (sleep_mod_SOURCES): New variable.
        (sleep_mod_CFLAGS): Likewise.
        (sleep_mod_LDFLAGS): Likewise.
2008-02-09 10:58:19 +00:00
robertmh
7a634e08cb 2008-02-09 Robert Millan <rmh@aybabtu.com>
* disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
        situations in which we can deduce the RAID size and the superblock
        doesn't match it.
2008-02-09 10:54:44 +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
a96f9caa1d 2008-02-08 Robert Millan <rmh@aybabtu.com>
* disk/raid.c (grub_raid_scan_device): Check for
        `array->device[sb.this_disk.number]' rather than for
        `array->device[sb.this_disk.number]->name', since the latter is not
        garanteed to be accessible.
2008-02-08 22:39:29 +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
5626aee186 2008-02-08 Robert Millan <rmh@aybabtu.com>
* include/grub/raid.h (struct grub_raid_array): Change type of `device'
        to a grub_disk_t array.
        * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
        `device[x]'.
        (grub_raid_scan_device): Replace `device[x].name' accesses with
        `device[x]->name'.  Simplify initialization of `array->device[x]'.
2008-02-08 12:32:25 +00:00
robertmh
554f018744 2008-02-08 Robert Millan <rmh@aybabtu.com>
* disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
        grub_dprintf() calls.
        * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
        error message.
2008-02-08 12:22:51 +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
f2156fda69 2008-02-07 Robert Millan <rmh@aybabtu.com>
Patch from Jeroen Dekkers.
        * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
        failure, since succesfuly reading all array members might not be
        required.
2008-02-07 12:46:45 +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
b0dfd29ab2 2008-02-06 Christian Franke <franke@computer.org>
* fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
	(and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
	last block of a cpio or tar stream.
	Check for "TRAILER!!!" instead of any empty data
	block to detect last block of a cpio stream.
	(grub_cpio_dir): Fix constness of variable np.
	(grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
	cpio or tar trailer is detected.  This fixes a crash
	on open of a non existing file.
2008-02-06 19:57:40 +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
robertmh
409480b7a2 2008-02-05 Robert Millan <rmh@aybabtu.com>
* include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
        (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
        (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
        (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.

        * kern/i386/pc/startup.S: Include `<grub/term.h>'.
        (translation_table): Replace hardcoded values with macros
        provided by `<grub/term.h>'.

        * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
        (keyboard_map): Correct/add a few values, with macros provided
        by `<grub/term.h>'.
        (keyboard_map_shift): Zero values that don't differ from their
        `keyboard_map' equivalents.
        (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
        Discard the second scan code that is always sent by Caps lock.
        Only use `keyboard_map_shift' when it provides a non-zero value,
        otherwise fallback to `keyboard_map'.
2008-02-05 10:23:24 +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
okuji
9be6b98b6f 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
Add support for having a grub directory in a different drive. This
    is still only the data handling part.

    * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
    (codestart): Save %dh in GRUB_ROOT_DRIVE.
    (grub_root_drive): New variable.

    * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
    instead of GRUB_BOOT_DRIVE to construct a device name. Set
    GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
    as it was.

    * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.

    * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
    macro.
    (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.

    * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
    is bogus, because PXE booting does not specify any drive
    correctly.

    * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
    am not sure if this is really correct.

    * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
    is always identical to the boot drive when booting from a CD.

    * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
    longer.
    (root_drive): New variable.
    (real_start): Unconditionally set %dh to ROOT_DRIVE.
    (setup_sectors): Push %dx right after popping it, because %dh will
    be modified later.
    (copy_buffer): Restore %dx.
2008-02-03 18:56:08 +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
robertmh
d42b36722f 2008-02-03 Robert Millan <rmh@aybabtu.com>
* loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
        (grub_rescue_cmd_multiboot_loader)
        (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
2008-02-03 18:26:00 +00:00
proski
fa370ea61b 2008-02-03 Pavel Roskin <proski@gnu.org>
* a/kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
	%edx and %esi from stack only after grub_gate_a20() is called.
	grub_gate_a20() clobbers %edx.
2008-02-03 18:04:36 +00:00
okuji
f2a76e1d19 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac (AC_INIT): Bumped to 1.96.

    * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
    commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
    include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
    video/readers/png.c.
2008-02-03 13:57:54 +00:00
bean
9be665dd11 2008-01-31 Bean <bean123ch@gmail.com>
* conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
        (cdboot_img_SOURCES): New variable.
        (cdboot_img_ASFLAGS): New variable.
        (cdboot_img_LDFLAGS): New variable.

        * boot/i386/pc/cdboot.S: New file.

        * disk/i386/pc/biosdisk.c (cd_start): New variable.
        (cd_count): Likewise.
        (grub_biosdisk_get_drive): Add support for cd device.
        (grub_biosdisk_call_hook): Likewise.
        (grub_biosdisk_iterate): Likewise.
        (grub_biosdisk_open): Likewise.
        (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
        (grub_biosdisk_rw): Support reading from cd device.
        (GRUB_MOD_INIT): Iterate cd devices.

        * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
        (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
        (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.

        * kern/i386/pc/init.c (make_install_device): Check for cd device.
2008-02-03 08:27:15 +00:00
robertmh
4020aa53c0 2008-02-02 Robert Millan <rmh@aybabtu.com>
* commands/read.c: New file.
        * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
        (read_mod_SOURCES): New variable.
        (read_mod_CFLAGS): Likewise.
        (read_mod_LDFLAGS): Likewise.
2008-02-02 20:35:08 +00:00
robertmh
e03a11328e 2008-02-02 Robert Millan <rmh@aybabtu.com>
* normal/main.c (grub_normal_execute): Check for `menu->size' when
        determining whether menu has to be displayed.
2008-02-02 16:48:52 +00:00
marco_g
58c6922006 2008-02-02 Marco Gerards <marco@gnu.org>
* bus/pci.c: New file.

	* include/grub/pci.h: Likewise.

	* include/grub/i386/pc/pci.h: Likewise.

	* commands/lspci.c: Likewise.

	* conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
	`lspci.mod'.
	(pci_mod_SOURCES): New variable.
	(pci_mod_CFLAGS): Likewise.
	(pci_mod_LDFLAGS): Likewise.
	(lspci_mod_SOURCES): Likewise.
	(lspci_mod_CFLAGS): Likewise.
	(lspci_mod_LDFLAGS): Likewise.
2008-02-02 15:33:05 +00:00
bean
c004e1b477 2008-02-02 Bean <bean123ch@gmail.com>
* fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
        (grub_ufs_get_file_block): Fix indirect block calculation problem.

        * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
        (grub_xfs_btree_node): New structure.
        (grub_xfs_btree_root): New structure.
        (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
        (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
        (GRUB_XFS_EXTENT_BLOCK): Likewise.
        (GRUB_XFS_EXTENT_SIZE): Likewise.
        (grub_xfs_read_block): Support btree format type.
        (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
        Use directory block as basic unit.

        * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.

        * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
        __attribute__ ((__regparm__ (1))).
2008-02-02 14:15:31 +00:00
robertmh
f95562bf52 2008-02-01 Robert Millan <rmh@aybabtu.com>
Correct a mistake in previous commit.

        * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
        top.
        (normal/command.c_DEPENDENCIES): New variable.
2008-02-01 18:54:52 +00:00
robertmh
7d31f41fc6 2008-02-01 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
        top.
        (normal/command.c_DEPENDENCIES): New variable.
        (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
        * conf/i386-ieee1275.rmk: Likewise.
        * conf/i386-linuxbios.rmk: Likewise.
        * conf/i386-pc.rmk: Likewise.
        * conf/sparc64-ieee1275.rmk: Likewise.
        * conf/powerpc-ieee1275.rmk: Likewise.
        (grub_emu_SOURCES): Add `fs/fshelp.c'.

        * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
2008-02-01 15:45:17 +00:00
robertmh
60b6be74b9 2008-02-01 Robert Millan <rmh@aybabtu.com>
* kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
        call at beginning of function.
2008-02-01 00:50:19 +00:00
proski
d2c11005c6 Better describe the last change made to conf/powerpc-ieee1275.rmk 2008-01-31 20:12:16 +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
ccaa8a5f50 2008-01-30 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
        (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
        * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
        (grub_probe_SOURCES): ... to here.

        * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
        (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
        * conf/i386-ieee1275.rmk: Likewise.
        * conf/i386-linuxbios.rmk: Likewise.
        * conf/powerpc-ieee1275.rmk: Likewise.
2008-01-30 15:32:56 +00:00
robertmh
ae5a9cd7b2 2008-01-30 Tristan Gingold <gingold@free.fr>
* kern/rescue.c: Silently accept empty lines.
2008-01-30 14:42:09 +00:00
bean
70bc2ef25c 2008-01-29 Bean <bean123ch@gmail.com>
* boot/i386/pc/lnxboot.S (data_start): Code cleanup.
        (real_code_2): Code cleanup and change comment style.
        (move_memory): Avoid using 32-bit address mode.
2008-01-29 10:59:56 +00:00
bean
6a4d50ead0 2008-01-29 Bean <bean123ch@gmail.com>
* conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
        (png_mod_SOURCES): New variable.
        (png_mod_CFLAGS): Likewise.
        (png_mod_LDFLAGS): Likewise.

        * video/readers/png.c: New file.
2008-01-29 09:45:06 +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
robertmh
3abc589f93 2008-01-27 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
        `GRUB_MOD_GAP' for platforms in which it's not defined.
2008-01-27 23:00:49 +00:00
robertmh
e1907778a1 2008-01-27 Robert Millan <rmh@aybabtu.com>
Get grub-emu to build again (including parallel builds).

        * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
        Split into ...
        (util/grub-emu.c_DEPENDENCIES): ... this, ...
        (normal/execute.c_DEPENDENCIES): ... this, ...
        (grub-emu_DEPENDENCIES): ... and this.

        * conf/i386-efi.rmk: Likewise.
        * conf/i386-linuxbios.rmk: Likewise.
        * conf/i386-ieee1275.rmk: Likewise.
        * conf/powerpc-ieee1275.rmk: Likewise.
        (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
2008-01-27 22:44:02 +00:00
robertmh
2216b10148 2008-01-27 Robert Millan <rmh@aybabtu.com>
* NEWS: Add a few items.
2008-01-27 22:02:02 +00:00
robertmh
f75172d9e7 2008-01-27 Robert Millan <rmh@aybabtu.com>
Fix parallel builds with grub-emu.  Based on earlier commit for
        grub-probe and grub-setup.

        * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
        (util/grub-emu.c_DEPENDENCIES): ... this.
        * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
        (util/grub-emu.c_DEPENDENCIES): ... this.
        * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
        (util/grub-emu.c_DEPENDENCIES): ... this.
        * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
        (util/grub-emu.c_DEPENDENCIES): ... this.
        * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
        (util/grub-emu.c_DEPENDENCIES): ... this.
2008-01-27 21:35:44 +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
proski
2033f53e0a * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
just return an error.
2008-01-26 20:34:58 +00:00
bean
22da1f6f0f 2008-01-26 Bean <bean123ch@gmail.com>
* fs/reiserfs.c (grub_fshelp_node): New member next_offset.
        (grub_reiserfs_get_item): Save offset of the next item.
        (grub_reiserfs_iterate_dir): Use next_offset to find next item.
2008-01-26 13:28:37 +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
b95f71b5a3 2008-01-25 Robert Millan <rmh@aybabtu.com>
Revert my previous commits (based on wrong assumption of how grub_errno
        works).

        * kern/disk.c (grub_disk_open): Stop reseting grub_errno.
        * kern/file.c (grub_file_open): Likewise.
2008-01-25 20:57:40 +00:00
proski
d08bbb491e * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
that hang if GRUB tries to setup colors.
* term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
colors for firmwares that don't support it.
* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
Recognize Open Hack'Ware, set flags to work around its
limitations.
2008-01-24 08:21:43 +00:00
robertmh
605e36ed3e 2008-01-24 Robert Millan <rmh@aybabtu.com>
* kern/file.c (grub_file_open): Do not account previous failures of
        unrelated functions when grub_errno is checked for.
        Reported by Oleg Strikov.
2008-01-24 00:06:55 +00:00
bean
bac332a11a 2008-01-24 Bean <bean123ch@gmail.com>
* fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
        (grub_ufs_sblock): New member volume name.
        (grub_ufs_find_file): Fix string copy bug.
        (grub_ufs_label): Implement this function properly.

        * fs/hfs.c (grub_hfs_cnid_type): New enum.
        (grub_hfs_iterate_records): Use the correct file number for extents
        and catalog file. Fix problem in next index calculation.
        (grub_hfs_find_node): Replace recursive function call with loop.
        (grub_hfs_iterate_dir): Replace recursive function call with loop.
2008-01-23 20:21:18 +00:00
robertmh
15c80c098c 2008-01-23 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
        `<grub/symbol.h>' and `<grub/multiboot.h>'.
        (grub_multiboot2_real_boot): New function prototype.

        * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
        [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.

        * kern/i386/ieee1275/init.c (grub_os_area_addr)
        (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
2008-01-23 19:21:19 +00:00
robertmh
305338fdf5 2008-01-23 Robert Millan <rmh@aybabtu.com>
* kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
        #ifdef'ed out grub_printf().
2008-01-23 14:57:40 +00:00
robertmh
3ea5268564 2008-01-23 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
        grub_dprintf calls, since they make "debug=all" mode unusable.
        (grub_console_checkkey): Likewise.
2008-01-23 12:20:21 +00:00
robertmh
5882ae4b0e 2008-01-23 Robert Millan <rmh@aybabtu.com>
* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
        `term/i386/pc/at_keyboard.c'.
        (pkglib_MODULES): Add `serial.mod'.
        (serial_mod_SOURCES): New variable.
        (serial_mod_CFLAGS): Likewise.
        (serial_mod_LDFLAGS): Likewise.

        * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'.  Remove
        `<grub/powerpc/ieee1275/console.h>'.
        (grub_keyboard_controller_init): New function prototype.
        (grub_console_checkkey): Likewise.
        (grub_console_getkey): Likewise.

        * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
        keyboard on i386.

        * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
        grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
2008-01-23 11:57:22 +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
dbb475a441 2008-01-23 Robert Millan <rmh@aybabtu.com>
* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
        and `machine/memory.h'.
        (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
        (_multiboot_mod_SOURCES): New variable.
        (_multiboot_mod_CFLAGS): Likewise.
        (_multiboot_mod_LDFLAGS): Likewise.
        (multiboot_mod_SOURCES): Likewise.
        (multiboot_mod_CFLAGS): Likewise.
        (multiboot_mod_LDFLAGS): Likewise.

        * include/grub/i386/ieee1275/loader.h: New file.

        * include/grub/i386/ieee1275/machine.h: Likewise.

        * include/grub/i386/ieee1275/memory.h: Likewise.

        * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
        variable declaration.
        (grub_os_area_size): Likewise.

        * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
        (grub_lower_mem, grub_upper_mem): New variables.
        (grub_stop_floppy): New function (just to make
        grub_multiboot2_real_boot() happy).

        * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
        `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
        (grub_stop): New function.
        Include `"../realmode.S"' and `"../loader.S"'.

        * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
        Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.

        * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
        rely on grub_multiboot2_real_boot() for final boot.
2008-01-23 09:57:26 +00:00
robertmh
2563862970 2008-01-22 Robert Millan <rmh@aybabtu.com>
* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
        `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
        device that doesn't look like an SD card.
        * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
        `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
        * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
        OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
        found.
2008-01-22 20:13:14 +00:00
robertmh
9dad816d3d 2008-01-22 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
        avoid claiming over our own code.
2008-01-22 20:10:27 +00:00
bean
34842f2d6b 2008-01-22 Bean <bean123ch@gmail.com>
* conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
        (jpeg_mod_SOURCES): New variable.
        (jpeg_mod_CFLAGS): Likewise.
        (jpeg_mod_LDFLAGS): Likewise.

        * video/readers/jpeg.c : New file.
2008-01-22 13:50:38 +00:00
bean
44023a2816 2008-01-22 Bean <bean123ch@gmail.com>
* fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
	there are no more items.
2008-01-22 12:44:38 +00:00
robertmh
bc2d8ac639 2008-01-21 Robert Millan <rmh@aybabtu.com>
* kern/mm.c (grub_mm_init_region): Improve debug message.
2008-01-21 20:59:05 +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
f970b55e43 2008-01-21 Robert Millan <rmh@aybabtu.com>
* disk/memdisk.c (memdisk_size): New variable.
        (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
        `memdisk_size'.
        (grub_memdisk_init): Initialize `memdisk_size'.  Reallocate memdisk
        image to dynamic memory.
        (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
        `memdisk_size'.  Free memdisk block.
2008-01-21 14:37:25 +00:00
robertmh
1a8b05264d 2008-01-21 Robert Millan <rmh@aybabtu.com>
Fix detection of very small filesystems (like tar).

        * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
        contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
        GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
        a problem with this disk).
2008-01-21 14:32:49 +00:00
robertmh
6e9b4aabd4 2008-01-21 Robert Millan <rmh@aybabtu.com>
* disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
        on grub_biosdisk_rw_standard() error.
2008-01-21 14:28:34 +00:00
robertmh
0d8837b229 2008-01-21 Robert Millan <rmh@aybabtu.com>
* include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
        recent changes.
        * kern/elf.c: Likewise.
        * kern/ieee1275/ieee1275.c: Likewise.
        * kern/powerpc/ieee1275/openfw.c: Likewise.
        * term/ieee1275/ofconsole.c: Likewise.
2008-01-21 14:22:38 +00:00
robertmh
3f0093d0af fix ChangeLog entry 2008-01-21 12:20:54 +00:00
robertmh
ffd36e34b3 2008-01-21 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.

        * include/grub/kernel.h (grub_arch_memdisk_addr,
        grub_arch_memdisk_size): Moved from here ...

        * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr,
        grub_arch_memdisk_size): ... to here.
2008-01-21 00:04:04 +00:00
robertmh
6c391b218e 2008-01-21 Robert Millan <rmh@aybabtu.com>
Mostly based on bugfix from Bean.

        * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
        attribute with hook() parameter.
        (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
        declaration.
        (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
        attribute with hook() parameter.
        (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
        declaration.
2008-01-20 23:47:54 +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
3d7f54c94d 2008-01-20 Robert Millan <rmh@aybabtu.com>
* kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
        grub_dprintf() calls from here ...
        * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
2008-01-20 17:20:48 +00:00
robertmh
0bf74728de 2008-01-20 Robert Millan <rmh@aybabtu.com>
Fix detection of "real mode" when /options/real-mode? doesn't exist.

        * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
        declaration.
        * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
        (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
        `GRUB_IEEE1275_FLAG_REAL_MODE'.
        (cmain): Intialize `grub_ieee1275_mmu' (using /chosen/mmu integer
        property).
        * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
        `grub_ieee1275_mmu' rather than obtaining a handler on every call.
2008-01-20 14:08:54 +00:00
robertmh
33bf70a759 2008-01-19 Robert Millan <rmh@aybabtu.com>
Get rid of confusing function (superceeded by
        `grub_ieee1275_get_integer_property')
        * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
        prototype.
        * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
        function.
        * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
        grub_ieee1275_decode_int_4(), by obtaining integer properties directly
        in native endianess from grub_ieee1275_get_integer_property().
2008-01-19 22:31:04 +00:00
robertmh
e2da7d26bb 2008-01-19 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
        command after "shut-down", since implementations differ on which
        the command for halt is.
2008-01-19 22:19:20 +00:00
robertmh
59f1fd8de8 2008-01-19 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/linuxbios/console.h: Add header protection.
        (grub_keyboard_controller_init): New function prototype.
        * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
        (KEYBOARD_COMMAND_READ): Likewise.
        (KEYBOARD_COMMAND_WRITE): Likewise.
        (KEYBOARD_SCANCODE_SET1): Likewise.
        (grub_keyboard_controller_write): New function.
        (grub_keyboard_controller_read): Likewise.
        (grub_keyboard_controller_init): Likewise.

        * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
        (grub_console_init): On coreboot/LinuxBIOS, call
        grub_keyboard_controller_init().
2008-01-19 11:44:27 +00:00
robertmh
5f5a7c1518 2008-01-19 Robert Millan <rmh@aybabtu.com>
PowerPC changes provided by Pavel Roskin.

        * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
        * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
        don't rely on cmain() doing it.
        * kern/i386/ieee1275/startup.S (_start): Store %eax in
        grub_ieee1275_entry_fn, don't rely on cmain() doing it.
2008-01-19 11:41:00 +00:00
robertmh
1210e168fe 2008-01-16 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/linuxbios/memory.h
        (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
        * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
        receive `table_header' as argument.  Instead, probe for it in the
        known memory ranges where it can be present.
        (grub_available_iterate): Do not pass a fixed `table_header' address
        to grub_linuxbios_table_iterate().
2008-01-16 21:03:07 +00:00
robertmh
3d04eab83e 2008-01-15 Robert Millan <rmh@aybabtu.com>
* configure.ac: Add `i386-ieee1275' to the list of supported targets.
        * conf/i386-ieee1275.rmk: New file.
        * include/grub/i386/ieee1275/console.h: Likewise.
        * include/grub/i386/ieee1275/ieee1275.h: Likewise.
        * include/grub/i386/ieee1275/kernel.h: Likewise.
        * include/grub/i386/ieee1275/time.h: Likewise.
        * kern/i386/ieee1275/init.c: Likewise.
        * kern/i386/ieee1275/startup.S: Likewise.
2008-01-15 20:05:44 +00:00
robertmh
d1bc1b738c 2008-01-15 Robert Millan <rmh@aybabtu.com>
* kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
        when pointers are 32-bit (but still do set it to one when they are
        64-bit).
2008-01-15 17:22:09 +00:00
robertmh
66a6580720 2008-01-15 Robert Millan <rmh@aybabtu.com>
* include/grub/ieee1275/ieee1275.h
        (grub_ieee1275_get_integer_property): New function prototype.

        * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
        (grub_ieee1275_get_integer_property): New function.  Wraps around
        grub_ieee1275_get_property() to handle endianess.

        * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
        grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
        where appropiate.
        * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
        (grub_map): Likewise.
        * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
2008-01-15 16:14:33 +00:00
bean
a83ccafd50 2008-01-15 Bean <bean123ch@gmail.com>
* normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
	(grub_script_execute_cmdline): Reset grub_errno.

	* normal/main.c (read_config_file): Reset grub_errno.

	* normal/parse.y (script_init): New.
	(script): Move function and menuentry here.
	(delimiter): New.
	(command): Add delimiter at the end of command.
	(commands): Adjust to match the new command.
	(commandblock): Remove grub_script_lexer_record_start.
	(menuentry): Add grub_script_lexer_record_start, use the new commands.
	(if): Use the new commands.

	* conf/common.rmk (pkgdata_MODULES): Add echo.mod.
2008-01-15 15:32:17 +00:00
robertmh
df6ecfc6f4 2008-01-15 Robert Millan <rmh@aybabtu.com>
* normal/menu.c (run_menu): Move timeout message from here ...
        (print_timeout): ... to here.
        (run_menu): Use print_timeout() once during initial draw to print
        the whole message, and again in every clock tick to update only
        the number of seconds.
2008-01-15 14:05:40 +00:00
robertmh
87ae25ebfd 2008-01-15 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
        actual size of `available' from grub_ieee1275_get_property(), and
        restrict parsing to that bound.
2008-01-15 12:13:45 +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
c86f14693a 2008-01-14 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
        for grub_ieee1275_exit(), in order to improve portability.
2008-01-14 14:30:59 +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
proski
44cb1ec888 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
grub_errno if no errors have been detected.
2008-01-14 04:16:20 +00:00
robertmh
1eb8c80241 2008-01-12 Robert Millan <rmh@aybabtu.com>
* include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
        (grub_util_get_dev_abstraction): New function prototype.

        * util/getroot.c: Include `<grub/util/getroot.h>'
        (grub_util_get_grub_dev): Move detection of abstraction type to ...
        (grub_util_get_dev_abstraction): ... here (new function).

        * util/grub-probe.c: Convert PRINT_* to an enum.  Add
        `PRINT_ABSTRACTION'.
        (probe): Probe for abstraction type when requested.
        (main): Understand `--target=abstraction'.

        * util/i386/efi/grub-install.in: Add abstraction module to core
        image when it is found to be necessary.
        * util/i386/pc/grub-install.in: Likewise.
        * util/powerpc/ieee1275/grub-install.in: Likewise.

        * util/update-grub_lib.in (font_path): Return system path without
        converting to GRUB path.
        * util/update-grub.in: Convert system path returned by font_path()
        to a GRUB path.  Use `grub-probe -t abstraction' to determine what
        abstraction module is needed for loading fonts (if any).  Export
        that as `GRUB_PRELOAD_MODULES'.
        * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
        insmod commands).
2008-01-12 15:11:57 +00:00
okuji
52bd3de956 2008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
Remove some unused code from reiserfs.

    * fs/reiserfs.c (struct grub_reiserfs_key)
    [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
    (struct grub_reiserfs_node_body): Removed.
    (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
    Likewise.
    (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
    Likewise.
    (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
    Likewise.
    (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
    Likewise.
    (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
    Likewise.
    (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
    Likewise.
    (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
    (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
    (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
2008-01-12 00:51:34 +00:00
robertmh
2f80039de8 2008-01-10 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (grub_file_is_not_garbage): New function.
        Determines if a file is garbage left by packaging systems, etc.
        * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
        for processing /etc/grub.d scripts.
        * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
        * util/grub.d/10_linux.in: Likewise.  Use grub_file_is_not_garbage()
        as a condition for processing Linux images.
2008-01-10 13:52:24 +00:00
proski
87888032b6 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
to compile reiserfs.c on PowerPC.
2008-01-10 07:27:08 +00:00
robertmh
7e54fcedd9 Ooops, fix wrong date. 2008-01-09 23:27:36 +00:00
robertmh
de9993e01c 2008-01-08 Robert Millan <rmh@aybabtu.com>
* kern/device.c (grub_device_iterate): Do not abort device iteration
        when one of the devices cannot be opened.
        * kern/disk.c (grub_disk_open): Do not account previous failures of
        unrelated functions when grub_errno is checked for.
2008-01-09 23:25:54 +00:00
robertmh
5aa541e6eb 2008-01-08 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
        `! grub_linux_is_bzimage', change order of address comparison to make
        it more intuitive, and improve "too big zImage" error message.
2008-01-08 11:38:18 +00:00
robertmh
7076340d08 2008-01-08 Robert Millan <rmh@aybabtu.com>
* Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
        `$(update-grub_DATA)'.
        (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
        targets.
2008-01-08 10:00:42 +00:00
robertmh
9ca7033376 2008-01-07 Robert Millan <rmh@aybabtu.com>
* boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
        which instruction is modified by grub-setup during installation
        (since it wasn't obvious by only looking at this file).
2008-01-07 19:52:08 +00:00
robertmh
38ccf57536 2008-01-07 Robert Millan <rmh@aybabtu.com>
* TODO: Rewrite.  Just refer to the wiki and the BTS instead of
        listing actual TODO items.
2008-01-07 19:21:34 +00:00
okuji
868967cfaf 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
* fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
    correctly.
    (grub_reiserfs_get_key_offset): Likewise.
    (grub_reiserfs_set_key_offset): Likewise.
    (grub_reiserfs_set_key_type): Likewise.
    (grub_reiserfs_iterate_dir): Return 1 if found, otheriwise 0.

    (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
    better to remove the bitfield version completely.
2008-01-06 22:57:50 +00:00
okuji
f5db429174 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
* fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
    allocated from the heap, due to the fshelp implementation.
    (grub_reiserfs_dir): Free NODE, due to the same reason.
2008-01-06 15:34:11 +00:00
okuji
492e6d9d4b 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
Mostly from Vincent Pelletier:

    * fs/reiserfs.c: New file.

    * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
    (reiserfs_mod_SOURCES): New variable.
    (reiserfs_mod_CFLAGS): Likewise.
    (reiserfs_mod_LDFLAGS): Likewise.

    * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
    disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
    include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
    normal/color.c.
2008-01-06 14:14:31 +00:00
robertmh
9ce3e7c170 2008-01-06 Robert Millan <rmh@aybabtu.com>
* normal/color.c: Remove `<grub/env.h>'.
2008-01-06 12:58:46 +00:00
jeroen
f3b58148d6 2008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
* include/grub/normal.h: Include <grub/env.h>.
2008-01-05 21:45:21 +00:00
robertmh
fb3581902c Give credit to the person who reported that.. 2008-01-05 12:21:08 +00:00
robertmh
7ac3bcfa83 2008-01-05 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
        usage example with `(hd0,1)'.
2008-01-05 12:20:28 +00:00
robertmh
c8ee99d76e 2008-01-05 Robert Millan <rmh@aybabtu.com>
* kern/i386/loader.S (grub_linux_is_bzimage): New variable.
        (grub_linux_boot_zimage): Rename to ...
        (grub_linux_boot): ... this.
        (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
        (grub_linux_boot_zimage): Conditionalize zImage copy.

        * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
        (grub_linux_boot_bzimage): Remove prototype.
        (grub_linux_boot_zimage): Rename to ...
        (grub_linux_boot): ... this.

        * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
        (grub_linux_boot): Remove function.
2008-01-05 12:14:05 +00:00
robertmh
0ece25b1e1 2008-01-05 Robert Millan <rmh@aybabtu.com>
* include/grub/normal.h (grub_env_write_color_normal): New prototype.
	(grub_env_write_color_highlight): Likewise.
	(grub_wait_after_message): Likewise.

	* normal/color.c: New file.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
	(normal_mod_DEPENDENCIES): Likewise.

	* conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
	(normal_mod_DEPENDENCIES): Likewise.

	* conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
	(normal_mod_DEPENDENCIES): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
	(normal_mod_DEPENDENCIES): Likewise.

	* normal/menu_entry.c (run): Rely on grub_wait_after_message()
	for waiting after a message is printed.
	* normal/main.c (read_config_file): Likewise.
	(grub_normal_init): Register grub_env_write_color_normal() and
	grub_env_write_color_highlight() hooks.  Mark `color_normal' and
	`color_highlight' variables as global.

	* normal/menu.c (grub_wait_after_message): New function.
	(grub_color_menu_normal): New variable.  Replaces ...
	(GRUB_COLOR_MENU_NORMAL): ... this macro.
	(grub_color_menu_highlight): New variable.  Replaces ...
	(GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
	(draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
	`GRUB_TERM_COLOR_STANDARD'.
	(print_message): Use `grub_setcolorstate' to reload colors.  Rename
	`normal_code' and `highlight_code' to `old_color_normal' and
	`old_color_highlight', respectively.
	(grub_menu_init_page): Update colors when drawing the menu, based on
	`menu_color_normal' and `menu_color_highlight' variables.
	(grub_menu_run): Rely on grub_wait_after_message() for waiting after
	a message is printed.
2008-01-05 12:10:28 +00:00
robertmh
182dd4e568 2008-01-05 Robert Millan <rmh@aybabtu.com>
* kern/env.c (grub_env_context_open): Propagate hooks for global
        variables to new context.

        * kern/main.c (grub_set_root_dev): Export `root' variable.
2008-01-05 12:04:35 +00:00
robertmh
ddf8f6add7 2008-01-05 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
        discs unconditionaly, since udev and others have options to provide
        them.
2008-01-05 12:02:03 +00:00
robertmh
d8b43d9b50 2008-01-05 Robert Millan <rmh@aybabtu.com>
* normal/completion.c (iterate_dir): Skip `.' and `..' directories.
2008-01-05 11:59:34 +00:00
robertmh
2bff2de347 2008-01-04 Christian Franke <franke@computer.org>
* kern/i386/pc/init.c (grub_machine_init): Fix evaluation
        of eisa_mmap.
2008-01-04 08:31:36 +00:00
proski
97eab9176c 2008-01-03 Pavel Roskin <proski@gnu.org>
* kern/i386/linuxbios/init.c: Put "void" to all function
	declarations with no arguments.
	* kern/powerpc/ieee1275/init.c: Likewise.
	* term/i386/pc/at_keyboard.c: Likewise.
	* term/i386/pc/vga_text.c: Likewise.
	* util/grub-mkdevicemap.c: Likewise.
2008-01-03 22:43:46 +00:00
robertmh
b9416d00ad 2008-01-02 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
        message when loaded image is out of bounds.
        (grub_multiboot_load_elf64): Likewise.
2008-01-02 11:55:23 +00:00
proski
92695df9e8 * util/grub.d/10_linux.in: Try version without ".old" when
looking for initrd.  It's better to use initrd from the newer
kernel of the same version than no initrd at all.
2008-01-02 08:34:41 +00:00
robertmh
d98d9cad88 2008-01-01 Robert Millan <rmh@aybabtu.com>
* util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
2008-01-01 21:59:03 +00:00
chaac
dbfdce36f1 2008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
* include/grub/video.h: Added grub_video_unmap_color and
        grub_video_get_active_render_target.
        (grub_video_adapter): Added unmap_color and get_active_render_target.

        * video/video.c: Added grub_video_unmap_color and
        grub_video_get_active_render_target.
        (grub_video_get_info): Changed method to accept NULL pointer as an
        argument to allow detection of active video adapter.

        * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
        grub_video_vbe_unmap_color_int.
        Added grub_video_vbe_unmap_color and
        grub_video_vbe_get_active_render_target.
        (grub_video_vbe_adapter): Added unmap_color and
        get_active_render_target.

        * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
        with grub_video_vbe_unmap_color_int.

        * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
        (DEFAULT_NORMAL_COLOR): Likewise.
        (DEFAULT_HIGHLIGHT_COLOR) Likewise.
        (DEFAULT_FG_COLOR): Removed.
        (DEFAULT_BG_COLOR): Likewise.
        (DEFAULT_CURSOR_COLOR): Changed value.
        (grub_virtual_screen): Added standard_color_setting,
        normal_color_setting, highlight_color_setting and term_color.
        (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
        (bitmap_width): Added.
        (bitmap_height): Likewise.
        (bitmap): Likewise.
        (set_term_color): Likewise.
        (grub_virtual_screen_setup): Changed to use new terminal coloring
        settings.
        (grub_gfxterm_init): Added init for bitmap.
        (grub_gfxterm_fini): Added destroy for bitmap.
        (redraw_screen_rect): Updated to use background bitmap and new
        terminal coloring.
        (scroll_up): Added optimization for case when there is no bitmap.
        (grub_gfxterm_cls): Fixed to use correct background color.
        (grub_virtual_screen_setcolorstate): Changed to use new terminal
        coloring.
        (grub_virtual_screen_setcolor): Likewise.
        (grub_virtual_screen_getcolor): Added.
        (grub_gfxterm_background_image_cmd): Likewise.
        (grub_video_term): Added setcolor and getcolor.
        (MOD_INIT): Added registration of background_image command.
        (MOD_TERM): Added unregistration for background_image command.
2008-01-01 12:02:07 +00:00
proski
df26671616 Fix date 2007-12-31 16:21:15 +00:00
proski
c3c20931a9 * loader/multiboot_loader.c: Fix multiboot command
unregistration.  Fix all typos in the word "multiboot".
2007-12-30 08:49:57 +00:00
proski
942391998a * util/grub.d/10_linux.in: Refactor search for initrd. Add
support for initrd names used in Fedora.
2007-12-29 20:53:20 +00:00
robertmh
fc6e896cc5 2007-12-26 Bean <bean123ch@gmail.com>
* conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
	(cpio_mod_SOURCES): New variable.
	(cpio_mod_CFLAGS): Likewise.
	(cpio_mod_LDFLAGS): Likewise.

	* fs/cpio.c: New file.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.

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

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

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2007-12-26 07:51:19 +00:00
robertmh
533110ada7 2007-12-25 Robert Millan <rmh@aybabtu.com>
* include/grub/term.h (struct grub_term): Add `getcolor' function.
	(grub_getcolor): New function.

	* kern/term.c (grub_getcolor): New function.
	* normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
	(GRUB_COLOR_MENU_HIGHLIGHT): New macro.
	(print_entry): Set normal and highlight colors to
	`GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
	respectively, before printing and restore them to old
	values afterwards.
	(grub_menu_init_page): Likewise.  Fill an additional colored space
	that would otherwise be left blank.

	* term/efi/console.c (grub_console_getcolor): New function.
	(struct grub_console_term.getcolor): New variable.
	* term/i386/pc/console.c (grub_console_getcolor): New function.
	(struct grub_console_term.getcolor): New variable.
	* term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
	(struct grub_console_term.getcolor): New variable.

	* term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.
	* term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.
	* term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.
	* term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.
2007-12-25 11:10:47 +00:00
robertmh
4931827fe4 2007-12-25 Robert Millan <rmh@aybabtu.com>
* configure.ac: Search for possible unifont.hex locations, and
	define UNIFONT_HEX if found.

	* Makefile.in (UNIFONT_HEX): Define variable.
	(DATA): Rename to ...
	(PKGLIB): ... this.  Update all users.
	(PKGDATA): New variable.
	(pkgdata_IMAGES): Rename to ...
	(pkglib_IMAGES): ... this. Update all users.
	(pkgdata_MODULES): Rename to ...
	(pkglib_MODULES): ... this. Update all users.
	(pkgdata_PROGRAMS): Rename to ...
	(pkglib_PROGRAMS): ... this. Update all users.
	(pkgdata_DATA): Rename to ...
	(pkglib_DATA): ... this. Update all users.
	(CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
	(unicode.pff, ascii.pff): New rules.
	(all-local): Add `$(PKGDATA)' dependency.
	(install-local): Process `$(PKGDATA)'.

	* util/update-grub_lib.in (font_path): Search for *.pff files in
	a few more locations, including `${pkgdata}'.
2007-12-25 09:09:43 +00:00
robertmh
57e57e3167 2007-12-23 Robert Millan <rmh@aybabtu.com>
Patch from Bean  <bean123ch@gmail.com>:
	* disk/loopback.c (grub_loopback_read): Add missing bit shift to
	`size'.
2007-12-23 21:28:03 +00:00
robertmh
4bc72aa96f 2007-12-21 Bean <bean123ch@gmail.com>
* conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
	(ntfscomp_mod_SOURCES): New variable.
	(ntfscomp_mod_CFLAGS): Likewise.
	(ntfscomp_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
	(grub_probe_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.

	* conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
	(grub_emu_SOURCES): Likewise.

	* conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
	(grub_emu_SOURCES): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
	(grub_emu_SOURCES): Likewise.

	* fs/ntfs.c (grub_ntfscomp_func): New variable.
	(read_run_list): Renamed to grub_ntfs_read_run_list.
	(decomp_nextvcn): Moved to ntfscomp.c.
	(decomp_getch): Likewise.
	(decomp_get16): Likewise.
	(decomp_block): Likewise.
	(read_block): Likewise.
	(read_data): Partially moved to ntfscomp.c.
	(fixup): Change unsigned to grub_uint16_t.
	(read_mft): Change unsigned long to grub_uint32_t.
	(read_attr): Likewise.
	(read_data): Likewise.
	(read_run_data): Likewise.
	(read_run_list): Likewise.
	(read_mft): Likewise.

	* fs/ntfscomp.c: New file.

	* include/grub/ntfs.h: New file.
2007-12-21 11:41:23 +00:00
robertmh
af680a8784 2007-12-16 Robert Millan <rmh@aybabtu.com>
* util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
	IDE disk check, since Linux is known to support 20 IDE disks.
	Reported by Colin Watson.
2007-12-15 23:08:25 +00:00
robertmh
84be7599f6 2007-12-15 Bean <bean123ch@gmail.com>
* conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
	(lnxboot_img_SOURCES): New variable.
	(lnxboot_img_ASFLAGS): Likewise.
	(lnxboot_img_LDFLAGS): Likewise.

	* boot/i386/pc/lnxboot.S: New file.
2007-12-15 10:42:17 +00:00
proski
6af9db01bc * configure.ac: Test if '--build-id=none' is supported by the
linker.  If yes, add it to TARGET_LDFLAGS.  Build ID causes
objcopy to generate incorrect binary files (binutils
2.17.50.0.18-1 as shipped by Fedora 8).
* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
linking, so that build ID doesn't break the test.
2007-11-25 02:01:30 +00:00
proski
7361cfe62e * include/grub/i386/time.h: use "void" in the argument list
of grub_cpu_idle().
* include/grub/powerpc/time.h: Likewise.
* include/grub/sparc64/time.h: Likewise.
2007-11-25 01:46:59 +00:00
robertmh
68f6ac74e2 Fix ChangeLog entry. 2007-11-18 11:54:12 +00:00
robertmh
1593e10c1e 2007-11-18 Christian Franke <franke@computer.org>
* util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
	now return control chars instead of GRUB_CONSOLE_KEY_* constants.
	This fixes the problem that function keys did not work in grub-emu.
2007-11-18 07:20:45 +00:00
robertmh
3b8db1a82b 2007-11-18 Christian Franke <franke@computer.org>
* disk/host.c (grub_host_open): Remove attribute unused from
	name parameter. Add check for "host". This fixes the problem
	that grub-emu does not find partitions.
2007-11-18 07:17:40 +00:00
robertmh
2e29408d1f 2007-11-18 Christian Franke <franke@computer.org>
* util/hostfs.c (is_dir): New function.
	(grub_hostfs_dir):  Handle missing dirent.d_type case.
	(grub_hostfs_read): Add missing fseek().
	(grub_hostfs_label): Clear label pointer.  This fixes a crash
	of grub-emu on "ls (host)".
2007-11-18 07:14:26 +00:00
robertmh
398cd047ab 2007-11-18 Christian Franke <franke@computer.org>
* include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
	Add attribute packed, gcc 3.4.4 on Cygwin aligns this
	to 64 bit boundary by default.
2007-11-18 07:10:47 +00:00
robertmh
c405c39191 2007-11-18 Bean <bean123ch@gmail.com>
* conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
	(hexdump_mod_SOURCES): New variable.
	(hexdump_mod_CFLAGS): Likewise.
	(hexdump_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.

	* conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.

	* conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.

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

	* commands/hexdump.c: New file.
2007-11-18 06:41:46 +00:00
robertmh
5cced7fd10 2007-11-10 Robert Millan <rmh@aybabtu.com>
* commands/i386/pc/play.c (beep_off): Switch order of arguments
	in grub_outb() calls.
	(beep_on): Likewise.
2007-11-10 21:36:24 +00:00
robertmh
8b714eb0e1 2007-11-10 Christian Franke <franke@computer.org>
* normal/menu.c (run_menu): Check for empty menu to avoid crash.
	(grub_menu_run): Likewise.
2007-11-10 20:32:32 +00:00
robertmh
ce0f1839a5 2007-11-10 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/efi/machine.h: New file.
	* include/grub/i386/linuxbios/machine.h: Likewise.
	* include/grub/i386/pc/machine.h: Likewise.
	* include/grub/powerpc/ieee1275/machine.h: Likewise.
	* include/grub/sparc64/ieee1275/machine.h: Likewise.

	* term/i386/pc/serial.c: Include <grub/machine/machine.h>.
	(serial_hw_io_addr): New variable.
	(serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
	instead of `(unsigned short *) 0x400'.
2007-11-10 20:23:14 +00:00
robertmh
270c237dbe 2007-11-10 Bean <bean123ch@gmail.com>
* fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
2007-11-10 20:08:33 +00:00
chaac
a87783bfa1 2007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
* conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
        (vga_mod_SOURCES): Added.
        (vga_mod_CFLAGS): Likewise.
        (vga_mod_LDFLAGS): Likewise.

        * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
        grub_outb() calls.
        (set_map_mask): Likewise.
        (set_read_map): Likewise.
        (set_read_address): Likewise.
        (vga_font): Removed variable.
        (get_vga_glyph): Removed function.
        (invalidate_char): Likewise.
        (write_char): Changed to use grub_font_get_glyph() for font
        information.
        (grub_vga_putchar): Likewise.
        (grub_vga_getcharwidth): Likewise.
2007-11-10 18:34:48 +00:00
chaac
6433b448ac 2007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
* conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
        flags.
        (pxeboot_img_LDFLAGS): Likewise.
        (diskboot_img_LDFLAGS): Likewise.
        (kernel_img_LDFLAGS): Likewise.
2007-11-10 18:30:40 +00:00
robertmh
4917851111 2007-11-06 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
	in grub_outb() calls.
	(serial_hw_init): Likewise.
2007-11-06 21:23:59 +00:00
robertmh
53b052dedb 2007-11-05 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Allow files in ${update_grub_dir} to contain
	spaces.  Skip non-regular files.
2007-11-05 16:22:30 +00:00
robertmh
5ab33bba2f 2007-11-05 Robert Millan <rmh@aybabtu.com>
* kern/disk.c (grub_disk_firmware_fini)
	(grub_disk_firmware_is_tainted): New variables.

	* include/grub/disk.h (grub_disk_firmware_fini)
	(grub_disk_firmware_is_tainted): Likewise.

	* disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
	(grub_disk_biosdisk_fini): ... to here.
	(GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
	(GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
	is set.  Register grub_disk_biosdisk_fini() in
	`grub_disk_firmware_fini'.

	* disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
	(GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
	Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
	to finish existing firmware disk interface.

	* conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
	(ata_mod_SOURCES): New variable.
	(ata_mod_CFLAGS): Likewise.
	(ata_mod_LDFLAGS): Likewise.
2007-11-05 16:15:27 +00:00
robertmh
0149ab7c63 2007-11-05 Robert Millan <rmh@aybabtu.com>
* disk/ata.c: Remove `<grub/machine/time.h>'.  Include `<grub/time.h>'.
	(grub_ata_wait): Reimplement using grub_millisleep().

	* include/grub/misc.h (grub_div_roundup): Fix parenthesization.
	* include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
2007-11-05 14:54:00 +00:00
marco_g
be7ac41e14 2007-11-03 Marco Gerards <marco@gnu.org>
* term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
	(CRTC_ADDR_PORT): New macro.
	(CRTC_DATA_PORT): Likewise.
	(CRTC_CURSOR): Likewise.
	(CRTC_CURSOR_ADDR_HIGH): Likewise.
	(CRTC_CURSOR_ADDR_LOW): Likewise.
	(update_cursor): New function.
	(grub_console_real_putchar): Call `update_cursor'.
	(grub_console_gotoxy): Likewise.
	(grub_console_cls): Set the default color when clearing the
	screen.
	(grub_console_setcursor): Implemented.
2007-11-03 16:46:40 +00:00
marco_g
bb06ab2eb2 2007-11-03 Marco Gerards <marco@gnu.org>
* disk/ata.c (grub_ata_pio_read): Don't wait for the command to
	become activate.
	(grub_ata_pio_write): Likewise.

	(grub_atapi_identify): Wait after issuing an ATA command.
	(grub_atapi_packet): Likewise.
	(grub_ata_identify): Likewise.
	(grub_ata_readwrite): Likewise.
2007-11-03 15:45:07 +00:00
marco_g
cf8f780b84 2007-11-03 Marco Gerards <marco@gnu.org>
* disk/ata.c (grub_ata_pio_read): Detect and return the error code.
	(grub_ata_pio_write): Likewise.
	(grub_ata_readwrite): Use `grub_error', instead of
	returning `grub_errno'.
2007-11-03 13:12:52 +00:00
marco_g
ed649e5402 2007-11-03 Marco Gerards <marco@gnu.org>
* disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
	grub_ata_pio_write once for every single sector, instead of for
	multiple sectors.
2007-11-03 12:25:19 +00:00
robertmh
ca25d8f0c1 2007-10-31 Robert Millan <rmh@aybabtu.com>
* configure.ac: Add `i386-linuxbios' to the list of supported targets.

	* conf/i386-linuxbios.rmk: New file.

	* kern/i386/pc/hardware.c: Likewise.
	* term/i386/pc/at_keyboard.c: Likewise.
	* term/i386/pc/vga_text.c: Likewise.

	* include/grub/i386/linuxbios/boot.h: Likewise.
	* include/grub/i386/linuxbios/console.h: Likewise.
	* include/grub/i386/linuxbios/init.h: Likewise.
	* include/grub/i386/linuxbios/kernel.h: Likewise.
	* include/grub/i386/linuxbios/loader.h: Likewise.
	* include/grub/i386/linuxbios/memory.h: Likewise.
	* include/grub/i386/linuxbios/serial.h: Likewise.
	* include/grub/i386/linuxbios/time.h: Likewise.

	* kern/i386/linuxbios/init.c: Likewise.
	* kern/i386/linuxbios/startup.S: Likewise.
	* kern/i386/linuxbios/table.c: Likewise.
2007-10-31 22:35:13 +00:00
marco_g
e911ecc1c2 2007-10-31 Marco Gerards <marco@gnu.org>
* conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
	(ata_mod_SOURCES): New variable.
	(ata_mod_CFLAGS): Likewise.
	(ata_mod_LDFLAGS): Likewise.

	* disk/ata.c: New file.

	* include/grub/disk.h (grub_disk_dev_id): Add
	`GRUB_DISK_DEV_ATA_ID'.
2007-10-31 22:29:20 +00:00
robertmh
7f66d0e020 2007-10-31 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
	* include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.

	* include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
	* include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.

	* include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
	`<grub/types.h>'.

	* loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
2007-10-31 22:14:50 +00:00
robertmh
3236ca65b8 adjust last ChangeLog entry. 2007-10-27 12:11:25 +00:00
robertmh
5cd7dd4654 2007-10-27 Robert Millan <rmh@aybabtu.com>
* include/grub/types.h: Define ULONG_MAX.
2007-10-27 11:56:58 +00:00
robertmh
2ebfc90fdb 2007-10-22 Robert Millan <rmh@aybabtu.com>
* kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'.  Include
	`"../realmode.S"'.
	Remove `"kern/i386/loader.S"'.  Include `"../loader.S"'.
2007-10-22 20:14:45 +00:00
robertmh
73fcb0f38d 2007-10-22 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
	(pkgdata_MODULES): Add `biosdisk.mod'.
	(biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
	variables.

	* disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
	(grub_biosdisk_init): Replace with ...
	(GRUB_MOD_INIT(biosdisk)): ... this.
	(grub_biosdisk_fini): Replace with ...
	(GRUB_MOD_FINI(biosdisk)): ... this.

	* kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
	(grub_machine_init): Remove call to grub_biosdisk_init().
	(grub_machine_fini): Remove call to grub_machine_fini().

	* util/i386/pc/grub-install.in (modules): Add `biosdisk'.
2007-10-22 20:05:27 +00:00
robertmh
3381d27403 2007-10-22 Robert Millan <rmh@aybabtu.com>
* include/grub/time.h: New file.
	* include/grub/i386/time.h: Likewise.
	* include/grub/powerpc/time.h: Likewise.
	* include/grub/sparc64/time.h: Likewise.

	* include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
	instances to ...
	(KERNEL_MACHINE_TIME_HEADER): ... this.
	* include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
	instances to ...
	(KERNEL_MACHINE_TIME_HEADER): ... this.
	* include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
	instances to ...
	(KERNEL_MACHINE_TIME_HEADER): ... this.

	* kern/i386/efi/init.c: Include `<grub/time.h>'.
	(grub_millisleep): New function.
	* kern/i386/pc/init.c: Include `<grub/time.h>'.
	(grub_millisleep): New function.
	* kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
	Remove `grub/machine/time.h' include.
	(grub_millisleep): New function.
	* kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
	Remove `grub/machine/time.h' include.
	(grub_millisleep): New function.

	* include/grub/misc.h (grub_div_roundup): New function.

	* kern/misc.c: Include `<grub/time.h>'.
	(grub_millisleep_generic): New function.

	* conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
	Add `time.h'.
	* conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
	Add `time.h'.
	* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
	`machine/time.h'.  Add `time.h'.
	* conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
2007-10-22 19:59:33 +00:00
robertmh
a39a031233 2007-10-21 Robert Millan <rmh@aybabtu.com>
* include/grub/misc.h (grub_max): New function.
2007-10-21 12:58:21 +00:00
robertmh
2aad70e250 2007-10-21 Robert Millan <rmh@aybabtu.com>
* util/misc.c (grub_util_info): Call fflush() before returning.
2007-10-21 12:29:33 +00:00
robertmh
54b71c4b7b 2007-10-20 Robert Millan <rmh@aybabtu.com>
* genmk.rb (Image): Copy `extra_flags' from here ...
	(PModule): ... to here.  Use it in `#{obj}: #{src}' rule.

	* commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
	to `argc' and `args' arguments.
2007-10-20 18:32:18 +00:00
robertmh
a979f513cd 2007-10-17 Robert Millan <rmh@aybabtu.com>
* kern/i386/loader.S: New file.

	* kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
	* kern/i386/loader.S (grub_linux_prot_size)... to here.
	* kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
	* kern/i386/loader.S (grub_linux_tmp_addr)... to here.
	* kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
	* kern/i386/loader.S (grub_linux_real_addr)... to here.
	* kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
	* kern/i386/loader.S (grub_linux_boot_zimage)... to here.
	* kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
	* kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
	* kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
	* kern/i386/loader.S (grub_multiboot_real_boot)... to here.
	* kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
	* kern/i386/loader.S (grub_multiboot2_real_boot)... to here.

	* kern/i386/realmode.S: New file.

	* kern/i386/pc/startup.S (protstack): Moved from here ...
	* kern/i386/realmode.S (protstack)... to here.
	* kern/i386/pc/startup.S (gdt): Moved from here ...
	* kern/i386/realmode.S (gdt)... to here.
	* kern/i386/pc/startup.S (prot_to_real): Moved from here ...
	* kern/i386/realmode.S (prot_to_real)... to here.

	* kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
	`kern/i386/realmode.S'.
2007-10-17 20:02:56 +00:00
robertmh
825fc8fda2 2007-10-17 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/loader.h: New file.

	* include/grub/i386/pc/loader.h (grub_linux_prot_size)
	(grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
	(grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
	(grub_multiboot_real_boot, grub_multiboot2_real_boot)
	(grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
	* include/grub/i386/loader.h (grub_linux_prot_size)
	(grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
	(grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
	(grub_multiboot_real_boot, grub_multiboot2_real_boot)
	(grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.

	* include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
2007-10-17 09:38:55 +00:00
robertmh
e179b2f4a5 2007-10-15 Robert Millan <rmh@aybabtu.com>
* normal/misc.c (grub_normal_print_device_info): Do not probe for
	filesystem when dev->disk is unset.
	Do probe for filesystem even when dev->disk->has_partitions is set.
	In case a filesystem is found, always report it.
	In case it isn't, if dev->disk->has_partitions is set, report that
	a partition table was found instead of reporting that no filesystem
	could be identified.
2007-10-15 10:59:38 +00:00
robertmh
5db82af689 2007-10-12 Robert Millan <rmh@aybabtu.com>
* conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
	to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.

	* include/grub/types.h (#ifdef GRUB_CPU_WORDS_BIGENDIAN): Define
	grub_host_to_target16, grub_host_to_target32, grub_host_to_target64,
	grub_target_to_host16, grub_target_to_host32 and grub_target_to_host64.
	(#else): Likewise.

	* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
	Renamed from to ...
	(GRUB_MOD_ALIGN): ...this.  Update all users.

	* util/elf/grub-mkimage.c: Replace grub_cpu_to_be16, grub_cpu_to_be32,
	grub_be_to_cpu16 and grub_be_to_cpu32 macros with grub_host_to_target16,
	grub_host_to_target32, grub_target_to_host16 and grub_target_to_host32,
	respectively.
2007-10-12 10:22:31 +00:00
robertmh
3cf497cc8d 2007-10-12 Robert Millan <rmh@aybabtu.com>
* util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
	* util/elf/grub-mkimage.c: ... here.

	* DISTLIST: Add `util/elf/grub-mkimage.c'.  Remove
	`util/powerpc/ieee1275/grub-mkimage.c'.
2007-10-12 10:18:13 +00:00
robertmh
c8cc369234 2007-10-07 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
	and make it easier to figure out.
	Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
	(grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
	Do not avoid claiming a region above HEAP_MAX_ADDR if that would
	leave us with less than HEAP_MIN_SIZE total heap.
	Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
2007-10-07 15:32:52 +00:00
robertmh
adbc4c9d7e 2007-10-05 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify available
	and required memory sizes in "too small lower memory" error.
2007-10-05 11:02:40 +00:00
robertmh
afcd2ef88b Adjust ChangeLog entry as recommended by Marco. 2007-10-03 21:33:11 +00:00
robertmh
5c58b791cc 2007-10-03 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/io.h: New file.
	* commands/i386/pc/play.c (inb): Removed.
	(outb): Removed.
	Include grub/cpu/io.h.  Replace inb() with grub_inb() and outb()
	with grub_outb().
	* term/i386/pc/serial.c: Likewise.
	* term/i386/pc/vga.c: Likewise.
2007-10-03 20:13:21 +00:00
robertmh
1a477ed638 2007-10-02 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	Reported by Marcin Kurek.
2007-10-02 21:38:44 +00:00
robertmh
6b5d80fa11 2007-09-07 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
	SmartFirmware version updates (as released by Sven Luther), and avoid
	setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
	GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
	known broken.
2007-09-07 21:59:03 +00:00
okuji
5618afbf59 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
From Hitoshi Ozeki:
    * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
    when merging two regions.
2007-09-03 20:33:20 +00:00
okuji
508e39ee41 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
* kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
    * normal/completion.c (grub_normal_do_completion): Likewise.
    Reported by Hitoshi Ozeki.
2007-09-03 20:28:24 +00:00
okuji
6139dcd953 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
Do not use devices at boot in chainloading.

    * loader/i386/pc/chainloader.c (boot_drive): New variable.
    (boot_part_addr): Likewise.
    (grub_chainloader_boot): Simply call grub_chainloader_real_boot
    with BOOT_DRIVE and BOOT_PART_ADDR.
    (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
    Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
2007-09-03 20:10:19 +00:00
robertmh
38da651643 2007-08-29 Robert Millan <rmh@aybabtu.com>
Patch from Simon Peter <dn.tlp@gmx.net>:
	* genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
	* conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
	util/grub-probe.c_DEPENDENCIES.  Replace grub-setup_DEPENDENCIES with
	util/i386/pc/grub-setup.c_DEPENDENCIES.
	* conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
	util/grub-probe.c_DEPENDENCIES.
	* conf/powerpc-ieee1275.rmk: Likewise.
2007-08-29 10:39:42 +00:00
robertmh
29d0928cd7 2007-08-28 Robert Millan <rmh@aybabtu.com>
* util/i386/get_disk_name.c: New.  Implement grub_util_get_disk_name()
	to tell grub-mkdevicemap how to name devices.
	* util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
	feature).

	* conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
	util/i386/get_disk_name.c.
	* conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
	util/ieee1275/get_disk_name.c.

	* include/grub/util/misc.h: grub_util_get_disk_name() declaration.

	* DISTLIST: Add util/i386/get_disk_name.c and
	util/ieee1275/get_disk_name.c.

	* util/grub-mkdevicemap.c: Replace device naming logic with
	grub_util_get_disk_name() calls.
2007-08-28 10:18:10 +00:00