Commit graph

1968 commits

Author SHA1 Message Date
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
robertmh
5a0d3cca6d 2007-08-20 Robert Millan <rmh@aybabtu.com>
* normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
	(so that it works for both plural and singular quantities).
2007-08-20 14:35:20 +00:00
robertmh
8b72db2f01 2007-08-05 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
	so that [xz] isn't taken into account when determining order.
2007-08-05 10:33:58 +00:00
marco_g
352466bf45 2007-08-02 Marco Gerards <marco@gnu.org>
* DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
	`include/multiboot2.h', `include/grub/elfload.h',
	`include/multiboot.h', `include/grub/multiboot.h',
	`include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
	`include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
	`kern/elf.c', `loader/multiboot_loader.c',
	`loader/multiboot_loader_normal.c', `loader/multiboot2.c',
	`loader/i386/pc/multiboot2.c',
	`loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
	`util/i386/pc/grub-mkrescue.in'.  Remove
	`include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
	`include/grub/i386/pc/util/biosdisk.h' and
	`include/grub/powerpc/ieee1275/multiboot.h'.
2007-08-02 20:19:50 +00:00
marco_g
8f096014e4 2007-08-02 Bean <bean123ch@gmail.com>
* conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
	(ntfs_mod_SOURCES): New variable.
	(ntfs_mod_CFLAGS): Likewise.
	(ntfs_mod_LDFLAGS): Likewise.

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

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

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

	* conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.

	* fs/ntfs.c: New file.
2007-08-02 19:12:52 +00:00
marco_g
9959f7dbb5 2007-08-02 Bean <bean123ch@gmail.com>
* disk.h (grub_disk): Use NESTED_FUNC_ATTR.

	* file.h (grub_file): Likewise.

	* fshelp.h (grub_fshelp_read_file): Likewise.

	* util/i386/pc/grub-setup.c (setup): Likewise.
	(save_first_sector): Likewise.
	(save_blocklists): Likewise.

	* fs/affs.c (grub_affs_read_file): Likewise.

	* fs/ext2.c (grub_ext2_read_file): Likewise.

	* fs/fat.c (grub_fat_read_data): Likewise.

	* fs/fshelp.c (grub_fshelp_read_file): Likewise.

	* fs/hfs.c (grub_hfs_read_file): Likewise.

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

	* fs/jfs.c (grub_jfs_read_file): Likewise.

	* fs/minix.c (grub_minix_read_file): Likewise.

	* fs/sfs.c (grub_sfs_read_file): Likewise.

	* fs/ufs.c (grub_ufs_read_file): Likewise.

	* fs/xfs.c (grub_xfs_read_file): Likewise.

	* command/blocklist.c (read_blocklist): Likewise.
	(print_blocklist): Likewise.
2007-08-02 18:40:37 +00:00
marco_g
0a203f83ff 2007-08-02 Marco Gerards <marco@gnu.org>
* conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
	`util/hostfs.c'.

	* disk/host.c: New file.

	* util/hostfs.c: Likewise.

	* fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
	return `GRUB_ERR_BAD_FS'.
	* fs/sfs.c (grub_sfs_mount): Likewise.
	* fs/xfs.c (grub_xfs_mount): Likewise.

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

	* util/grub-emu.c (main): Initialize and de-initialize hostfs.
2007-08-02 17:24:06 +00:00
jerone
e5dfe7775a This patch is to introduce multiboot 2 loading capabilities to grub2
for powerpc & i386-pc. This patch was more so started by Hollis
Blanchard getting multiboot 2 working for powerpc and I added to it
and cleaned it up.

One of the ideas with this patch is to keep everything under one
command for the user. So instead of having a "multiboot2" & "module2"
command, I created a proxy like mechanism so that you have only one
command for both multiboot 1 & 2 ... "multiboot". This is where
"loader/multiboot_loader.c" comes from. I could have integrated things
more but I figure the current approach will less likely break
anything.

So if your OS is multiboot 2 capable, the user would do the following
to load it up from a grub prompt:

grub> multiboot <location of kernel> <kernel args>
grub> module <some image> <multiboot tag> <image arguments>
grub> module <isome mage> <multiboot tag> <image arguments>
grub .....


The other thing that this patch does is it begins to make the
multiboot 1 code a bit more architecture agnostic so IF someone wanted
to implement it on another architecture they can.

A bit of file moving around and definition renaming is also apart of
this patch. I have also taken the time to make sure that it does not
break multiboot 1 loading on i386-pc. But mulitboot 2 may still need a
little more testing and work for i386-pc. Powerpc multiboot 2 has been
heavily tested and does work.
2007-07-25 00:44:03 +00:00
robertmh
daf0f0ba3e 2007-07-22 Robert Millan <rmh@aybabtu.com>
* geninitheader.sh: Process file specified in first parameter rather
	than hardcoding grub_modules_init.lst.
	* geninit.sh: Likewise.  Also, construct header name dynamicaly rather
	than hardcoding grub_modules_init.h.

	* conf/common.rmk: Rename grub_modules_init.[ch] files associated with
	grub-emu to grub_emu_init.[ch].  Add rules to build analogous
	grub_probe_init.[ch] and grub_setup_init.[ch].

	* conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
	grub_modules_init.h with grub_emu_init.h.
	(grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
	grub_probe_init.[ch] files.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	(grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
	grub_setup_init.[ch] files.

	* util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
	* util/grub-probe.c: Include grub_probe_init.h.  Use grub_init_all()
	to initialize modules rather than a list of hardcoded functions.
	* util/i386/pc/grub-setup.c: Include grub_setup_init.h.  Use
	grub_init_all() to initialize modules rather than a list of hardcoded
	functions.
2007-07-22 19:17:27 +00:00
robertmh
54cdc1cc1c 2007-07-22 Robert Millan <rmh@aybabtu.com>
* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
2007-07-22 09:16:51 +00:00
robertmh
ad0686cc6d 2007-07-22 Robert Millan <rmh@aybabtu.com>
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
	GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
	flag when running on SmartFirmware.
	* term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
	"output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
	was set.

	* kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
	Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
	rather than decreasing it.

	* util/i386/pc/grub-setup.c (setup): When embedding is required, but
	there's not enough space to do it, fail in the same way as when it
	can't be done because there are no partitions.

	* util/powerpc/ieee1275/grub-install.in: Improve error message shown
	when nvsetenv failed.
2007-07-22 09:05:11 +00:00
okuji
969c02ec31 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
* conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
    because this rule is automatically generated.
    (grub-mkrescue): Removed for the same reason as above.
2007-07-21 23:34:57 +00:00
okuji
5a79f472c7 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
Migrate to GNU General Public License Version 3.

    * COPYING: Replaced with the plain text version of GPLv3.

    * config.guess: Updated from gnulib.
    * config.sub: Likewise.

    * geninit.sh: Output a GPLv3 copyright notice.
    * geninitheader.sh: Likewise.
    * genmodsrc.sh: Likewise.
    * gensymlist.sh.in: Likewise.

    * boot/i386/pc/boot.S: Upgraded to GPLv3.
    * boot/i386/pc/diskboot.S: Likewise.
    * boot/i386/pc/pxeboot.S: Likewise.
    * commands/blocklist.c: Likewise.
    * commands/boot.c: Likewise.
    * commands/cat.c: Likewise.
    * commands/cmp.c: Likewise.
    * commands/configfile.c: Likewise.
    * commands/echo.c: Likewise.
    * commands/help.c: Likewise.
    * commands/ls.c: Likewise.
    * commands/search.c: Likewise.
    * commands/terminal.c: Likewise.
    * commands/test.c: Likewise.
    * commands/videotest.c: Likewise.
    * commands/i386/cpuid.c: Likewise.
    * commands/i386/pc/halt.c: Likewise.
    * commands/i386/pc/play.c: Likewise.
    * commands/i386/pc/reboot.c: Likewise.
    * commands/i386/pc/vbeinfo.c: Likewise.
    * commands/i386/pc/vbetest.c: Likewise.
    * commands/ieee1275/halt.c: Likewise.
    * commands/ieee1275/reboot.c: Likewise.
    * commands/ieee1275/suspend.c: Likewise.
    * disk/loopback.c: Likewise.
    * disk/lvm.c: Likewise.
    * disk/raid.c: Likewise.
    * disk/efi/efidisk.c: Likewise.
    * disk/i386/pc/biosdisk.c: Likewise.
    * disk/ieee1275/ofdisk.c: Likewise.
    * font/manager.c: Likewise.
    * fs/affs.c: Likewise.
    * fs/ext2.c: Likewise.
    * fs/fat.c: Likewise.
    * fs/fshelp.c: Likewise.
    * fs/hfs.c: Likewise.
    * fs/hfsplus.c: Likewise.
    * fs/iso9660.c: Likewise.
    * fs/jfs.c: Likewise.
    * fs/minix.c: Likewise.
    * fs/sfs.c: Likewise.
    * fs/ufs.c: Likewise.
    * fs/xfs.c: Likewise.
    * hello/hello.c: Likewise.
    * include/grub/acorn_filecore.h: Likewise.
    * include/grub/arg.h: Likewise.
    * include/grub/bitmap.h: Likewise.
    * include/grub/boot.h: Likewise.
    * include/grub/cache.h: Likewise.
    * include/grub/device.h: Likewise.
    * include/grub/disk.h: Likewise.
    * include/grub/dl.h: Likewise.
    * include/grub/elfload.h: Likewise.
    * include/grub/env.h: Likewise.
    * include/grub/err.h: Likewise.
    * include/grub/file.h: Likewise.
    * include/grub/font.h: Likewise.
    * include/grub/fs.h: Likewise.
    * include/grub/fshelp.h: Likewise.
    * include/grub/gzio.h: Likewise.
    * include/grub/hfs.h: Likewise.
    * include/grub/kernel.h: Likewise.
    * include/grub/loader.h: Likewise.
    * include/grub/lvm.h: Likewise.
    * include/grub/misc.h: Likewise.
    * include/grub/mm.h: Likewise.
    * include/grub/net.h: Likewise.
    * include/grub/normal.h: Likewise.
    * include/grub/parser.h: Likewise.
    * include/grub/partition.h: Likewise.
    * include/grub/pc_partition.h: Likewise.
    * include/grub/raid.h: Likewise.
    * include/grub/rescue.h: Likewise.
    * include/grub/script.h: Likewise.
    * include/grub/setjmp.h: Likewise.
    * include/grub/symbol.h: Likewise.
    * include/grub/term.h: Likewise.
    * include/grub/terminfo.h: Likewise.
    * include/grub/tparm.h: Likewise.
    * include/grub/types.h: Likewise.
    * include/grub/video.h: Likewise.
    * include/grub/efi/api.h: Likewise.
    * include/grub/efi/chainloader.h: Likewise.
    * include/grub/efi/console.h: Likewise.
    * include/grub/efi/console_control.h: Likewise.
    * include/grub/efi/disk.h: Likewise.
    * include/grub/efi/efi.h: Likewise.
    * include/grub/efi/pe32.h: Likewise.
    * include/grub/efi/time.h: Likewise.
    * include/grub/i386/linux.h: Likewise.
    * include/grub/i386/setjmp.h: Likewise.
    * include/grub/i386/types.h: Likewise.
    * include/grub/i386/efi/kernel.h: Likewise.
    * include/grub/i386/efi/loader.h: Likewise.
    * include/grub/i386/efi/time.h: Likewise.
    * include/grub/i386/pc/biosdisk.h: Likewise.
    * include/grub/i386/pc/boot.h: Likewise.
    * include/grub/i386/pc/chainloader.h: Likewise.
    * include/grub/i386/pc/console.h: Likewise.
    * include/grub/i386/pc/init.h: Likewise.
    * include/grub/i386/pc/kernel.h: Likewise.
    * include/grub/i386/pc/loader.h: Likewise.
    * include/grub/i386/pc/memory.h: Likewise.
    * include/grub/i386/pc/multiboot.h: Likewise.
    * include/grub/i386/pc/serial.h: Likewise.
    * include/grub/i386/pc/time.h: Likewise.
    * include/grub/i386/pc/vbe.h: Likewise.
    * include/grub/i386/pc/vbeblit.h: Likewise.
    * include/grub/i386/pc/vbefill.h: Likewise.
    * include/grub/i386/pc/vbeutil.h: Likewise.
    * include/grub/i386/pc/vga.h: Likewise.
    * include/grub/ieee1275/ieee1275.h: Likewise.
    * include/grub/ieee1275/ofdisk.h: Likewise.
    * include/grub/powerpc/libgcc.h: Likewise.
    * include/grub/powerpc/setjmp.h: Likewise.
    * include/grub/powerpc/types.h: Likewise.
    * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
    * include/grub/powerpc/ieee1275/console.h: Likewise.
    * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
    * include/grub/powerpc/ieee1275/kernel.h: Likewise.
    * include/grub/powerpc/ieee1275/loader.h: Likewise.
    * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
    * include/grub/powerpc/ieee1275/time.h: Likewise.
    * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
    * include/grub/sparc64/libgcc.h: Likewise.
    * include/grub/sparc64/setjmp.h: Likewise.
    * include/grub/sparc64/types.h: Likewise.
    * include/grub/sparc64/ieee1275/console.h: Likewise.
    * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
    * include/grub/sparc64/ieee1275/kernel.h: Likewise.
    * include/grub/sparc64/ieee1275/time.h: Likewise.
    * include/grub/util/biosdisk.h: Likewise.
    * include/grub/util/getroot.h: Likewise.
    * include/grub/util/lvm.h: Likewise.
    * include/grub/util/misc.h: Likewise.
    * include/grub/util/raid.h: Likewise.
    * include/grub/util/resolve.h: Likewise.
    * io/gzio.c: Likewise.
    * kern/device.c: Likewise.
    * kern/disk.c: Likewise.
    * kern/dl.c: Likewise.
    * kern/elf.c: Likewise.
    * kern/env.c: Likewise.
    * kern/err.c: Likewise.
    * kern/file.c: Likewise.
    * kern/fs.c: Likewise.
    * kern/loader.c: Likewise.
    * kern/main.c: Likewise.
    * kern/misc.c: Likewise.
    * kern/mm.c: Likewise.
    * kern/parser.c: Likewise.
    * kern/partition.c: Likewise.
    * kern/rescue.c: Likewise.
    * kern/term.c: Likewise.
    * kern/efi/efi.c: Likewise.
    * kern/efi/init.c: Likewise.
    * kern/efi/mm.c: Likewise.
    * kern/i386/dl.c: Likewise.
    * kern/i386/efi/init.c: Likewise.
    * kern/i386/efi/startup.S: Likewise.
    * kern/i386/pc/init.c: Likewise.
    * kern/i386/pc/lzo1x.S: Likewise.
    * kern/i386/pc/startup.S: Likewise.
    * kern/ieee1275/ieee1275.c: Likewise.
    * kern/powerpc/cache.S: Likewise.
    * kern/powerpc/dl.c: Likewise.
    * kern/powerpc/ieee1275/cmain.c: Likewise.
    * kern/powerpc/ieee1275/crt0.S: Likewise.
    * kern/powerpc/ieee1275/init.c: Likewise.
    * kern/powerpc/ieee1275/openfw.c: Likewise.
    * kern/sparc64/cache.S: Likewise.
    * kern/sparc64/dl.c: Likewise.
    * kern/sparc64/ieee1275/init.c: Likewise.
    * kern/sparc64/ieee1275/openfw.c: Likewise.
    * loader/efi/chainloader.c: Likewise.
    * loader/efi/chainloader_normal.c: Likewise.
    * loader/i386/efi/linux.c: Likewise.
    * loader/i386/efi/linux_normal.c: Likewise.
    * loader/i386/pc/chainloader.c: Likewise.
    * loader/i386/pc/chainloader_normal.c: Likewise.
    * loader/i386/pc/linux.c: Likewise.
    * loader/i386/pc/linux_normal.c: Likewise.
    * loader/i386/pc/multiboot.c: Likewise.
    * loader/i386/pc/multiboot_normal.c: Likewise.
    * loader/powerpc/ieee1275/linux.c: Likewise.
    * loader/powerpc/ieee1275/linux_normal.c: Likewise.
    * normal/arg.c: Likewise.
    * normal/cmdline.c: Likewise.
    * normal/command.c: Likewise.
    * normal/completion.c: Likewise.
    * normal/execute.c: Likewise.
    * normal/function.c: Likewise.
    * normal/lexer.c: Likewise.
    * normal/main.c: Likewise.
    * normal/menu.c: Likewise.
    * normal/menu_entry.c: Likewise.
    * normal/misc.c: Likewise.
    * normal/parser.y: Likewise.
    * normal/script.c: Likewise.
    * normal/i386/setjmp.S: Likewise.
    * normal/powerpc/setjmp.S: Likewise.
    * normal/sparc64/setjmp.S: Likewise.
    * partmap/acorn.c: Likewise.
    * partmap/amiga.c: Likewise.
    * partmap/apple.c: Likewise.
    * partmap/gpt.c: Likewise.
    * partmap/pc.c: Likewise.
    * partmap/sun.c: Likewise.
    * term/gfxterm.c: Likewise.
    * term/terminfo.c: Likewise.
    * term/efi/console.c: Likewise.
    * term/i386/pc/console.c: Likewise.
    * term/i386/pc/serial.c: Likewise.
    * term/i386/pc/vesafb.c: Likewise.
    * term/i386/pc/vga.c: Likewise.
    * term/ieee1275/ofconsole.c: Likewise.
    * util/biosdisk.c: Likewise.
    * util/console.c: Likewise.
    * util/genmoddep.c: Likewise.
    * util/getroot.c: Likewise.
    * util/grub-emu.c: Likewise.
    * util/grub-mkdevicemap.c: Likewise.
    * util/grub-probe.c: Likewise.
    * util/lvm.c: Likewise.
    * util/misc.c: Likewise.
    * util/raid.c: Likewise.
    * util/resolve.c: Likewise.
    * util/update-grub.in: Likewise.
    * util/update-grub_lib.in: Likewise.
    * util/grub.d/00_header.in: Likewise.
    * util/grub.d/10_hurd.in: Likewise.
    * util/grub.d/10_linux.in: Likewise.
    * util/i386/efi/grub-install.in: Likewise.
    * util/i386/efi/grub-mkimage.c: Likewise.
    * util/i386/pc/grub-install.in: Likewise.
    * util/i386/pc/grub-mkimage.c: Likewise.
    * util/i386/pc/grub-mkrescue.in: Likewise.
    * util/i386/pc/grub-setup.c: Likewise.
    * util/i386/pc/misc.c: Likewise.
    * util/powerpc/ieee1275/grub-install.in: Likewise.
    * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
    * util/powerpc/ieee1275/misc.c: Likewise.
    * video/bitmap.c: Likewise.
    * video/video.c: Likewise.
    * video/i386/pc/vbe.c: Likewise.
    * video/i386/pc/vbeblit.c: Likewise.
    * video/i386/pc/vbefill.c: Likewise.
    * video/i386/pc/vbeutil.c: Likewise.
    * video/readers/tga.c: Likewise.
2007-07-21 23:32:33 +00:00
robertmh
3572d015fd 2007-07-02 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk: Replace obsolete reference to
	util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
	with util/getroot.c.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.

	* util/grub-emu.c (main): Fix unchecked pointer handling.
2007-07-02 20:38:01 +00:00
robertmh
2c2a681b39 2007-07-02 Robert Millan <rmh@aybabtu.com>
* util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
	invocation to fail, in order to support partition-less media.

	* util/i386/pc/grub-install.in: Likewise.

	* util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
	which fs or partmap modules are needed (akin to its sister scripts).

	Also use grub-probe to get rid of unportable /proc/mounts check.

	Print the same informational message that the other scripts do, before
	exitting.
2007-07-02 13:58:03 +00:00
robertmh
6193defe9f 2007-06-23 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (font_path): New function.  Determine wether
	a font file can be found and, if so, echo the GRUB path to it.

	* util/update-grub.in: Handle multiple terminals depending on user
	input, platform availability and font file presence.  Propagate
	variables of our findings to /etc/grub.d/ children.

	* util/grub.d/00_header.in: Handle multiple terminals, based on
	environment setup by update-grub.
2007-06-23 19:34:57 +00:00
robertmh
ba50d28f33 Fix syntax error. 2007-06-23 17:40:42 +00:00
robertmh
eface1dc8a 2007-06-23 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk: (pkgdata_MODULES): Add serial.mod.
2007-06-23 14:44:37 +00:00
robertmh
bf697e2831 2007-06-21 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
	indicate end of data section in kernel image.
	* include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
	GRUB_KERNEL_MACHINE_DATA_END.

	* kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
	space for it.
	* kern/i386/efi/startup.S: Likewise.

	* util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
	during image generation.  Implement --prefix option to override this
	patch.
	* util/i386/efi/grub-mkimage.c: Likewise.

	* util/update-grub_lib.in (convert_system_path_to_grub_path): Split
	code to make path relative to its root into a separate function.

	* util/i386/pc/grub-install.in: Use newly provided
	make_system_path_relative_to_its_root() to convert ${grubdir}, then
	pass the result to grub-install --prefix.
2007-06-21 21:01:11 +00:00
robertmh
baa574b487 2007-06-13 Robert Millan <rmh@aybabtu.com>
* include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
	DEFAULT_DEVICE_MAP.
	* util/grub-emu.c: Use above definitions from misc.h instead of
	defining them.
	* util/grub-mkdevicemap.c: Likewise.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/grub-probe.c: Likewise.
	(probe): Abort with grub_util_error() when either
	grub_guess_root_device or grub_util_get_grub_dev fails.
2007-06-13 16:53:54 +00:00
robertmh
0215dcbfdc 2007-06-12 Robert Millan <rmh@aybabtu.com>
* normal/command.c (grub_command_execute): Use NULL rather than 0 for
	"pager" assignment.
	* util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
	"pcdata".
	* util/grub-probe.c (probe): Likewise for "drive_name".
2007-06-12 14:23:12 +00:00
robertmh
8af2ab7bad 2007-06-11 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
	not just the cdrom one.
2007-06-11 20:01:09 +00:00
robertmh
59d31694f2 2007-06-11 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-mkrescue.in: Add "set -e".
	Add --pkglibdir=DIR option to override pkglibdir.
	Mention --image-type=TYPE in help output.
	Fix --grub-mkimage (it was a no-op).
	Abort gracefuly when no parameter is given.
2007-06-11 19:22:27 +00:00
robertmh
7ee367e49b 2007-06-11 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-mkrescue.in: New file.
	* conf/i386-pc.rmk: Add its build declarations.  Put it in bin_SCRIPTS.
	* Makefile.in: Handle bin_SCRIPTS.
2007-06-11 06:26:18 +00:00
chaac
29b0ed4617 2007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
* term/gfxterm.c (grub_gfxterm_init): Added support for specifying
        list of video modes.
2007-06-10 17:31:03 +00:00
robertmh
c0f90770b8 2007-06-06 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
	file doesn't exist, or if it is in a filesystem grub can't read.

	* util/update-grub.in: Set fallback for GRUB_FS check to "unknown".  Do
	not abort if GRUB_DRIVE could not be defined.  Rearrange generated
	header comment to fit in 80 columns when the variables are resolved.

	* util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
	could be identified by update-grub.  Remove redundant check for
	unifont.pff existance (since convert_system_path_to_grub_path now
	handles that).
2007-06-06 18:08:56 +00:00
robertmh
fb36dc2693 2007-06-04 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.

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

	* conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
2007-06-04 19:48:53 +00:00
robertmh
0c68c93e62 2007-06-04 Robert Millan <rmh@aybabtu.com>
* conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.

	* include/grub/partition.h: Declare grub_apple_partition_map_init and
	grub_apple_partition_map_fini.

	* util/biosdisk.c
	(grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
	to access >2 TiB disks).

	Print disk->total_sectors with %llu instead of %lu, since this
	variable is always 64-bit (prevents wrong disk size from being displayed
	on either >2 TiB disk or big-endian CPU).

	(grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
	into a generic case that supports all (sane) partition maps.

	Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
	breaks big-endian.

	* util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
	and grub_apple_partition_map_fini() after that.
2007-06-04 18:58:17 +00:00
robertmh
0f23eb7460 2007-06-01 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Export GRUB_CMDLINE_LINUX.

	* util/grub.d/00_header.in: Only enable gfxterm when
	convert_system_path_to_grub_path() succeeds.
2007-06-01 15:21:20 +00:00
robertmh
42c71976c6 2007-05-20 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in: New file.
	* DISTLIST: Add update-grub_lib.in.
	* conf/common.rmk: Generate update-grub_lib and install it in
	$(lib_DATA).
	* Makefile.in: Add install routine for $(lib_DATA).

	* util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
	function provided by update-grub_lib to support arbitrary paths of
	unifont.pff.
	* util/update-grub.in: Use convert_system_path_to_grub_path() to
	initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
2007-05-20 09:10:06 +00:00
robertmh
5beb22914d 2007-05-19 Robert Millan <rmh@aybabtu.com>
* commands/i386/cpuid.c: New module.
	* DISTLIST: Add it.
	* conf/i386-efi.rmk: Enable cpuid.mod.
	* conf/i386-pc.rmk: Likewise.
2007-05-20 07:20:43 +00:00
jeroen
7262eca1e3 2007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
* kern/disk.c (grub_disk_read): Check return value of
	grub_realloc().
2007-05-18 21:40:06 +00:00
jeroen
260ba823e6 2007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
* util/getroot.c (grub_util_get_grub_dev): Support partitionable
	arrays.
	* disk/raid.c (grub_raid_open): Likewise.
2007-05-17 23:23:03 +00:00
jeroen
1ecb6cf2b4 2007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
* util/biosdisk.c (linux_find_partition): Allocate real_dev on the
	stack instead of on the heap.

	* kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
	before doing a read on it.

	* configure.ac: Only use -fno-stack-protector for the target
	environment.
2007-05-17 19:03:42 +00:00
jeroen
21c8cbb1ab 2007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
* video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
	__attribute_ ((unused)) to mode_type argument.

	* util/getroot.c (grub_guess_root_device): Fix #endif.

	* kern/misc.c (memcmp): Fix prototype.

	* include/grub/partition.h [GRUB_UTIL]
	(grub_gpt_partition_map_init): Add prototype.
	(grub_gpt_partition_map_fini): Likewise.

	* fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
	at the right place.

	* fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
	(grub_fat_read_data): Likewise.
	(grub_fat_find_dir): Likewise.

	* font/manager.c (find_glyph): Make table a const.
	(grub_font_get_glyph): Remove bitmap from if statement.
2007-05-17 15:43:32 +00:00
jeroen
849d55d3d1 2007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
* util/getroot.c (grub_guess_root_device): Remove RAID and LVM
	code, first search for device in /dev/mapper, then in /dev.
	(grub_util_get_grub_dev): New function.
	* include/grub/util/getroot.h (grub_util_get_grub_dev): Add
	prototype.
	* util/grub-probe.c (probe): Remove check for RAID, call
	grub_util_get_grub_dev() instead of
	grub_util_biosdisk_get_grub_dev().
	* util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
	grub_util_biosdisk_get_grub_dev().
	* util/i386/pc/grub-setup.c (main): Likewise.
2007-05-16 21:38:44 +00:00
robertmh
8fff7c2f2a 2007-05-16 Robert Millan <rmh@aybabtu.com>
* DISTLIST: Update for the latest changes.
	* conf/i386-pc.rmk: Use the new paths for util/getroot.c,
	util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
	* util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
	grub/util/biosdisk.h.
	* util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
	grub/util/biosdisk.h.
2007-05-16 15:19:38 +00:00
robertmh
48e12b52d3 2007-05-16 Robert Millan <rmh@aybabtu.com>
* util/grub.d/00_header.in: Set default gfxmode to `640x480'.
2007-05-16 15:06:45 +00:00
robertmh
46b9d12846 2007-05-16 Robert Millan <rmh@aybabtu.com>
* util/i386/efi/grub-install.in: New.
	* conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
	newly added grub-install.
	* util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
	include.
	* util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
	grub/util/biosdisk.h.
	* util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
	grub/util/biosdisk.h.
2007-05-16 15:05:02 +00:00
robertmh
2d1a40a90c 2007-05-16 Robert Millan <rmh@aybabtu.com>
* include/grub/i386/pc/util/biosdisk.h: Moved to ...
	* include/grub/util/biosdisk.h: ... here.
	* util/i386/pc/biosdisk.c: Moved to ...
	* util/biosdisk.c: ... here.
	* util/i386/pc/getroot.c: Moved to ...
	* util/getroot.c: ... here.
	* util/i386/pc/grub-mkdevicemap.c: Moved to ...
	* util/grub-mkdevicemap.c: ... here.
	* util/i386/pc/grub-probe.c: Moved to ...
	* util/grub-probe.c: ... here.
2007-05-16 14:54:08 +00:00
robertmh
9e26e3bc68 2007-05-15 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Remove duplicated line in grub.cfg header
	message.
2007-05-15 19:25:56 +00:00
robertmh
57f9639766 2007-05-13 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Fix a few assumptions about the devices holding
	/, /boot and /boot/grub being the same.
	* util/grub.d/00_header.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.

	* util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
	patterns.  Use that to define the `.old' suffix as older than `'.

	* util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.

	* util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
	the grub.cfg header message.
2007-05-13 19:28:54 +00:00
robertmh
2e610d6273 2007-05-11 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Create device.map if it doesn't already exist,
	before attempting to run grub-probe.
	Check for grub-probe and grub-mkdevicemap with the same code
	grub-install is using.
	Remove test mode.
2007-05-11 15:53:02 +00:00
jeroen
3f6a10ef11 2007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
* Makefile.in: Add the datarootdir autoconf variable.
2007-05-09 21:24:33 +00:00
robertmh
02e7b75ee8 2007-05-09 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-probe.c (probe): When detecting partition map,
        fail gracefuly if dev->disk->partition == NULL.
2007-05-09 15:09:41 +00:00
robertmh
75f396ccfa 2007-05-07 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
	determine partition map module.
	* util/i386/pc/grub-install.in: Use this feature to decide which
	partition module to load, instead of hardcoding pc and gpt.
2007-05-07 19:54:46 +00:00
robertmh
da65cb3645 2007-05-07 Robert Millan <rmh@aybabtu.com>
* Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
	source directory differs from build directory.
2007-05-07 09:25:23 +00:00
robertmh
b57d6a91c6 2007-05-05 Robert Millan <rmh@aybabtu.com>
* util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
	initialisation.
2007-05-05 11:55:20 +00:00
robertmh
509d00f1cc 2007-05-05 Robert Millan <rmh@aybabtu.com>
* util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
2007-05-05 10:57:51 +00:00
robertmh
c48f23ef4b 2007-05-05 Robert Millan <rmh@aybabtu.com>
* util/grub.d/10_linux.in: Allow the administrator to insert Linux
	command-line arguments via ${GRUB_CMDLINE_LINUX}.
2007-05-05 10:34:05 +00:00
robertmh
20b976586e 2007-05-05 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
	(grub_probe_SOURCES): Likewise.
	* util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
	GPT and initialize dos_part and bsd_part accordingly.
	* util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
	install_bsd_part.
	(main): Activate gpt module for use during partition identification,
	and deactivate it afterwards.
	* util/i386/pc/grub-install.in: Add gpt module to core.img.
	* util/i386/pc/grub-probe.c (main): Activate gpt module for use during
	partition identification, and deactivate it afterwards.
2007-05-04 23:00:56 +00:00
robertmh
99123174c9 2007-05-05 Robert Millan <rmh@aybabtu.com>
* term/i386/pc/console.c (grub_console_fini): Call
	grub_term_set_current() before grub_term_unregister().
2007-05-04 22:28:31 +00:00
robertmh
ebd97f6e46 2007-05-04 Robert Millan <rmh@aybabtu.com>
* DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
	util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
	* Makefile.in: Build update-grub_SCRIPTS.  Install update-grub_SCRIPTS
	and update-grub_DATA.
	* conf/common.rmk: Build and install update-grub components.
	* conf/common.mk: Regenerate.
	* util/update-grub.in: New.  Core of update-grub.
	* util/grub.d/00_header.in: New.  Generates grub.cfg header.
	* util/grub.d/10_hurd.in: New.  Generates boot entries for the Hurd.
	* util/grub.d/10_linux.in: New.  Generates boot entries for Linux.
	* util/grub.d/README: New.  Document grub.d directory layout.
2007-05-04 07:11:44 +00:00
robertmh
b06a264da4 2007-05-01 Robert Millan <rmh@aybabtu.com>
* util/grub-emu.c: Move initialization functions
	grub_util_biosdisk_init() and grub_init_all() before
	grub_util_biosdisk_get_grub_dev(), which relies on them.
2007-04-30 22:22:24 +00:00
robertmh
41f0050ea9 2007-04-19 Robert Millan <rmh@aybabtu.com>
* util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
	it is used later.
2007-04-19 12:24:47 +00:00
jerone
04582bb3bb Add missing parenthesis for conditional statement stanza. 2007-04-18 22:59:52 +00:00
jerone
49892fdf50 Add newline in change log. Where was missed before checked in. 2007-04-10 22:03:15 +00:00
jerone
08db463226 Fixes the situation with i386-pc where grub-probe & grub-setup are searching
for the root fs for grub files  and they happen to be on the same file system
as the root ("/") filesystem.
2007-04-10 22:00:24 +00:00
jerone
801b76be69 Add single extra space between name and email address in ChangeLog. 2007-04-10 21:49:47 +00:00
jerone
1d543c3ec0 Add the ability to transform Grub program names. For example, a user can easily launch
./configure --program-transform-name="s/grub/grub2/"

And the installed files (in this case for i386-pc) will be:

/usr/lib/grub2/i386-pc/*
/usr/local/sbin/grub2-emu
/usr/local/sbin/grub2-install
...etc

Also grub2-install place boot files in "/boot/grub2"

This allows easy integration into distributions as it allows grub2 to
sit side by side with a grub legacy install without.
2007-04-10 21:38:26 +00:00
okuji
6795c4e10b 2007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
* fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
    (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
    (EXT2_REVISION): Likewise.
    (EXT2_INODE_SIZE): Likewise.
    (struct grub_ext2_block_group): Added a missing member
    "used_dirs".
    (grub_ext2_read_inode): Divide by the inode size in a superblock
    instead of 128 to obtain INODES_PER_BLOCK.
    Use the macro EXT2_INODE_SIZE instead of directly using
    SBLOCK->INODE_SIZE.
2007-03-19 00:04:29 +00:00
okuji
d70af616c2 2007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
* fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
    superblock instead of the structure size to compute an
    offset. This fixes the problem that GRUB could not read a
    filesystem when inode size is different from 128-byte.
2007-03-18 01:18:39 +00:00
marco_g
3b801603d5 2007-03-05 Marco Gerards <marco@gnu.org>
* normal/main.c (read_config_file): When "menu" is not set, create
	an initial context.
2007-03-05 20:32:43 +00:00
hollisb
4785bfe460 2007-02-21 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
	(HEAP_LIMIT): New macro.
	(grub_claim_heap): Claim memory up to `heaplimit'.
2007-02-21 23:25:09 +00:00
hollisb
a0cbb02386 2007-02-21 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
	* kern/powerpc/ieee1275/init.c (_end): Add declaration.
	(_start): Likewise.
	(grub_arch_modules_addr): Return address after `_end'.
	* util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
	(load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
	(add_segments): Calculate `_end' from phdr size and location.
	(ALIGN_UP): Moved to ...
	* include/grub/misc.h: here.
	* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
	New macro.
	(GRUB_IEEE1275_MODULE_BASE): Removed.
2007-02-21 23:22:20 +00:00
hollisb
fd7d8ebae4 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
	loop boundary.
2007-02-20 22:48:27 +00:00
hollisb
9b09e6fca0 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
	All users updated.
	(grub_elf64_load_hook_t): Likewise.
	* kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
	debug output.
2007-02-20 22:46:12 +00:00
hollisb
3ce27299eb 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
* kern/mm.c: Update copyright.
	(grub_mm_debug): Correct syntax error.
	(grub_mm_dump_free): New function.
	(grub_debug_free): Call `grub_free'.
	* include/grub/mm.h: Update copyright.
	(grub_mm_dump_free): Add declaration.
2007-02-20 22:39:57 +00:00
hollisb
077d5fee0a 2007-02-12 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/ieee1275/ieee1275.h: Update copyright.
	* kern/powerpc/ieee1275/init.c: Likewise.
	* kern/powerpc/ieee1275/openfw.c: Likewise.

	* loader/powerpc/ieee1275/linux.c: Likewise.
	* include/grub/elfload.h: Likewise.
	* kern/elf.c: Likewise.
	(grub_elf32_load): Pass `base' and `size' parameters.  Update all
	callers.
	(grub_elf64_load): Likewise.
	(grub_elf32_load_segment): Move to a nested function.
	(grub_elf64_load_segment): Likewise.
2007-02-13 03:49:43 +00:00
hollisb
dc94685009 2007-02-12 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
	prototype.
	* kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
	(grub_heap_len): Likewise.
	(HEAP_SIZE): New macro.
	(grub_claim_heap): New function.
	(grub_machine_init): Don't claim heap directly.  Call
	`grub_claim_heap'.
	* kern/powerpc/ieee1275/openfw.c: Include alloca.h.
	(grub_available_iterate): New function.
2007-02-13 03:20:16 +00:00
tschwinge
baa2a121e0 2007-02-03 Thomas Schwinge <tschwinge@gnu.org>
* aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
	* configure.ac: Use it for testing the HOST and TARGET compilers.
2007-02-03 11:36:13 +00:00
tschwinge
4fe9862ebb 2006-12-13 Thomas Schwinge <tschwinge@gnu.org>
* Makefile.in (enable_grub_emu): New variable.
	* configure.ac (--enable-grub-emu): New option.
	Do the checks for (n)curses only if `--enable-grub-emu' is requested.
	* conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
2006-12-13 22:30:19 +00:00
marco_g
a8aa57628e 2006-12-12 Marco Gerards <marco@gnu.org>
* include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.

	* kern/env.c (grub_env_unset): Don't free the member `value' when
	the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
	pointer.

	* normal/main.c (current_menu): Removed.
	(free_menu): Unset the `menu' environment variable.
	(grub_normal_menu_addentry): Make use of the environment variable
	`menu', instead of using the global `current_menu'.  Allocate
	memory for the sourcecode of this entry.
	(read_config_file): New argument `nested', changed all callers.
	Only in the case of a new context, initialize a new menu.  Set the
	`menu' environment variable.
	(grub_normal_execute): Don't set and unset the environment
	variable `menu' here anymore.  Only free the menu when leaving the
	context.

	* util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
	leak.
2006-12-12 00:13:55 +00:00
marco_g
957b3a3e17 2006-12-11 Marco Gerards <marco@gnu.org>
* normal/menu_entry.c (run): Fix off by one bug so the last line
	is executed.  Move the loader check to outside the loop.
2006-12-11 21:00:06 +00:00
hollisb
ef87571464 2006-12-08 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
2006-12-08 21:16:47 +00:00
okuji
4e7399859b 2006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
        the number of sectors.  Reported by Andrey Shuvikov
        <mr_hyro@yahoo.com>.
2006-11-25 03:21:29 +00:00
jeroen
790707f254 2006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
* kern/disk.c (grub_disk_read): When there is a read error, always
	try to read only the necessary data.

	* conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
	disk/raid.c.
	* include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
	prototype.
	[GRUB_UTIL] (grub_raid_fini): Likewise.
	[GRUB_UTIL] (grub_lvm_init): Likewise.
	[GRUB_UTIL] (grub_lvm_fini): Likewise.
	* util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
	RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
	(main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
	and grub_raid_fini().
2006-11-10 23:31:55 +00:00
jeroen
03e58196a8 2006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
* include/grub/types.h (__unused): Rename to UNUSED.
	* kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
	(grub_elf64_size): Likewise.
2006-11-09 19:39:51 +00:00
hollisb
ae4f23bfa6 2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
* kern/elf.c (grub_elf_file): Call grub_file_seek. Call
	grub_error_push and grub_error_pop in the error-handling path.
	(grub_elf32_load_segment): Only call grub_file_read with non-zero
	length.
2006-11-03 23:05:14 +00:00
hollisb
2166cc8349 2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
* conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	(kernel_elf_SOURCES): Likewise.
	* conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
	* conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
	* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
	* conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
	* conf/common.rmk (pkgdata_MODULES): Add elf.mod.
	(elf_mod_SOURCES): New variable.
	(elf_mod_CFLAGS): Likewise.
	(elf_mod_LDFLAGS): Likewise.
	* include/grub/types.h (__unused): New macro.
	* include/grub/elfload.h: New file.
	* kern/elf.c: Likewise.
	* loader/powerpc/ieee1275/linux.c: Include elfload.h.
	(ELF32_LOADMASK): New macro.
	(ELF64_LOADMASK): Likewise.
	(vmlinux): Removed.
	(grub_linux_load32): New function.
	(grub_linux_load64): Likewise.
	(grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
	Use grub_elf_t instead of grub_file_t.
2006-11-03 20:28:04 +00:00
hollisb
a09d5aa53e 2006-11-02 Hollis Blanchard <hollis@penguinppc.org>
* kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
	`catch_result' to struct set_color_args.
2006-11-02 16:30:17 +00:00
okuji
d976fc51e1 2006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
* normal/menu.c: Include grub/script.h.
        * normal/menu_entry.c: Likewise.
        * include/grub/normal.h: Do not include grub/script.h.
2006-10-28 14:00:05 +00:00
hollisb
6750754922 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
* kern/disk.c (grub_disk_read): Correct debug printf formatting.
2006-10-27 18:24:14 +00:00
hollisb
69203a9992 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
* kern/disk.c (grub_disk_open): Print debug messages when opening a
	disk.
	(grub_disk_close): Print debug messages when closing a disk.
	(grub_disk_read): Print debug messages when disk read fails.
	* kern/fs.c (grub_fs_probe): Print debug messages when detecting
	filesystem type.
	* kern/partition.c: Include misc.h.
	(grub_partition_iterate): Print debug messages when detecting
	partition type.
2006-10-27 18:14:00 +00:00
hollisb
e2b8278c9e 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
* disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
	is negative.
	* kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
2006-10-27 17:57:05 +00:00
hollisb
97b2f2ffe8 2006-10-26 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
	Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
2006-10-26 23:11:22 +00:00
jeroen
6555d655e2 2006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
* disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
	instead of sizeof(lv). Patch by Michael Guntsche.
2006-10-25 20:41:43 +00:00
jeroen
4d42b77f3f The "don't use variable names that differ only one character" commit.
2006-10-18  Jeroen Dekkers  <jeroen@dekkers.cx>

	* disk/lvm.c: Rename VGS to VG_LIST.
	(grub_lvm_iterate): Change VGS->LV to VG-LV.
	(grub_lvm_open): Likewise.
	Thanks to Michael Guntsche for finding this bug.
2006-10-18 21:42:42 +00:00
okuji
5d74d927f6 2006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac (AC_INIT): Bumped to 1.95.
2006-10-15 13:53:59 +00:00
robertmh
a1bb27e4fd 2006-10-14 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
	with "/dev/.static/dev/md".
2006-10-14 21:51:37 +00:00
okuji
e0994b8b1c 2006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
        DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
        DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
        DRIVE_NAME are always freed.

        * util/i386/pc/biosdisk.c (make_device_name): Add one into
        DOS_PART, as a DOS partition is counted from one instead of zero
        now. Reported by Robert Millan.
2006-10-14 21:07:48 +00:00
robertmh
ddd5cee9a9 2006-10-14 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/getroot.c (grub_guess_root_device): Stop using
	grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
	* util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
	string returned by grub_guess_root_device.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/i386/pc/grub-probefs.c: Likewise.

	* util/i386/pc/grub-probefs.c: Rename to ...
	* util/i386/pc/grub-probe.c: ... this.
	* DISTLIST: Remove grub-probefs, add grub-probe.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* util/i386/pc/grub-install.in: Likewise.

	* util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
	choose which information we want to print.
2006-10-14 18:59:34 +00:00
okuji
2b00217369 2006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
        include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
        include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
        include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
        video/readers/tga.c and video/i386/pc/vbeutil.c.

2006-10-14  Jeroen Dekkers  <jeroen@dekkers.cx>

        Added support for RAID and LVM.

        * disk/lvm.c: New file.
        * disk/raid.c: Likewise.
        * include/grub/lvm.h: Likewise.
        * include/grub/raid.h: Likewise.
        * include/grub/util/lvm.h: Likewise.
        * include/grub/util/raid.h: Likewise.
        * util/lvm.c: Likewise.
        * util/raid.c: Likewise.

        * include/grub/disk.h (grub_disk_dev_id): Add
        GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
        (grub_disk_get_size): New prototype.
        * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
        returns a partition.
        (grub_disk_get_size): New function.

        * kern/i386/pc/init.c (make_install_device): Copy the prefix
        verbatim if grub_install_dos_part is -2.

        * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
        and LVM devices.

        * util/i386/pc/grub-setup.c (setup): New argument
        MUST_EMBED. Force embedding of GRUB when the argument is
        true. Close FILE before returning.
        (main): Add support for RAID and LVM.

        * conf/common.rmk: Add RAID and LVM modules.
        * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
        util/lvm.c.
        (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.

        * kern/misc.c (grub_strstr): New function.
        * include/grub/misc.h (grub_strstr): New prototype.
2006-10-14 15:24:53 +00:00
jrydberg
050548d018 2006-10-10 Tristan Gingold <tristan.gingold@bull.net>
* include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
2006-10-10 17:39:10 +00:00
jrydberg
da849d2df5 2006-10-05 Tristan Gingold <tristan.gingold@bull.net>
* kern/misc.c (grub_strtoull): Guess the base only if not
        specified.
2006-10-05 12:19:56 +00:00
hollisb
4f0acd3924 2005-10-01 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
	PowerMac support.
2006-10-01 08:34:36 +00:00
hollisb
fba51f4801 2005-10-01 Hollis Blanchard <hollis@penguinppc.org>
* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.

	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
	Remove `flags' argument.  All callers changed.
	* kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
	(IEEE1275_IHANDLE_INVALID): New variable.
	(IEEE1275_CELL_INVALID): New variable.
	(grub_ieee1275_finddevice, grub_ieee1275_get_property,
	grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
	grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
	grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
	grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
	codes from Open Firmware.  All callers updated.
	(grub_ieee1275_next_property): Directly return Open Firmware return
	code.
	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
	Standardize error checking from `grub_ieee1275_get_property'.
	* kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
	`devalias' to `aliases'.  Correct comments.  Consolidate error paths.
2006-10-01 08:30:09 +00:00
hollisb
cc6d3df39e 2005-10-01 Hollis Blanchard <hollis@penguinppc.org>
* kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
	`instance_to_package_args' to `instance_to_path_args'.

	* kern/powerpc/ieee1275/init.c (grub_machine_init): Use
	`grub_ieee1275_chosen'.

	* term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
	`grub_ieee1275_interpret'.
2006-10-01 06:45:53 +00:00
hollisb
02bb8accd5 2005-09-25 Hollis Blanchard <hollis@penguinppc.org>
* util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
2006-09-26 04:24:38 +00:00
hollisb
663b72f0fa 2005-09-25 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
	(__cmpdi): Likewise.

	* kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
	`flags' to `grub_ieee1275_next_property'.  Change `pathlen' to type
	`grub_ssize_t'.

	* kern/powerpc/ieee1275/cmain.c: include grub/misc.h.

	* loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
	to type `grub_ssize_t'.
	(grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
2006-09-26 03:49:41 +00:00
marco_g
7f9a85316a 2006-09-22 Marco Gerards <marco@gnu.org>
* normal/script.c (grub_script_create_cmdmenu): Skip leading
	newlines.
2006-09-22 21:32:48 +00:00
marco_g
b5ef11025a 2006-09-22 Marco Gerards <marco@gnu.org>
* commands/echo.c: New file.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.

	* conf/common.rmk (echo_mod_SOURCES): New variable.
	(echo_mod_CFLAGS): Likewise.
	(echo_mod_LDFLAGS): Likewise.
2006-09-22 21:09:14 +00:00
marco_g
2cff3677bb 2006-09-22 Marco Gerards <marco@gnu.org>
* normal/main.c (get_line): Malloc memory instead of using
	preallocated memory.  Removed the arguments `cmdline' and
	`max_len'.  Updated all callers.
2006-09-22 20:23:00 +00:00
marco_g
6ba4688b23 2006-09-22 Marco Gerards <marco@gnu.org>
* conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
	(normal_mod_DEPENDENCIES): Likewise.

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

	* conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
2006-09-22 19:36:32 +00:00
jrydberg
e02ac02c5f 2006-09-22 Johan Rydberg <jrydberg@gnu.org>
* genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
        programs.
        * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
        (normal_mod_DEPENDENCIES): Likewise.
        * conf/i386-pc.mk: Regenerate.
        * conf/i386-efi.mk: Likewise
        * conf/common.mk: Likewise.
        * conf/powerpc-ieee1275.mk: Likewise.
        * conf/sparc64-ieee1275.mk: Likewise.
2006-09-22 00:27:38 +00:00
robertmh
8d252e442c 2006-09-22 Robert Millan <rmh@aybabtu.com>
Sync with i386 version.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
	* conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
2006-09-21 22:24:05 +00:00
robertmh
209bf7ac33 2006-09-21 Robert Millan <rmh@aybabtu.com>
Import from GRUB Legacy (lib/device.c):
	* util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
	(init_device_map) [__linux__]: Add support for I2O devices.
2006-09-21 17:39:14 +00:00
robertmh
78fa179013 Minor fix in my changelog entry. 2006-09-21 17:08:19 +00:00
marco_g
6b14609040 2006-09-14 Marco Gerards <marco@gnu.org>
* conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
	`-melf_i386'.
2006-09-14 19:04:18 +00:00
robertmh
e38600a8ac Oops. Fix wrong ChangeLog date. 2006-09-14 18:53:24 +00:00
robertmh
2952da5dda 2006-08-19 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-install.in: Skip menu.lst when removing
	/boot/grub/*.lst.
	* util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
	* util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
	before adding it to device.map.
2006-09-14 18:52:50 +00:00
jrydberg
01b82a64e2 2006-08-15 Johan Rydberg <jrydberg@gnu.org>
* genmk.rb: Let GCC generate dependenceies the first time it
        compiles a file; using the -MD option.
        * conf/common.mk: Regenerate.
        * conf/i386-pc.mk: Likewise.
        * conf/i386-efi.mk: Likewise.
        * conf/powerpc-ieee1275.mk: Likewise.
        * conf/sparc64-ieee1275.mk: Likewise.
2006-08-15 12:29:08 +00:00
okuji
1064790dc6 2006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
Move the prototypes of grub_setjmp and grub_longjmp to
        cpu/setjmp.h, so that each architecture may specify different
        attributes.

        * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
        (grub_longjmp): Likewise.
        * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
        (grub_longjmp): Likewise.
        * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
        (grub_longjmp): Likewise.

        * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
        [!GRUB_UTIL] (grub_longjmp): Removed.
2006-08-04 19:23:28 +00:00
subdino
29dda3ed74 2006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
* kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
        "color!" method does not return any value.
2006-08-01 21:45:34 +00:00
chaac
ad2a06edba 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
* include/grub/bitmap.h: New file.

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

	* video/bitmap.c: Likewise.

	* video/readers/tga.c: Likewise.

	* video/i386/pc/vbeutil.c: Likewise.

	* commands/videotest.c: Code cleanup and updated to reflect to new
	video API.

	* term/gfxterm.c: Likewise.

	* video/video.c: Likewise.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
	(vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
	(bitmap_mod_SOURCES): New entry.
	(bitmap_mod_CFLAGS): Likewise.
	(bitmap_mod_LDFLAGS): Likewise.
	(tga_mod_SOURCES): Likewise.
	(tga_mod_CFLAGS): Likewise.
	(tga_mod_LDFLAGS): Likewise.

	* include/grub/video.h (grub_video_blit_operators): New enum type.
	(grub_video_render_target): Changed as forward declaration and moved
	actual definition to be video driver specific.
	(grub_video_adapter.blit_bitmap): Added blitting operator.
	(grub_video_adapter.blit_render_target): Likewise.
	(grub_video_blit_bitmap): Likewise.
	(grub_video_blit_render_target): Likewise.

	* include/grub/i386/pc/vbe.h (grub_video_render_target): Added
	driver specific render target definition.
	(grub_video_vbe_map_rgba): Added driver internal helper.
	(grub_video_vbe_unmap_color): Updated to use
	grub_video_i386_vbeblit_info.
	(grub_video_vbe_get_video_ptr): Likewise.

	* include/grub/i386/pc/vbeblit.h
	(grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
	grub_video_i386_vbeblit_info.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_index): Likewise.
	(grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_blend): Added generic blitter for blend
	operator.
	(grub_video_i386_vbeblit_replace): Added generic blitter for replace
	operator.

	* video/i386/pc/vbeblit.c: Updated to reflect changes on
	include/grub/i386/pc/vbeblit.h.

	* include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
	Updated to use grub_video_i386_vbeblit_info.
	(grub_video_i386_vbefill_R8G8B8): Likewise.
	(grub_video_i386_vbefill_index): Likewise.
	(grub_video_i386_vbefill): Added generic filler.

	* video/i386/pc/vbefill.c: Updated to reflect changes on
	include/grub/i386/pc/vbefill.h.

	* video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
	grub_video_i386_vbeblit_info.
	(grub_video_vbe_unmap_color): Likewise.
	(grub_video_vbe_blit_glyph): Likewise.
	(grub_video_vbe_scroll): Likewise.
	(grub_video_vbe_draw_pixel): Removed function.
	(grub_video_vbe_get_pixel): Likewise.
	(grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
	updated code to use it.
	(common_blitter): Added common blitter for render target and bitmap.
	(grub_video_vbe_blit_bitmap): Updated to use common_blitter.
	(grub_video_vbe_blit_render_target): Likewise.
2006-07-31 14:21:36 +00:00
jrydberg
bc8c036d11 2006-07-30 Johan Rydberg <jrydberg@gnu.org>
* kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
        is in text mode if there is no console control protocol instance
        available.
2006-07-30 12:20:48 +00:00
chaac
684a8eff89 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
* include/grub/video.h: Code cleanup.

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

        * video/i386/pc/vbe.c: Likewise.

        * video/i386/pc/vbeblit.c: Likewise.

        * video/i386/pc/vbefill.c: Likewise.

        * video/video.c: Likewise.  Also added more comments.
2006-07-29 11:22:52 +00:00
chaac
5915059b61 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
* disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
        (struct grub_biosdisk_dap): Likewise.

        * include/grub/i386/pc/biosdisk.h: ... to here.  Also corrected
        linkage settings for all functions.
2006-07-29 10:11:01 +00:00
marco_g
90ce5d5630 2006-07-12 Marco Gerards <marco@gnu.org>
* configure.ac (--enable-mm-debug): Fix typo.

	* genkernsyms.sh.in: Use proper quoting for `CC'.
2006-07-12 20:42:52 +00:00
jeroen
43e7f879ae 2006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
* conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
	(normal_mod_ASFLAGS): Remove "-m32".
2006-07-02 15:30:43 +00:00
okuji
4889bdeca3 2006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
* util/misc.c: Include config.h.
        [!HAVE_MEMALIGN]: Do not include malloc.h.
        (grub_memalign): Use posix_memalign, if present. Then, use
        memalign, if present. Otherwise, emit an error.

        * util/grub-emu.c: Do not include malloc.h.

        * include/grub/util/misc.h: Include unistd.h. This is required for
        FreeBSD, because off_t is defined in unistd.h. Reported by Harley
        D. Eades III <hde@foobar-qux.org>.

        * configure.ac (AC_GNU_SOURCE): Added.
        (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
        type.
2006-06-13 22:50:01 +00:00
okuji
fd39d4da42 2006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
        ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
2006-06-08 22:30:25 +00:00
jeroen
b786f3b5c3 2006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
* include/grub/types.h (grub_host_addr_t): Rename to
	grub_target_addr_t.
	(grub_host_off_t): Rename to grub_target_off_t.
	(grub_host_size_t): Rename to grub_target_size_t.
	(grub_host_ssize_t): Rename to grub_target_ssize_t.
	Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.

	* include/grub/kernel.h (struct grub_module_header): Change type
	of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
	(grub_module_info): Likewise.
2006-06-08 12:38:44 +00:00
okuji
051988bb87 2006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
        of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
        Velazquez <jesus.velazquez@gmail.com>.
2006-06-05 19:59:33 +00:00
okuji
deae281bfe 2006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
Count partitions from 1 instead of 0 in the string representation
        of partitions. Still use 0-based internally.

        * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
        (sun_partition_map_iterate): Use grub_partition_t instead of
        struct grub_partition *. Cast DESC->START_CYLINDER to
        grub_uint64_t after converting the endian.
        (sun_partition_map_probe): Subtract 1 for PARTNUM.
        (sun_partition_map_get_name): Add 1 to P->INDEX.

        * partmap/pc.c (grub_partition_parse): Subtract 1 for
        PCDATA->DOS_PART.
        (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.

        * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
        zero instead of one.
        (gpt_partition_map_probe): Subtract 1 for PARTNUM.
        (gpt_partition_map_get_name): Add 1 into P->INDEX.

        * partmap/apple.c (apple_partition_map_iterate): Change the type
        of POS to unsigned.
        (apple_partition_map_probe): Subtract 1 for PARTNUM.
        (apple_partition_map_get_name): Add 1 into P->INDEX.

        * partmap/amiga.c (amiga_partition_map_iterate): Change the type
        of POS to unsigned.
        (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
        calculate the offset of a partition.
        (amiga_partition_map_probe): Subtract 1 for PARTNUM.
        (amiga_partition_map_get_name): Add 1 into P->INDEX.

        * partmap/acorn.c (acorn_partition_map_find): Change the type of
        SECTOR to grub_disk_addr_t.
        (acorn_partition_map_iterate): Likewise.
        (acorn_partition_map_probe): Subtract 1 for PARTNUM.
        Change the type of SECTOR to grub_disk_addr_t. Declare P on the
        top.
        (acorn_partition_map_get_name): Add 1 into P->INDEX.

        * kern/i386/pc/init.c (make_install_device): Add 1 into
        GRUB_INSTALL_DOS_PART.

        * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
        conditional.
2006-06-05 17:18:31 +00:00
okuji
524a1e6a40 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
Clean up the code to support 64-bit addressing in disks and
        files. This change is not enough for filesystems yet.

        * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
        type of "start" to grub_uint64_t.
        (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
        grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
        save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
        convert addresses.

        * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
        to grub_disk_addr_t.

        * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
        string.

        * partmap/pc.c (pc_partition_map_iterate): Likewise.

        * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
        to char *.

        * normal/script.c (grub_script_parse): Remove unused MEMFREE.

        * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.

        * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.

        * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
        to grub_off_t, to detect an error from grub_file_seek.
        (grub_multiboot_load_elf32): Likewise.

        * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
        maximum unsigned long value when an overflow is detected.
        (grub_strtoull): New function.
        (grub_divmod64): Likewise.
        (grub_lltoa): use grub_divmod64.

        * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
        grub_disk_addr_t.
        (grub_fs_blocklist_open): Increase P if P is not NULL to advance
        the pointer to next character. Use grub_strtoull instead of
        grub_strtoul.
        (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
        SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
        respectively.

        * kern/file.c (grub_file_read): Prevent an oveflow of LEN, as the
        return value is signed.
        (grub_file_seek): Change the type of OLD to grub_off_t. Do not
        test if OFFSET is less than zero, as OFFSET is unsigned now.

        * kern/disk.c (struct grub_disk_cache): Change the type of
        "sector" to grub_disk_addr_t.
        (grub_disk_cache_get_index): Change the type of SECTOR to
        grub_disk_addr_t. Calculate the hash with SECTOR casted to
        unsigned after shifting.
        (grub_disk_cache_invalidate): Change the type of SECTOR to
        grub_disk_addr_t.
        (grub_disk_cache_unlock): Likewise.
        (grub_disk_cache_store): Likewise.
        (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
        START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
        grub_disk_addr_t and grub_uint64_t, respectively.
        (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
        body, as the value of OFFSET is tweaked by
        grub_disk_check_range. Change the types of START_SECTOR, LEN and
        POS to grub_disk_addr_t, grub_size_t and grub_size_t,
        respectively.
        (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
        body, as the value of OFFSET is tweaked by
        grub_disk_check_range. Change the types of LEN and N to
        grub_size_t.

        * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
        and "saved_offset" to grub_off_t.
        (test_header): Cast BUF to char *.
        (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
        to char *.
        (grub_gzio_read): Change the types of OFFSET and SIZE to
        grub_off_t and grub_size_t, respectively.

        * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
        Removed.
        (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
        (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
        (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
        (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
        (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.

        * include/grub/types.h (grub_off_t): Unconditionally set to
        grub_uint64_t.
        (grub_disk_addr_t): Changed to grub_uint64_t.

        * include/grub/partition.h (struct grub_partition): Change the
        types of "start", "len" and "offset" to grub_disk_addr_t,
        grub_uint64_t and grub_disk_addr_t, respectively.
        (grub_partition_get_start): Return grub_disk_addr_t.
        (grub_partition_get_len): Return grub_uint64_t.

        * include/grub/misc.h (grub_strtoull): New prototype.
        (grub_divmod64): Likewise.

        * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
        of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
        grub_off_t, respectively.
        All callers and references changed.

        * include/grub/fs.h (struct grub_fs): Change the type of LEN to
        grub_size_t in "read".
        All callers and references changed.

        * include/grub/file.h (struct grub_file): Change the types of
        "offset" and "size" to grub_off_t and grub_off_t,
        respectively. Change the type of SECTOR to grub_disk_addr_t in
        "read_hook".
        (grub_file_read): Change the type of LEN to grub_size_t.
        (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
        grub_off_t.
        (grub_file_size): Return grub_off_t.
        (grub_file_tell): Likewise.
        All callers and references changed.

        * include/grub/disk.h (struct grub_disk_dev): Change the types of
        SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
        "write".
        (struct grub_disk): Change the type of "total_sectors" to
        grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
        "read_hook".
        (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
        grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
        (grub_disk_write): Likewise.
        All callers and references changed.

        * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
        char * for grub_strncmp to silence gcc.
        (grub_iso9660_mount): Likewise.
        (grub_iso9660_mount): Likewise.
        (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
        return statement.
        (grub_iso9660_iterate_dir): Likewise.
        (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.

        * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
        LEN to grub_disk_addr_t and grub_size_t, respectively.

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

        * fs/jfs.c (grub_jfs_read_file): Likewise.

        * fs/minix.c (grub_jfs_read_file): Likewise.

        * fs/sfs.c (grub_jfs_read_file): Likewise.

        * fs/ufs.c (grub_jfs_read_file): Likewise.

        * fs/xfs.c (grub_jfs_read_file): Likewise.

        * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
        and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
        respectively.

        * fs/ext2.c (grub_ext2_read_block): When an error happens, set
        BLKNR to -1 instead of returning GRUB_ERRNO.
        (grub_ext2_read_file): Change the types of SECTOR and
        LEN to grub_disk_addr_t and grub_size_t, respectively.

        * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
        LEN to grub_disk_addr_t and grub_size_t, respectively.

        * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
        grub_file_read.

        * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
        string. Do not cast SECTOR explicitly.

        * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
        TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
        (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
        grub_disk_addr_t and grub_size_t, respectively. If the sector is
        over 2TB and LBA mode is not supported, raise an error.
        (get_safe_sectors): New function.
        (grub_biosdisk_read): Use get_safe_sectors.
        (grub_biosdisk_write): Likewise.

        * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
        (grub_efidisk_write): Likewise.

        * disk/loopback.c (delete_loopback): Cosmetic changes.
        (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
        correctly.
        (grub_loopback_open): Likewise.
        (grub_loopback_read): Likewise. Also, change the type of POS to
        grub_off_t, and fix the usage of grub_memset.

        * commands/i386/pc/play.c: Include grub/machine/time.h.

        * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
        print FILE->SIZE.

        * commands/configfile.c: Include grub/env.h.

        * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
        GRUB_ERRNO directly instead. Change the type of POS to
        grub_off_t. Follow the coding standard.

        * commands/blocklist.c: Include grub/partition.h.
        (grub_cmd_blocklist): Return an error if the underlying device is
        not a disk. Take the starting sector of a partition into account,
        if a partition is used.

        * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
        a length field.
        (lba_mode): Support 64-bit addresses.
        (chs_mode): Likewise.
        (copy_buffer): Adapted to the new offsets of a length field and a
        segment field.
        (blocklist_default_start): Allocate 64-bit space.

        * boot/i386/pc/boot.S (force_lba): Removed.
        (boot_drive): Moved to under KERNEL_SECTOR.
        (kernel_sector): Moved to under KENREL_SEGMENT. Allocate 64-bit
        space.
        (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
        is useless.
        (lba_mode): Refactored to support a 64-bit address. More size
        optimization.
        (setup_sectors): Likewise.
2006-06-04 15:56:55 +00:00
okuji
53af98ad17 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added include/grub/i386/linux.h. Removed
        include/grub/i386/pc/linux.h

        * configure.ac (AC_INIT): Bumped to 1.94.

        * config.guess: Updated from gnulib.
        * config.sub: Likewise.
        * install-sh: Likewise.
        * mkinstalldirs: Likewise.
2006-06-04 12:59:19 +00:00
okuji
b4c1940a25 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
* conf/common.rmk (grub_modules_init.lst): Depended on
        grub_emu_SOURCES, excluding grub_emu_init.c, instead of
        MODSRCFILES.

        * genmk.rb (PModule::rule): Reverted the previous change.
2006-06-02 19:33:58 +00:00
okuji
cfca1cfd8e 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
* conf/common.rmk (grub_modules_init.lst): Depends on
        $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
        that the target does not exist before producing.
        (grub_modules_init.h): Remove the target before generating.
        (grub_emu_init.c): Likewise.

        * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
2006-06-02 19:23:08 +00:00
jeroen
aa6d782629 2006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
* configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
	for the target-specific tests. Make sure that we also have the
	up-to-date target variables for those tests.
2006-06-01 15:51:51 +00:00
okuji
26c607b932 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
* genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
        (PModule::rule): Likewise.
2006-05-31 00:46:37 +00:00
okuji
0162321a93 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
* genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
        TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
        target-specific flags should be prefixed.
        (PModule::rule): Likewise.
2006-05-31 00:28:03 +00:00
okuji
6c82634884 2006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac (CMP): Check if cmp is available explicitly.
2006-05-30 00:32:29 +00:00
okuji
b977bf01b3 2006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
* util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
        (target_cpu): New variable.
        (pkglibdir): Use target_cpu instead of host_cpu.

        * util/i386/pc/grub-install.in (host_cpu): Removed.
        (target_cpu): New variable.
        (pkglibdir): Use target_cpu instead of host_cpu.

        * util/genmoddep.c: Removed.

        * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
        instead of GRUB_HOST_SIZEOF_VOID_P.
        * kern/dl.c: Likewise.

        * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
        ...
        (GRUB_TARGET_SIZEOF_VOID_P): ... this.
        (GRUB_HOST_SIZEOF_LONG): Renamed to ...
        (GRUB_TARGET_SIZEOF_LONG): ... this.
        (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
        (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
        * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
        to ...
        (GRUB_TARGET_SIZEOF_VOID_P): ... this.
        (GRUB_HOST_SIZEOF_LONG): Renamed to ...
        (GRUB_TARGET_SIZEOF_LONG): ... this.
        (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
        (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
        * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
        to ...
        (GRUB_TARGET_SIZEOF_VOID_P): ... this.
        (GRUB_HOST_SIZEOF_LONG): Renamed to ...
        (GRUB_TARGET_SIZEOF_LONG): ... this.
        (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
        (GRUB_TARGET_WORDS_BIGENDIAN): ... this.

        * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
        GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
        [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
        instead of GRUB_HOST_SIZEOF_LONG.
        [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
        GRUB_HOST_WORDS_BIGENDIAN to define or undefine
        GRUB_CPU_WORDS_BIGENDIAN.
        Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
        define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
        grub_host_ssize_t.

        * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
        (genmoddep_SOURCES): Likewise.
        * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
        (genmoddep_SOURCES): Likewise.
        * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
        (genmoddep_SOURCES): Likewise.
        * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
        Likewise.
        (genmoddep_SOURCES): Likewise.

        * genmoddep.awk: New file.

        * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
        TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
        CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
        (PModule::rule): Likewise.
        (Program::rule): Likewise.
        (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
        BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
        respectively.

        * configure.ac: Rewritten intensively to use host and target
        instead of build and host, respectively.

        * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
        (host_cpu): Removed.
        (target_cpu): New variable.
        (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
        (BUILD_CC): Removed.
        (BUILD_CFLAGS): Likewise.
        (BUILD_CPPFLAGS): Likewise.
        (TARGET_CC): New variable.
        (TARGET_CFLAGS): Likewise.
        (TARGET_CPPFLAGS): Likewise.
        (TARGET_LDFLAGS): Likewise.
        (AWK): Likewise.
        (include): Use target_cpu instead of host_cpu.
        (moddep.lst:): Use genmoddep.awk instead of genmoddep.

        * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
2006-05-28 23:01:43 +00:00
chaac
f09771a102 2006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
* include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
        'exec_to_evaluate'.  Renamed field 'true' to 'exec_on_true'.  Renamed
        field 'false' to 'exec_on_false'.
        (grub_script_create_cmdif): Renamed argument names to reflect above
        changes.

        * normal/execute.c (grub_script_execute_cmdif): Likewise.

        * normal/script.c (grub_script_create_cmdif): Likewise.
2006-05-28 21:58:35 +00:00
okuji
118f4fb31e 2006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
* fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
        top.
        (grub_hfsplus_btree_recptr): Likewise.
        (grub_hfsplus_find_block): Do not take RETRY any longer. Use
        FILEBLOCK both to pass a block number and store next block
        number.
        (grub_hfsplus_read_block): Rewritten heavily to support an extent
        overflow file correctly. Specify errors appropriately, because
        fshelp expects that GRUB_ERRNO is set when fails. Reuse
        grub_hfsplus_btree_recptr to get the pointer to a found key.
        (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
        is found.

        * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
        linux.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.

        * DISTLIST: Added loader/i386/efi/linux.c,
        loader/i386/efi/linux_normal.c and
        include/grub/i386/efi/loader.h.

        * loader/i386/efi/linux.c: New file.
        * loader/i386/efi/linux_normal.c: Likewise.
        * include/grub/i386/efi/loader.h: Likewise.
2006-05-28 03:20:18 +00:00
okuji
43b553ada7 Fix a typo. 2006-05-27 21:32:36 +00:00
okuji
89a7d726f9 2006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
* commands/blocklist.c: New file.

        * DISTLIST: Added commands/blocklist.c.

        * term/efi/console.c (grub_console_highlight_color): Use a lighter
        color for the background, and a daker color for the foreground.
        (grub_console_checkkey): Return READ_KEY.
        (grub_console_cls): Set the background to
        GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.

        * kern/efi/efi.c (grub_efi_exit_boot_services): New function.

        * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
        the size of "padding5", "hd0_drive_info" and "hd1_drive_info".

        * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
        prototype.

        * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
        BG. The spec is wrong again.

        * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
        prototype.
        [GRUB_UTIL] (grub_blocklist_fini): Likewise.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added
        commands/blocklist.c.
        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

        * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
        (blocklist_mod_SOURCES): New variable.
        (blocklist_mod_CFLAGS): Likewise.
        (blocklist_mod_LDFLAGS): Likewise.
2006-05-27 21:09:25 +00:00
okuji
75c8f25836 2006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
* boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
        duplication.
        (lba_mode): Use %eax more intensively to reduce the code size.
2006-05-20 14:54:45 +00:00
marco_g
da2eb1812e *** empty log message *** 2006-05-20 14:44:59 +00:00
okuji
577b405042 2006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-install.in (bindir): New variable.
        (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
        Shaver <lbgwjl@gmail.com>.
2006-05-19 11:22:47 +00:00
okuji
0d6e118925 2006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
* kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
        grub/machine/linux.h
        * loader/i386/pc/linux.c: Likewise.

        * include/grub/i386/pc/linux.h: Moved to ...
        * include/grub/i386/linux.h: ... here.

        * include/grub/i386/linux.h (struct linux_kernel_params): New
        struct.
2006-05-14 21:16:20 +00:00
chaac
31b86e9f3b 2006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
* video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
        checking.
        (grub_video_vbe_blit_glyph): Likewise.
        (grub_video_vbe_blit_bitmap): Likewise.
        (grub_video_vbe_blit_render_target): Likewise.
2006-05-09 20:11:11 +00:00
okuji
83b984def6 2006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac (--with-platform): Properly quote the square
        brackets.
2006-05-09 00:05:49 +00:00
marco_g
5f0413bd2a 2006-05-08 Marco Gerards <marco@gnu.org>
* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
	this...
	(kernel_elf_HEADERS): ...to this.  Updated all users.
	(grubof_symlist.c): Renamed from this...
	(kernel_elf_symlist.c): ...to this.  Updated all users.
	(pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
	(grubof_SOURCES): Renamed from this...
	(kernel_elf_SOURCES): ...to this.
	(grubof_HEADERS): Renamed from this...
	(kernel_elf_HEADERS): ...to this.
	(grubof_CFLAGS): Renamed from this...
	(kernel_elf_CFLAGS): ...to this.
	(grubof_ASFLAGS): Renamed from this...
	(kernel_elf_ASFLAGS): ...to this.
	(grubof_LDFLAGS): Renamed from this...
	(kernel_elf_LDFLAGS): ...to this.

	* conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
	this...
	(kernel_elf_HEADERS): ...to this.  Updated all users.
	(grubof_symlist.c): Renamed from this...
	(kernel_elf_symlist.c): ...to this.  Updated all users.
	(pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
	(grubof_SOURCES): Renamed from this...
	(kernel_elf_SOURCES): ...to this.
	(grubof_HEADERS): Renamed from this...
	(kernel_elf_HEADERS): ...to this.
	(grubof_CFLAGS): Renamed from this...
	(kernel_elf_CFLAGS): ...to this.
	(grubof_ASFLAGS): Renamed from this...
	(kernel_elf_ASFLAGS): ...to this.
	(grubof_LDFLAGS): Renamed from this...
	(kernel_elf_LDFLAGS): ...to this.

	* util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
	`kernel.elf' instead of `grubof'.
2006-05-08 21:47:20 +00:00
okuji
05568c2e85 2006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
Add --with-platform to configure. Use pkglibdir instead of
        pkgdatadir. This is reported by Roger Leigh.

        * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
        (host_vendor): Likewise.
        (host_os): Likewise.
        (pkgdatadir): Likewise.
        (platform): New variable.
        (pkglibdir): Likewise.
        Use PKGLIBDIR instead of PKGDATADIR.

        * util/i386/pc/grub-install.in (datadir): Removed.
        (host_vendor): Likewise.
        (host_os): Likewise.
        (pkgdatadir): Likewise.
        (platform): New variable.
        (pkglibdir): Likewise.
        Use PKGLIBDIR instead of PKGDATADIR.

        * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
        instead of GRUB_DATADIR.
        (main): Likewise.
        * util/i386/pc/grub-mkimage.c (usage): Likewise.
        (main): Likewise.
        * util/i386/efi/grub-mkimage.c (usage): Likewise.
        (main): Likewise.

        * configure.ac (--with-platform): New option.
        Use PLATFORM instead of HOST_VENDOR to specify a platform.

        * Makefile.in: Include a makefile based on PLATFORM instead of
        HOST_VENDOR.
        (pkgdatadir): Not appended by the machine type.
        (pkglibdir): Appended by the machine type.
        (host_vendor): Removed.
        (platform): New variable.
        (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
        (install-local): Use PKGLIBDIR instead of PKGDATADIR.
        (uninstall): Likewise.
2006-05-08 19:29:10 +00:00
okuji
4e93851c0f 2006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
Use the environment context in the menu. Remove the commands
        "default" and "timeout", and use variables instead.

        * normal/menu.c: Include grub/env.h.
        (print_entry): Cast TITLE to silence gcc.
        (get_timeout): New function.
        (set_timeout): Likewise.
        (get_entry_number): Likewise.
        (run_menu): Use a default entry, a fallback entry and a timeout
        in the environment variables "default", "fallback" and
        "timeout". Also, tweak the default entry if it is not within the
        current menu entries.
        (grub_menu_run): Use a fallback entry in the environment variable
        "fallback".

        * normal/main.c (read_config_file): Do not initialize
        NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
        NEWMENU->TIMEOUT.
        (grub_normal_execute): Use a data slot to store the menu.

        * include/grub/normal.h (struct grub_menu): Removed default_entry,
        fallback_entry and timeout.
        (struct grub_menu_list): Removed.
        (grub_menu_list_t): Likewise.
        (struct grub_context): Likewise.
        (grub_context_t): Likewise.
        (grub_context_get): Likewise.
        (grub_context_get_current_menu): Likewise.
        (grub_context_push_menu): Likewise.
        (grub_context_pop_menu): Likewise.
        (grub_default_init): Likewise.
        (grub_default_fini): Likewise.
        (grub_timeout_init): Likewise.
        (grub_timeout_fini): Likewise.

        * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
        and timeout.mod.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
        commands/default.c, commands/timeout.c and normal/context.c.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
        commands/timeout.c and normal/context.c.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
        commands/default.c, commands/timeout.c and normal/context.c.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
        timeout.mod.
        (default_mod_SOURCES): Removed.
        (default_mod_CFLAGS): Likewise.
        (default_mod_LDFLAGS): Likewise.
        (timeout_mod_SOURCES): Removed.
        (timeout_mod_CFLAGS): Likewise.
        (timeout_mod_LDFLAGS): Likewise.

        * DISTLIST: Removed commands/default.c, commands/timeout.c and
        normal/context.c.

        * commands/default.c: Removed.
        * commands/timeout.c: Likewise.
        * normal/context.c: Likewise.
2006-05-07 18:28:24 +00:00
chaac
1eb9cc1da4 2006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
* kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
2006-05-06 22:33:51 +00:00
okuji
385bd9c12e 2006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
* kern/env.c (struct grub_env_context): Removed "sorted". Renamed
        "next" to "prev" for readability.
        (struct grub_env_sorted_var): New struct.
        (grub_env_context): Renamed to ...
        (initial_context): ... this.
        (grub_env_var_context): Renamed to ...
        (current_context): ... this.
        (grub_env_find): Look only at CURRENT_CONTEXT.
        (grub_env_context_open): Rewritten to copy exported variables from
        previous context.
        (grub_env_context_close): Rewritten according to the new
        scheme. Also, add an assertion to prevent the initial context from
        removed.
        (grub_env_insert): Removed the code for the sorted list.
        (grub_env_remove): Likewise.
        (grub_env_export): Simply mark the variable with
        GRUB_ENV_VAR_GLOBAL.
        (grub_env_set): A cosmetic change for naming consistency.
        (grub_env_get): Likewise.
        (grub_env_unset): Likewise.
        (grub_env_iterate): Rewritten to sort variables within this
        function.
        (grub_register_variable_hook): Fixed for naming consistency. Call
        grub_env_find again, only if NAME is not found at the first time.
        (mangle_data_slot_name): New function.
        (grub_env_set_data_slot): Likewise.
        (grub_env_get_data_slot): Likewise.
        (grub_env_unset_data_slot): Likewise.

        * include/grub/env.h (grub_env_var_type): New enum.
        (GRUB_ENV_VAR_LOCAL): New constant.
        (GRUB_ENV_VAR_GLOBAL): Likewise.
        (GRUB_ENV_VAR_DATA): Likewise.
        (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
        "type".
        (grub_env_set): Replace VAR with NAME for consistency.
        (grub_register_variable_hook): Likewise.
        (grub_env_export): Specify the name of the argument.
        (grub_env_set_data_slot): New prototype.
        (grub_env_get_data_slot): Likewise.
        (grub_env_unset_data_slot): Likewise.
2006-05-01 23:30:51 +00:00
okuji
7f362539b7 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
Extend the loader so that GRUB can accept a loader which comes
        back to GRUB when a loaded image exits. Also, this change adds
        support for a chainloader on EFI.

        * term/efi/console.c: Include grub/misc.h.
        (grub_console_checkkey): Display a scan code on the top for
        debugging. This will be removed once the EFI port gets stable.
        Correct the scan code mapping.

        * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
        allocate memory from larger regions, in order to reduce the number
        of allocated regions. Otherwise, the MacOSX loader panics.
        (filter_memory_map): Avoid less than 1MB for compatibility with
        other loaders.
        (add_memory_regions): Allocate from the tail of a region, if
        possible, to avoid allocating a region near to 1MB, for the MacOSX
        loader.

        * kern/efi/init.c (grub_efi_set_prefix): Specify
        GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.

        * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
        argument IMAGE_HANDLE and specify it to get a loaded image.
        (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
        grub_efi_get_loaded_image.
        (grub_efi_get_filename): Divide the legnth by the size of
        grub_efi_char16_t.
        (grub_efi_get_device_path): New function.
        (grub_efi_print_device_path): Print End Device Path nodes. Divide
        the length by the size of grub_efi_char16_t for a file path device
        path node.

        * kern/loader.c (grub_loader_noreturn): New variable.
        (grub_loader_set): Accept a new argument NORETURN. Set
        GRUB_LOADER_NORETURN to NORETURN.
        All callers changed.
        (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
        grub_machine_fini.

        * include/grub/efi/efi.h (grub_efi_get_device_path): New
        prototype.
        (grub_efi_get_loaded_image): Take an argument to specify an image
        handle.

        * include/grub/loader.h (grub_loader_set): Added one more argument
        NORETURN.

        * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
        instead of grub_efi_open_protocol.
        (grub_efidisk_get_device_name): Likewise.
        (grub_efidisk_close): Print a newline.
        (grub_efidisk_get_device_handle): Fixed to use
        GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
        GRUB_EFI_DEVICE_PATH_TYPE.

        * disk/efi/efidisk.c (device_path_guid): Moved to ...
        * kern/efi/efi.c (device_path_guid): ... here.

        * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
        chain.mod.
        (kernel_mod_HEADERS): Added efi/disk.h.
        (_chain_mod_SOURCES): New variable.
        (_chain_mod_CFLAGS): Likewise.
        (_chain_mod_LDFLAGS): Likewise.
        (chain_mod_SOURCES): Likewise.
        (chain_mod_CFLAGS): Likewise.
        (chain_mod_LDFLAGS): Likewise.

        * DISTLIST: Added include/grub/efi/chainloader.h,
        loader/efi/chainloader.c and loader/efi/chainloader_normal.c.

        * include/grub/efi/chainloader.h: New file.
        * loader/efi/chainloader.c: Likewise.
        * loader/efi/chainloader_normal.c: Likewise.
2006-04-30 21:09:37 +00:00
marco_g
c0111d6e92 2006-04-30 Marco Gerards <marco@gnu.org>
* commands/configfile.c (grub_cmd_source): New function.
	(GRUB_MOD_INIT): Register the commands `source' and `.'.
	(GRUB_MOD_FINI): De-register the commands `source' and `.'.
2006-04-30 20:48:05 +00:00
marco_g
df5341da9e 2006-04-30 Marco Gerards <marco@gnu.org>
* normal/execute.c (grub_script_execute_cmd): Change the return
	type to `grub_err_t'.  Correctly return the error.
	(grub_script_execute_cmdline): In case a command line is not a
	command or a function, try to interpret it as an assignment.
2006-04-30 20:29:51 +00:00
okuji
f85934bd9b 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
* fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
        (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
        skip a node whose name is obviously invalid as UTF-16,
        i.e. contains a NUL character. Stop the iteration when the last
        directory entry is found. Instead of using the return value of
        grub_hfsplus_btree_iterate_node, store the value in RET and use
        it, because the iterator can be stopped by the last directory
        entry.
2006-04-30 17:30:12 +00:00
marco_g
8f8a2cf8e2 2006-04-30 Marco Gerards <marco@gnu.org>
* include/grub/env.h (grub_env_export): New prototype.  Reported
	by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
2006-04-30 14:05:50 +00:00
marco_g
a27e84ce7b 2006-04-30 Marco Gerards <marco@gnu.org>
* fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
	size of the extents in a catalog file record.
2006-04-30 13:57:19 +00:00
marco_g
eaef05533f 2006-04-29 Marco Gerards <marco@gnu.org>
* commands/configfile.c (grub_cmd_configfile): Execute the
	configfile within its own context.

	* include/grub/env.h (grub_env_context_open): New prototype.
	(grub_env_context_close): Likewise.

	* kern/env.c (grub_env): Removed.
	(grub_env_sorted): Likewise.
	(grub_env_context): New variable.
	(grub_env_var_context): Likewise.
	(grub_env_find): Search both the active context and the global
	context.
	(grub_env_context_open): New function.
	(grub_env_context_close): Likewise.
	(grub_env_insert): Likewise.
	(grub_env_remove): Likewise.
	(grub_env_export): Likewise.
	(grub_env_set): Changed to use helper functions to avoid code
	duplication.
	(grub_env_iterate): Rewritten so both the current context and the
	global context are being used.

	* normal/command.c (export_command): New function.
	(grub_command_init): Register the `export' function.
2006-04-29 20:29:42 +00:00
okuji
7b455f4dd3 2006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
        explicitly to suppress gcc's warnings.
        * fs/fat.c (grub_fat_find_dir): Likewise.
        (grub_fat_label): Likewise.
        * fs/xfs.c (grub_xfs_read_inode): Likewise.
        (grub_xfs_mount): Likewise.
        (grub_xfs_label): Likewise.
        * fs/affs.c (grub_affs_mount): Likewise.
        (grub_affs_label): Likewise.
        (grub_affs_iterate_dir): Likewise.
        * fs/sfs.c (grub_sfs_mount): Likewise.
        (grub_sfs_iterate_dir): Likewise.
        * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
        * fs/hfs.c (grub_hfs_mount): Likewise.
        (grub_hfs_cmp_catkeys): Likewise.
        (grub_hfs_find_dir): Likewise.
        (grub_hfs_dir): Likewise.
        (grub_hfs_label): Likewise.
        * fs/jfs.c (grub_jfs_mount): Likewise.
        (grub_jfs_opendir): Likewise.
        (grub_jfs_getent): Likewise.
        (grub_jfs_lookup_symlink): Likewise.
        (grub_jfs_label): Likewise.
        * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
        (grub_hfsplus_iterate_dir): Likewise.
        (grub_hfsplus_btree_iterate_node): Made static.

        * util/grub-emu.c (prefix): New variable.
        (grub_machine_set_prefix): New function.
        (main): Do not set the environment variable "prefix" here. Only
        set PREFIX, which is used later by grub_machine_set_prefix.

        * include/grub/video.h: Do not include grub/symbol.h.
        (grub_video_register): Not exported. This symbol is not defined in
        the kernel.
        (grub_video_unregister): Likewise.
        (grub_video_iterate): Likewise.
        (grub_video_setup): Likewise.
        (grub_video_restore): Likewise.
        (grub_video_get_info): Likewise.
        (grub_video_get_blit_format): Likewise.
        (grub_video_set_palette): Likewise.
        (grub_video_get_palette): Likewise.
        (grub_video_set_viewport): Likewise.
        (grub_video_get_viewport): Likewise.
        (grub_video_map_color): Likewise.
        (grub_video_map_rgb): Likewise.
        (grub_video_map_rgba): Likewise.
        (grub_video_fill_rect): Likewise.
        (grub_video_blit_glyph): Likewise.
        (grub_video_blit_bitmap): Likewise.
        (grub_video_blit_render_target): Likewise.
        (grub_video_scroll): Likewise.
        (grub_video_swap_buffers): Likewise.
        (grub_video_create_render_target): Likewise.
        (grub_video_delete_render_target): Likewise.
        (grub_video_set_active_render_target): Likewise.

        * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
        Undefined.
        [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.

        * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
        config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
        config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
        gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
        gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
        genkernsyms.sh.

        * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
        genkernsyms.sh.
        (gensymlist.sh): New target.
        (genkernsyms.sh): Likewise.

        * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
        genkernsyms.sh.in and gensymlist.sh.in.

        * genkernsyms.sh: Removed.
        * gensymlist.sh: Likewise.

        * genkernsyms.sh.in: New file.
        * gensymlist.sh.in: Likewise.
2006-04-26 21:58:36 +00:00
hollisb
1885bb2790 2006-04-25 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
	clobber "prefix", since we may have already set it manually.
2006-04-26 02:20:13 +00:00
hollisb
71538dff79 2006-04-25 Hollis Blanchard <hollis@penguinppc.org>
* kern/misc.c (abort): New alias for grub_abort.
2006-04-25 23:47:48 +00:00
okuji
2965c7cc2d 2006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
A new machine-specific function "grub_machine_set_prefix" is
        defined. This is called after loading modules, so that a prefix
        initialization can use modules. Also, this change adds an
        intensive debugging feature for the memory manager via the
        configure option "--enable-mm-debug".

        * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
        PART.LEN.

        * kern/sparc64/ieee1275/init.c (abort): Removed.
        (grub_stop): Likewise.
        (grub_exit): New function.
        (grub_set_prefix): Renamed to ...
        (grub_machine_set_prefix): ... this.
        (grub_machine_init): Do not call grub_set_prefix.

        * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
        (grub_machine_set_prefix): ... this.
        (grub_machine_init): Do not call grub_set_prefix.

        * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
        (grub_machine_init): Do not set the prefix here.

        * kern/i386/efi/init.c (grub_machine_set_prefix): New function.

        * kern/efi/init.c: Include grub/mm.h.
        (grub_efi_set_prefix): New function.

        * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
        (grub_efi_get_filename): New function.
        (grub_print_device_path): Renamed to ...
        (grub_efi_print_device_path): ... this.

        * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
        [MM_DEBUG] (grub_realloc): Likewise.
        [MM_DEBUG] (grub_free): Likewise.
        [MM_DEBUG] (grub_memalign): Likewise.
        [MM_DEBUG] (grub_mm_debug): New variable.
        [MM_DEBUG] (grub_debug_malloc): New function.
        [MM_DEBUG] (grub_debug_free): New function.
        [MM_DEBUG] (grub_debug_realloc): New function.
        [MM_DEBUG] (grub_debug_memalign): New function.

        * kern/misc.c (grub_abort): Print a newline to distinguish
        the message.

        * kern/main.c (grub_main): Call grub_machine_set_prefix and
        grub_set_root_dev after loading modules. This is necessary when
        setting a prefix depends on modules.

        * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
        (grub_efi_print_device_path): ... this.
        (grub_efi_get_filename): New prototype.
        (grub_efi_set_prefix): Likewise.

        * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
        and grub/disk.h.
        (grub_efidisk_get_device_handle): New prototype.
        (grub_efidisk_get_device_name): Likewise.

        * include/grub/mm.h: Include config.h.
        (MM_DEBUG): Removed.
        [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
        [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
        [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
        [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
        [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
        [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
        [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
        [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
        [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.

        * include/grub/kernel.h (grub_machine_set_prefix): New prototype.

        * disk/efi/efidisk.c: Include grub/partition.h.
        (iterate_child_devices): New function.
        (add_device): First, compare only last device path nodes, so that
        devices are sorted by the types.
        (grub_efidisk_get_device_handle): New function.
        (grub_efidisk_get_device_name): Likewise.

        * configure.ac (--enable-mm-debug): New option to enable the
        memory manager debugging feature. This makes the binary much
        bigger, so is disabled by default.
2006-04-25 20:08:31 +00:00
okuji
9cacaa174c 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
Use grub_abort instead of grub_stop, and grub_exit must be
        define in each architecture now. Also, this change adds support
        for EFI disks.

        * util/i386/pc/grub-probefs.c: Include grub/term.h.
        (grub_getkey): New function.
        (grub_term_get_current): Likewise.

        * util/i386/pc/grub-setup.c: Include grub/term.h.
        (grub_getkey): New function.
        (grub_term_get_current): Likewise.

        * util/misc.c (grub_stop): Renamed to ...
        (grub_exit): ... this.

        * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
        (grub_exit): ... this.
        (grub_machine_init): Use grub_abort instead of abort.
        (grub_stop): Removed.

        * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
        abort.

        * kern/i386/pc/startup.S (grub_exit): New function.
        (cold_reboot): New label.

        * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
        (grub_efi_init): Call grub_efidisk_init.
        (grub_efi_fini): Call grub_efidisk_fini.

        * kern/efi/efi.c: Include grub/mm.h.
        (grub_efi_console_control_guid): Renamed to ...
        (console_control_guid): ... this.
        (grub_efi_loaded_image_guid): Renamed to ...
        (loaded_image_guid): ... this.
        (grub_efi_locate_handle): New function.
        (grub_efi_open_protocol): Likewise.
        (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
        GRUB_EFI_CONSOLE_CONTROL_GUID.
        (grub_efi_exit): Removed.
        (grub_stop): Likewise.
        (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
        (grub_exit): New function.
        (grub_print_device_path): Likewise.

        * kern/rescue.c (grub_rescue_cmd_exit): New function.
        (grub_enter_rescue_mode): Register "exit".

        * kern/misc.c (grub_real_dprintf): A cosmetic change.
        (grub_abort): New function.

        * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.

        * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.

        * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.

        * include/grub/efi/efi.h (grub_efi_exit): Removed.
        (grub_print_device_path): New prototype.
        (grub_efi_locate_handle): Likewise.
        (grub_efi_open_protocol): Likewise.

        * include/grub/efi/disk.h (grub_efidisk_fini): New file.
        * disk/efi/efidisk.c: Likewise.

        * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.

        * include/grub/efi/console_control.h
        (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.

        * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
        last 8 bytes as an array.
        (GRUB_EFI_DISK_IO_GUID): New macro.
        (GRUB_EFI_BLOCK_IO_GUID): Likewise.
        (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
        (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
        grub_uint8_t.
        (struct grub_efi_guid): Use an array to specify the last 8 bytes.
        (struct grub_efi_device_path): Rename the member "sub_type" to
        "subtype".
        (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
        (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
        (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
        (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
        (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
        (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
        (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
        (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
        (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_pci_device_path): New structure.
        (grub_efi_pci_device_path_t): New type.
        (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_pccard_device_path): New structure.
        (grub_efi_pccard_device_path_t): New type.
        (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_memory_mapped_device_path): New structure.
        (grub_efi_memory_mapped_device_path_t): New type.
        (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_vendor_device_path): New structure.
        (grub_efi_vendor_device_path_t): New type.
        (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_controller_device_path): New structure.
        (grub_efi_controller_device_path_t): New type.
        (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_acpi_device_path): New structure.
        (grub_efi_acpi_device_path_t): New type.
        (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_expanded_acpi_device_path): New structure.
        (grub_efi_expanded_acpi_device_path_t): New type.
        (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
        (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
        (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
        (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
        (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_atapi_device_path): New structure.
        (grub_efi_atapi_device_path_t): New type.
        (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_fibre_channel_device_path): New structure.
        (grub_efi_fibre_channel_device_path_t): New type.
        (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_1394_device_path): New structure.
        (grub_efi_1394_device_path_t): New type.
        (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_usb_device_path): New structure.
        (grub_efi_usb_device_path_t): New type.
        (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_usb_class_device_path): New structure.
        (grub_efi_usb_class_device_path_t): New type.
        (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_i2o_device_path): New structure.
        (grub_efi_i2o_device_path_t): New type.
        (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_mac_address_device_path): New structure.
        (grub_efi_mac_address_device_path_t): New type.
        (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_ipv4_device_path): New structure.
        (grub_efi_ipv4_device_path_t): New type.
        (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_ipv6_device_path): New structure.
        (grub_efi_ipv6_device_path_t): New type.
        (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_infiniband_device_path): New structure.
        (grub_efi_infiniband_device_path_t): New type.
        (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_uart_device_path): New structure.
        (grub_efi_uart_device_path_t): New type.
        (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_vendor_messaging_device_path): New structure.
        (grub_efi_vendor_messaging_device_path_t): New type.
        (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_hard_drive_device_path): New structure.
        (grub_efi_hard_drive_device_path_t): New type.
        (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_cdrom_device_path): New structure.
        (grub_efi_cdrom_device_path_t): New type.
        (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_vendor_media_device_path): New structure.
        (grub_efi_vendor_media_device_path_t): New type.
        (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_file_path_device_path): New structure.
        (grub_efi_file_path_device_path_t): New type.
        (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_protocol_device_path): New structure.
        (grub_efi_protocol_device_path_t): New type.
        (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_bios_device_path): New structure.
        (grub_efi_bios_device_path_t): New type.
        (struct grub_efi_disk_io): New structure.
        (grub_efi_disk_io_t): New type.
        (struct grub_efi_block_io_media): New structure.
        (grub_efi_block_io_media_t): New type.
        (struct grub_efi_block_io): New structure.
        (grub_efi_block_io_t): New type.

        * include/grub/misc.h (grub_stop): Removed.
        (grub_exit): New prototype.
        (grub_abort): Likewise.

        * include/grub/disk.h (enum grub_disk_dev_id): Added
        GRUB_DISK_DEVICE_EFIDISK_ID.

        * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
        disk/efi/efidisk.c.
        (kernel_syms.lst): Remove the target if an error occurs.
2006-04-23 13:37:36 +00:00
okuji
49986a9f99 2006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
* kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
        as it was simply too buggy.
2006-04-22 09:20:44 +00:00
okuji
970d3b8ab0 2006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
* kern/misc.c (grub_lltoa): New function.
        (grub_vsprintf): Added support for the long long suffix,
        i.e. "ll".
2006-04-21 16:35:23 +00:00
hollisb
ff04ec24e9 2006-04-20 Hollis Blanchard <hollis@penguinppc.org>
* Makefile.in (LDFLAGS): Add variable.
	(LD): Remove variable.
	* configure.ac: Add -m32 to LDFLAGS.
	* genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
	* conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
	(grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
	(_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
	suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
	variables.
	* conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
	* conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
	* conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
2006-04-21 00:47:11 +00:00
chaac
37e5e1a4da 2006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
* term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
        length for unknown glyph.
2006-04-20 15:19:01 +00:00
okuji
2eab1c0dad 2006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
Add support for pre-loaded modules into the EFI port.

        * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
        completely. Accept one more argument DIR. The caller has changed.

        * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.

        * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
        (grub_efi_loaded_image_guid): New variable.
        (grub_efi_get_loaded_image): New function.
        (grub_arch_modules_addr): Likewise.

        * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
        prototype.

        * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
        (struct grub_efi_loaded_image): New structure.
        (grub_efi_loaded_image_t): New type.
2006-04-20 04:29:17 +00:00
okuji
c352d8dd0b 2006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
* loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
        size with GRUB_OS_AREA_SIZE as grub_size_t instead of
        grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
2006-04-20 02:33:44 +00:00
marco_g
6d01d6b4a6 2006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
* DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
2006-04-19 17:24:21 +00:00
okuji
976a4ea036 2006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added include/grub/efi/console.h,
        include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
        kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.

        * include/grub/efi/console.h: New file.
        * include/grub/efi/time.h: Likewise.
        * include/grub/i386/efi/kernel.h: Likewise.
        * kern/efi/init.c: Likewise.
        * kern/efi/mm.c: Likewise.
        * term/efi/console.c: Likewise.

        * kern/i386/efi/init.c: Do not include grub/machine/time.h.
        (grub_stop): Removed.
        (grub_get_rtc): Likewise.
        (grub_machine_init): Simply call grub_efi_init.
        (grub_machine_fini): Call grub_efi_fini.

        * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
        (grub_efi_output_string): Removed.
        (grub_efi_stall): New function.
        (grub_stop): Likewise.
        (grub_get_rtc): Likewise.

        * include/grub/efi/efi.h (grub_efi_output_string): Removed.
        (grub_efi_stall): New prototype.
        (grub_efi_allocate_pages): Likewise.
        (grub_efi_free_pages): Likewise.
        (grub_efi_get_memory_map): Likewise.
        (grub_efi_mm_init): Likewise.
        (grub_efi_mm_fini): Likewise.
        (grub_efi_init): Likewise.
        (grub_efi_fini): Likewise.

        * include/grub/i386/efi/time.h: Do not include
        grub/symbol.h. Include grub/efi/time.h.
        (GRUB_TICKS_PER_SECOND): Removed.
        (grub_get_rtc): Likewise.

        * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
        Added padding. The EFI spec is buggy.
        (GRUB_EFI_BLACK): New macro.
        (GRUB_EFI_BLUE): Likewise.
        (GRUB_EFI_GREEN): Likewise.
        (GRUB_EFI_CYAN): Likewise.
        (GRUB_EFI_RED): Likewise.
        (GRUB_EFI_MAGENTA): Likewise.
        (GRUB_EFI_BROWN): Likewise.
        (GRUB_EFI_LIGHTGRAY): Likewise.
        (GRUB_EFI_BRIGHT): Likewise.
        (GRUB_EFI_DARKGRAY): Likewise.
        (GRUB_EFI_LIGHTBLUE): Likewise.
        (GRUB_EFI_LIGHTGREEN): Likewise.
        (GRUB_EFI_LIGHTCYAN): Likewise.
        (GRUB_EFI_LIGHTRED): Likewise.
        (GRUB_EFI_LIGHTMAGENTA): Likewise.
        (GRUB_EFI_YELLOW): Likewise.
        (GRUB_EFI_WHITE): Likewise.
        (GRUB_EFI_BACKGROUND_BLACK): Likewise.
        (GRUB_EFI_BACKGROUND_BLUE): Likewise.
        (GRUB_EFI_BACKGROUND_GREEN): Likewise.
        (GRUB_EFI_BACKGROUND_CYAN): Likewise.
        (GRUB_EFI_BACKGROUND_RED): Likewise.
        (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
        (GRUB_EFI_BACKGROUND_BROWN): Likewise.
        (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
        (GRUB_EFI_TEXT_ATTR): Likewise.

        * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
        kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
        (kernel_mod_HEADERS): Added efi/time.h.
2006-04-19 08:59:44 +00:00
okuji
e2a8c90448 Correct another strange date. 2006-04-18 06:34:04 +00:00
okuji
837091258d 2006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
        include/grub/efi/api.h, include/grub/efi/console_control.h,
        include/grub/efi/efi.h, include/grub/efi/pe32.h,
        include/grub/i386/efi/time.h, kern/efi/efi.c,
        kern/i386/efi/init.c, kern/i386/efi/startup.S,
        and util/i386/efi/grub-mkimage.c.

        * Makefile.in (RMKFILES): Added i386-efi.rmk.

        * genmk.rb (PModule#rule): Do not export symbols if
        #{prefix}_EXPORTS is set to "no".

        * conf/i386-efi.mk: New file.
        * conf/i386-efi.rmk: Likewise.
        * include/grub/efi/api.h: Likewise.
        * include/grub/efi/console_control.h: Likewise.
        * include/grub/efi/efi.h: Likewise.
        * include/grub/efi/pe32.h: Likewise.
        * include/grub/i386/efi/time.h: Likewise.
        * kern/efi/efi.c: Likewise.
        * kern/i386/efi/init.c: Likewise.
        * kern/i386/efi/startup.S: Likewise.
        * util/i386/efi/grub-mkimage.c: Likewise.
2006-04-18 06:18:15 +00:00
marco_g
bfa2bd9efb 2006-17-04 Marco Gerards <marco@gnu.org>
* include/grub/script.h: Include <grub/parser.h> and
	"grub_script.tab.h".
	(struct grub_lexer_param): New struct.
	(struct grub_parser_param): Likewise.
	(grub_script_create_arglist): Pass the state in an argument.
	(grub_script_add_arglist): Likewise.
	(grub_script_create_cmdline): Likewise.
	(grub_script_create_cmdblock): Likewise.
	(grub_script_create_cmdif): Likewise.
	(grub_script_create_cmdmenu): Likewise.
	(grub_script_add_cmd): Likewise.
	(grub_script_arg_add): Likewise.
	(grub_script_lexer_ref): Likewise.
	(grub_script_lexer_deref): Likewise.
	(grub_script_lexer_record_start): Likewise.
	(grub_script_lexer_record_stop): Likewise.
	(grub_script_mem_record): Likewise.
	(grub_script_mem_record_stop): Likewise.
	(grub_script_malloc): Likewise.
	(grub_script_yylex): Likewise.
	(grub_script_yyparse): Likewise.
	(grub_script_yyerror): Likewise.
	(grub_script_yylex): Likewise.
	(grub_script_lexer_init): Return the state.

	* normal/lexer.c (grub_script_lexer_state): Removed variable.
	(grub_script_lexer_done): Likewise.
	(grub_script_lexer_getline): Likewise.
	(grub_script_lexer_refs): Likewise.
	(script): Likewise.
	(newscript): Likewise.
	(record): Likewise.
	(recording): Likewise.
	(recordpos): Likewise.
	(recordlen): Likewise.
	(grub_script_lexer_init): Return the state instead of setting
	global variables.
	(grub_script_lexer_ref): Use the newly added argument for state
	instead of globals.
	(grub_script_lexer_deref): Likewise.
	(grub_script_lexer_record_start): Likewise.
	(grub_script_lexer_record_stop): Likewise.
	(recordchar): Likewise.
	(nextchar): Likewise.
	(grub_script_yylex2): Likewise.
	(grub_script_yylex): Likewise.
	(grub_script_yyerror): Likewise.

	* normal/parser.y (func_mem): Removed variable.
	(menu_entry): Likewise.
	(err): Likewise.
	(%lex-param): New parser option.
	(%parse-param): Likewise.
	(script): Always return the AST.
	(argument): Pass the state around.
	(arguments): Likewise.
	(grubcmd): Likewise.
	(commands): Likewise.
	(function): Likewise.
	(menuentry): Likewise.
	(if_statement): Likewise.
	(if): Likewise.

	* normal/script.c (grub_script_memused): Removed variable.
	(grub_script_parsed): Likewise.
	(grub_script_malloc): Added a state argument.  Use that instead of
	global variables.
	(grub_script_mem_record): Likewise.
	(grub_script_mem_record_stop): Likewise.
	(grub_script_arg_add): Likewise.
	(grub_script_add_arglist): Likewise.
	(grub_script_create_cmdline): Likewise.
	(grub_script_create_cmdif): Likewise.
	(grub_script_create_cmdmenu): Likewise.
	(grub_script_add_cmd): Likewise.
	(grub_script_parse): Setup the state before calling the parser.
2006-04-17 13:01:20 +00:00
marco_g
6de2ee9903 2006-16-04 Marco Gerards <marco@gnu.org>
* normal/command.c (grub_command_init): Remove the title command.

	* normal/lexer.c (grub_script_yylex): Renamed from this...
	(grub_script_yylex2): ... to this.
	(grub_script_yylex): New function.  Temporary
	introduced to filter some tokens.
	(grub_script_yyerror): Print a newline.

	* normal/main.c (read_config_file): Output information about the
	lines that contain errors.  Wait for a key after all lines have
	been processed.  Don't return an empty menu.

	* normal/parser.y (func_mem): Don't initialize.
	(menu_entry): Likewise.
	(err): New variable.
	(script): Don't return anything when an error was encountered.
	(ws, returns): Removed rules.
	(argument): Disabled concatenated variable support.
	(arguments): Remove explicit separators.
	(grubcmd): Likewise.
	(function): Likewise.
	(menuentry): Likewise.
	(if): Likewise.
	(commands): Likewise.  Add error handling.

	* normal/script.c (grub_script_create_cmdline): If
	`grub_script_parsed' is 0, assume the parser encountered an error.
2006-04-16 18:02:42 +00:00
okuji
c9a8619201 2006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac: Add support for EFI. Fix the typo
        BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
2006-04-02 08:53:31 +00:00
chaac
70f3b2433a 2006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
* util/unifont2pff.rb: Removed unnecessary byte ordering.  Now
        foreign multibyte characters should be shown correctly.
2006-04-01 19:23:01 +00:00
chaac
65f201ad2a 2006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
* normal/main.c (grub_normal_menu_addentry): Fixed menu size
        calculation.
        (read_config_file): Made it to close file before returning.
2006-04-01 14:41:34 +00:00
chaac
b4b9367408 2006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
* DISTLIST: Added include/grub/i386/pc/vbeblit.h,
        include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
        video/i386/pc/vbefill.c.

        * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
        video/i386/pc/vbefill.c.

        * include/grub/video.h (grub_video_blit_format): New enum.
        (grub_video_mode_info): Added new member blit_format.
        (grub_video_get_blit_format): New function prototype.

        * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
        function prototype.
        (grub_video_vbe_map_rgb): Likewise.
        (grub_video_vbe_unmap_color): Likewise.

        * include/grub/i386/pc/vbeblit.h: New file.

        * include/grub/i386/pc/vbefill.h: New file.

        * video/video.c (grub_video_get_blit_format): New function.
        (grub_video_vbe_get_video_ptr): Re-declared as non-static.
        (grub_video_vbe_map_rgb): Likewise.
        (grub_video_vbe_unmap_color): Likewise.

        * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
        optimized fills.
        (grub_video_vbe_blit_render_target): Changed to use more optimized
        blits.
        (grub_video_vbe_setup): Added detection for optimized settings.
        (grub_video_vbe_create_render_target): Likewise.

        * video/i386/pc/vbeblit.c: New file.

        * video/i386/pc/vbefill.c: New file.
2006-03-31 14:26:34 +00:00
chaac
c2379b9c31 2006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
* font/manager.c (grub_font_get_glyph): Removed font fixup from
        here...

        * util/unifont2pff.rb: ... and moved it to here.  Improved argument
        parsing to support both hex and dec ranges.  If filename was missing
        show usage information.
2006-03-31 13:32:52 +00:00
chaac
bd0d7896cf 2006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
* DISTLIST: Added include/grub/video.h, term/gfxterm.c,
        video/video.c, commands/videotest.c.  Removed term/i386/pc/vesafb.c.

        * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
        gfxterm.mod, videotest.mod.  Removed vga.mod, vesafb.mod.
        (video_mod_SOURCES): Added.
        (video_mod_CFLAGS): Likewise.
        (video_mod_LDFLAGS): Likewise.
        (gfxterm_mod_SOURCES): Likewise.
        (gfxterm_mod_CFLAGS): Likewise.
        (gfxterm_mod_LDFLAGS): Likewise.
        (videotest_mod_SOURCES): Likewise.
        (videotest_mod_CFLAGS): Likewise.
        (videotest_mod_LDFLAGS): Likewise.
        (vesafb_mod_SOURCES): Removed.
        (vesafb_mod_CFLAGS): Likewise.
        (vesafb_mod_LDFLAGS): Likewise.
        (vga_mod_SOURCES): Likewise.
        (vga_mod_CFLAGS): Likewise.
        (vga_mod_LDFLAGS): Likewise.

        * commands/videotest.c: New file.

        * font/manager.c (fill_with_default_glyph): Modified to use
        grub_font_glyph.
        (grub_font_get_glyph): Likewise.
        (fontmanager): Renamed from this...
        (font_manager): ... to this.

        * include/grub/font.h (grub_font_glyph): Added new structure.
        (grub_font_get_glyph): Modified to use grub_font_glyph.

        * include/grub/misc.h (grub_abs): Added as inline function.

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

        * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
        (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
        (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
        (grub_vbe_get_controller_info): Renamed from this...
        (grub_vbe_bios_get_controller_info): ... to this.
        (grub_vbe_get_mode_info): Renamed from this...
        (grub_vbe_bios_get_mode_info): ... to this.
        (grub_vbe_set_mode): Renamed from this...
        (grub_vbe_bios_set_mode): ... to this.
        (grub_vbe_get_mode): Renamed from this...
        (grub_vbe_bios_get_mode): ... to this.
        (grub_vbe_set_memory_window): Renamed from this...
        (grub_vbe_bios_set_memory_window): ... to this.
        (grub_vbe_get_memory_window): Renamed from this...
        (grub_vbe_bios_get_memory_window): ... to this.
        (grub_vbe_set_scanline_length): Renamed from this...
        (grub_vbe_set_scanline_length): ... to this.
        (grub_vbe_get_scanline_length): Renamed from this...
        (grub_vbe_bios_get_scanline_length): ... to this.
        (grub_vbe_set_display_start): Renamed from this...
        (grub_vbe_bios_set_display_start): ... to this.
        (grub_vbe_get_display_start): Renamed from this...
        (grub_vbe_bios_get_display_start): ... to this.
        (grub_vbe_set_palette_data): Renamed from this...
        (grub_vbe_bios_set_palette_data): ... to this.
        (grub_vbe_set_pixel_rgb): Removed.
        (grub_vbe_set_pixel_index): Likewise.

        * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
        from this...
        (grub_vbe_bios_get_controller_info): ... to this.
        (grub_vbe_get_mode_info): Renamed from this...
        (grub_vbe_bios_get_mode_info): ... to this.
        (grub_vbe_set_mode): Renamed from this...
        (grub_vbe_bios_set_mode): ... to this.
        (grub_vbe_get_mode): Renamed from this...
        (grub_vbe_bios_get_mode): ... to this.
        (grub_vbe_set_memory_window): Renamed from this...
        (grub_vbe_bios_set_memory_window): ... to this.
        (grub_vbe_get_memory_window): Renamed from this...
        (grub_vbe_bios_get_memory_window): ... to this.
        (grub_vbe_set_scanline_length): Renamed from this...
        (grub_vbe_set_scanline_length): ... to this.
        (grub_vbe_get_scanline_length): Renamed from this...
        (grub_vbe_bios_get_scanline_length): ... to this.
        (grub_vbe_set_display_start): Renamed from this...
        (grub_vbe_bios_set_display_start): ... to this.
        (grub_vbe_get_display_start): Renamed from this...
        (grub_vbe_bios_get_display_start): ... to this.
        (grub_vbe_set_palette_data): Renamed from this...
        (grub_vbe_bios_set_palette_data): ... to this.
        (grub_vbe_bios_get_controller_info): Fixed problem with registers
        getting corrupted after calling it.  Added more pushes and pops.
        (grub_vbe_bios_set_mode): Likewise.
        (grub_vbe_bios_get_mode): Likewise.
        (grub_vbe_bios_get_memory_window): Likewise.
        (grub_vbe_bios_set_scanline_length): Likewise.
        (grub_vbe_bios_get_scanline_length): Likewise.
        (grub_vbe_bios_get_display_start): Likewise.
        (grub_vbe_bios_set_palette_data): Likewise.

        * normal/cmdline.c (cl_set_pos): Refresh the screen.
        (cl_insert): Likewise.
        (cl_delete): Likewise.

        * term/gfxterm.c: New file.

        * term/i386/pc/vesafb.c: Removed file.

        * video/video.c: New file.

        * video/i386/pc/vbe.c (real2pm): Added new function.
        (grub_video_vbe_draw_pixel): Likewise.
        (grub_video_vbe_get_video_ptr): Likewise.
        (grub_video_vbe_get_pixel): Likewise
        (grub_video_vbe_init): Likewise.
        (grub_video_vbe_fini): Likewise.
        (grub_video_vbe_setup): Likewise.
        (grub_video_vbe_get_info): Likewise.
        (grub_video_vbe_set_palette): Likewise.
        (grub_video_vbe_get_palette): Likewise.
        (grub_video_vbe_set_viewport): Likewise.
        (grub_video_vbe_get_viewport): Likewise.
        (grub_video_vbe_map_color): Likewise.
        (grub_video_vbe_map_rgb): Likewise.
        (grub_video_vbe_map_rgba): Likewise.
        (grub_video_vbe_unmap_color): Likewise.
        (grub_video_vbe_fill_rect): Likewise.
        (grub_video_vbe_blit_glyph): Likewise.
        (grub_video_vbe_blit_bitmap): Likewise.
        (grub_video_vbe_blit_render_target): Likewise.
        (grub_video_vbe_scroll): Likewise.
        (grub_video_vbe_swap_buffers): Likewise.
        (grub_video_vbe_create_render_target): Likewise.
        (grub_video_vbe_delete_render_target): Likewise.
        (grub_video_vbe_set_active_render_target): Likewise.
        (grub_vbe_set_pixel_rgb): Remove function.
        (grub_vbe_set_pixel_index): Likewise.
        (index_color_mode): Remove static variable.
        (active_mode): Likewise.
        (framebuffer): Likewise.
        (bytes_per_scan_line): Likewise.
        (grub_video_vbe_adapter): Added new static variable.
        (framebuffer): Likewise.
        (render_target): Likewise.
        (initial_mode): Likewise.
        (mode_in_use): Likewise.
        (mode_list): Likewise.
2006-03-14 19:08:34 +00:00
marco_g
5f97350bc7 2006-03-10 Marco Gerards <marco@gnu.org>
* configure.ac (AC_INIT): Bumped to 1.93.

	* DISTLIST: Added `include/grub/hfs.h'.
2006-03-10 22:27:24 +00:00
okuji
a3c5c6f8f6 2006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
* boot/i386/pc/boot.S (general_error): Before looping, try INT
        18H, which might help the BIOS falling back to next boot media.
2006-02-01 06:12:58 +00:00
okuji
6de53d26a2 2006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-install.in: Escape a backslash. Reported by
        Poe Chen <poe.poechen@gmail.com>.
2006-01-25 00:11:36 +00:00
marco_g
77c4a3939d 2006-01-17 Marco Gerards <marco@gnu.org>
* include/grub/normal.h: Include <grub/script.h>.
	(grub_command_list): Removed struct.
	(grub_command_list_t): Removed type.
	(grub_menu_entry): Remove members `num' and `command_list'.  Add
	members `commands' and `sourcecode'.
	* include/grub/script.h: Add inclusion guards.
	(grub_script_cmd_menuentry): New struct.
	(grub_script_execute_menuentry): New prototype.
	(grub_script_lexer_record_start): Likewise.
	(grub_script_lexer_record_stop): Likewise.
	* normal/execute.c (grub_script_execute_menuentry): New function.
	* normal/lexer.c (record, recording, recordpos, recordlen): New
	variables.
	(grub_script_lexer_record_start): New function.
	(grub_script_lexer_record_stop): Likewise.
	(recordchar): Likewise.
	(nextchar): Likewise.
	(grub_script_yylex): Use `nextchar' to fetch new characters.  Use
	2048 as the buffer size.  Add the tokens `menuentry' and `@'.
	* normal/main.c: Include <grub/parser.h> and <grub/script.h>
	(current_menu): New variable.
	(free_menu): Mainly rewritten.
	(grub_normal_menu_addentry): New function.
	(read_config_file): Rewritten.
	* normal/menu.c (run_menu_entry): Mainly rewritten.
	* normal/menu_entry.c (make_screen): Rewritten te code to insert
	the menu entry.
	(run): Mainly rewritten.
	* normal/parser.y (menu_entry): New variable.
	(GRUB_PARSER_TOKEN_MENUENTRY): New token.
	(menuentry): New rule.
	(command): Add `menuentry'.
	(if_statement): Allow additional returns before `fi'.
	* normal/script.c (grub_script_create_cmdmenu): New function.
2006-01-17 09:50:47 +00:00
marco_g
144f1f986f 2006-01-03 Marco Gerards <marco@gnu.org>
* INSTALL: GNU Bison is required.
	* configure.ac: Rewritten the test to detect Bison.
	* Makefile.in (YACC): New variable.  Reported by Xun Sun
	<xun.sun.cn@gmail.com>.
2006-01-03 17:58:02 +00:00
marco_g
af4b2d89a0 2006-01-03 Marco Gerards <marco@gnu.org>
* fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
	the HFS+ filesystem to filesystem blocks.
	(grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
	GCC warning is silenced.
2006-01-03 16:27:31 +00:00
marco_g
15643b71c0 2006-01-03 Marco Gerards <marco@gnu.org>
* partmap/apple.c (apple_partition_map_iterate): Convert the data
	read from disk from big	endian to host byte order.
2006-01-03 16:02:18 +00:00
marco_g
0090587997 2006-01-03 Hollis Blanchard <hollis@penguinppc.org>
* fs/hfs.c: Include <grub/hfs.h>.  Added reference to the official
	documentation.
	(GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
	(grub_hfs_mount): Grammar fix in error. Make sure this is not an
	embedded HFS+ filesystem.
	(GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
	(grub_hfs_sblock): Move from here...
	* include/grub/hfs.h: To here...  New file.
	* fs/hfsplus.c: Include <grub/hfs.h>.  Added reference to the official
	documentation.
	(GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
	New macros.
	(grub_hfsplus_volheader): Change type of member `magic' to
	`grub_uint16_t'.
	(grub_hfsplus_data): Add new member `embedded_offset'.
	(grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
	returned block.
	(grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
	Calculate the offset.
2006-01-03 14:30:57 +00:00
okuji
8899bc3e58 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
        Removed.
        (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
2005-12-25 19:40:31 +00:00
okuji
ae8c027758 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
* kern/env.c (grub_env_set): Check if ENV->VALUE instead of
        ENV->NAME is NULL after allocating ENV->VALUE.
2005-12-25 17:21:52 +00:00
marco_g
0708445662 2005-12-25 Marco Gerards <marco@gnu.org>
* kern/env.c (grub_env_set): Rewritten the error handling code.
2005-12-25 17:19:24 +00:00
okuji
4750f5f13d 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
* geninit.sh: Made more robust, and more portable.
2005-12-25 17:04:32 +00:00
marco_g
502141992c 2005-12-25 Marco Gerards <marco@gnu.org>
Add support for Apple HFS+ filesystems.

	* fs/hfsplus.c: New file.

	* DISTLIST: Added `fs/hfsplus.c'.

	* conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
	(hfsplus_mod_SOURCES): New variable.
	(hfsplus_mod_CFLAGS): Likewise.
	(hfsplus_mod_LDFLAGS): Likewise.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
	(grub_setup_SOURCES): Likewise.
	(grub_mkdevicemap_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

	* fs/fshelp.c (grub_fshelp_log2blksize): New function.

	* include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
2005-12-25 15:59:50 +00:00
okuji
befaed6ce7 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
        commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
        include/grub/parser.h, include/grub/script.h, kern/parser.c,
        kern/sparc64/cache.S, normal/execute.c, normal/function.c,
        normal/lexer.c, normal/parser.y, normal/script.c, and
        partmap/gpt.c.
        Removed kern/sparc64/cache.c.

        * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
        grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
        grub_emu_init.c.

        * configure.ac (AC_INIT): Bumped to 1.92.
2005-12-25 15:22:55 +00:00
chaac
6a12410384 2005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
* kern/err.c (grub_error_push): Added new function to support error
stacks.
(grub_error_pop): Likewise.
(grub_error_stack_items): New local variable to support error stacks.
(grub_error_stack_pos): Likewise.
(grub_error_stack_assert): Likewise.
(GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
stack depth.
(grub_print_error): Added support to print errors from error stack.

* include/grub/err.h (grub_error_push): Added function prototype.
(grub_error_pop): Likewise.
2005-12-23 22:59:12 +00:00
hollisb
be973c1ba6 2005-12-09 Hollis Blanchard <hollis@penguinppc.org>
* configure.ac: Accept `powerpc64' as host_cpu.
	(amd64): Rename to `biarch32'.

	* kern/powerpc/cache.S (grub_arch_sync_caches): Handle
	non-cacheline-aligned addresses.

	* kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
	(grub_dl_flush_cache): Likewise.  Only call `grub_arch_sync_caches'
	if `size' is non-zero.
2005-12-10 05:24:59 +00:00
marco_g
b04216abba 2005-12-03 Marco Gerards <mgerards@xs4all.nl>
* conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
	and `cd' to make sure the filename is not prefixed with a
	directory name.
	(pkgdata_MODULES): Add `gpt.mod'.
	(gpt_mod_SOURCES): New variable.
	(gpt_mod_CFLAGS): Likewise.
	(gpt_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.

	* include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
	New macro.

	* partmap/gpt.c: New file.

	* partmap/pc.c (pc_partition_map_iterate): Don't continue when a
	GPT partition map is detected.
2005-12-03 17:54:55 +00:00
subdino
41730ed990 2005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
* commands/i386/pc/play.c: New file.
        * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
        (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
        macros.
2005-12-03 16:18:27 +00:00
marco_g
95dc3643d6 2005-11-27 Marco Gerards <mgerards@xs4all.nl>
* include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
	((unused))' to silence gcc warning.
2005-11-27 12:21:12 +00:00
hollisb
1569ec5199 2005-11-26 Hollis Blanchard <hollis@penguinppc.org>
* configure.ac: Correct `AC_PROG_YACC' test.
2005-11-26 23:40:24 +00:00
hollisb
9abde152f5 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
* util/powerpc/ieee1275/grub-install.in: Run the mount point
	check before installing files.
2005-11-23 05:25:38 +00:00
hollisb
44b83271e6 2005-11-22 Mike Small <smallm@panix.com>
* util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
	number regex so multidigit numbers are recognized correctly.

	* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
	debugging message before attempting to claim memory.
	(grub_rescue_cmd_initrd): Add a claim debugging message and try
	multiple addresses in case of failure.
2005-11-23 04:25:16 +00:00
hollisb
9c12956b84 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
* term/tparm.c (get_space): Remove empty `if' statement.

	* fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.

	* kern/parser.c (check_varstate): Rename `state' to 's'.
2005-11-23 03:36:25 +00:00
hollisb
aeaf81d9a3 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
* partmap/acorn.c: Change `unsigned' to `unsigned int'.  Move all
	variable definitions to the beginning of each function.  Sort stack
	variables by size.
	(find): Rename to `acorn_partition_map_find'.  Cast `grub_disk_read'
	`buf' argument to `char *'.
2005-11-23 02:44:34 +00:00
hollisb
79bbb63f6b 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk: Include conf/common.mk.
	(pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
	minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
	hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
	help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
	sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
	configfile.mod, search.mod, gzio.mod and test.mod.
	(symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
	(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
	(fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
	(fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
	(ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
	(ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
	(minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
	(hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
	(jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
	(iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
	(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
	(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
	(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
	(hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
	(boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
	(terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
	(ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
	(cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
	(help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
	(font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
	(terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
	(amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
	(apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.

	* conf/common.rmk (grub_modules_init.lst): Use `find' instead of
	`grep --include'.
	(pkgdata_MODULES): Add test.mod.
2005-11-23 02:23:08 +00:00
marco_g
233b16284c 2005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
* genmk.rb: Fixed list rules moved to Makefile.in.  Recognise
	appending to variables with "+=".
	(PModule): Use full pathname to generate *.lst filenames.

	* Makefile.in: Fixed list rules moved from genmk.rb.
	(.DELETE_ON_ERROR): New special target.
	(RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.

	* conf/i386-pc.rmk: Include conf/common.mk.
	(pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
	minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
	hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
	help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
	sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
	configfile.mod, search.mod, gzio.mod and test.mod.
	(symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
	(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
	(fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
	(fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
	(ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
	(ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
	(minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
	(hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
	(jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
	(iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
	(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
	(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
	(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
	(hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
	(boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
	(terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
	(ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
	(cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
	(help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
	(font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
	(terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
	(amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
	(apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
	here...
	* conf/common.rmk: ... to here.  New file.

	* conf/common.mk: New file.
2005-11-18 14:56:55 +00:00
okuji
16f820c8c5 2005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
* conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
        (grub_script.tab.c): ... here.

        * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
        (grub_script.tab.c): ... here.

        * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
        (grub_script.tab.c): ... here.

        * normal/command.c (grub_command_find): Fixed a memory leak of
        MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
2005-11-18 10:51:00 +00:00
marco_g
63ba155474 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
* include/grub/symbol.h: (FUNCTION): Use double quotes instead of
	"@" which marks the start of a comment on ARM.
	(VARIABLE): Likewise.
2005-11-13 21:37:16 +00:00
marco_g
7f67dc13e5 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
Add support for Linux/ADFS partition tables.

	* partmap/acorn.c: New file.

	* include/grub/acorn_filecore.h: Likewise.

	* DISTLIST: Added `partmap/acorn.c' and
	`include/grub/acorn_filecore.h'.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`partmap/acorn.c'.
	(pkgdata_MODULES): Add `acorn.mod'.
	(acorn_mod_SOURCES): New variable.
	(acorn_mod_CFLAGS): Likewise.

	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
	`partmap/acorn.c'.
	(pkgdata_MODULES): Add `acorn.mod'.
	(acorn_mod_SOURCES): New variable.
	(acorn_mod_CFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
	(pkgdata_MODULES): Add `acorn.mod'.
	(acorn_mod_SOURCES): New variable.
	(acorn_mod_CFLAGS): Likewise.
	(acorn_mod_LDFLAGS): Likewise.

	* include/types.h (grub_disk_addr_t): New typedef.
2005-11-13 19:45:12 +00:00
marco_g
6d099807fa 2005-11-13 Marco Gerards <mgerards@xs4all.nl>
* geninit.sh: New file.

	* geninitheader.sh: Likewise.

	* commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
	* commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
	* commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
	* commands/configfile.c (grub_configfile_init)
	(grub_configfile_fini): Likewise.
	* commands/default.c (grub_default_init, grub_default_fini):
	Likewise.
	* commands/help.c (grub_help_init, grub_help_fini): Likewise.
	* commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
	* commands/search.c (grub_search_init, grub_search_fini): Likewise.
	* commands/terminal.c (grub_terminal_init, grub_terminal_fini):
	Likewise.
	* commands/test.c (grub_test_init, grub_test_fini): Likewise.
	* commands/timeout.c (grub_timeout_init, grub_timeout_fini):
	Likewise.
	* commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
	* commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
	Likewise.
	* commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
	Likewise.
	* commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
	Likewise.
	* disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
	* fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
	* fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
	* fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
	* fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
	* fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
	* fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
	* fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
	* fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
	* fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
	* fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
	* normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
	* partmap/amiga.c (grub_amiga_partition_map_init)
	(grub_amiga_partition_map_fini): Likewise.
	* partmap/apple.c (grub_apple_partition_map_init)
	(grub_apple_partition_map_fini): Likewise.
	* partmap/pc.c (grub_pc_partition_map_init)
	(grub_pc_partition_map_fini): Likewise.
	* partmap/sun.c (grub_sun_partition_map_init,
	grub_sun_partition_map_fini): Likewise.
	* term/terminfo.c (grub_terminal_init, grub_terminal_fini):
	Likewise.

	* util/grub-emu.c: Include <grub_modules_init.h>.
	(main): Don't initialize and de-initialize any modules directly,
	use `grub_init_all' and `grub_fini_all' instead.

	* term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
	`grub_vesafb_mod_init'.
	(grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'.  Updated
	all users.
	* term/i386/pc/vga.c (grub_vga_init): Renamed to
	`grub_vga_mod_init'.  Updated all users.
	(grub_vga_fini): Renamed to `grub_vga_mod_fini'.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
	(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
	rules.

	* include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
	Generate a function to initialize the module in utilities.
	Updated all callers.
	(GRUB_MOD_FINI): Add argument `name'.  Generate a function to
	initialize the module in utilities.  Updated all callers.
2005-11-13 15:47:09 +00:00
hollisb
9046bcf0e6 2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
* term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
	escape sequence and a literal ^L to clear the screen.

	* commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
	when returning from Open Firmware.
2005-11-10 01:57:52 +00:00
hollisb
d13ea639a8 2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
* term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
	(grub_ofconsole_height): Likewise.
	(grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
	manually insert a '\n'.
	(grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
	`grub_ofconsole_height'.  Return early if these are already set.
2005-11-09 06:07:54 +00:00
subdino
a8fcf2065b 2005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
        `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
        `normal/execute.c', `normal/lexer.c', `io/gzio.c',
        `kern/parser.c', `grub_script.tab.c', `normal/function.c'
        and `normal/script.c'.
        (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
        `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
        (test_mod_SOURCES): New variable.
        (test_mod_CFLAGS): Likewise.
        (test_mod_LDFLAGS): Likewise.
        (pkgdata_MODULES): Add `test.mod'.
        (grub_script.tab.c): New rule.
        (grub_script.tab.h): Likewise.
2005-11-07 22:28:57 +00:00
marco_g
b6b327459c 2005-11-07 Marco Gerards <mgerards@xs4all.nl>
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`commands/test.c', `normal/execute.c', `normal/lexer.c',
	`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
	(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
	`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
	(test_mod_SOURCES): New variable.
	(test_mod_CFLAGS): Likewise.
	(pkgdata_MODULES): Add `test.mod'.
	(grub_script.tab.c): New rule.
	(grub_script.tab.h): Likewise.
2005-11-07 20:27:46 +00:00
marco_g
daac212ae3 2005-11-06 Marco Gerards <mgerards@xs4all.nl>
Add initial scripting support.

	* commands/test.c: New file.
	* include/grub/script.h: Likewise.
	* normal/execute.c: Likewise.
	* normal/function.c: Likewise.
	* normal/lexer.c: Likewise.
	* normal/parser.y: Likewise.
	* normal/script.c: Likewise.

	* configure.ac: Add `AC_PROG_YACC' test.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
	`normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
	`normal/function.c' and `normal/script.c'.
	(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
	`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
	(test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New variables.
	(pkgdata_MODULES): Add `test.mod'.
	(grub_script.tab.c): New rule.
	(grub_script.tab.h): Likewise.

	* include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.

	* include/grub/normal.h (grub_test_init): New prototype.
	(grub_test_fini): Likewise.

	* normal/command.c: Include <grub/script.h>.
	(grub_command_execute): Rewritten.

	* util/grub-emu.c (main): Call `grub_test_init' and
	`grub_test_fini'.
2005-11-06 22:19:59 +00:00
hollisb
77500b2bf0 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
	to 0.
	* term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
	there are no pending characters.
2005-11-04 04:50:14 +00:00
hollisb
e45deb9e1e 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
	`grub_strndup' to drop device arguments. Replace unnecessary
	`grub_strndup' with `grub_strdup'.
2005-11-04 03:18:12 +00:00
hollisb
4ce3261934 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
* kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
	`debug' environment variable has been set.
2005-11-04 03:00:59 +00:00
okuji
25fe6f0349 2005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
From Timothy Baldwin:
        * commands/ls.c (grub_ls_list_files): Close FILE with
        grub_file_close.
        * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
2005-10-28 03:14:33 +00:00
marco_g
04ccf3ec6f 2005-10-24 Marco Gerards <mgerards@xs4all.nl>
* include/grub/parser.h: New file.

	* kern/parser.c: Likewise.

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
	(grub_setup_SOURCES): Likewise.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(kernel_img_HEADERS): Add `parser.h'.

	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
	(grub_emu_SOURCES): Add `kern/parser.c'.
	(grubof_SOURCES): Likewise.

	* conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
	(grubof_SOURCES): Add `kern/parser.c'.

	* include/grub/misc.h (grub_split_cmdline): Removed prototype.

	* kern/misc.c (grub_split_cmdline): Removed function.

	* kern/rescue.c: Include <grub/parser.h>.
	(grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
	of `grub_split_cmdline'.

	* normal/command.c: Include <grub/parser.h>.
	(grub_command_execute):  Use `grub_parser_split_cmdline' instead
	of `grub_split_cmdline'.

	* normal/completion.c: Include <grub/parser.h>.
	(cmdline_state): New variable.
	(iterate_dir): End the filename with a quote depending on the
	command line state.
	(get_state): new function.
	(grub_normal_do_completion): Use `grub_parser_split_cmdline' to
	split the arguments and determine the current argument.  When the
	argument string is not quoted, escape all spaces.
2005-10-24 10:23:46 +00:00
subdino
6d8f4b0e60 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
* normal/sparc64/setjmp.S: New file.
2005-10-23 21:38:12 +00:00
subdino
15cf03edaf 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
* include/grub/sparc64/libgcc.h: New file.
        * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
        (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
        normal/sparc64/setjmp.c.
2005-10-23 21:01:19 +00:00
subdino
03e8661a56 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
* kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
        * kern/sparc64/cache.S: New file.
        * kern/sparc64/cache.c: Removed.
        * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
        (COMMON_CFLAGS): Add -mno-app-regs.  Remove -mcpu=v9 and
        -mtune=ultrasparc.
        (COMMON_LDFLAGS): Add -melf64_sparc.
        (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
        (grubof_SOURCES): Use cache.S instead of cache.c.
        (grubof_LDFLAGS): Add -mno-app-regs.  Replace "-Xlinker
        --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
        (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
        commented though.
        (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
        (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
        (linux_mod_CFLAGS): Commented out.
        (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
        out because module isn't built.
        (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
        (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
        (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
        (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
        (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
        (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
        (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
        (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
        (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
        (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
        (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
        (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
        (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
        (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
2005-10-23 19:28:28 +00:00
okuji
34eeec8a53 2005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
        grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
        longer, because HFS should not be used on PC.
2005-10-19 23:17:09 +00:00
okuji
708367a39f 2005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
* io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
        consistently within the loop.
2005-10-19 23:16:03 +00:00
marco_g
6fa1251a91 2005-10-15 Marco Gerards <mgerards@xs4all.nl>
* fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
	directory can not be read.
2005-10-15 21:33:38 +00:00
okuji
4801580bfa 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac (AC_INIT): Increase the version number to 1.91.

        * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
        include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
        term/i386/pc/serial.c.
2005-10-15 18:10:37 +00:00
okuji
219ad4262c 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
* kern/file.c (grub_file_seek): Seeking to an offset equal to a
        file size must be permitted.

        * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
        between %ah and %al.
2005-10-15 17:28:36 +00:00
okuji
688e5699e6 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
* fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
        grub_uint64_t.
        Call the hook with a NUL-terminated filename.
        (grub_xfs_mount): Use grub_be_to_cpu32 instead of
        grub_cpu_to_be32.

        * kern/term.c (cursor_state): New variable.
        (grub_term_set_current): Reset the cursor state on a new
        terminal.
        (grub_setcursor): Rewritten to use CURSOR_STATE.
        (grub_getcursor): New function.

        * include/grub/term.h (grub_getcursor): New prototype.

        * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
        integers on ARM. Reported by Timothy Baldwin
        <T.E.Baldwin99@members.leeds.ac.uk>.
2005-10-15 09:22:32 +00:00
marco_g
bb34586ca6 2005-10-11 Marco Gerards <mgerards@xs4all.nl>
* fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
	allocated.
	(grub_sfs_dir): Likewise.
2005-10-11 16:42:32 +00:00
marco_g
9a90987706 2005-10-09 Marco Gerards <mgerards@xs4all.nl>
Add support for the SFS filesystem.

	* fs/sfs.c: New file.

	* DISTLIST: Added `fs/sfs.c'.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `sfs.mod'.
	(sfs_mod_SOURCES): New variable.
	(sfs_mod_CFLAGS): Likewise.
	(sfs_mod_LDFLAGS): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
	(pkgdata_MODULES): Add `sfs.mod'.
	(sfs_mod_SOURCES): New variable.
	(sfs_mod_CFLAGS): Likewise.

	* util/grub-emu.c (main): Call `grub_sfs_init' and
	`grub_sfs_fini'.

	* include/grub/fs.h (grub_sfs_init): New prototype.
	(grub_sfs_fini): Likewise.
2005-10-09 13:03:53 +00:00
marco_g
57bdbde34e 2005-10-07 Marco Gerards <mgerards@xs4all.nl>
Add support for the AFFS filesystem.

	* fs/affs.c: New file.

	* DISTLIST: Added `fs/affs.c'.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `affs.mod'.
	(affs_mod_SOURCES): New variable.
	(affs_mod_CFLAGS): Likewise.
	(affs_mod_LDFLAGS): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
	(pkgdata_MODULES): Add `affs.mod'.
	(affs_mod_SOURCES): New variable.
	(affs_mod_CFLAGS): Likewise.

	* util/grub-emu.c (main): Call `grub_affs_init' and
	`grub_affs_fini'.

	* include/grub/fs.h (grub_affs_init): New prototype.
	(grub_affs_fini): Likewise.
2005-10-07 19:25:46 +00:00
marco_g
047b67e0c5 2005-10-01 Marco Gerards <mgerards@xs4all.nl>
* fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
2005-10-01 20:41:53 +00:00
marco_g
59b8208ace 2005-10-01 Marco Gerards <mgerards@xs4all.nl>
* configure.ac: Accept `x86_64' as host_cpu.  In that case add
	`-m32' to CFLAGS.

	* genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
	linking.

	* conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
	(COMMON_LDFLAGS): New variable.
	(kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
	(_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
	(ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
	(hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
	(xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
	(normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
	(terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
	(cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
	(halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
	(terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
	(multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
	(pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
	(default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
	(vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
	(vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
	variables.
	(normal_mod_ASFLAGS): Add `-m32'.

	* include/grub/types.h (grub_host_addr_t, grub_host_off_t)
	(grub_host_size_t, grub_host_ssize_t): New types.
	(grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
	dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
	`GRUB_HOST_SIZEOF_VOID_P'.

	* include/grub/kernel.h (struct grub_module_header): Type of
	member offset changed to `grub_host_off_t'.  Type of member size
	changed to `grub_host_size_t'.
	(struct grub_module_info): Type of member offset changed to
	`grub_host_off_t'.  Type of member size changed to
	`grub_host_size_t'.
2005-10-01 19:49:55 +00:00
okuji
b4093103f8 2005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
Make GRUB's kernel compliant to Multiboot Specification.

        * kern/i386/pc/startup.S (multiboot_header): New label.
        (multiboot_entry): Likewise.
        (multiboot_trampoline): Likewise.

        * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
        Increased to 0x4A0.

        * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
        put parentheses after a question mark.
        [!GRUB_UTIL] (my_mod): New variable.

        * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
2005-09-28 23:04:26 +00:00
marco_g
b2499b29cd 2005-09-28 Marco Gerards <metgerards@student.han.nl>
Adds support for the XFS filesystem.  Btrees are not supported
	yet.

	* fs/xfs.c: New file.

	* DISTLIST: Added `fs/xfs.c'.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `xfs.mod'.
	(xfs_mod_SOURCES): New variable.
	(xfs_mod_CFLAGS): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
	(pkgdata_MODULES): Add `xfs.mod'.
	(xfs_mod_SOURCES): New variable.
	(xfs_mod_CFLAGS): Likewise.

	* util/grub-emu.c (main): Call `grub_xfs_init' and
	`grub_xfs_fini'.

	* include/grub/fs.h (grub_xfs_init): New prototype.
	(grub_xfs_fini): Likewise.
2005-09-28 10:07:22 +00:00
chaac
83d37a627e 2005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
* video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
        color modes, allow greater than 16 colors to be configured as
        a default palette.
2005-09-18 21:04:41 +00:00
okuji
47d2d65e33 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
* normal/completion.c (complete_arguments): Add the qualifier
        const into OPTIONS.

        From Omniflux <omniflux+lists@omniflux.com>:
        * include/grub/terminfo.h: New file.
        * include/grub/tparm.h: Likewise.
        * include/grub/i386/pc/serial.h: Likewise.
        * term/terminfo.c: Likewise.
        * term/tparm.c: Likewise.
        * term/i386/pc/serial.c: Likewise.
        * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
        serial.mod.
        (terminfo_mod_SOURCES): New variable.
        (terminfo_mod_CFLAGS): Likewise.
        (serial_mod_SOURCES): Likewise.
        (serial_mod_CFLAGS): Likewise.
2005-09-03 16:54:27 +00:00
okuji
48b671ff70 2005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
        boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
        and kern/powerpc/ieee1275/cmain.c, respectively.

        * boot/powerpc/ieee1275/crt0.S: Moved to ...
        * kern/powerpc/ieee1275/crt0.S: ... here.

        * boot/powerpc/ieee1275/cmain.c: Moved to ...
        * kern/powerpc/ieee1275/cmain.c: ... here.

        * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
        kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
        instead of boot/powerpc/ieee1275/crt0.S and
        boot/powerpc/ieee1275/cmain.c, respectively.

        * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
        sectors. It was not used anyway.
2005-08-31 16:51:15 +00:00
hollisb
09fc77a7a3 2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
* term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
	`unused parameter' warning.
2005-08-31 01:26:34 +00:00
hollisb
003789c77c 2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
* term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
	function.
	(grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
	getcharwidth.
2005-08-31 01:02:05 +00:00
marco_g
67f44c8687 2005-08-28 Marco Gerards <metgerards@student.han.nl>
* include/grub/normal.h (enum grub_completion_type): Added
	`GRUB_COMPLETION_TYPE_ARGUMENT'.

	* normal/cmdline.c (print_completion): Handle
	the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
	* normal/menu_entry.c (store_completion): Likewise.

	* normal/completion.c (complete_arguments): New function.
	(grub_normal_do_completion): Call `complete_arguments' when the
	current words start with a dash.
2005-08-28 17:01:16 +00:00
marco_g
0b5abe0251 2005-08-27 Marco Gerards <metgerards@student.han.nl>
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
	`gzio.mod' instead of `io.mod').
2005-08-27 18:51:15 +00:00
okuji
d9864ee11a 2005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
* gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
        (DISTDIRS): Added io and video.
        Rewrite the search routine to make an output consistently.

        * DISTLIST: Added conf/sparc64-ieee1275.mk,
        conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
        include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
        io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
        kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
        util/powerpc/ieee1275/misc.c.

        * include/grub/gzio.h: New file.
        * io/gzio.c: Likewise.

        * kern/file.c (grub_file_close): Call grub_device_close only if
        FILE->DEVICE is not NULL.

        * include/grub/mm.h [!NULL] (NULL): New macro.

        * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
        (pkgdata_MODULES): Added gzio.mod.
        (gzio_mod_SOURCES): New variable.
        (gzio_mod_CFLAGS): Likewise.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
        (pkgdata_MODULES): Added gzio.mod.
        (gzio_mod_SOURCES): New variable.
        (gzio_mod_CFLAGS): Likewise.

        * commands/cat.c: Include grub/gzio.h.
        (grub_cmd_cat): Use grub_gzfile_open instead of
        grub_file_open.

        * commands/cmp.c: Include grub/gzio.h.
        (grub_cmd_cmp): Use grub_gzfile_open instead of
        grub_file_open.

        * loader/i386/pc/multiboot.c: Include grub/gzio.h.
        (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
        grub_file_open.
        (grub_rescue_cmd_module): Likewise.
2005-08-22 17:28:59 +00:00
subdino
fa46f4b5b6 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
* conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
        kern/sparc64/ieee1275/init.c because it contains _start.
        * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
2005-08-21 19:33:14 +00:00
subdino
e9211b5d32 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
* configure.ac: Add support for sparc64 host with ieee1275
        firmware.
        * configure: Generated from configure.ac.
        * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
        instead of int.
        (grub_ofdisk_read): Likewise.
        (grub_ofdisk_open): Use %p to print pointer values, and cast the
        pointers as (void *) to remove a warning.
        (grub_ofdisk_close): Likewise.
        (grub_ofdisk_read): Likewise.
        * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
        returns, so make it return void to remove a warning.
        * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
        Corresponding prototype change.
        * kern/mm.c (grub_mm_init_region): Use %p to print pointer
        values, and cast the pointers as (void *) to remove a warning.
        (grub_mm_dump): Likewise.
        * conf/sparc64-ieee1275.mk: New file.
        * conf/sparc64-ieee1275.rmk: Likewise.
        * include/grub/sparc64/setjmp.h: Likewise.
        * include/grub/sparc64/types.h: Likewise.
        * include/grub/sparc64/ieee1275/console.h: Likewise.
        * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
        * include/grub/sparc64/ieee1275/kernel.h: Likewise.
        * include/grub/sparc64/ieee1275/time.h: Likewise.
        * kern/sparc64/cache.c: Likewise.
        * kern/sparc64/dl.c: Likewise.
        * kern/sparc64/ieee1275/init.c: Likewise.
        * kern/sparc64/ieee1275/openfw.c: Likewise.
2005-08-21 18:42:55 +00:00
okuji
385c6a92a3 2005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
* util/console.c (grub_ncurses_putchar): If C is greater than
        0x7f, set C to a question mark.
        (grub_ncurses_getcharwidth): New function.
        (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
        getcharwidth.

        * normal/menu.c (print_entry): Made aware of Unicode. First,
        convert TITLE to UCS-4, and predict the cursor position by
        grub_getcharwidth.

        * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
        const to SRC.
        * kern/misc.c (grub_utf16_to_utf8): Likewise.
2005-08-21 07:22:51 +00:00
okuji
16ccb8b138 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
        the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
        grub_strcat.

        * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
        file by the option BOOT_IMAGE. Use grub_stpcpy instead of
        grub_strcpy and grub_strlen. Take it into account that a space
        character is inserted as a delimiter.
2005-08-20 08:25:51 +00:00
okuji
6a85ce7953 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
* partmap/pc.c (pc_partition_map_iterate): Include the value of an
        invalid magic in thre error.

        * commands/search.c: New file.

        * util/grub-emu.c (main): Call grub_search_init and
        grub_search_fini.

        * kern/rescue.c (grub_rescue_print_disks): Removed.
        (grub_rescue_print_devices): New function.
        (grub_rescue_cmd_ls): Use grub_device_iterate with
        grub_rescue_print_devices instead of grub_disk_dev_iterate with
        grub_rescue_print_disks.

        * kern/partition.c (grub_partition_iterate): Return the result of
        PARTMAP->ITERATE instead of GRUB_ERRNO.

        * kern/device.c: Include grub/partition.h.
        (grub_device_iterate): New function.

        * include/grub/partition.h (grub_partition_iterate): Return int
        instead of grub_err_t.

        * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
        prototype.
        [GRUB_UTIL] (grub_search_fini): Likewise.

        * include/grub/device.h (grub_device_iterate): New prototype.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
        commands/search.c.
        (pkgdata_MODULES): Added search.mod.
        (search_mod_SOURCES): New variable.
        (search_mod_CFLAGS): Likewise.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
        (pkgdata_MODULES): Added search.mod.
        (search_mod_SOURCES): New variable.
        (search_mod_CFLAGS): Likewise.

        * commands/ls.c (grub_ls_list_disks): Renamed to ...
        (grub_ls_list_devices): ... this, and use grub_device_iterate.
        All callers changed.

        * DISTLIST: Added commands/search.c.
2005-08-20 07:49:02 +00:00
okuji
ef0954341c 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
* kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
        conversion.
        (grub_getcharwidth): New function.

        * kern/misc.c (grub_utf8_to_ucs4): New function.

        * include/grub/term.h (struct grub_term): Added a new member
        "getcharwidth".
        (grub_getcharwidth): New prototype.

        * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.

        * term/i386/pc/console.c (map_char): New function. Segregated from
        grub_console_putchar.
        (grub_console_putchar): Use map_char.
        (grub_console_getcharwidth): New function.
        (grub_console_term): Specified grub_console_getcharwidth as
        getcharwidth.

        * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
        (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.

        * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
        GRUB_ERRNO.
        (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
        on grub_strtoul completely.
        (write_char): Declare local variables in the beginning of the
        function.
        (grub_vesafb_getcharwidth): New function.
        (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
        getcharwidth.
2005-08-20 05:26:51 +00:00
okuji
1f0a95e481 2005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
        commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
        commands/i386/pc/vbetest.c.

        * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
        call grub_vbe_get_controller_info again, because the returned
        information is volatile.
        (grub_vbe_set_video_mode): Mostly rewritten.
        (grub_vbe_get_video_mode): Use grub_vbe_probe and use
        grub_vbe_status_t correctly.
        (grub_vbe_get_video_mode_info): Likewise.
        (grub_vbe_set_pixel_rgb): Use a switch statement rather than
        several if statements.

        * commands/i386/pc/vbe_list_modes.c: Renamed to ...
        * commands/i386/pc/vbeinfo.c: ... this.

        * commands/i386/pc/vbe_test.c: Renamed to ...
        * commands/i386/pc/vbetest.c: ... this.

        * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
        ...
        (grub_cmd_vbeinfo): ... this. Save video modes before
        iterating. Skip a video mode, if it is not available, not enough
        information is given or it is monochrome. Show the memory
        model. Leave the interpretation of MODEVAR to grub_strtoul
        completely.
        (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
        (GRUB_MOD_FINI): Likewise.

        * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
        (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
        grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
        duplicated grub_env_get. Leave the interpretation of MODEVAR to
        grub_strtoul completely.
        (real2pm): Removed.
        (GRUB_MOD_INIT): Rename vbe_test to vbetest.
        (GRUB_MOD_FINI): Likewise.

        * normal/misc.c: Include grub/mm.h.

        * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
        vbe_list_modes with vbetest.mod and vbeinfo.mod.
        (vbe_list_modes_mod_SOURCES): Removed.
        (vbe_list_modes_mod_CFLAGS): Likewise.
        (vbe_test_mod_SOURCES): Likewise.
        (vbe_test_mod_CFLAGS): Likewise.
        (vbeinfo_mod_SOURCES): New variable.
        (vbeinfo_mod_CFLAGS): Likewise.
        (vbetest_mod_SOURCES): Likewise.
        (vbetest_mod_CFLAGS): Likewise.
2005-08-19 00:32:01 +00:00
okuji
992ffbbebb 2005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
* normal/misc.c: New file.

        * DISTLIST: Added normal/misc.c.

        * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
        DISK to HOOK. Call HOOK with DISK.
        * partmap/apple.c (apple_partition_map_iterate): Likewise.
        * partmap/pc.c (pc_partition_map_iterate): Likewise.
        * partmap/sun.c (sun_partition_map_iterate): Likewise.

        * normal/menu_entry.c (struct screen): Added a new member
        "completion_shown".
        (completion_buffer): New global variable.
        (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
        (store_completion): New function.
        (complete): Likewise.
        (clear_completions): Likewise.
        (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
        call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
        a tab, call complete.

        * normal/completion.c (disk_dev): Removed.
        (print_simple_completion): Likewise.
        (print_partition_completion): Likewise.
        (print_func): New global variable.
        (add_completion): Do not take the arguments WHAT or PRINT any
        longer. Added a new argument TYPE. Instead of printing directly,
        call PRINT_FUNC if not NULL.
        All callers changed.
        (complete_device): Use a local variable DEV instead of
        DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
        (grub_normal_do_completion): Take a new argument HOOK. Do not
        initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
        empty string, return NULL instead.
        All callers changed.

        * normal/cmdline.c (print_completion): New function.

        * kern/partition.c (grub_partition_iterate): Add an argument DISK
        to HOOK.
        All callers changed.

        * kern/disk.c (grub_print_partinfo): Removed.

        * include/grub/partition.h (struct grub_partition_map): Add a new
        argument DISK into HOOK of ITERATE.
        (grub_partition_iterate): Add a new argument DISK to HOOK.

        * include/grub/normal.h (enum grub_completion_type): New enum.
        (grub_completion_type_t): New type.
        (GRUB_COMPLETION_TYPE_COMMAND): New constant.
        (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
        (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
        (GRUB_COMPLETION_TYPE_FILE): Likewise.
        (grub_normal_do_completion): Added a new argument HOOK.
        (grub_normal_print_device_info): New prototype.

        * include/grub/disk.h (grub_print_partinfo): Removed.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
        (normal_mod_SOURCES): Likewise.
        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
        (normal_mod_SOURCES): Likewise.

        * commands/ls.c (grub_ls_list_disks): Use
        grub_normal_print_device_info instead of grub_print_partinfo. Free
        PNAME.
        (grub_ls_list_files): Use grub_normal_print_device_info instead of
        duplicating the code.
2005-08-18 03:14:39 +00:00
chaac
0bd41162dd Update source to follow GCS more precisely. 2005-08-16 18:34:17 +00:00
chaac
6323696adf Added first version of the VBE terminal code. 2005-08-15 21:25:41 +00:00
okuji
001cf69421 Remove an invalid entry. 2005-08-14 19:37:26 +00:00
okuji
0a74e62fde 2005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
* normal/menu.c (run_menu_entry):

        * normal/command.c (grub_command_execute): If INTERACTIVE is
        false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
        CMDLINE. Disable the pager if INTERACTIVE is true.
        All callers are changed.

        * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
        before reading a config file.
        * normal/main.c (read_config_file): Even if a command is not
        found, register it if it is within an entry.

        * util/grub-emu.c: Include sys/types.h and unistd.h.
        (options): Added --hold.
        (struct arguments): Added a new member "hold".
        (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
        missing.
        (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
        cleared by a debugger, if it is not zero.

        * include/grub/normal.h (grub_command_execute): Add an argument
        INTERACTIVE.
2005-08-14 19:36:55 +00:00
chaac
e51f85ae35 Added forgotten include/grub/i386/pc/vbe.h to DISTLIST. 2005-08-14 11:04:12 +00:00
okuji
e9c6f39bb4 2005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
        program with another one, because the old one didn't detect a bug
        in gcc-3.4. Always use regparm 2, because the new test is still
        not enough for gcc-4.0. Someone must investigate a simple test
        case which detects a bug in gcc-4.0.
2005-08-13 18:44:14 +00:00
okuji
8de3495c7b 2005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added normal/completion.c.

        * normal/completion.c: New file.

        * term/i386/pc/console.c (grub_console_getwh): New function.
        (grub_console_term): Assign grub_console_getwh to getwh.

        * normal/cmdline.c (grub_tab_complete): Removed. Now the same
        function is defined in normal/completion.c as
        grub_normal_do_completion.
        (grub_cmdline_get): Use grub_normal_do_completion instead of
        grub_tab_complete.

        * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
        returns non-zero, otherwise return 0.
        (grub_partition_iterate): First, probe the partition map. Then,
        call ITERATE only for this partition map.

        * kern/misc.c (grub_strncmp): Rewritten.

        * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
        returns non-zero. Otherwise return 0.

        * include/grub/partition.h (grub_partition_map_iterate): Return
        int instead of void.

        * include/grub/normal.h (grub_normal_do_completion): New prototype.

        * include/grub/misc.h (grub_strncmp): Change the type of N to
        grub_size_t.

        * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
        of void.

        * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
        unsigned explictly before comparing it with I.

        * kern/main.c (grub_env_write_root): Add the attribute unused into
        VAR.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
        normal/completion.c.
        (normal_mod_SOURCES): Likewise.
        * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
        (normal_mod_SOURCES): Likewise.

        * normal/command.c (grub_iterate_commands): If ITERATE returns
        non-zero, return one immediately.
2005-08-12 19:53:33 +00:00
chaac
e85e144bfc Added support for VESA Bios Extension to i386 kernel. 2005-08-09 14:39:50 +00:00
hollisb
c46153d28f 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
	kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
	* DISTLIST: Likewise.
	* kern/ieee1275/of.c: Moved to ...
	* kern/ieee1275/ieee1275.c: ... here.
2005-08-09 03:36:50 +00:00
hollisb
0cb90c457c 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
* term/ieee1275/ofconsole.c: Include <grub/mm.h>.
	(grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
	Pass 0 as `end' parameter to grub_strtoul().
2005-08-09 03:25:40 +00:00
hollisb
a19fb36045 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/powerpc/ieee1275/console.h: Do not include
	<grub/types.h>.  Do not include <grub/symbol.h>.  Remove ASM_FILE
	ifdef.
	(grub_console_cur_color): Remove i386-specific prototype.
	(grub_console_real_putchar): Likewise.
	(grub_console_checkkey): Likewise.
	(grub_console_getkey): Likewise.
	(grub_console_getxy): Likewise.
	(grub_console_gotoxy): Likewise.
	(grub_console_cls): Likewise.
	(grub_console_setcursor): Likewise.
	* kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
	Include <grub/machine/console.h>.
	* term/ieee1275/ofconsole.c: Likewise.
2005-08-09 03:15:35 +00:00
okuji
4ac9bd0438 2005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
* Makefile.in (LIBLZO): New variable.

        * configure.ac: Check for LZO version 2.

        * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
        lzo/lzo1x.h instead of lzo1x.h.

        * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
        of -llzo.

        * util/i386/pc/grub-setup.c (main): Do not free PREFIX
        twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.

        * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
        copying the data from PARTITION to P.
2005-08-08 23:15:21 +00:00
okuji
f4917dfdd6 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
* kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
        negative, unload the module.

        * util/i386/pc/grub-setup.c (setup): The name of the PC partition
        map is "pc_partition_map" but not "pc".
        (usage): Fix the description. The options are --boot-image and
        --core-image but not --boot-file or --core-file.
        (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
        based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
        DEFAULT_DIRECTORY.

        * util/i386/pc/grub-install.in: Do not specify --boot-file or
        --core-file. Specify INSTALL_DEVICE as an argument.

        * util/console.c: Include config.h.
        [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
        [HAVE_NCURSES_H]: Include ncurses.h.
        [HAVE_CURSES_H]: Include curses.h.
        [!A_NORMAL] (A_NORMAL): Defined as zero.
        [!A_STANDOUT] (A_STANDOUT): Likewise.

        * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
        -lncurses.
        * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.

        * configure.ac: Check for curses libraries and headers.

        * Makefile.in (LIBCURSES): New variable.

        * genmk.rb (Script::rule): Set the executable bits.

        * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
        name of the PC partition map is "pc_partition_map" but not "pc".
2005-08-07 17:12:52 +00:00
okuji
0e1430737f 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-install.in (grub_probefs): New variable.
        (modules): Likewise.
        (usage): Added descriptions for --modules and --grub-probefs.
        Handle --modules and --grub-probefs. Save the arguments in MODULES
        and GRUB_PROBEFS, respectively.
        Auto-detect a filesystem module against GRUBDIR. If the result is
        empty and modules are not specified explicitly, abort the
        installation. Add the result to MODULES.

        * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
        disk/powerpc/ieee1275/ofdisk.c,
        include/grub/powerpc/ieee1275/init.h and
        term/powerpc/ieee1275/ofconsole.c.
        Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
        term/ieee1275/ofconsole.c.

        * include/grub/powerpc/ieee1275/console.h: Resurrected.

        * COPYING: Upgraded to the latest version. Only the address of the
        FSF office has changed.
2005-08-07 14:59:56 +00:00
okuji
efd6e6d564 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
        kern/ieee1275.c with kern/ieee1275/of.c.

        * kern/ieee1275.c: Moved to ...
        * kern/ieee1275/of.c: ... here.
2005-08-07 14:14:40 +00:00
okuji
8ceafda2a8 2005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
* conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
        readablity.

        * config.guess: Updated to the latest version from gnulib.
        * config.sub: Likewise.
        * install.sh: Likewise.
        * mkinstalldirs: Likewise.

        * include/grub/console.h: Removed. This file is arch-specific. Do
        not put this in include/grub.

        * include/grub/i386/pc/console.h: Resurrected.

        * util/console.c: Include grub/machine/console.h instead of
        grub/console.h.
        * util/grub-emu.c: Likewise.
2005-08-06 15:50:07 +00:00
marco_g
267f6cd9ca 2005-08-04 Marco Gerards <metgerards@student.han.nl>
* kern/term.c (grub_putcode): Use `grub_getwh' instead of
	hardcoded value.

	From Vincent Pelletier  <subdino2004@yahoo.fr>
	* include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
	Redefined to use grub_getwh.
	(grub_term): New member named getwh.
	(grub_getwh): New prototype.
	* kern/term.c (grub_getwh): New function.
	* term/i386/pc/console.c (grub_console_getwh): New function.
	(grub_console_term): New member `getwh'.
	* term/i386/pc/vga.c (grub_vga_getwh): New function.
	(grub_vga_term): New member `getwh'.
	* term/sparc64/ofconsole.c (grub_ofconsole_readkey): Use
	grub_ssize_t.
	(grub_ofconsole_getw): New function.
	(grub_ofconsole_init): Use grub_ssize_t and unsigned char.
	(grub_ofconsole_term): New field named getwh and new initial
	value.
2005-08-04 18:10:51 +00:00
hollisb
3be7266d92 2005-08-03 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/powerpc/ieee1275/ieee1275.h: Move ...
	* include/grub/ieee1275/ieee1275.h: ... to here.  All users updated.
	Move `abort', `grub_reboot', and `grub_halt' prototypes ...
	* include/grub/powerpc/ieee1275/kernel.h: ... to here.
	* commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
	of <grub/machine/ieee1275.h>.
	* commands/ieee1275/reboot.c: Likewise.
	* boot/powerpc/ieee1275/ieee1275.c: Move ...
	* kern/ieee1275.c: ... to here.  All users updated.  Change all
	parameter structs to use new type `grub_ieee1275_cell_t'.
	* term/powerpc/ieee1275/ofconsole.c: Move ...
	* term/ieee1275/ofconsole.c: ... to here.  All users updated.
	* disk/powerpc/ieee1275/ofdisk.c: Move ...
	* disk/ieee1275/ofdisk.c: ... to here.  All users updated.
	* boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
	to return int.
	* include/grub/i386/pc/console.h: Move to include/grub/console.h.
	Remove unused prototypes.  All users updated.
	* include/grub/powerpc/ieee1275/console.h: Removed.
	* include/grub/powerpc/ieee1275/ieee1275.h: Define
	`grub_ieee1275_cell_t'.
	* kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
	Cast comparisons with -1 to the correct type.
	* loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
	type to match `grub_ieee1275_entry_fn'.
2005-08-03 22:53:51 +00:00
okuji
8b5f393852 2005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added util/i386/pc/grub-probefs.c.

	* conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
	(grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
	partmap/sun.c.
	(grub_probefs_SOURCES): New variable.

	* util/i386/pc/grub-probefs.c: New file.

	* util/i386/pc/grub-setup.c (main): Call
	grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
	grub_hfs_init and grub_jfs_init to initialize the system. Call
	grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
	grub_pc_partition_map_fini to finish the system.
2005-08-01 20:38:46 +00:00
okuji
ea4097134f 2005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
* loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
	function.
	(grub_multiboot_load_elf32): Likewise.
	(grub_multiboot_is_elf64): Likewise.
	(grub_multiboot_load_elf64): Likewise.
	(grub_multiboot_load_elf): Likewise.
	(grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
	an ELF32 or ELF64 file.
	This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.

	From Serbinenko Vladimir <serbinenko.vova@list.ru>:
	* kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
	NULL before calling FS->LABEL.
	* fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
	* commands/ls.c (grub_ls_list_files): Show labels, if possible.
	(grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
	before calling FS->LABEL.
2005-07-31 16:12:29 +00:00
okuji
141a288bb0 2005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-install.in (datadir): New variable.
        (libdir): Removed.
        (pkgdatadir): New variable.
        (pkglibdir): Removed.
2005-07-26 20:05:47 +00:00
okuji
0d5f8a5450 Sorry. I forgot to commit ChangeLog. 2005-07-26 20:02:40 +00:00
okuji
5f968e1e61 2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
Change the semantics of variable hooks. They now return	strings
	instead of error values.

	* util/i386/pc/grub-setup.c: Include grub/env.h.
	(setup): Use grub_device_set_root instead of grub_env_set.

	* kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
	grub_env_get instead of grub_device_set_root and
	grub_device_get_root, respectively.

	* kern/main.c (grub_env_write_root): New function.
	(grub_set_root_dev): Register grub_env_write_hook for "root". Use
	grub_env_set instead of grub_device_set_root.

	* kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
	many variables.
	(grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
	rather than calling ENV->WRITE_HOOK afterwards.
	(grub_env_get): Return the result of ENV->READ_HOOK rather than
	passing a pointer of a pointer.
	(grub_register_variable_hook): Change the types of "read_hook" and
	"write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
	respectively.
	Allocate the default empty string on the heap, because this string
	may be freed later.

	* kern/device.c: Include grub/env.h.
	(grub_device_set_root): Removed.
	(grub_device_get_root): Likewise.
	(grub_device_open): Use grub_env_get instead of
	grub_device_get_root.

	* include/grub/env.h (grub_env_read_hook_t): New type.
	(grub_env_write_hook_t): Likewise.
	(grub_env_var): Change the types of "read_hook" and "write_hook"
	to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
	(grub_register_variable_hook): Likewise.

	* include/grub/device.h (grub_device_set_root): Removed.
	(grub_device_set_root): Likewise.

	* fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
	make sure that DIRNAME terminates with '/', so that
	grub_fat_find_dir will fail if PATH is not a directory.

	* commands/ls.c (grub_ls_list_files): Remove the qualifier const
	from DIRNAME.
	Use the qualifier auto for print_files and print_files_long.
	If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
	as a regular file.
	Put a newline only if there is no error.
	(grub_cmd_ls): Remove grub_ls_print_files, because this is not
	used.
2005-07-20 20:30:46 +00:00
okuji
896f0afdb7 2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
* kern/partition.c (grub_partition_probe): Initialize PART to
	NULL. Otherwise, when no partition map is registered, this returns
	a garbage.
2005-07-19 22:30:36 +00:00
okuji
b28b81b256 2005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
* partmap/apple.c (apple_partition_map_iterate): Check if POS
	equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
	valid.
2005-07-18 22:21:41 +00:00
okuji
5f3607e09d 2005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
* commands/ls.c (grub_ls_list_disks): Print the filesystem
	information on each device, if it does not have partitions. Print
	"Device" instead of "Disk", because this function is not specific
	to disk devices.

	* normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
	static to ensure that it is put on the memory rather than a
	register.
2005-07-18 20:30:37 +00:00
okuji
502c87e80e 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
* commands/cat.c (GRUB_MOD_INIT): Use better documentation.
	(grub_cat_init): Likewise.
	* loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
	(options): Likewise.
	* commands/configfile.c (GRUB_MOD_INIT): Likewise.
	(grub_configfile_init): Likewise.
	* font/manager.c (GRUB_MOD_INIT): Likewise.
	* commands/help.c (GRUB_MOD_INIT): Likewise.
	(grub_help_init): Likewise.
	* normal/command.c (grub_command_init): Likewise.
	* loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
	* disk/loopback.c (grub_loop_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	* commands/ls.c (grub_ls_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	(options): Likewise.
	* commands/boot.c (grub_boot_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	* loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
	* commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	* commands/cmp.c (grub_cmp_init): Likewise.
	(GRUB_MOD_INIT): Likewise.

	* normal/arg.c: Use <> instead of "" to include header files.
	(SHORT_ARG_HELP): New macro.
	(SHORT_ARG_USAGE): Likewise.
	(help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
	of 'h' and 'u' for help and usage, respectively. Use more GNU-like
	descriptions.
	(find_short): Check if C is 'h' or 'u' explicitly.
	(grub_arg_show_help): Use space characters instead of tabs. Treat
	SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
	are shown with --help and --usage only if they are not used for
	the command itself.
	(parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
	'h' and 'u'.

	* include/grub/arg.h (struct grub_arg_option): Add the qualifier
	const into "longarg". Change the type of "shortarg" to int.
2005-07-17 20:26:07 +00:00
okuji
f806d18efd 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
* boot/i386/pc/boot.S (boot_drive_check): New label.

	* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
	macro.

	* util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
	which do not pass a boot drive correctly. Copied from GRUB Legacy.
2005-07-17 14:57:07 +00:00
okuji
e293232b8e 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
* kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
	When turning off Gate A20, skip the check and return immediately,
	because this is not fatal usually.
2005-07-17 14:17:55 +00:00
okuji
ebedfd0003 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
* conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
	be 0x7C00 instead of 0x8000.

	* boot/i386/pc/pxeboot.S: Rewritten.

	* kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
	EXT_C.
	(gate_a20_check_state): Read a byte from 0x108000. Invert the
	result.
2005-07-16 22:06:33 +00:00
okuji
654fc59fe4 2005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
* kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
	robustness. This routine now supports a BIOS call and System
	Control Port A to modify the gate A20.

	* include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
	Increased to 0x440.
2005-07-16 09:32:52 +00:00
hollisb
09f9923fbb 2005-07-12 Hollis Blanchard <hollis@penguinppc.org>
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
	device path and resulting ihandle.
	(grub_ofdisk_close): dprintf the ihandle being closed.
	(grub_ofdisk_read): dprintf function parameters.
	* kern/mm.c (grub_mm_init_region): Likewise.
	* loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
	(grub_linux_boot): dprintf the Linux entry point, initrd address and
	size, and boot arguments.
	(grub_rescue_cmd_linux): dprintf each ELF segment's address and size
	before loading into memory.
	(grub_rescue_cmd_initrd): dprintf the initrd's address and size
	before loading into memory.
2005-07-12 22:36:43 +00:00
okuji
7ef504d8e0 2005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
* kern/mm.c: Added much documentation.
	(GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
	8, set to 5 instead of 8.
2005-07-12 19:33:32 +00:00
okuji
e0f050c2e4 2005-07-10 Yoshinori Okuji <okuji@enbug.org>
* DISTLIST: Added util/i386/pc/grub-mkimage.c.

	* conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
	(grub_mkdevicemap_SOURCES): New variable.

	* util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
	lib/device.c of GRUB Legacy.
2005-07-10 07:57:49 +00:00
okuji
7224189a46 2005-07-10 Yoshinori Okuji <okuji@enbug.org>
* commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
	instead of PATH is NULL.
2005-07-10 07:02:48 +00:00
subdino
68c864ebb6 2005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
* commands/cmp.c (BUFFER_SIZE): New macro.
	(grub_cmd_cmp): Close the right file at the right time.  Compare
	only data just read.  Don't report files of different  size as
	identical.  Dynamically allocate buffers.  Move variable
	declarations at the beginning of function.
2005-07-09 16:29:02 +00:00
okuji
e6f3e61495 2005-07-09 Yoshinori Okuji <okuji@enbug.org>
* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
	  reverse.
2005-07-09 09:34:39 +00:00
subdino
f8f1559ae0 2004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
* normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
        when backspace is pressed at beginning of line.
2005-07-04 13:50:10 +00:00
okuji
39c9d41d2a 2005-07-03 Yoshinori Okuji <okuji@enbug.org>
* DISTLIST: Added genfslist.sh.

	* normal/main.c (fs_module_list): New variable.
	(autoload_fs_module): New function.
	(read_fs_list): Likewise.
	(grub_normal_execute): Call read_fs_list.

	* kern/fs.c (grub_fs_autoload_hook): New variable.
	(grub_fs_probe): Added support for auto-loading.

	* include/grub/normal.h (struct grub_fs_module_list): New struct.
	(grub_fs_module_list_t): New type.

	* include/grub/fs.h (grub_fs_autoload_hook_t): New type.
	(grub_fs_autoload_hook): New prototype.

	* genfslist.sh: New file.

	* genmk.rb: Added a rule to generate a filesystem list.
2005-07-03 18:06:56 +00:00
marco_g
121c1d832e 2005-06-30 Marco Gerards <metgerards@student.han.nl>
* configure.ac: Fix the test for cross-compiling.

	* genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'.  Don't
	define GRUB_UTIL anymore.

	* util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
	so this function works on other systems than just big endian.
	(load_modules): Likewise.
	(add_segments): Likewise.
2005-06-30 10:21:37 +00:00
hollisb
e75d76e157 2005-06-23 Hollis Blanchard <hollis@penguinppc.org>
* kern/misc.c (grub_vsprintf): Add `longfmt'.  If format string
	contains `l' modifier, get a long from va_arg().
2005-06-23 23:13:57 +00:00
okuji
50b5a0a793 2005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
* kern/mm.c (grub_free): If the next free block which is being
        merged is the first free block, set the first block to the block
        being freed.
        Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
2005-06-23 08:12:19 +00:00
hollisb
89371b203b 2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c (cmain): Initialize
	`grub_ieee1275_chosen'.
2005-06-21 03:12:15 +00:00
hollisb
168d6e5810 2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c	(module_info): Remove definition.
	(grub_ieee1275_chosen): New variable.
	(cmain): Initialize and use `grub_ieee1275_chosen' instead of
	`chosen'.
	* boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
	Rename first argument to `phandle' for consistency.
	(grub_ieee1275_get_property_length): Likewise.
	(grub_ieee1275_next_property): Likewise.  Change type of first argument
	to grub_ieee1275_phandle_t.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
	Move export next to declaration.
	(grub_ieee1275_chosen): New variable.
	* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
	Correct cosmetic typo.
	* kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
	`grub_ieee1275_chosen'.
	* kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
	* loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
	(grub_rescue_cmd_linux): Set `initrd_addr' to 0.
	* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
	`grub_ieee1275_chosen'.
2005-06-21 02:33:52 +00:00
hollisb
ca5baa3fc2 2005-05-16 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
	/chosen/bootargs.
	* kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
	/chosen/bootargs as "variable=value" pairs.
2005-05-17 02:25:19 +00:00
hollisb
708b345f74 2005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
* include/grub/misc.h (grub_dprintf): New macro.
	(grub_real_dprintf): New prototype.
	(grub_strword): Likewise.
	(grub_iswordseparator): Likewise.
	* kern/misc.c (grub_real_dprintf): New function.
	(grub_strword): Likewise.
	(grub_iswordseparator): Likewise.
2005-05-09 01:47:37 +00:00
hollisb
f4c5e67ca4 2005-04-30 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
	(roundup): Remove macro.
	(grub_ieee1275_flags): Make static.
	(grub_ieee1275_realmode): Remove.
	(grub_ieee1275_test_flag): New function.
	(grub_ieee1275_set_flag): Likewise.
	(find_options): Rename to `grub_ieee1275_find_options'; update
	callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
	GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
	(cmain): New prototype.
	(cmain): Use `grub_ieee1275_set_flag' instead of accessing
	`grub_ieee1275_flags' directly.
	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
	machine/biosdisk.h.
	* disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
	Don't include grub/machine/init.h.
	(grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
	Remove prototype.
	(grub_ieee1275_realmode): Likewise.
	(grub_ieee1275_flag): New enum.
	(grub_ieee1275_test_flag): New prototype.
	(grub_ieee1275_set_flag): New prototype.
	* include/grub/powerpc/ieee1275/init.h: Remove file.
	* include/grub/powerpc/ieee1275/ofdisk.h: New file.
	* kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
	Include grub/machine/console.h.  Include grub/machine/ofdisk.h.
	(grub_machine_fini): Don't call `grub_ieee1275_release'.  Remove
	comment.
	* kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
	`grub_ieee1275_test_flag'.
	(grub_ieee1275_encode_devname): Likewise.
2005-05-01 03:45:36 +00:00
hollisb
ed16607e13 2005-04-21 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_encode_devname): New prototype.
	(grub_ieee1275_get_filename): Likewise.
	* kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
	function.
	(grub_set_prefix): Likewise.
	(grub_machine_init): Call grub_set_prefix.
	* kern/powerpc/ieee1275/openfw.c: Fix typos.
	(grub_parse_type): New enum.
	(grub_ieee1275_get_devargs): New function.
	(grub_ieee1275_get_devname): Likewise.
	(grub_ieee1275_parse_args): Likewise.
	(grub_ieee1275_get_filename): Likewise.
	(grub_ieee1275_encode_devname): Likewise.
2005-04-22 02:32:37 +00:00
marco_g
be36992037 2005-03-30 Marco Gerards <metgerards@student.han.nl>
* kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
	`grub_loader_unset'.
2005-03-30 18:59:00 +00:00
hollisb
a5ce3a4a04 2005-03-26 Hollis Blanchard <hollis@penguinppc.org>
* commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
	instead of grub_ieee1275_interpret.
	(grub_halt_init): New function.
	(grub_halt_fini): Likewise.
	(GRUB_MOD_INIT): Correct message grammar.
	* commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
	instead of grub_ieee1275_interpret.
	(grub_reboot_init): New function.
	(grub_reboot_fini): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
	commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
	util/i386/pc/misc.c with commands/ieee1275/halt.c,
	commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
	function.
	* include/grub/powerpc/ieee1275/console.h (grub_console_fini):
	Add prototype.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
	prototype.
	(grub_halt): Likewise.
	* include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
	(cmain): Remove __attribute__((unused)).
	* kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
	(grub_heap_len): Likewise.
	(grub_machine_fini): New function.
	* kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
	(grub_halt): Likewise.
	* term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
	function.
	* util/powerpc/ieee1275/misc.c: New file.
2005-03-26 17:34:50 +00:00
okuji
0058f7712f 2005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: New file.
  * gendistlist.sh: Likewise.

  * Makefile.in (COMMON_DISTFILES): Removed.
  (BOOT_DISTFILES): Likewise.
  (CONF_DISTFILES): Likewise.
  (DISK_DISTFILES): Likewise.
  (FS_DISTFILES): Likewise.
  (INCLUDE_DISTFILES): Likewise.
  (KERN_DISTFILES): Likewise.
  (LOADER_DISTFILES): Likewise.
  (TERM_DISTFILES): Likewise.
  (UTIL_DISTFILES): Likewise.
  (DISTFILES): Likewise.
  (uninstall): Uninstall files in $(pkgdata_DATA).
  (DISTLIST): New target.
  (distdir): Use the contents of the file DISTLIST to get a list of
  distributed files.
2005-03-19 17:49:19 +00:00
okuji
46b3b8a540 2005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
* fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
  descriptor. This is ported from GRUB Legacy.

  * gencmdlist.sh: Added an extra semicolon to make it work with
  old sed versions. Reported by Robert Bihlmeyer
  <robbe@orcus.priv.at>.
2005-03-18 18:16:26 +00:00
okuji
5822ff87a2 2005-03-08 Yoshinori Okuji <okuji@enbug.org>
Automatic loading of commands is supported.

  * normal/main.c (read_command_list): New function.
  (grub_normal_execute): Call read_command_list.

  * normal/command.c (grub_register_command): Return zero or CMD.
  Allocate CMD->NAME from the heap.
  Initialize CMD->MODULE_NAME to zero.
  Find the same name as well. If the same command is found and it is
  a dummy command, overwrite members. If it is not a dummy command,
  return zero.
  (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
  (grub_command_find): If a dummy command is found, load a module
  and retry to find a command only once.

  * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
  make sure that each command is loaded.

  * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
  macro.
  (struct grub_command): Remove const from the member `name'.
  Add a new member `module_name'.
  (grub_register_command): Return grub_command_t.

  * commands/help.c (grub_cmd_help): Call grub_command_find to make
  sure that each command is loaded.

  * genmk.rb (PModule::rule): Specify a module name without the
  suffix ".mod" to gencmdlist.sh.
2005-03-08 01:01:06 +00:00
okuji
7b1f4b5715 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
* gencmdlist.sh: New file.

  * genmk.rb (PModule::rule): Generate a rule for a command list.
  Clean command.lst.
  Generate command.lst from $(COMMANDFILES).

  * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
  (DATA): Added $(pkgdata_DATA).
  (install-local): Install files in $(pkgdata_DATA).
2005-03-02 21:52:38 +00:00
okuji
062aaf39bc 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
* term/i386/pc/vga.c (debug_command): Removed.
  (GRUB_MOD_INIT): Do not register the command "debug".

  From Hollis Blanchard:
  * commands/configfile.c: New file.
  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  commands/configfile.c.
  (pkgdata_MODULES): Added configfile.mod.
  (configfile_mod_SOURCES): New variable.
  (configfile_mod_CFLAGS): Likewise.
  * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
  commands/configfile.c.
  (pkgdata_MODULES): Added configfile.mod.
  (configfile_mod_SOURCES): New variable.
  (configfile_mod_CFLAGS): Likewise.
  * util/grub-emu.c (main): Call grub_configfile_init and
  grub_configfile_fini.
  * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
  prototype.
  [GRUB_UTIL] (grub_configfile_fini): Likewise.
2005-03-02 20:12:46 +00:00
okuji
cee01aa683 2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
* normal/arg.c (grub_arg_show_help): Do not show the bug report
  address.

  * commands/help.c (grub_cmd_help): Do not print newlines after
  the last command in print_command_help.
2005-02-27 22:19:55 +00:00
okuji
93f3a1d868 2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
* commands/default.h: New file.
  * commands/timeout.h: Likewise.
  * normal/context.c: Likewise.

  * util/misc.c: Do not include sys/times.h.
  Include sys/time.h and grub/machine/time.h.
  (grub_get_rtc): Rewritten with gettimeofday.

  * util/grub-emu.c (main): Call grub_default_init and
  grub_timeout_init before grub_normal_init, and call
  grub_timeout_fini and grub_default_fini after grub_main.

  * util/console.c (grub_ncurses_checkkey): Return the read
  character or -1.

  * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
  timeouts.

  * normal/main.c (read_config_file): Push MENU. If this fails,
  print an error and wait for a user input.
  Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
  If a menu is empty or an error occurs, pop MENU.
  (grub_normal_execute): Pop and free MENU after grub_menu_run
  returns.

  * kern/loader.c (grub_loader_boot): Call grub_machine_fini.

  * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
  include time.h.
  [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
  without GRUB_UTIL.
  * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
  time.h.
  [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
  without GRUB_UTIL.

  * include/grub/normal.h (struct grub_menu_list): New struct.
  (grub_menu_list_t): New type.
  (struct grub_context): New struct.
  (grub_context_t): New type.
  (grub_register_command): Got rid of EXPORT_FUNC.
  (grub_unregister_command): Likewise.
  (grub_context_get): New prototype.
  (grub_context_get_current_menu): Likewise.
  (grub_context_push_menu): Likewise.
  (grub_context_pop_menu): Likewise.
  [GRUB_UTIL] (grub_default_init): Likewise.
  [GRUB_UTIL] (grub_default_fini): Likewise.
  [GRUB_UTIL] (grub_timeout_init): Likewise.
  [GRUB_UTIL] (grub_timeout_fini): Likewise.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
  commands/timeout.c and normal/context.c.
  (pkgdata_MODULES): Added default.mod and timeout.mod.
  (normal_mod_SOURCES): Added normal/context.c.
  (default_mod_SOURCES): New variable.
  (default_mod_CFLAGS): Likewise.
  (timeout_mod_SOURCES): Likewise.
  (timeout_mod_CFLAGS): Likewise.
  * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
  conf/i386-pc.rmk.
  (pkgdata_MODULES): Added default.mod and timeout.mod.
  (normal_mod_SOURCES): Added normal/context.c.
  (default_mod_SOURCES): New variable.
  (default_mod_CFLAGS): Likewise.
  (timeout_mod_SOURCES): Likewise.
  (timeout_mod_CFLAGS): Likewise.

  * Makefile.in (all-local): Added $(MKFILES).
2005-02-27 21:19:06 +00:00
marco_g
4ed2e1dd1c 2005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `sun.mod'.
	(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`partmap/sun.c'.
	(pkgdata_MODULES): Add `sun.mod'.
	(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
	* include/grub/partition.h (grub_sun_partition_map_init): New
	prototype.
	(grub_sun_partition_map_fini): Likewise.
	* partmap/sun.c: New file.
	* util/grub-emu.c (main): Initialize and de-initialize the sun
	partitionmap support.
2005-02-21 22:00:32 +00:00
okuji
4d4e372ebd 2005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
This implements an Emacs-like menu entry editor.

  * normal/menu_entry.c: New file.

  * util/console.c (grub_ncurses_putchar): Translate some Unicode
  characters to ASCII.
  (saved_char): New variable.
  (grub_ncurses_checkkey): Rewritten completely.
  (grub_ncurses_getkey): Likewise.
  (grub_ncurses_init): Call raw instead of cbreak.

  * normal/menu.c (print_entry): Do not put a space.
  (init_page): Renamed to ...
  (grub_menu_init_page): ... this. All callers changed.
  (edit_menu_entry): Removed.
  (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.

  * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.

  * kern/misc.c (grub_vprintf): Call grub_refresh.

  * normal/menu.c (DISP_LEFT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
  * normal/menu.c (DISP_UP): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
  * normal/menu.c (DISP_RIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
  * normal/menu.c (DISP_DOWN): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
  * normal/menu.c (DISP_HLINE): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
  * normal/menu.c (DISP_VLINE): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
  * normal/menu.c (DISP_UL): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
  * normal/menu.c (DISP_UR): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
  * normal/menu.c (DISP_LL): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
  * normal/menu.c (DISP_LR): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
  * normal/menu.c (TERM_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
  * normal/menu.c (TERM_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
  * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
  * normal/menu.c (TERM_MARGIN): Renamed to ...
  * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
  * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
  * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
  * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
  * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
  * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
  * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
  * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
  * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
  * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
  * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
  * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
  * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
  * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
  * normal/menu.c (TERM_CURSOR_X): Renamed to ...
  * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
  All callers changed.

  * include/grub/normal.h: New prototype.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  normal/menu_entry.c.
  (normal_mod_SOURCES): Likewise.
  * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
  (normal_mod_SOURCES): Likewise.

2005-02-15  Yoshinori K. Okuji  <okuji@enbug.org>

  * include/grub/normal.h (grub_halt_init): New prototype.
  (grub_halt_fini): Likewise.
  (grub_reboot_init): Likewise.
  (grub_reboot_fini): Likewise.

  * util/grub-emu.c: Include signal.h.
  (main_env): New global variable.
  (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
  catch C-c.
  (grub_machine_fini): New function.
  (main): Call grub_halt_init and grub_reboot_init before
  grub_main, and grub_reboot_fini and grub_halt_fini after it.
  Call setjmp with MAIN_ENV to go back afterwards.
  Call grub_machine_fini right before return.

  * include/grub/util/misc.h: Include setjmp.h.
  (main_env): New prototype.

  * include/grub/kernel.h (grub_machine_fini): New prototype.
  * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
  * include/grub/i386/pc/console.h (grub_console_fini): Likewise.

  * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
  * kern/i386/pc/init.c (grub_machine_fini): Likewise.
  * term/i386/pc/console.c (grub_console_fini): Likewise.

  * util/i386/pc/misc.c: New file.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  util/i386/pc/misc.c, commands/i386/pc/halt.c and
  commands/i386/pc/reboot.c.
2005-02-19 20:56:07 +00:00
okuji
e6b92c8afb 2005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
* include/grub/normal.h (grub_halt_init): New prototype.
  (grub_halt_fini): Likewise.
  (grub_reboot_init): Likewise.
  (grub_reboot_fini): Likewise.

  * util/grub-emu.c: Include signal.h.
  (main_env): New global variable.
  (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
  catch C-c.
  (grub_machine_fini): New function.
  (main): Call grub_halt_init and grub_reboot_init before
  grub_main, and grub_reboot_fini and grub_halt_fini after it.
  Call setjmp with MAIN_ENV to go back afterwards.
  Call grub_machine_fini right before return.

  * include/grub/util/misc.h: Include setjmp.h.
  (main_env): New prototype.

  * include/grub/kernel.h (grub_machine_fini): New prototype.
  * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
  * include/grub/i386/pc/console.h (grub_console_fini): Likewise.

  * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
  * kern/i386/pc/init.c (grub_machine_fini): Likewise.
  * term/i386/pc/console.c (grub_console_fini): Likewise.

  * util/i386/pc/misc.c: New file.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  util/i386/pc/misc.c, commands/i386/pc/halt.c and
  commands/i386/pc/reboot.c.
2005-02-15 00:07:01 +00:00
marco_g
c642636f8a 2005-02-14 Guillem Jover <guillem@hadrons.org>
* include/grub/dl.h (grub_dl_check_header): New prototype.
	(grub_arch_dl_check_header): Change return type to grub_err_t,
	remove size parameter and export function.  Update all callers.
	* kern/dl.c (grub_dl_check_header): New function.
	(grub_dl_load_core): Use `grub_dl_check_header' instead of
	`grub_arch_dl_check_header'.  Check ELF type.  Check if sections
	are inside the core.
	* kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
	independent ELF header checks.
	* kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
	* loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
	`grub_dl_check_header' instead of explicit checks.  Check for the
	ELF type.
	* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
	`grub_dl_check_header' instead of explicit checks.  Remove arch
	specific ELF header checks.
2005-02-14 18:41:33 +00:00
hollisb
5eabe94bd9 2005-02-13 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
	* include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
2005-02-13 18:54:57 +00:00
hollisb
1b14a681e4 2005-02-12 Hollis Blanchard <hollis@penguinppc.org>
* kern/partition.c (grub_partition_probe): Clear `grub_errno' and
	return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
	(part_map_iterate): Clear `grub_errno' and return 0 if
	`partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
	* partmap/amiga.c (amiga_partition_map_iterate): Return
	GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
	* partmap/apple.c (apple_partition_map_iterate): Likewise.
2005-02-13 01:40:28 +00:00
marco_g
aca108aae6 2005-02-01 Guillem Jover <guillem@hadrons.org>
* loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
	help info.
2005-02-01 21:53:35 +00:00
marco_g
c9f9c5564d 2005-01-31 Marco Gerards <metgerards@student.han.nl>
* include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
	Removed prototype.
	(grub_rescue_cmd_linux): New prototype.
	(grub_rescue_cmd_initrd): Likewise.
	* powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
	`bi_rec'.
	(grub_linux_release_mem): Release the memory for the initrd.
	(grub_load_linux): Renamed from this...
	(grub_rescue_cmd_linux): ...To this.  Changed all callers.
	Changed `entry' not to be static.  Loop over memory regions to
	find another one when the default fails.
	(grub_rescue_cmd_initrd): New function.
	(grub_linux_init): Remove function.
	(grub_linux_fini): Likewise.
	(GRUB_MOD_INIT): Register `initrd'.
	(GRUB_MOD_FINI): Unregister `initrd'.
	* powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
	Function removed.
	(grub_linux_normal_fini): Likewise.
	(GRUB_MOD_INIT): Register `initrd'.
	(GRUB_MOD_FINI): Unregister `initrd'.
2005-01-31 21:44:35 +00:00
marco_g
990cf3aa8a 2005-01-31 Marco Gerards <metgerards@student.han.nl>
* commands/help.c: New file.
	* normal/arg.c (show_help): Renamed to...
	(grub_arg_show_help): ... this.
	* commands/i386/pc/halt.c: New file.
	* commands/i386/pc/reboot.c: Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
	(pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
	(help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
	(reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
	variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`commands/help.c'.
	(pkgdata_MODULES): Add `help.mod'.
	(help_mod_SOURCES, help_mod_CFLAGS): New variables.
	* grub/i386/pc/init.h (grub_reboot): New prototype.
	(grub_halt): Likewise.
	* include/grub/normal.h (grub_arg_show_help): New prototype.
	(grub_help_init): Likewise.
	(grub_help_fini): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize the help
	command.

	* normal/cmdline.c (grub_cmdline_get): Doc fix.

	* normal/command.c (grub_command_init): Fixed the description of
	the `set' and `unset' commands.
2005-01-31 21:40:25 +00:00
marco_g
0f79cdc1db 2005-01-30 Marco Gerards <metgerards@student.han.nl>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
	function.
	* commands/ieee1275/halt.c: New file.
	* commands/ieee1275/reboot.c: Likewise.
	* commands/ieee1275/suspend.c (grub_cmd_suspend): Use
	`__attribute__ ((unused))'.  Some GCS related fixed.
	(grub_suspend_init) [GRUB_UTIL]: Function removed.
	(grub_suspend_fini): Likewise.
	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
	and `halt.mod'.
	(reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
	(halt_mod_CFLAGS): New variables.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_interpret): New prototype.
2005-01-31 21:28:34 +00:00
okuji
1ab09cc70f 2005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
* include/grub/misc.h (memmove): New prototype.
  (memcpy): Likewise.
2005-01-29 22:01:54 +00:00
hollisb
8b8cbdb2ff 2005-01-22 Hollis Blanchard <hollis@penguinppc.org>
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
	`devpath' to 0.  Use `name' instead of `devpath' with `grub_strndup'.
2005-01-22 16:03:15 +00:00
marco_g
e3741a2734 2005-01-22 Marco Gerards <metgerards@student.han.nl>
* kern/misc.c (grub_strndup): Function rewritten.
2005-01-22 15:58:18 +00:00
marco_g
776bd7808d 2005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
* normal/menu.c (TERM_WIDTH): Macro redefined.
	(TERM_TOP_BORDER_Y): Likewise.
	(draw_border): Replaced while-loop by a for-loop.  Make the number
	of lines consistent with the number of lines displayed in
	print_entries.  Added a margin below the rectangle.
	(print_entry): Make the entry fit in the rectangle.
	(print_entries): Display the scroll arrows next to the right
	border.
2005-01-22 13:29:18 +00:00
marco_g
78026bce9c 2005-01-21 Marco Gerards <metgerards@student.han.nl>
* fs/minix.c (grub_minix_find_file): Reserve more space for
	`fpath' so the \0 can be stored.  Use `grub_strcpy' instead of
	`grub_strncpy' to copy `path' into it.
2005-01-21 22:34:18 +00:00
marco_g
67bbaf0f38 2005-01-21 Marco Gerards <metgerards@student.han.nl>
Add the loopback device, a device via which files can be accessed
	as devices.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
	(pkgdata_MODULES): Add loopback.mod.
	(loopback_mod_SOURCES): New variable.
	(loopback_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`disk/loopback.c'.
	(pkgdata_MODULES): Add loopback.mod.
	(loopback_mod_SOURCES): New variable.
	(loopback_mod_CFLAGS): Likewise.
	* disk/loopback.c: new file.
	* include/grub/normal.h (grub_loop_init): New prototype.
	(grub_loop_fini): New prototype.
	* util/grub-emu.c (main): Initialize and de-initialize loopback
	support.
	* include/grub/disk.h (grub_disk_dev_id): Add
	`GRUB_DISK_DEVICE_LOOPBACK_ID'.
2005-01-21 21:32:03 +00:00
hollisb
6f1c18bd82 2005-01-20 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
	function.
	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
	(suspend_mod_SOURCES): New variable.
	(suspend_mod_CFLAGS): Likewise.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
	New prototype.
	* commands/ieee1275/suspend.c: New file.
2005-01-21 02:45:03 +00:00
marco_g
b38551dabe 2005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
* include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
	((unused))' to `__attribute__ ((used))'.
	(GRUB_MOD_FINI): Likewise.
	* kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
	* genmk.rb (PModule): Assign space to common symbols when linking
	modules.
2005-01-20 17:33:09 +00:00
marco_g
777aff3957 2005-01-20 Marco Gerards <metgerards@student.han.nl>
* include/grub/mm.h (grub_mm_init_region): Change the type of the
	`unsigned' arguments to `grub_size_t'.
	(grub_malloc): Likewise.
	(grub_realloc): Likewise.
	(grub_memalign): Likewise.
	* kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
	* kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
	* util/misc.c (grub_malloc): Likewise.
	(grub_realloc): Likewise.
	* kern/mm.c (get_header_from_pointer): Change the casts to
	`unsigned' into a cast to `grub_size_t'.

	* fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
	point to `currnode' when `currnode' is changed.

	* util/grub-emu.c (main): Initialize `progname'.  Reported by Nico
	Schottelius <nico-linux@schottelius.org>.
2005-01-20 17:25:39 +00:00
hollisb
d0ff18e182 2005-01-09 Hollis Blanchard <hollis@penguinppc.org>
* util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
	(note_path): Remove variable.
	(GRUB_IEEE1275_NOTE_NAME): New macro.
	(GRUB_IEEE1275_NOTE_TYPE): Likewise.
	(grub_ieee1275_note_hdr): New structure.
	(grub_ieee1275_note_desc): Likewise.
	(grub_ieee1275_note): Likewise.
	(load_note): Remove `dir' argument.  All callers updated.  Remove
	`note_img' and `path'.  Do not load a file from `note_path'.
	Initialize a struct grub_ieee1275_note and write that to `out'.
	Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
2005-01-09 18:11:05 +00:00
marco_g
4ca7004c3e 2005-01-05 Marco Gerards <metgerards@student.han.nl>
* util/misc.c (grub_util_read_image): Revert last change.  It
	called `grub_util_read_at', which seeks from the beginning of the
	file.
2005-01-05 13:33:16 +00:00
marco_g
0b412211b3 2005-01-04 Hollis Blanchard <hollis@penguinppc.org>
* TODO: Add note about endianness in grub-mkimage.
	* boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
	section.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
	(grub_mkimage_SOURCES): New target.
	* include/grub/kernel.h (grub_start_addr): Remove variable.
	(grub_end_addr): Likewise.
	(grub_total_module_size): Likewise.
	(grub_kernel_image_size): Likewise.
	(GRUB_MODULE_MAGIC): New constant.
	(grub_module_info): New structure.
	(grub_arch_modules_addr): New prototype.
	(grub_get_end_addr): Remove prototype.
	* include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
	* include/grub/powerpc/ieee1275/kernel.h: New file.
	* include/grub/util/misc.h (grub_util_get_fp_size): New
	prototype.
	(grub_util_read_at): Likewise.
	(grub_util_write_image_at): Likewise.
	* kern/main.c (grub_get_end_addr): Remove function.
	(grub_load_modules): Call grub_arch_modules_addr instead of using
	grub_end_addr.  Look for a grub_module_info struct in memory.  Use
	the grub_module_info fields instead of calling grub_get_end_addr
	as loop conditions.  Move grub_add_unused_region code here.
	(grub_add_unused_region): Remove function.
	* kern/i386/pc/init.c: Include grub/cache.h.
	(grub_machine_init): Remove call to grub_get_end_addr.  Remove
	one call to add_mem_region.
	(grub_arch_modules_addr): New function.
	* kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
	(grub_total_module_size): Likewise.
	Include grub/machine/kernel.h.
	(grub_arch_modules_addr): New function.
	* util/grub-emu.c (grub_end_addr): Remove variable.
	(grub_total_module_size): Likewise.
	(grub_arch_modules_addr): New function.
	* util/misc.c: Include unistd.h.
	(grub_util_get_fp_size): New function.
	(grub_util_read_at): Likewise.
	(grub_util_write_image_at): Likewise.
	(grub_util_read_image): Call grub_util_read_at.
	(grub_util_write_image): Call grub_util_write_image_at.
	* util/i386/pc/grub-mkimage.c (generate_image): Allocate
	additional memory in kernel_img for a struct grub_module_info.
	Fill in that grub_module_info.
	* util/powerpc/ieee1275/grub-mkimage.c: New file.
2005-01-04 14:01:45 +00:00
hollisb
458786f8fc 2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
	New function.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_milliseconds): New prototype.
	* include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
	Change to 1000.
	* kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
	grub_ieee1275_milliseconds.
2005-01-03 21:48:45 +00:00
hollisb
ac507d1ba2 2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
	variable.
	(find_options): New function.
	(cmain): Call find_options.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_realmode): New extern variable.
	* kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
	grub_map if grub_ieee1275_realmode is false.
2005-01-03 17:44:25 +00:00
marco_g
6b8fd1c428 2004-12-29 Marco Gerards <metgerards@student.han.nl>
* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
	lines are inserted and make it work like readline.  Reported by
	Vincent Pelletier <subdino2004@yahoo.fr>.
2004-12-29 22:43:48 +00:00
marco_g
8514a1e003 2004-12-28 Marco Gerards <metgerards@student.han.nl>
* boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
	`kern/powerpc/cache.S'.
2004-12-28 22:43:37 +00:00
marco_g
924b6140a1 2004-12-27 Marco Gerards <metgerards@student.han.nl>
* genmk.rb: Handle the `Program' class in the main loop.  Written
	by Johan Rydberg <jrydberg@gnu.org>.
	(Program): New class.
	(programs): New variable.
	* boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
	instead of "grub/machine/ieee1275.h".  Include <grub/kernel.h>
	instead of "grub/kernel.h".  Include <grub/machine/init.h>.
	(help_arch): Function removed.
	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
	`powerpc/libgcc.h' and `loader.h'.
	(pkgdata_PROGRAMS): New variable.
	(sbin_UTILITIES): Variable removed.
	(grub_emu_SOURCES): Added kern/powerpc/cache.S.
	(grubof_SOURCES): Variable re-defined so it only includes the
	core functionality.
	(grubof_CFLAGS): Remove `-DGRUBOF'.
	(pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
	(fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
	(ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
	(minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
	(hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
	(iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
	(_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
	(normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
	(hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
	(boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
	(ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
	(cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
	(font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
	(apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
	(pc_mod_CFLAGS): New variables.
	* disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
	(grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
	* include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
	* include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
	Moved from here...
	* include/grub/i386/pc/init.h (grub_os_area_addr)
	(rub_os_area_size): ... to here.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_entry_fn): Export symbol.
	* include/grub/powerpc/ieee1275/init.h: New file.
	* include/grub/powerpc/libgcc.h: Likewise.
	* include/grub/cache.h: Likewise.
	* kern/powerpc/cache.S: Likewise.  Written by Hollis Blanchard
	<hollis@penguinppc.org>.
	* kern/dl.c: Include <grub/cache.h>.
	(grub_dl_flush_cache): New function.
	(grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
	for this module.
	* kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
	(grub_console_init): Removed prototypes.
	(grub_machine_init): Don't initialize the modules anymore.
	* kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
	static.
	* include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
	Macro undef removed.
	(GRUB_HOST_WORDS_BIGENDIAN): New macro.
	* kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
	relocation `R_PPC_REL32'.  Return an error when the relocation is
	unknown.
	* Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
	* kern/i386/pc/init.c (grub_arch_sync_caches): New function.
	* util/misc.c (grub_arch_sync_caches): Likewise.
2004-12-27 13:46:20 +00:00
marco_g
e4b47e0cd5 2004-12-19 Marco Gerards <metgerards@student.han.nl>
* conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
	`symlist.c', add `grubof_symlist.c'.
	(symlist.c): Variable removed.
	(grubof_HEADERS): Variable added.
	(grubof_symlist.c): New target.
	(kernel_syms.lst): Use `grubof_HEADERS' instead of
	`kernel_img_HEADERS'.
	(grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
	* kern/powerpc/dl.c: New file.
	* kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
	Function removed.
	(grub_arch_dl_relocate_symbols): Likewise.
	(grub_register_exported_symbols): Likewise.
2004-12-19 20:35:06 +00:00
marco_g
4ceb3636de 2004-12-13 Marco Gerards <metgerards@student.han.nl>
* fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
	(grub_ext2_dir): Likewise.  Don't return in case of an error, jump
	to fail instead.  Reported by Vincent Pelletier
	<subdino2004@yahoo.fr>.

	* fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
	it is not allocated.  Reported by Vincent Pelletier
	<subdino2004@yahoo.fr>.

	* normal/cmdline.c (grub_tab_complete): Add a blank line to the
	output so the output looks better.
2004-12-13 17:26:17 +00:00
marco_g
3f1578fe4a 2004-12-04 Marco Gerards <metgerards@student.han.nl>
Modulize the partition map support and add support for the amiga
	partition map.

	* commands/ls.c: Include <grub/partition.h> instead of
	<grub/machine/partition.h>.
	* kern/disk.c: Likewise.
	* kern/rescue.c: Likewise.
	* loader/i386/pc/chainloader.c: Likewise.
	* normal/cmdline.c: Likewise.
	* kern/powerpc/ieee1275/init.c: Likewise.
	(grub_machine_init): Call `grub_pc_partition_map_init',
	`grub_amiga_partition_map_init' and
	`grub_apple_partition_map_init'.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Remove
	`disk/i386/pc/partition.c'.  Add `kern/partition.c'.
	(kernel_img_HEADERS): Remove `machine/partition.h'.  Add
	`partition.h' and `pc_partition.h'.
	(grub_setup_SOURCES): Remove
	`disk/i386/pc/partition.c'.  Add `kern/partition.c',
	`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
	(amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
	(apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
	`disk/powerpc/ieee1275/partition.c'.  Add `kern/partition.c',
	`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
	(grubof_SOURCES): Likewise.
	* disk/i386/pc/partition.c: File removed.
	* disk/powerpc/ieee1275/partition.c: Likewise.
	* include/grub/powerpc/ieee1275/partition.h: Likewise.
	* include/grub/i386/pc/partition.h: Likewise.
	* kern/partition.c: New file.
	* partmap/amiga.c: Likewise.
	* partmap/apple.c: Likewise.
	* partmap/pc.c: Likewise.
	* include/grub/partition.h: Likewise..
	* include/grub/pc_partition.h: Likewise.
	* util/grub-emu.c: Include <grub/partition.h> instead of
	<grub/machine/partition.h>.
	(main): Call `grub_pc_partition_map_init',
	`grub_amiga_partition_map_init' and
	`grub_apple_partition_map_init' and deinitialize afterwards.
	* util/i386/pc/biosdisk.c: Include `#include
	<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
	`<grub/machine/partition.h>'.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/i386/pc/biosdisk.c: Likewise.
	(grub_util_biosdisk_get_grub_dev): Only access the PC specific
	partition information in case of a PC partition.
	* util/i386/pc/grub-setup.c: Include `#include
	<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
	`<grub/machine/partition.h>'.
	(setup): Only access the PC specific partition information in case
	of a PC partition.
2004-12-04 18:45:46 +00:00
marco_g
0ef4ced959 2004-11-17 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
	(grub_longjmp): Likewise.
	* include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
	20.
	* normal/powerpc/setjmp.S: New file.
	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
	`normal/powerpc/setjmp.S'.
	(grubof_CFLAGS): Add `-DGRUBOF'.
	* include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
	[GRUB_UTIL && !GRUBOF].
2004-11-16 23:34:45 +00:00
marco_g
19950e29d7 2004-11-16 Marco Gerards <metgerards@student.han.nl>
* kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
	property named `name'.  Correctly handle the error returned by
	`grub_ieee1275_finddevice' if a device can not be opened.
2004-11-16 21:59:11 +00:00
hollisb
a2fea4276a 2004-11-02 Hollis Blanchard <hollis@penguinppc.org>
* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
	`actual' for negativity.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
	kern/fshelp.c.
2004-11-03 03:21:14 +00:00
marco_g
41ea0ea3fe 2004-11-01 Marco Gerards <metgerards@student.han.nl>
* term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
	(PAGE_OFFSET): New macro.
	(CRTC_ADDR_PORT): Likewise.
	(CRTC_DATA_PORT): Likewise.
	(START_ADDR_HIGH_REGISTER): Likewise.
	(START_ADDR_LOW_REGISTER): Likewise.
	(GRAPHICS_ADDR_PORT): Likewise.
	(GRAPHICS_DATA_PORT): Likewise.
	(READ_MAP_REGISTER): Likewise.
	(INPUT_STATUS1_REGISTER): Likewise.
	(INPUT_STATUS1_VERTR_BIT): Likewise.
	(page): New variable.
	(wait_vretrace): New function.
	(set_read_map): Likewise.
	(set_start_address): Likewise.
	(grub_vga_init): Use mode 0x10 instead of mode 0x12.  Switch to
	the right page.
	(check_vga_mem): Take the page into account.
	(write_char): Likewise.
	(write_cursor): Likewise.
	(scroll_up): Likewise.  Copy the page to the page that is not
	shown and switch between both pages.
	(grub_vga_putchar): Fix off by one error.
	(grub_vga_cls): Wait for the vertical retrace.  Take the page into
	account.
2004-11-01 16:19:30 +00:00
marco_g
ad0bd20b79 2004-11-01 Marco Gerards <metgerards@student.han.nl>
Add support for iso9660 (including rockridge).

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
	(iso9660_mod_SOURCES): New variable.
	(iso9660_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
	* include/grub/fs.h (grub_iso9660_init): New prototype.
	* util/grub-emu.c (main): Call `grub_iso9660_init'.
	* fs/iso9660.c: New file.

	* include/grub/misc.h (grub_strncat): New prototype.
	* kern/misc.c (grub_strncat): New function.

	* fs/hfs.c (grub_hfs_mount): Translate the error
	`GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
	* fs/jfs.c (grub_jfs_mount): Likewise.
	* fs/ufs.c (grub_ufs_mount): Likewise.
2004-11-01 16:14:16 +00:00
hollisb
a5477a5930 2004-10-28 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
	which initialized BAT registers.
	* boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
	grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
	Move from here...
	* include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
	grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
	... to here.
	* kern/powerpc/ieee1275/openfw.c (grub_map): New function.
	(grub_mapclaim): Likewise.
	* loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
	grub_mapclaim instead of grub_ieee1275_claim.  Assign linux_addr by
	hand.
2004-10-29 02:45:14 +00:00
hollisb
9304c1f804 2004-10-19 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
    (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
    -ffreestanding and -msoft-float.
2004-10-20 01:08:02 +00:00
hollisb
86f4ae2580 2004-10-15 Hollis Blanchard <hollis@penguinppc.org>
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
	append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
	set in grub_ieee1275_flags.
2004-10-15 20:04:28 +00:00
hollisb
3891222854 2004-10-13 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
        prototype.
        * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
        grub_console_init first.
        Change the memory range used for grub_ieee1275_claim and
        grub_mm_init_region.
        Print an error message if the claim fails.
        Include <grub/misc.h>.
2004-10-15 02:29:11 +00:00
hollisb
d1923dc8f2 2004-10-13 Hollis Blanchard <hollis@penguinppc.org>
* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
    Call grub_children_iterate for device nodes of type `scsi',
    `ide', or `ata'.
    (grub_ofdisk_open): Remove manual device alias resolution.
    Fix memory leak when device cannot be opened.
    * include/grub/powerpc/ieee1275/ieee1275.h
    (grub_children_iterate): New prototype.
    * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
    New function.
    * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
    Return -1 if args.size was -1.
2004-10-13 23:43:44 +00:00
hollisb
4512e4f355 2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
    (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
    World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
    Open Firmware's memory for it; claim memory from _start to _end.
    * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
    (_end): New extern.
    (_start): Zero BSS from __bss_start to _end.
    * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
    New extern.
    (GRUB_IEEE1275_NO_PARTITION_0): New #define.
2004-10-12 03:56:10 +00:00
hollisb
4d61feb07b 2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim):
    Return -1 if args.base was -1.
2004-10-11 14:11:33 +00:00
hollisb
026fa2f9ef 2004-10-08 Hollis Blanchard <hollis@penguinppc.org>
* term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
	escape sequence instead of a literal ^L. Also call
	grub_ofconsole_gotoxy.
2004-10-09 02:37:18 +00:00
marco_g
9f2220ef28 2004-10-03 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
	void *	arguments to grub_addr_t.  All callers updated.  Also make
	the `result' argument optional.
	(grub_ieee1275_release): change void * arguments to grub_addr_t.
	All callers updated.
2004-10-03 09:19:10 +00:00
marco_g
8a572cd742 2004-09-22 Hollis Blanchard <hollis@penguinppc.org>
* commands/ls.c (grub_ls_list_files): Use the string following the
	initial ')', if present, as the filesystem path.
	* kern/rescue.c (grub_rescue_cmd_ls): Likewise.

	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
2004-09-22 18:26:16 +00:00
okuji
18aa81f206 2004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
Make the source code of the menu interface more readable.

  * normal/menu.c: Include grub/mm.h.
  (TERM_WIDTH): New macro.
  (TERM_HEIGHT): Likewise.
  (TERM_INFO_HEIGHT): Likewise.
  (TERM_MARGIN): Likewise.
  (TERM_SCROLL_WIDTH): Likewise.
  (TERM_TOP_BORDER_Y): Likewise.
  (TERM_LEFT_BORDER_X): Likewise.
  (TERM_BORDER_WIDTH): Likewise.
  (TERM_MESSAGE_HEIGHT): Likewise.
  (TERM_BORDER_HEIGHT): Likewise.
  (TERM_NUM_ENTRIES): Likewise.
  (TERM_FIRST_ENTRY_Y): Likewise.
  (TERM_ENTRY_WIDTH): Likewise.
  (TERM_CURSOR_X): Likewise.
  (draw_border): Use macros instead of magic numbers.
  (print_entry): Likewise.
  (print_entries): Likewise.
  (run_menu): Likewise. Also, handle the key 'e'.
  (run_menu_entry): Ignore empty command lines.
  (print_message): Added a new argument EDIT. If EDIT is true,
  print a different message.
  (init_page): Likewise.
  (edit_menu_entry): New function. Not implemented yet.
2004-09-18 13:42:05 +00:00
marco_g
b47efe305a 2004-09-17 Marco Gerards <metgerards@student.han.nl>
Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
	can be loaded from normal mode.

	* conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
	`multiboot.mod'.
	(linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
	(multiboot_mod_CFLAGS): New variables.
	* loader/i386/pc/linux_normal.c: New file.
	* loader/i386/pc/multiboot_normal.c: Likewise.

	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
	attribute `unused'.

	* fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type.  Use
	`fdiro' to read the mode information from instead of `diro'.

	* fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
	looking up a symlink.

	* include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
	macro.
	* normal/command.c (grub_command_execute): Don't parse the
	arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
	flags of the command.

	* normal/menu.c (grub_menu_run): Fix typo.
2004-09-17 09:36:52 +00:00
marco_g
da75ac7157 2004-09-14 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.

	* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
	`y + 1' instead of `y - 1'.

	* conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
2004-09-14 21:21:12 +00:00
okuji
062b24c22c 2004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
From Hollis Blanchard <hollis@penguinppc.org>:
  * kern/misc.c (memmove): New alias for grub_memmove.
  (memcmp): New alias for grub_memcmp.
  (memset): New alias for grub_memset.
  * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
  Change "int handle" to "grub_ieee1275_phandle_t handle".
  * include/grub/powerpc/ieee1275/ieee1275.h
  (grub_ieee1275_get_property): Likewise.
2004-09-14 08:56:51 +00:00
marco_g
8ddad8453b 2004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
Added normal mode command `chainloader' as module chain.mod, which
	depends on normal.mod and _chain.mod.

	* conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
	(chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
	* include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
	Deleted prototype.
	* loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
	but arguments parsing moved to ...
	(grub_chainloader_cmd): ... here.  New function.
	* include/grub/i386/pc/chainloader.h: New file.
	* loader/i386/pc/chainloader_normal.c: Likewise.
2004-09-12 12:20:52 +00:00
marco_g
2c1f4ce368 2004-09-11 Marco Gerards <metgerards@student.han.nl>
* conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
	(grub_mkimage_LDFLAGS): Likewise.
	(grub_emu_SOURCES): Likewise.
	(kernel_img_HEADERS): Added fshelp.h.
	* fs/ext2.c: Include <grub/fshelp.h>.
	(FILETYPE_REG): New macro.
	(FILETYPE_INO_REG): Likewise.
	(grub_ext_sblock): Renamed to `grub_ext2_sblock'.
	Changed all users.
	(ext2_block_group): Renamed to `grub_ext2_block_group'.  Changed
	all users.
	(grub_fshelp_node): New struct.
	(grub_ext2_data): Added member `diropen'.  Changed member `inode'
	to a pointer.
	(grub_ext2_get_file_block): Removed function.
	(grub_ext2_read_block): New function.
	(grub_ext2_read_file): Replaced parameter `data' by `node'.
	This function was written.
	(grub_ext2_mount): Read the root inode.  Create a diropen struct.
	(grub_ext2_find_file): Removed function.
	(grub_ext2_read_symlink): New function.
	(grub_ext2_iterate_dir): Likewise.
	(grub_ext2_open): Rewritten.
	(grub_ext2_dir): Rewritten.
	* include/grub/fshelp.h: New file.
	* fs/fshelp.c: Likewise.
2004-09-11 11:42:43 +00:00
okuji
3c52136a94 2004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
* normal/menu.c: Include grub/loader.h and grub/machine/time.h.
  (print_message): Add a missing newline.
  (run_menu): Added timeout support.
  (run_menu_entry): New local function.
  (grub_menu_run): Added support for booting.

  * kern/loader.c (grub_loader_is_loaded): New function.

  * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
  (grub_get_rtc): Exported.

  * include/grub/i386/pc/time.h: Include grub/symbol.h.
  (grub_get_rtc): Exported.

  * include/grub/normal.h (struct grub_command_list): Remove
  constant from the member `command'.

  * include/grub/loader.h (grub_loader_is_loaded): Declared.

  * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.

  * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
2004-09-10 20:31:55 +00:00
marco_g
aa0335603c 2004-08-28 Marco Gerards <metgerards@student.han.nl>
Add support for the JFS filesystem.

	* fs/jfs.c: New file.
	* include/grub/fs.h (grub_jfs_init): New prototype.
	(grub_jfs_fini): New prototype.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add jfs.mod.
	(jfs_mod_SOURCES): New variable.
	(jfs_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
	(grubof_SOURCES): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize JFS support.

	* fs/fat.c (grub_fat_find_dir): Convert the filename little
	endian to the host endian.
	(grub_fat_utf16_to_utf8): Move function from there...
	* kern/misc.c (grub_utf16_to_utf8): ...to here.  Do not convert
	the endianess of the source string anymore.
	* include/grub/misc.h (grub_utf16_to_utf8): New prototype.
2004-08-28 13:14:29 +00:00
marco_g
94bc45af05 2004-08-24 Marco Gerards <metgerards@student.han.nl>
* commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
	(grub_boot_fini) [GRUB_UTIL]: Likewise.
	(GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
	(GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.

	* fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
	(grub_hfs_iterate_dir): Make the function static.  Add prototypes
	for `node_found' and `it_dir'.
	(grub_hfs_dir): Add prototype for `dir_hook'.

	* fs/minix.c (grub_minix_get_file_block): Add prototype for
	`grub_get_indir'.  Rename `indir' in two blocks to `indir16'
	and `indir32' to silence a gcc warning.

	* include/grub/fs.h (grub_hfs_init): New prototype.
	(grub_hfs_fini): Likewise.
2004-08-24 20:32:47 +00:00
okuji
97543f08fc 2004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
Each disk device has its own id now. This is useful to make use
  of multiple disk devices.

  * include/grub/disk.h (grub_disk_dev_id): New enum.
  (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
  (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.

  * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
  GRUB_DISK_DEVICE_BIOSDISK_ID as an id.

  * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
  GRUB_DISK_DEVICE_OFDISK_ID as an id.

  * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
  GRUB_DISK_DEVICE_BIOSDISK_ID as an id.

  * include/grub/disk.h (struct grub_disk_dev): Added a new member
  "id" which is used by the cache manager.

  * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
  of just "GRUB".
2004-08-21 13:54:22 +00:00
marco_g
64372eb442 2004-08-18 Marco Gerards <metgerards@student.han.nl>
* fs/hfs.c: New file.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add hfs.mod.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
	(grubof_SOURCES): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize HFS support.

	* include/grub/misc.h (grub_strncasecmp): Add prototype.
	* kern/misc.c (grub_strncasecmp): Add function.
2004-08-18 09:00:01 +00:00
marco_g
cc61b58f99 2004-08-14 Marco Gerards <metgerards@student.han.nl>
* include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
	with parentheses.

	* fs/ext2.c (FILETYPE_UNKNOWN): New macro.
	(grub_ext2_dir): In case the directory entry type is unknown, read
	it from the inode.
2004-08-13 22:33:35 +00:00
marco_g
0ef123f617 2004-08-02 Peter Bruin <pjbruin@dds.nl>
* loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
	grub_load_linux instead of grub_rescue_cmd_linux as second
	argument of grub_rescue_register_command.

	* Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
2004-08-02 10:28:11 +00:00
marco_g
a447c5dfb2 2004-07-27 Marco Gerards <metgerards@student.han.nl>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
	function.
	* commands/boot.c: Remove the check for `GRUB_UTIL'.
	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
	`loader/powerpc/ieee1275/linux.c',
	`loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_release): New prototype.
	* include/grub/powerpc/ieee1275/loader.h: Rewritten.
	* kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
	normal, boot, linux and linux_normal.
	* loader/powerpc/ieee1275/linux.c: New file.
	* loader/powerpc/ieee1275/linux_normal.c: Likewise.
2004-07-27 17:47:37 +00:00
marco_g
5a9e354626 2004-07-12 Marco Gerards <metgerards@student.han.nl>
* normal/arg.c (grub_arg_parse): Correct error handling after
	reallocating the argumentlist (check if `argl' is not null instead
	of checking if `args' is not null).
	* kern/mm.c (grub_realloc): Return the same pointer when using the
	same region, instead of returning the header address.
2004-07-12 17:53:07 +00:00
marco_g
e15199cb7b 2004-07-11 Marco Gerards <metgerards@student.han.nl>
* disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
	one block instead of two when looking for the initial partition.
	(grub_partition_probe): Initialize the local variable `p' with 0.
	Use base 10 for the grub_strtoul call.
	* kern/misc.c (grub_strncpy): Fix off by one bug.  Eliminated the
	need for one local variable.
	(grub_strtoul): Don't add the new value to `num', instead of that
	just assign it.
2004-07-11 14:24:54 +00:00
marco_g
020616c2b2 2004-07-11 Marco Gerards <metgerards@student.han.nl>
* conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
	(pxeboot_img_SOURCES): New variable.
	(pxeboot_img_ASFLAGS): Likewise.
	(pxeboot_img_LDFLAGS): Likewise.
	* boot/i386/pc/pxeboot.S: New file.  Based on pxeloader.S from
	GRUB Legacy and boot.S.  Adopted for GRUB 2 by lode leroy
	<lode_leroy@hotmail.com>.
2004-07-11 13:44:23 +00:00
marco_g
6c51eb648e 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
* kern/rescue.c (grub_enter_rescue_mode): Don't continue when
	there was no input.
2004-06-27 11:36:39 +00:00
marco_g
cfb12aff28 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
* normal/cmdline.c (grub_set_history): Fix off by one bug.  Fixed
	the history buffer logic.
2004-06-27 11:03:24 +00:00
marco_g
6eabba74e7 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
* fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
	(FILETYPE_INO_SYMLINK): New macros.
	(grub_ext2_find_file): Check if the node is a directory using the
	inode stat information instead of using the filetype in the
	dirent.  Exclude the first character of an absolute symlink.
	(grub_ext2_dir): Mask out the filetype part of the mode member of
	the inode.
2004-06-27 10:43:11 +00:00
marco_g
66e19ef8ba 2004-05-24 Marco Gerards <metgerards@student.han.nl>
Add support for UFS version 1 and 2.  Add support for the minix
	filesystem version 1 and 2, both the variants with 14 and 30 long
	filenames.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
	fs/minix.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add ufs.mod and minix.mod.
	(ufs_mod_SOURCES): New variable.
	(ufs_mod_CFLAGS): Likewise.
	(minix_mod_SOURCES): Likewise.
	(minix_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
	fs/minix.c.
	(grubof_SOURCES): Likewise.
	* fs/ufs.c: New file.
	* fs/minix.c: New file.
	* include/grub/fs.h (grub_ufs_init): New prototype.
	(grub_ufs_fini): Likewise.
	(grub_minix_init): Likewise.
	(grub_minix_fini): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize UFS and
	minix fs.
2004-05-24 21:32:21 +00:00
jeroen
cc2e748a08 2004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
	commands/ls.c, commands/terminal.c, commands/boot.c,
	commands/cmp.c and commands/cat.c.
	(grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.

	* kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
	"env.h"
2004-04-30 20:46:40 +00:00
okuji
4b13b216f4 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
	and grub_, respectively. Because the conversion is trivial and
	mechanical, I omit the details here. Please refer to the CVS
	if you need more information.
2004-04-04 13:46:03 +00:00
okuji
6a1425510d 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
* include/pupa: Renamed to ...
	* include/grub: ... this.
	* util/i386/pc/pupa-mkimage.c: Renamed to ...
	* util/i386/pc/grub-mkimage.c: ... this.
	* util/i386/pc/pupa-setup.c: Renamed to ...
	* util/i386/pc/grub-setup.c: ... this.
	* util/pupa-emu.c: Renamed to ...
	* util/grub-emu.c: ... this.
2004-04-04 13:10:40 +00:00
marco_g
e56cdf2111 2004-03-29 Marco Gerards <metgerards@student.han.nl>
Add support for the newworld apple macintosh (PPC).  This has been
	tested on the powerbook 2000 only.  It only adds support for
	generic ieee1275 functions, console and disk support.  This should
	be easy to port to other architectures with support for Open
	Firmware.

	* configure.ac: Accept the powerpc as host_cpu.  In the case of
	the powerpc cpu set the host_vendor to ieee1275.  Make sure the i386
	specific tests are only executed while building for the i386.
	Inverse test for crosscompile.
	* genmk.rb (Utility): Allow assembler files.
	* normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
	* conf/powerpc-ieee1275.rmk: New file.
	* disk/powerpc/ieee1275/ofdisk.c: Likewise.
	* disk/powerpc/ieee1275/partition.c: Likewise.
	* include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
	* include/pupa/powerpc/ieee1275/console.h: Likewise.
	* include/pupa/powerpc/ieee1275/partition.h: Likewise.
	* include/pupa/powerpc/ieee1275/time.h: Likewise.
	* include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
	* include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
	* include/pupa/powerpc/ieee1275/loader.h
	* include/pupa/powerpc/setjmp.h: Likewise.
	* include/pupa/powerpc/types.h: Likewise.
	* kern/powerpc/ieee1275/init.c: Likewise.
	* kern/powerpc/ieee1275/openfw.c: Likewise.
	* term/powerpc/ieee1275/ofconsole.c: Likewise.

	These files were written by Johan Rydberg
	(jrydberg@night.trouble.net) and I only modified them slightly.

	* boot/powerpc/ieee1275/cmain.c: New file.
	* boot/powerpc/ieee1275/crt0.S: Likewise.
	* boot/powerpc/ieee1275/ieee1275.c: Likewise.
	* include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
2004-03-28 21:52:02 +00:00
jeroen
8c8cc20511 2004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
* Makefile.in: Update copyright.
	* genmodsrc.sh: Likewise.
	* gensymlist.sh: Likewise.
	* term/i386/pc/vga.c: Indent correctly.

	* util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
	bugreporting address.
	* util/i386/pc/pupa-setup.c (usage): Likewise,
	(main): Call pupa_ext2_init and pupa_ext2_fini.

	* fs/fat.c (log2): Renamed to ...
	(fat_log2): ... this.
	All callers changed.
	* kern/misc.c (memcpy): Alias to pupa_memmove.
	* loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
	lvalue cast.
	* util/console.c (pupa_ncurses_fini): Return 0.

	* util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
	Move fail label here.
	[__GNU__]: Don't warn when using stat.
	(open_device)[!__linux__]: Check if FD < 0 instead of !FD.
	(pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
	long int. Use strtol instead of strtoul.
2004-03-14 17:48:25 +00:00
marco_g
db1771cfbe 2004-03-14 Marco Gerards <metgerards@student.han.nl>
* commands/boot.c: New file.
	* commands/cat.c: Likewise.
	* commands/cmp.c: Likewise.
	* commands/ls.c: Likewise.
	* commands/terminal.c: Likewise.
	* normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
	(pupa_register_command): Changed interface to match the new
	argument parser.
	(pupa_command_execute): Changed (almost rewritten) so it uses
	pupa_split_command.  Added support for setting variables using the
	syntax `foo=bar'.
	(rescue_command): Changed to work with the new argument parser.
	(terminal_command): Moved from here to commands/terminal.c.
	(set_command): New function.
	(unset_command): New function.
	(insmod_command): New function.
	(rmmod_command): New function.
	(lsmod_command): New function.
	(pupa_command_init): Don't initialize the command terminal
	anymore.  Initialize the commands set, unset, insmod, rmmod and
	lsmod.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
	(kernel_img_HEADERS): Add arg.h and env.h.
	(pupa_mkimage_LDFLAGS): Add kern/env.c.
	(pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
	commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
	normal/arg.c.
	(pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
	terminal.mod.
	(normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
	(boot_mod_SOURCES): New variable.
	(terminal_mod_SOURCES): Likewise.
	(ls_mod_SOURCES): Likewise.
	(cmp_mod_SOURCES): Likewise.
	(cat_mod_SOURCES): Likewise.

	* normal/arg.c: New file.
	* kern/env.c: Likewise.
	* include/pupa/arg.h: Likewise.
	* include/pupa/env.h: Likewise.
	* font/manager.c (font_command): Changed to match argument parsing
	interface changes.
	(PUPA_MOD_INIT): Likewise.
	* hello/hello.c (pupa_cmd_hello): Likewise.
	(PUPA_MOD_INIT): Likewise.
	* include/pupa/disk.h: Include <pupa/device.h>.
	(pupa_print_partinfo): New prototype.
	* include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
	(pupa_dl_get_prefix): Likewise.
	* include/pupa/misc.h: Include <pupa/err.h>.
	(pupa_isgraph): New prototype.
	(pupa_isdigit): Likewise.
	(pupa_split_cmdline): Likewise.
	* include/pupa/normal.h: Include <pupa/arg.h>.
	(pupa_command): Changed the prototype of the member `func' to
	match the argument parsing interface.  Added member `options'.
	(pupa_register_command): Updated to match function.
	(pupa_arg_parse): New prototype.
	(pupa_hello_init) [PUPA_UTIL]: New prototype.
	(pupa_hello_fini) [PUPA_UTIL]: Likewise.
	(pupa_ls_init) [PUPA_UTIL]: Likewise.
	(pupa_ls_fini) [PUPA_UTIL]: Likewise.
	(pupa_cat_init) [PUPA_UTIL]: Likewise.
	(pupa_cat_fini) [PUPA_UTIL]: Likewise.
	(pupa_boot_init) [PUPA_UTIL]: Likewise.
	(pupa_boot_fini) [PUPA_UTIL]: Likewise.
	(pupa_cmp_init) [PUPA_UTIL]: Likewise.
	(pupa_cmp_fini) [PUPA_UTIL]: Likewise.
	(pupa_terminal_init) [PUPA_UTIL]: Likewise.
	(pupa_terminal_fini) [PUPA_UTIL]: Likewise.
	* kern/disk.c: Include <pupa/file.h>.
	(pupa_print_partinfo): New function.
	* kern/dl.c: Include <pupa/env.h>.
	(pupa_dl_dir): Variable removed.
	(pupa_dl_load): Use the environment variable `prefix' instead of
	the variable pupa_dl_dir.
	(pupa_dl_set_prefix): Function removed.
	(pupa_dl_get_prefix): Likewise.
	* kern/i386/pc/init.c: Include <pupa/env.h>.
	(pupa_machine_init): Use the environment variable `prefix' instead of
	using pupa_dl_set_prefix to set the prefix.
	* kern/main.c: Include <pupa/env.h>.
	(pupa_set_root_dev): Use the environment variable `prefix' instead of
	using pupa_dl_get_prefix to get the prefix.
	* kern/misc.c: Include <pupa/env.h>.
	(pupa_isdigit): New function.
	(pupa_isgraph): Likewise.
	(pupa_ftoa): Likewise.
	(pupa_vsprintf): Added support for printing values of the type
	`double'.  Make it possible to format variable output when using
	formatting like `%1.2%f'.
	(pupa_split_cmdline): New function.
	* kern/rescue.c: Include <pupa/env.h>.
	(next_word): Removed function.
	(pupa_rescue_cmd_prefix): Likewise.
	(pupa_rescue_cmd_set): New function.
	(pupa_rescue_cmd_unset): New function.
	(pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
	split the command line instead of splitting it here.  Added
	support for setting variables using the syntax `foo=bar'.  Don't
	initialize the prefix command anymore.  Initialized the set and
	unset commands.
	* normal/cmdline.c: Include <pupa/env.h>.
	(pupa_tab_complete): Added prototypes for print_simple_completion,
	print_partition_completion, add_completion, iterate_commands,
	iterate_dev, iterate_part and iterate_dir. Moved code to print
	partition information from here to kern/disk.c.
	(pupa_cmdline_run): Don't check if the funtion exists anymore.
	* normal/main.c: Include <pupa/env.h>.
	(pupa_rescue_cmd_normal): Use the environment variable `prefix'
	instead of using pupa_dl_get_prefix to get the prefix.
	* term/i386/pc/vga.c: Include <pupa/arg.h>.
	(check_vga_mem): Cast pointers to `void *' to silence a gcc
	warning.
	(pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
	(pupa_vga_setcolor): Declare unused variables with `__attribute__
	((unused))' to silence a gcc warning.
	(pupa_vga_setcolor): Likewise.
	(debug_command): Changed to match argument parsing
	interface changes.
	* util/pupa-emu.c: Include <pupa/env.h>.
	(options): Added 0's for unused fields to silence a gcc warning.
	(argp): Likewise.
	(main): Use the environment variable `prefix' instead of using
	pupa_dl_set_prefix to set the prefix.  Initialize the commands ls,
	boot, cmp, cat and terminal.  Finish the commands boot, cmp, cat
	and terminal.

	* util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
	* util/misc.c: Include <malloc.h>.
	(pupa_malloc): Rewritten so errors are correctly reported.
	(pupa_realloc): Likewise.
	(pupa_memalign): Likewise.
	(pupa_mm_init_region): Declare unused variables with
	`__attribute__ ((unused))' to silence a gcc warning.
	* normal/i386/setjmp.S: Remove tab at the end of the file to
	silence a gcc warning.
	* loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
	variables with `__attribute__ ((unused))' to silence a gcc
	warning.
	* loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
	local variable i unsigned to silence a gcc warning.

	* kern/term.c: Include <pupa/misc.h>.
	(pupa_more_lines): New variable.
	(pupa_more): Likewise.
	(pupa_putcode): When the pager is active pause at the end of every
	screen.
	(pupa_set_more): New function.
	* include/pupa/term.h (pupa_set_more): New prototype.
2004-03-13 13:59:25 +00:00
okuji
3b1139cb9d 2004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
Now this project is GRUB 2 rather than PUPA. The location of
	the CVS repository was moved to GRUB's.

	* configure.ac: Use bug-grub as the reporting address.
	Use GRUB instead of PUPA.
	Change the version number to 1.90.
2004-03-07 11:21:05 +00:00
okuji
8367695cff shinori K. Okuji <okuji@enbug.org>
* genkernsyms.sh: Updated copyright information.
	* genmk.rb: Likewise.
	* genmodsrc.sh: Likewise.
	* gensymlist.sh: Likewise.
	* boot/i386/pc/boot.S: Likewise.
	* boot/i386/pc/diskboot.S: Likewise.
	* disk/i386/pc/biosdisk.c: Likewise.
	* disk/i386/pc/partition.c: Likewise.
	* font/manager.c: Likewise.
	* fs/ext2.c: Likewise.
	* fs/fat.c: Likewise.
	* include/pupa/boot.h: Likewise.
	* include/pupa/device.h: Likewise.
	* include/pupa/disk.h: Likewise.
	* include/pupa/dl.h: Likewise.
	* include/pupa/elf.h: Likewise.
	* include/pupa/err.h: Likewise.
	* include/pupa/file.h: Likewise.
	* include/pupa/font.h: Likewise.
	* include/pupa/fs.h: Likewise.
	* include/pupa/kernel.h: Likewise.
	* include/pupa/loader.h: Likewise.
	* include/pupa/misc.h: Likewise.
	* include/pupa/mm.h: Likewise.
	* include/pupa/net.h: Likewise.
	* include/pupa/normal.h: Likewise.
	* include/pupa/rescue.h: Likewise.
	* include/pupa/setjmp.h: Likewise.
	* include/pupa/symbol.h: Likewise.
	* include/pupa/term.h: Likewise.
	* include/pupa/types.h: Likewise.
	* include/pupa/i386/setjmp.h: Likewise.
	* include/pupa/i386/types.h: Likewise.
	* include/pupa/i386/pc/biosdisk.h: Likewise.
	* include/pupa/i386/pc/boot.h: Likewise.
	* include/pupa/i386/pc/console.h: Likewise.
	* include/pupa/i386/pc/init.h: Likewise.
	* include/pupa/i386/pc/kernel.h: Likewise.
	* include/pupa/i386/pc/linux.h: Likewise.
	* include/pupa/i386/pc/loader.h: Likewise.
	* include/pupa/i386/pc/memory.h: Likewise.
	* include/pupa/i386/pc/multiboot.h: Likewise.
	* include/pupa/i386/pc/partition.h: Likewise.
	* include/pupa/i386/pc/time.h: Likewise.
	* include/pupa/i386/pc/vga.h: Likewise.
	* include/pupa/i386/pc/util/biosdisk.h: Likewise.
	* include/pupa/util/getroot.h: Likewise.
	* include/pupa/util/misc.h: Likewise.
	* include/pupa/util/resolve.h: Likewise.
	* kern/device.c: Likewise.
	* kern/disk.c: Likewise.
	* kern/dl.c: Likewise.
	* kern/err.c: Likewise.
	* kern/file.c: Likewise.
	* kern/fs.c: Likewise.
	* kern/loader.c: Likewise.
	* kern/main.c: Likewise.
	* kern/misc.c: Likewise.
	* kern/mm.c: Likewise.
	* kern/rescue.c: Likewise.
	* kern/term.c: Likewise.
	* kern/i386/dl.c: Likewise.
	* kern/i386/pc/init.c: Likewise.
	* kern/i386/pc/lzo1x.S: Likewise.
	* kern/i386/pc/startup.S: Likewise.
	* loader/i386/pc/chainloader.c: Likewise.
	* loader/i386/pc/linux.c: Likewise.
	* loader/i386/pc/multiboot.c: Likewise.
	* normal/cmdline.c: Likewise.
	* normal/command.c: Likewise.
	* normal/main.c: Likewise.
	* normal/menu.c: Likewise.
	* normal/i386/setjmp.S: Likewise.
	* term/i386/pc/console.c: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* util/console.c: Likewise.
	* util/genmoddep.c: Likewise.
	* util/misc.c: Likewise.
	* util/pupa-emu.c: Likewise.
	* util/resolve.c: Likewise.
	* util/unifont2pff.rb: Likewise.
	* util/i386/pc/biosdisk.c: Likewise.
	* util/i386/pc/getroot.c: Likewise.
	* util/i386/pc/pupa-mkimage.c: Likewise.
	* util/i386/pc/pupa-setup.c: Likewise.
2004-02-24 17:21:53 +00:00
jeroen
e6eced7150 2004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
* fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
	when it is EXT2_BLOCK_SIZE (data).  New argument READ_HOOK, all
	callers changed.  Set DATA->DISK->READ_HOOK to READ_HOOK before
	reading and reset it after reading.
	(pupa_ext2_close): Return PUPA_ERR_NONE.

	* include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
	Correct value.
	(struct linux_kernel_header): Add kernel_version and
	initrd_addr_max.
	* loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
	pupa_file_read succeeds.
	(pupa_rescue_cmd_initrd): Implement.
2004-02-15 10:09:11 +00:00
marco_g
5aded270b6 2003-12-03 Marco Gerards <metgerards@student.han.nl>
* fs/ext2.c (pupa_ext2_label): New function.
	(pupa_ext2_fs): Added label.
	* fs/fat.c (pupa_fat_label): New function.
	(pupa_fat_fs): Added label.
	* include/pupa/fs.h (struct pupa_fs): Added prototype label.

	* kern/misc.c (pupa_strndup): New function.
	* include/pupa/misc.h (pupa_strndup): New prototype.

	* include/pupa/normal.h: Include <pupa/err.h>.
	(pupa_set_history): New prototype.
	(pupa_iterate_commands): New prototype.
	* normal/cmdline.c: Include <pupa/machine/partition.h>,
	<pupa/disk.h>, <pupa/file.h>.
	(hist_size): New variable.
	(hist_lines): Likewise.
	(hist_end): Likewise.
	(hist_used): Likewise.
	(pupa_set_history): New function.
	(pupa_history_get): Likewise.
	(pupa_history_add): Likewise.
	(pupa_history_replace): Likewise.
	(pupa_tab_complete): Likewise.
	(pupa_cmdline_run): Added tab completion and history buffer.  Tab
	completion shows partitionnames while completing partitions, this
	feature was suggested by Jeff Bailey.
	* normal/command.c (pupa_iterate_commands): New function.
	* normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
	(pupa_normal_init): Initialize history buffer.
	(PUPA_MOD_INIT): Likewise.
	(pupa_normal_fini): Free the history buffer.
	(PUPA_MOD_FINI): Likewise.

	* util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
	key.

	* aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
	* configure.ac [i386]: Check for regparam bug.
	(NESTED_FUNC_ATTR) [! i386]: Defined.
2003-12-03 19:17:27 +00:00
marco_g
1f7315a3de 2003-11-17 Marco Gerards <metgerards@student.han.nl>
* conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
	(pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
	(pupa_emu_SOURCES): New variable.
	(pupa_emu_LDFLAGS): Likewise.
	* include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
	(pupa_ext2_fini) [PUPA_UTIL]: Likewise.
	* include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
	(pupa_normal_fini) [PUPA_UTIL]: Likewise.
	* include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
	(pupa_jmp_buf): New typedef.
	(pupa_setjmp) [PUPA_UTIL]: New macro.
	(pupa_longjmp) [PUPA_UTIL]: Likewise.
	* include/pupa/term.h (struct pupa_term): New member `refresh'.
	(pupa_refresh): New prototype.
	* include/pupa/util/getroot.h: New file.
	* kern/misc.c (pupa_vsprintf): Refresh the screen after updating
	it.
	* kern/rescue.c (pupa_rescue_get_command_line): Likewise.
	(pupa_rescue_cmd_cat): Likewise.
	(pupa_rescue_cmd_ls): Likewise.
	(pupa_rescue_cmd_testload): Likewise.
	(pupa_rescue_cmd_lsmod): Likewise.
	* normal/cmdline.c (pupa_cmdline_get): Likewise.
	* normal/menu.c (run_menu): Likewise.
	* kern/term.c (pupa_cls): Likewise.
	(pupa_refresh): New function.
	* normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
	(pupa_normal_fini) [PUPA_UTIL]: Likewise.
	* util/console.c: New file.

	* util/i386/pc/getroot.c: New file.
	* util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
	(pupa_putchar): New function.
	(pupa_refresh): Likewise.
	(xgetcwd): Function moved to ...
	(strip_extra_slashes): Likewise.
	(get_prefix): Likewise.
	* util/i386/pc/getroot.c: ... here.
	(find_root_device): Function moved and renamed to...
	* util/i386/pc/getroot.c (pupa_find_root_device): ... here.
	Changed all callers.
	* util/i386/pc/pupa-setup.c (guess_root_device): Function moved
	and renamed to...
	* util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
	Changed all callers.
	* util/misc.c (pupa_memalign): New function.
	(pupa_mm_init_region): Likewise.
	(pupa_register_exported_symbols): Likewise.
	(pupa_putchar): Function removed.
	* util/pupa-emu.c: New file.
2003-11-17 18:07:09 +00:00
jeroen
9a5c1adeaa 2003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
* conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
	(_multiboot_mod_SOURCES): New variable.
	(_multiboot_mod_CFLAGS): Likewise.
	* loader/i386/pc/multiboot.c: New file.
	* include/pupa/i386/pc/multiboot.h: Likewise.
	* kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
	(pupa_multiboot_real_boot): New function.
	* include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
	(pupa_multiboot_real_boot): New prototype.
	(pupa_rescue_cmd_multiboot): Likewise
	(pupa_rescue_cmd_module): Likewise.

	* kern/loader.c (pupa_loader_set): Continue when
	pupa_loader_unload_func() fails.
	(pupa_loader_unset): New function.
	* include/pupa/loader.h (pupa_loader_unset): New prototype.

	* kern/misc.c (pupa_stpcpy): New function.
	* include/pupa/misc.h (pupa_stpcpy): New prototype.
2003-11-16 16:36:39 +00:00
marco_g
8e72a9c0e3 2003-11-12 Marco Gerards <metgerards@student.han.nl>
* disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
	for available extensions.

	* include/pupa/i386/pc/time.h: New file.
	* kern/disk.c: Include <pupa/machine/time.h>.
	(PUPA_CACHE_TIMEOUT): New macro.
	(pupa_last_time): New variable.
	(pupa_disk_open): Flush the cache when there was a timeout.
	(pupa_disk_close): Reset the timer.
	* kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
	pupa_currticks.
	* util/misc.c: Include <sys/times.h>
	(pupa_get_rtc): New function.
2003-11-12 20:33:52 +00:00
marco_g
c4adbd32e9 2003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
* fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
	as blocks.
	(pupa_ext2_get_file_block): Use blocks member.

	* fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
	first block. Return -1 instead of pupa_errno on error.
2003-11-09 22:44:14 +00:00
marco_g
bfd30f069e 2003-10-27 Marco Gerards <metgerards@student.han.nl>
* README: In the pupa-mkimage example use _chain instead of chain
	and ext2 instead of fat.
	* TODO: Replace ext2fs with jfs as an example.  Add an item for
	adding journal playback for ext2fs.
	* conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
	(pkgdata_MODULES): Added ext2.mod.
	(ext2_mod_SOURCES): New variable.
	(ext2_mod_CFLAGS): Likewise.
	* include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
	* include/pupa/misc.h (pupa_strncpy): New prototype.
	(pupa_strcat): Likewise.
	(pupa_strncmp): Likewise.
	* kern/misc.c (pupa_strcat): Enable function.
	(pupa_strncpy): New function.
	(pupa_strncmp): Likewise.
	* fs/ext2.c: New file.

	* kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
	when the read failed before retrying.
	* util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
	(_FILE_OFFSET_BITS): Likewise.
	* configure.ac: Added AC_SYS_LARGEFILE.
2003-10-29 20:01:55 +00:00
okuji
98d150633e 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
* genmk.rb (PModule#rule): Make sure to get only symbol names
	from the output of nm.
	Reported by Robert Millan <zeratul2@wanadoo.es>.
2003-09-25 20:29:32 +00:00
okuji
18d9c7cd53 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
I forgot to check in these changes for a long time. This adds
	incomplete support for VGA console, and this is still very
	buggy. Also, a lot of consideration is required for I18N,
	UNICODE, and VGA font issues. Therefore, assume that this is
	such that "better than nothing".

	* font/manager.c: New file.
	* include/pupa/font.h: Likewise.
	* include/pupa/i386/pc/vga.h: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* util/unifont2pff.rb: Likewise.

	* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
	(pkgdata_MODULES): Added vga.mod and font.mod.
	(vga_mod_SOURCES): New variables.
	(vga_mod_CFLAGS): Likewise.
	(font_mod_SOURCES): Likewise.
	(font_mod_CFLAGS): Likewise.

	* include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.

	* include/pupa/term.h: Include pupa/err.h.
	(struct pupa_term): Added init and fini.
	Changed the argument of putchar to pupa_uint32_t.

	* include/pupa/i386/pc/console.h: Include pupa/symbol.h.
	(pupa_console_real_putchar): New prototype.
	(pupa_console_putchar): Removed.
	(pupa_console_checkkey): Exported.
	(pupa_console_getkey): Likewise.

	* kern/misc.c (pupa_vsprintf): Add support for UNICODE
	characters.

	* kern/term.c (pupa_term_set_current): Rewritten.
	(pupa_putchar): Likewise.
	(pupa_putcode): New function.

	* kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
	(pupa_console_real_putchar): ... this.
	(pupa_vga_set_mode): New function.
	(pupa_vga_get_font): Likewise.

	* normal/command.c: Include pupa/term.h.
	(terminal_command): New function.
	(pupa_command_init): Register the command "terminal".

	* normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
	(DISP_UP): Likewise.
	(DISP_RIGHT): Likewise.
	(DISP_DOWN): Likewise.
	(DISP_HLINE): Likewise.
	(DISP_VLINE): Likewise.
	(DISP_UL): Likewise.
	(DISP_UR): Likewise.
	(DISP_LL): Likewise.
	(DISP_LR): Likewise.

	* term/i386/pc/console.c (pupa_console_putchar): New function.
2003-09-25 20:15:53 +00:00
gniibe
977329f5fa hello module and bug fix of util/resolve.c 2003-02-08 08:15:43 +00:00
okuji
1f5ab4280a 2003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
* kern/i386/pc/lzo1x.S: New file.

	* util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
	(compress_kernel): New variable.
	(generate_image): Heavily modified to support compressing a
	large part of the core image.

	* util/misc.c (pupa_util_read_image): Fix a file descriptor
	leak.
	(pupa_util_load_image): New function.

	* kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
	(pupa_compressed_size): New variable.
	(codestart): Enable Gate A20 here.
	Decompress the compressed part of the core image.
	Rearrange the code to put functions and variables which are
	required for initialization in the non-compressed part.
	Include lzo1x.S.

	* kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
	here.

	* include/pupa/util/misc.h (pupa_util_write_image): Declared.

	* include/pupa/i386/pc/kernel.h
	(PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
	(PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
	(PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
	(PUPA_KERNEL_MACHINE_PREFIX): Likewise.
	(PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.

	* conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.

	* genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
	(Utility#rule): Likewise.

	* configure.ac: Check if LZO is available.
2003-01-31 03:26:56 +00:00
okuji
ce5bf700ca 2003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
* include/pupa/normal.h: New file.
	* include/pupa/setjmp.h: Likewise.
	* include/pupa/i386/setjmp.h: Likewise.
	* normal/cmdline.c: Likewise.
	* normal/command.c: Likewise.
	* normal/main.c: Likewise.
	* normal/menu.c: Likewise.
	* normal/i386/setjmp.S: Likewise.

	* loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
	(pupa_rescue_cmd_initrd): Likewise.

	* loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
	Likewise.

	* kern/i386/pc/startup.S (translation_table): New variable.
	(translate_keycode): New function.
	(pupa_console_getkey): Call translate_keycode.

	* kern/rescue.c (attempt_normal_mode): New function.
	(pupa_enter_rescue_mode): Attempt to execute the normal mode. If
	it failed, print a message.

	* kern/mm.c (pupa_real_malloc): Print more information when a
	free magic is broken.
	(pupa_free): If the first free header is not free actually, set
	it to P.

	* kern/main.c (pupa_load_normal_mode): Just load the module
	"normal".
	(pupa_main): Don't print the message
	"Entering into rescue mode..." here.

	* include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
	Declared.
	(pupa_rescue_cmd_initrd): Likewise.
	(pupa_rescue_cmd_initrd): Likewise.

	* include/pupa/symbol.h (FUNCTION): Specify the type.
	(VARIABLE): Likewise.

	* include/pupa/err.h (pupa_err_t): Added
	PUPA_ERR_UNKNOWN_COMMAND.

	* include/pupa/dl.h (pupa_dl_set_prefix): Exported.
	(pupa_dl_get_prefix): Likewise.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
	Added _chain.mod and _linux.mod instead of chain.mod and
	linux.mod.
	(chain_mod_SOURCES): Renamed to ...
	(_chain_mod_SOURCES): ... this.
	(chain_mod_CFLAGS): Renamed to ...
	(_chain_mod_CFLAGS): ... this.
	(linux_mod_SOURCES): Renamed to ...
	(_linux_mod_SOURCES): ... this.
	(linux_mod_CFLAGS): Renamed to ...
	(_linux_mod_CFLAGS): ... this.
	(normal_mod_SOURCES): New variable.
	(normal_mod_CFLAGS): Likewise.
	(normal_mod_ASFLAGS): Likewise.

2003-01-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
	possible.

	* kern/dl.c (pupa_dl_ref): Refer dependending modules
	recursively.
	(pupa_dl_unref): Unrefer depending modules recursively.
	Don't call pupa_dl_unload implicitly, because PUPA can crash if
	a module is unloaded before one depending on that module is
	unloaded.
	(pupa_dl_unload): Unload depending modules explicitly,
	if possible.
2003-01-20 04:13:46 +00:00
okuji
c04da07444 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
* include/pupa/i386/pc/linux.h: New file.
	* loader/i386/pc/linux.c: Likewise.

	* loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
	Removed.
	(pupa_chainloader_unload): Return PUPA_ERR_NONE.
	(pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
	of PUPA_CHAINLOADER_BOOT_SECTOR.

	* kern/i386/pc/startup.S: Include pupa/machine/linux.h.
	(pupa_linux_prot_size): New variable.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): New function.
	(pupa_linux_boot_bzimage): Likewise.

	* kern/i386/pc/init.c (struct mem_region): New structure.
	(MAX_REGIONS): New macro.
	(mem_regions): New variable.
	(num_regions): Likewise.
	(pupa_os_area_addr): Likewise.
	(pupa_os_area_size): Likewise.
	(pupa_lower_mem): Likewise.
	(pupa_upper_mem): Likewise.
	(add_mem_region): New function.
	(compact_mem_regions): Likewise.
	(pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
	the size of the conventional memory and that of so-called upper
	memory (before the first memory hole).
	Instead of adding each found region to free memory, use
	add_mem_region and add them after removing overlaps.
	Also, add only 1/4 of the upper memory to free memory. The rest
	is used for loading OS images. Maybe this is ad hoc, but this
	makes it much easier to relocate OS images when booting.

	* kern/rescue.c (pupa_rescue_cmd_module): Removed.
	(pupa_enter_rescue_mode): Don't register initrd and module.

	* kern/mm.c: Include pupa/dl.h.

	* kern/main.c: Include pupa/file.h and pupa/device.h.

	* kern/loader.c (pupa_loader_load_module_func): Removed.
	(pupa_loader_load_module): Likewise.

	* kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
	``.o''.

	* include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): Likewise.
	(pupa_linux_boot_bzimage): Likewise.

	* include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
	(pupa_upper_mem): Likewise.
	(pupa_gate_a20): Don't export, because turning off Gate A20 in a
	module is too dangerous.

	* include/pupa/loader.h (pupa_os_area_addr): Declared.
	(pupa_os_area_size): Likewise.
	(pupa_loader_set): Remove the first argument. Loader doesn't
	manage modules or initrd any longer.
	(pupa_loader_load_module): Removed.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
	(linux_mod_SOURCES): New variable.
	(linux_mod_CFLAGS): Likewise.
2003-01-17 02:52:05 +00:00
okuji
a13f92373c 2003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/pupa-setup.c (setup): Convert the endianness of
		the length of a blocklist correctly.

			* util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
				Use ioctl only if the OS file is a block device.
					(pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
						not very useful for normal files.

							* kern/main.c (pupa_set_root_dev): New function.
								(pupa_load_normal_mode): Likewise.
									(pupa_main): Call those above.

										* include/pupa/types.h (pupa_swap_bytes16): Cast the result to
											pupa_uint16_t.

												* include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
2003-01-07 07:54:07 +00:00
okuji
a5ffe96617 2003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
	(setup): Configure the installed partition information and the
	dl prefix.

	* loader/i386/pc/chainloader.c (my_mod): New variable.
	(pupa_chainloader_unload): New function.
	(pupa_rescue_cmd_chainloader): Refer itself.
	(PUPA_MOD_INIT): Save its own module in MY_MOD.

	* kern/i386/pc/startup.S (install_partition): Removed.
	(version_string): Likewise.
	(config_file): Likewise.
	(pupa_install_dos_part): New variable.
	(pupa_install_bsd_part): Likewise.
	(pupa_prefix): Likewise.
	(pupa_chainloader_real_boot): Call pupa_dl_unload_all.

	* kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
	and pupa/misc.h.
	(make_install_device): New function.
	(pupa_machine_init): Set the dl prefix.

	* kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
	(buf): Renamed to ...
	(linebuf): ... this.
	(pupa_rescue_cmd_prefix): New function.
	(pupa_rescue_cmd_insmod): Likewise.
	(pupa_rescue_cmd_rmmod): Likewise.
	(pupa_rescue_cmd_lsmod): Likewise.
	(pupa_enter_rescue_mode): Register new commands: prefix, insmod,
	rmmod and lsmod.

	* kern/mm.c (pupa_memalign): If failed even after invalidating
	disk caches, unload unneeded modules and retry.

	* kern/misc.c (pupa_memmove): New function.
	(pupa_memcpy): Removed.
	(pupa_strcpy): New function.
	(pupa_itoa): Made static.

	* kern/dl.c (pupa_dl_iterate): New function.
	(pupa_dl_ref): Likewise.
	(pupa_dl_unref): Likewise.
	(pupa_dl_unload): Return if succeeded or not.
	(pupa_dl_unload_unneeded): New function.
	(pupa_dl_unload_all): Likewise.
	(pupa_dl_init): Renamed to ...
	(pupa_dl_set_prefix): ... this.
	(pupa_dl_get_prefix): New function.

	* include/pupa/i386/pc/kernel.h: Include pupa/types.h.
	(PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
	(PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
	(PUPA_KERNEL_MACHINE_PREFIX): Likewise.
	(pupa_install_dos_part): Declared.
	(pupa_install_bsd_part): Likewise.
	(pupa_prefix): Likewise.
	(pupa_boot_drive): Likewise.

	* include/pupa/types.h: Fix a typo.

	* include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
	pupa_memmove.
	(pupa_memmove): Declared.
	(pupa_strcpy): Likewise.

	* include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
	pupa_mod_init takes one argument, its own module.
	(pupa_dl_unload_unneeded): Declared.
	(pupa_dl_unload_all): Likewise.
	(pupa_dl_ref): Likewise.
	(pupa_dl_unref): Likewise.
	(pupa_dl_iterate): Likewise.
	(pupa_dl_init): Renamed to ...
	(pupa_dl_set_prefix): ... this.
	(pupa_dl_get_prefix): Declared.

	* fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
	(pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
	unloaded.
	(pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
	(pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.

	* configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
	-Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
2003-01-06 00:01:35 +00:00
okuji
012d7999fe 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/pupa-setup.c (setup): Define the internal
	function find_first_partition_start at the top level, because GCC
	3.0.x cannot compile internal functions in deeper scopes
	correctly.
	(find_root_device): Use lstat instead of stat.
	Don't follow symbolic links.
	Fix the path-constructing code.

	* util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
	(pupa_util_biosdisk_open) [__linux__]: Get the size of a device
	by a BLKGETSIZE ioctl first, because block devices don't fill
	the member st_mode of the structure stat on Linux.
	[__linux__] (linux_find_partition): Use a temporary buffer
	REAL_DEV for the working space. Copy it to DEV before returning.
	(open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
	buffer cache consistent.
	(get_os_disk) [__linux__]: Use the length 5 instead of 4 for
	strncmp. The previous value was merely wrong.
	(pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.

	* fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
	FAT size is 12. The previous value was merely wrong.

	* kern/main.c (pupa_main): Don't split the starting message from
	newlines.

	* kern/term.c (pupa_putchar): Put CR after LF instead of before
	LF, because BIOS goes crazy about character attributes in this
	case.
2003-01-02 23:46:21 +00:00
okuji
1cc73a62da 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
* include/i386/pc/util/biosdisk.h: New file.
	* util/i386/pc/biosdisk.c: Likewise.
	* util/i386/pc/pupa-setup.c: Likewise.

	* Makefile.in (INCLUDE_DISTFILES): Added
	include/pupa/i386/pc/util/biosdisk.h.
	(UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
	directory util/i386/pc.
	(install-local): Added a rule for sbin_UTILITIES.
	(uninstall): Likewise.

	* util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.

	* util/misc.c (xrealloc): New function.
	(pupa_malloc): Likewise.
	(pupa_free): Likewise.
	(pupa_realloc): Likewise.
	(pupa_stop): Likewise.
	(pupa_putchar): Likewise.

	* kern/disk.c (pupa_disk_read): Prevent L from underflowing.

	* include/pupa/util/misc.h (xrealloc): Declared.

	* include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
	macro.
	(PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
	(PUPA_BOOT_MACHINE_BPB_END): ... this.

	* include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
	way should be implemented.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
	the size of NAME for safety.
	(pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
	0x88.

	* conf/i386-pc.rmk (sbin_UTILITIES): New variable.
	(pupa_setup_SOURCES): Likewise.

	* genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
2003-01-02 20:12:33 +00:00
okuji
08b70fe8eb 2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
* kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
	bunch of pushl's from pusha, because this destroys the return
	value.
2002-12-28 07:42:12 +00:00
okuji
62ddcc8f79 2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
Use -mrtd and -mregparm=3 to reduce the generated code sizes.
	This means that any missing prototypes could be fatal. Also, you
	must take care when writing assembly code. See the comments at
	the beginning of startup.S, for more details.

	* kern/i386/pc/startup.S (pupa_halt): Modified for the new
	compilation mechanism.
	(pupa_chainloader_real_boot): Likewise.
	(pupa_biosdisk_rw_int13_extensions): Likewise.
	(pupa_biosdisk_rw_standard): Likewise.
	(pupa_biosdisk_check_int13_extensions): Likewise.
	(pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
	(pupa_biosdisk_get_diskinfo_standard): Likewise.
	(pupa_get_memsize): Likewise.
	(pupa_get_mmap_entry): Likewise.
	(pupa_console_putchar): Likewise.
	(pupa_console_setcursor): Likewise.
	(pupa_getrtsecs): Use pushl instead of push.

	* kern/i386/pc/init.c (pupa_machine_init): Use the scratch
	memory instead of the stack for a mmap entry, because some
	BIOSes may ignore the maximum size and overflow.

	* conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.

	* genmk.rb (PModule#rule): Compile automatically generated
	sources with module-specific CFLAGS as well as other sources.
2002-12-28 07:16:30 +00:00
okuji
9962ed9907 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac: Check ld.
	Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
	respectively, before checking endianness and sizes.

	* Makefile.in (LD): New variable.
2002-12-27 14:14:06 +00:00
okuji
abdfc3c54e 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
* Makefile.in (BUILD_CC): CC -> BUILD_CC.
2002-12-27 08:57:45 +00:00
okuji
6a161fa938 Initial revision 2002-12-27 08:53:07 +00:00