Commit graph

2954 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
6c1a338ca5 * util/i386/pc/grub-setup.c: Merge this ...
* util/sparc64/ieee1275/grub-setup.c:  ... and this ...
	* util/grub-setup.c: ... into this.
	* include/grub/sparc64/ieee1275/boot.h (grub_boot_blocklist) [ASM_FILE]:
	New struct.
	* grub-core/fs/ext2.c (grub_ext2_open): Use return error value when
	possible.
2010-09-14 21:15:35 +02:00
Vladimir 'phcoder' Serbinenko
d2ea455141 * grub-core/partmap/sun.c (sun_partition_map_iterate): Don't needlesly
allocate p.
2010-09-14 21:07:39 +02:00
Vladimir 'phcoder' Serbinenko
3c3b5040cd * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Add
explicit root argument to set to prevent UUID to be interpreted as
	argument to set.
2010-09-14 21:04:08 +02:00
Vladimir 'phcoder' Serbinenko
b71c3faedb * grub-core/kern/sparc64/ieee1275/crt0.S: Align stack. 2010-09-14 20:59:00 +02:00
Vladimir 'phcoder' Serbinenko
275433e642 Don't export grub_gate_a20.
* grub-core/kern/i386/pc/init.c: Remove leftovers.
	* grub-core/kern/i386/pc/startup.S (FUNCTION(grub_gate_a20)): Rename
	to ...
	(grub_gate_a20): ... this. All users updated.
	* include/grub/i386/pc/init.h: Removed. All users updated.
2010-09-14 01:08:24 +02:00
Vladimir 'phcoder' Serbinenko
a5dbb1f10d Create euro.pf2 which supports most European languages.
* Makefile.am (grubdata_DATA): Add euro.pf2.
	(euro.pf2): New target.
	(CLEANFILES): Add euro.pf2.
2010-09-14 00:49:02 +02:00
Vladimir 'phcoder' Serbinenko
62a747cb00 * configure.ac: Disable emu-usb by default to prevent inadvertent
device takeover.
2010-09-14 00:21:52 +02:00
Vladimir 'phcoder' Serbinenko
608e43b102 Disable usbserial on grub-emu since our libusb code isn't good enough
yet.

	* grub-core/Makefile.core.def (usbserial_common): Disable on emu.
	(usbserial_pl2303): Likewise.
	(usbserial_ftdi): Likewise.
2010-09-14 00:08:07 +02:00
Vladimir 'phcoder' Serbinenko
94564f81a8 * include/grub/disk.h (grub_disk): Remove has_partitions.
All users updated.
	* disk/loopback.c (grub_loopback): Remove has_partitions.
	All users updated.
	(options): Remove partitions. All users updated.
	* util/grub-fstest.c (fstest): Don't pass "-p" to loopback.
	* util/i386/pc/grub-setup.c (setup): copy partition table only when
	actual partition table is found.
2010-09-13 23:59:22 +02:00
Vladimir 'phcoder' Serbinenko
3352800b99 Remove readability checks (too many false negatives).
* util/grub-install.in: Remove readability checks.
	* util/grub-mkconfig.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Revert to old
	way.
2010-09-13 22:18:03 +02:00
Vladimir 'phcoder' Serbinenko
2419f17a09 Enable acpi shutdown on all ACPI platforms.
* grub-core/Makefile.core.def (halt): Inlude commands/acpihalt.c
	on coreboo, multiboot and EFI.
	* grub-core/commands/acpihalt.c (get_sleep_type): Add missing casts.
	(grub_acpi_halt): Likewise.
	* grub-core/commands/i386/pc/halt.c (grub_halt): Call grub_acpi_halt.
	(grub_cmd_halt): Don't call grub_acpi_halt directly.
	* grub-core/lib/efi/halt.c (grub_halt): Call grub_acpi_halt.
	* grub-core/lib/i386/halt.c (grub_halt)
	[GRUB_MACHINE_COREBOOT || GRUB_MACHINE_MULTIBOOT]: Likewise.
2010-09-13 20:29:15 +02:00
Vladimir 'phcoder' Serbinenko
0575c7c3ec * grub-core/commands/iorw.c (grub_cmd_read): Declare buf in smallest
context.
2010-09-13 20:16:51 +02:00
Vladimir 'phcoder' Serbinenko
54ac3cd189 * grub-core/video/efi_gop.c: Fix over-80-chars line.
* grub-core/video/efi_uga.c: Likewise.
2010-09-13 20:10:41 +02:00
Vladimir 'phcoder' Serbinenko
b2a30ac5e4 Filter devaliases and never open same device twice.
* grub-core/disk/ieee1275/ofdisk.c (last_devpath): New variable.
	(last_ihandle): Likewise.
	(ofdisk_hash_ent): New member shortest.
	(ofdisk_hash_add): Add canonical path too.
	(scan): New function.
	(grub_ofdisk_iterate): Iterate over hashed entries.
	(compute_dev_path): Don't add :0.
	(grub_ofdisk_open): Don't really open the disk.
	(grub_ofdisk_close): Avoid closing unrelated disk.
	(grub_ofdisk_read): Implement reopen logic.
	* grub-core/kern/ieee1275/openfw.c (grub_ieee1275_canonicalise_devname):
	New function.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_canonicalise_devname):
	New proto.
2010-09-13 19:17:29 +02:00
Vladimir 'phcoder' Serbinenko
fb53b340aa Fix sparc64.
* configure.ac (GRUB_KERNEL_MACHINE_LINK_ADDR): Removed.
	* grub-core/Makefile.core.def (kernel): Make ldflags just use the
	right address. Add sparc64_ieee1275_ldflags.
	* grub-core/loader/sparc64/ieee1275/linux.c: Remove leftover include.
	* util/grub-mkimagexx.c (locate_sections): Correct grub_host_to_target32
	to grub_host_to_target_addr
	(load_image): Likewise.
2010-09-13 16:49:50 +02:00
Vladimir 'phcoder' Serbinenko
f452b04048 * grub-core/normal/completion.c (complete_file): Handle device
containing slash.
	Fix based on patch by Doug Nazar.
2010-09-13 14:26:55 +02:00
Vladimir 'phcoder' Serbinenko
9b5b2541a2 grub-mknetdir script.
* Makefile.util.def (grub-mknetdir): New module.
	* tests/util/grub-shell.in: Support boot=net
	* util/grub-mknetdir.in: New file.
2010-09-13 14:03:05 +02:00
Vladimir 'phcoder' Serbinenko
9d2be652d4 videoinfo on non-vbe.
* grub-core/Makefile.core.def (vbeinfo): Removed.
	(vbetest): Removed.
	(videoinfo): New module.
	* grub-core/commands/i386/pc/vbeinfo.c: Removed.
	* grub-core/commands/i386/pc/vbetest.c: Removed.
	* grub-core/commands/videoinfo.c: New file.
	* grub-core/commands/videotest.c (grub_cmd_videotest): Support mode
	specification.
	(grub_cmd_videotest) [GRUB_MACHINE_PCBIOS]: Load vbe.mod when invoked
	as vbetest.
	(GRUB_MOD_INIT) [GRUB_MACHINE_PCBIOS]: New command vbetest.
	(GRUB_MOD_FINI) [GRUB_MACHINE_PCBIOS]: Unregister vbetest.
	* grub-core/video/efi_gop.c (grub_video_gop_fill_mode_info): Fill
	mode_number. New parameter mode. All users updated.
	(grub_video_gop_iterate): New function.
	(grub_video_efi_gop): New member iterate.
	* grub-core/video/i386/pc/vbe.c (framebuffer): Removed leftover fields.
	(grub_vbe_set_video_mode): Remove setting useless fields.
	(vbe2videoinfo): New function.
	(grub_video_vbe_iterate): Likewise.
	(grub_video_vbe_setup): Use vbe2videoinfo.
	(grub_video_vbe_print_adapter_specific_info): New function.
	(grub_video_vbe_adapter): New fields iterate and
	print_adapter_specific_info.
	* include/grub/video.h (GRUB_VIDEO_MODE_*): Transform into enum.
	All users updated.
	(grub_video_mode_info): New field mode_number.
	(grub_video_adapter): New fields iterate and
	print_adapter_specific_info.
2010-09-13 13:38:13 +02:00
Tristan Gingold
179503f524 * grub-core/commands/efi/lsefisystab.c: New file.
* grub-core/commands/efi/lssal.c: Likewise.
	* grub-core/Makefile.core.def (lsacpi): New module.
	(lsefisystab): Likewise.
	* include/grub/efi/api.h (GRUB_EFI_SAL_TABLE_GUID): New definition.
	(GRUB_EFI_HCDP_TABLE_GUID): Likewise.
	(grub_efi_sal_system_table): New struct.
	(grub_efi_sal_system_table_entrypoint_descriptor): Likewise.
	(grub_efi_sal_system_table_memory_descriptor): Likewise.
	(grub_efi_sal_system_table_platform_features): Likewise.
	(grub_efi_sal_system_table_translation_register_descriptor): Likewise.
	(grub_efi_sal_system_table_purge_translation_coherence): Likewise.
	(grub_efi_sal_system_table_ap_wakeup): Likewise.
	* include/grub/types.h (PRIuGRUB_UINT64_T): New definition.

	Also-By: Robert Millan <rmh.grub@aybabtu.com>

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-09-13 13:14:44 +02:00
Vladimir 'phcoder' Serbinenko
cf9827de73 Support explicit user claim that a device is BIOS-visible.
* grub-core/kern/emu/getroot.c (grub_util_get_dev_abstraction):
	Return GRUB_DEV_ABSTRACTION_NONE if device is in device.map.
	* grub-core/kern/emu/hostdisk.c
	(convert_system_partition_to_system_disk): Support mdX.
	(find_system_device): New parameter add. All users updated.
	(grub_util_biosdisk_is_present): New function.
	* include/grub/emu/hostdisk.h (grub_util_biosdisk_is_present): New
	proto.
2010-09-13 13:09:58 +02:00
Vladimir 'phcoder' Serbinenko
53f0eb1f64 Search hints support.
* commands/search.c (FUNC_NAME): New arguments hints and nhints.
	All users updated.
2010-09-13 13:01:41 +02:00
Yves Blusseau
b23ffd70eb Bash completion script for util commands
* Makefile.am:  Add util/bash-completion.d directory
    * configure.ac: Likewise.
    * util/bash-completion.d/Makefile.am: New file.
    * util/bash-completion.d/grub-completion.bash.in: Likewise.
2010-09-13 10:29:18 +02:00
Vladimir 'phcoder' Serbinenko
d547dc281c * grub-core/normal/term.c (put_glyphs_terminal): Correct sign.
(print_backlog): set backlog_ucs4 and backlog_glyphs.
	Reported by: Yves Blusseau.
2010-09-12 22:05:27 +02:00
Vladimir 'phcoder' Serbinenko
2fc8ccb97f * grub-core/normal/misc.c (grub_normal_print_device_info): Show
partition size and offset.
2010-09-12 20:18:50 +02:00
Vladimir 'phcoder' Serbinenko
d8a84076ea * grub-core/commands/wildcard.c (make_regex): Escape brackets. 2010-09-12 20:15:30 +02:00
Vladimir 'phcoder' Serbinenko
84fb3b3d73 * grub-core/commands/ls.c (grub_cmd_ls): Accept multiple files. 2010-09-12 20:12:16 +02:00
Vladimir 'phcoder' Serbinenko
768ec2e2ad * grub-core/kern/misc.c (grub_vprintf): Use va_copy when necessary.
(grub_xvasprintf): Likewise.
2010-09-12 14:00:44 +02:00
Vladimir 'phcoder' Serbinenko
4870900f8f * grub-core/kern/emu/main.c (main): Call hostfs_init only after init_all. 2010-09-12 13:55:52 +02:00
Vladimir 'phcoder' Serbinenko
faca6bec3b * grub-core/commands/menuentry.c (append_menu_entry): Don't rely on
args ending with NULL.
2010-09-12 13:53:12 +02:00
Vladimir 'phcoder' Serbinenko
788f1f3a85 * grub-core/lib/xzembed/xz_dec_stream.c (xz_dec_reset): Preserve context
pointer.
2010-09-12 13:50:24 +02:00
Szymon Janc
3c70f225b2 * grub-core/commands/lsacpi.c (grub_cmd_lsacpi): Fix prototype. 2010-09-11 20:08:37 +02:00
Vladimir 'phcoder' Serbinenko
4df7996d87 Shutdown using ACPI.
* grub-core/Makefile.core.def (halt): Add commands/acpihalt.c on i386-pc.
	* grub-core/commands/acpihalt.c: New file.
	* grub-core/commands/i386/pc/halt.c (grub_cmd_halt): Call grub_acpi_halt.
	* include/grub/acpi.h (grub_acpi_fadt): New member pm1a.
	(grub_acpi_halt): New proto.
	(GRUB_ACPI_SLP_EN): New const.
	(GRUB_ACPI_SLP_TYP_OFFSET): Likewise.
	(GRUB_ACPI_OPCODE_*): New enum.
	(GRUB_ACPI_EXTOPCODE_*): Likewise.
2010-09-11 17:59:14 +02:00
Tristan Gingold
126b4c32ab * commands/lsacpi.c: New file.
* grub-core/Makefile.core.def (lsacpi): New module.
	* include/grub/acpi.h (GRUB_ACPI_FADT_SIGNATURE): New definition.
	(GRUB_ACPI_MADT_SIGNATURE): Likewise.
	(grub_acpi_madt_entry_header): New struct.
	(grub_acpi_madt): Likewise.
	(grub_acpi_madt_entry_interrupt_override): Likewise.
	(grub_acpi_madt_entry_sapic): Likewise.
	(grub_acpi_madt_entry_lsapic): Likewise.
	(grub_acpi_madt_entry_platform_int_source): Likewise.
	* include/grub/types.h (PRIxGRUB_UINT32_T): New definition.
	(PRIuGRUB_UINT32_T): Likewise.
	(PRIxGRUB_UINT64_T): Likewise.

	Also-By: Robert Millan <rmh.grub@aybabtu.com>

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-09-11 17:48:54 +02:00
Vladimir 'phcoder' Serbinenko
1aa4fe8822 Implement loading palette on ieee1275_fb.
* grub-core/video/ieee1275.c (stdout_ihandle): New variable.
	(have_setcolors): Likewise.
	(grub_video_ieee1275_init): Fill stdout_ihandle and have_setcolors.
	(grub_video_ieee1275_setup): Use grub_video_ieee1275_set_palette.
	(grub_video_ieee1275_set_palette): Implement.
2010-09-11 17:41:56 +02:00
Vladimir 'phcoder' Serbinenko
76e61597b4 Merge mainline into install 2010-09-11 17:28:46 +02:00
Vladimir Serbinenko
25761e13ee * util/grub-install.in (grub_partition): New variable.
Set prefix_drive on EFI and PC to (,$grub_partition) as last resort.
	* util/i386/pc/grub-setup.c (setup): Don't touch prefix.
	Fixes a bug reported by Yves Blusseau.
2010-09-11 17:21:48 +02:00
Vladimir 'phcoder' Serbinenko
050abaeaa8 Fix emu on mipsel.
* conf/Makefile.common (CFLAGS_PLATFORM): Add -mflush-func
	=grub_cpu_flush_cache on all mips and not only yeeloong.
	* configure.ac (COND_mips): New conditional.
	* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add libgcc on all
	platforms.
	* grub-core/kern/emu/cache.S (__mips__): Use _flush_cache.
	* grub-core/kern/emu/full.c (grub_arch_dl_init_linker)
	[GRUB_LINKER_HAVE_INIT]: New function.
	(grub_emu_post_init): Likewise.
	* grub-core/kern/emu/lite.c (grub_emu_post_init): Likewise.
	* grub-core/kern/emu/main.c: Use grub_emu_post_init.
	* include/grub/cache.h (_mips): Include mips/cache.h.
	* include/grub/disk.h [GRUB_UTIL || GRUB_MACHINE_EMU]: Add missing
	LVM and RAID prototypes.
	* include/grub/emu/misc.h (grub_emu_post_init): New proto.
	* include/grub/mips/time.h (grub_cpu_idle) [GRUB_MACHINE_EMU]: New
	function.
2010-09-11 16:58:06 +02:00
Vladimir 'phcoder' Serbinenko
038272a5c5 Merge mainline into install 2010-09-11 16:38:37 +02:00
Colin Watson
5ed7d816b4 * util/grub-install.in: Don't try to verify core.img until after
running grub-mkimage to create it.
2010-09-10 23:15:56 +01:00
Robert Millan
90367e043d 2010-09-10 Robert Millan <rmh@gnu.org>
* util/grub.d/10_hurd.in: Add misc readability checks.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
2010-09-10 15:11:54 +02:00
Colin Watson
c452fa66dd * util/grub-install.in: ${imgext} won't be defined here until the
install branch is merged.  For the meantime, only verify core.img on
i386-pc and sparc64-ieee1275 platforms.
2010-09-10 13:47:16 +01:00
Robert Millan
c38fe9f48e 2010-09-10 Robert Millan <rmh@gnu.org>
Solaris support in grub_find_zpool_from_dir().  Thanks
	Seth Goldberg for referring to getextmntent() facility.
	
	* configure.ac: Check for getextmntent(), `sys/mnttab.h' and
	`sys/mkdev.h'.
	* grub-core/kern/emu/misc.c [HAVE_SYS_MNTTAB_H]: Include
	`<sys/mnttab.h>'.
	[HAVE_SYS_MKDEV_H]: Include `<sys/mkdev.h>'.
	[HAVE_GETEXTMNTENT] (grub_find_zpool_from_dir): Add getextmntent()
	method for finding zpool name.
2010-09-10 14:32:28 +02:00
Colin Watson
905f7773e5 grub-fstest needs the host and hostfs modules while other utilities
actively require those modules to be absent, so grub-fstest needs
its own initialisation and finalisation code.
* Makefile.am (grub_fstest.pp): New target.
(grub_fstest_init.lst): Likewise.
(grub_fstest_init.c): Likewise.
* Makefile.util.def (grub-fstest): Add grub_fstest_init.c.
2010-09-10 13:20:21 +01:00
Robert Millan
fb90b54648 2010-09-10 Robert Millan <rmh@gnu.org>
* configure.ac: Check for `struct statfs.f_fstypename' and
	`struct statfs.f_mntfromname'.
	
	* grub-core/kern/emu/misc.c (grub_find_zpool_from_dir): Conditionalize
	kFreeBSD-specific code.
2010-09-10 14:02:54 +02:00
Robert Millan
66d4bea5cc 2010-09-10 Robert Millan <rmh@gnu.org>
* util/grub.d/10_kfreebsd.in: Fix ${kfreebsd_device} initialization
	on ZFS.  Now non-main filesystems are supported as / too.
2010-09-10 13:35:23 +02:00
Colin Watson
b6a690eeb8 * Makefile.util.def (libgrub.a): Move grub-core/kern/emu/hostfs.c
and grub-core/disk/host.c to ...
(grub-fstest): ... here.  Having the host disk implementation
present confuses grub-probe and other utility programs.
* util/grub-mkconfig.in: Only verify readability of grub.cfg.new
when writing to a file, not when writing to stdout.
2010-09-09 17:17:45 +01:00
bvk.groups@gmail.com
8901b00c88 * tests/partmap_test.in: New test for partitions.
* Makefile.util.def: Rules for new test.
2010-09-09 21:24:17 +05:30
Robert Millan
7bf45fdd31 2010-09-09 Robert Millan <rmh@gnu.org>
* util/grub-probe.c (probe): Fix a pair of unhandled error
	conditions.
2010-09-09 01:16:05 +02:00
Robert Millan
4dfbc57428 2010-09-09 Robert Millan <rmh@gnu.org>
Basic Btrfs support (detection and UUID).
	
	* grub-core/fs/btrfs.c: New file.
	* Makefile.util.def (library): Register btrfs.c.
	* grub-core/Makefile.core.def: Likewise.
2010-09-09 01:12:10 +02:00
Robert Millan
f637773235 2010-09-08 Robert Millan <rmh@gnu.org>
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Improve
	with (optional) parameters to specify device and relative path.
	* util/grub-install.in: Use is_path_readable_by_grub() to
	verify readability of a few critical files.
	* util/grub-mkconfig.in: Use is_path_readable_by_grub() to
	verify readability of grub.cfg.new.
2010-09-08 23:41:27 +02:00
Robert Millan
6b8e78aee3 2010-09-08 Robert Millan <rmh@gnu.org>
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Improve
	with (optional) parameters to specify device and relative path.
	* util/grub-install.in: Use is_path_readable_by_grub() to
	verify readability of a few critical files.
	* util/grub-mkconfig.in: Use is_path_readable_by_grub() to
	verify readability of grub.cfg.new.
2010-09-08 23:35:53 +02:00
Vladimir 'phcoder' Serbinenko
27f21a8bb6 Add forgotten commit part 2010-09-08 21:01:20 +02:00
Yves Blusseau
c0e53ea537 Add new --boot-directory option to replace --root-directory
* util/grub-install.in: Add new --boot-directory option
	* util/grub-reboot.in: Likewise.
	* util/grub-set-default.in: Likewise.
2010-09-08 17:25:29 +02:00
Yves Blusseau
b9fe6ea2ea * util/grub-mkconfig.in: Use new variable. 2010-09-08 17:21:32 +02:00
Yves Blusseau
d87aedff34 * configure.ac: Define some useful variables. 2010-09-08 17:19:27 +02:00
Vladimir 'phcoder' Serbinenko
e55e8495e1 * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
GRUB_IEEE1275_FLAG_HAS_CURSORONOFF when appropriate.
	* grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_setcursor):
	Use terminfo and don't use cursor-on/cursor-off unless it's known
	to work.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New element
	GRUB_IEEE1275_FLAG_HAS_CURSORONOFF.
2010-09-08 16:15:57 +02:00
Vladimir 'phcoder' Serbinenko
6ed71f4831 merge mainline into install 2010-09-08 15:05:42 +02:00
Colin Watson
6fa6d6751d * grub-core/kern/efi/init.c (grub_efi_set_prefix): If the prefix
starts with "(,", fill the drive containing the loaded image in
between those two characters, but expect that a full partition
specification including partition map names will follow.
2010-09-08 13:53:47 +01:00
Robert Millan
92f2aef045 2010-09-08 Robert Millan <rmh@gnu.org>
* configure.ac: Remove `--enable-grub-fstest' option.
	* Makefile.util.def (grub-fstest): Remove COND_GRUB_FSTEST condition.
	
	* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Use
	`grub-fstest' instead of `grub-probe' for readability verification.
	* util/grub-probe.c (probe): Remove readability verification kludge.
2010-09-08 14:37:19 +02:00
Robert Millan
99fd620d5a 2010-09-08 Robert Millan <rmh@gnu.org>
* util/grub-mkconfig.in: Pass `--device ${GRUB_DEVICE}' when
	initializing `GRUB_FS'.
2010-09-08 14:29:32 +02:00
bvk.groups@gmail.com
058e30ac09 Not command (!) support to GRUB script.
* tests/grub_script_not.in: New test.
	* Makefile.util.def: Rules for new test.

	* grub-core/script/execute.c (grub_script_execute_cmdline): Handle
	! command as a special case.
	* grub-core/script/yylex.l (GRUB_PARSER_TOKEN_NOT): Removed.
2010-09-08 09:21:02 +05:30
bvk.groups@gmail.com
b61d05ed19 * grub-core/commands/wildcard.c (wildcard_expand): Fix wrong
grub_free.
2010-09-07 17:16:03 +05:30
bvk.groups@gmail.com
4d69c7863b * docs/grub.texi (Shell-like scripting): Fix @dots to @dots{}. 2010-09-07 11:00:37 +05:30
bvk.groups@gmail.com
aa3119c46f * docs/grub.texi (Shell-like scripting): Documentation for break,
continue, shift and return commands.
2010-09-07 09:39:14 +05:30
Vladimir 'phcoder' Serbinenko
db0f7e3d20 Rename CD-ROM to cd on BIOS.
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_drive): Recognise
	"cd".
	(grub_biosdisk_call_hook): Call with "cd" instead of arbitrary hdX.
2010-09-06 09:35:35 +02:00
Vladimir 'phcoder' Serbinenko
88b87c9313 * grub-core/kern/emu/main.c (main): Reinit LVM and RAID.
* util/grub-probe.c (main): Likewise.
	* util/i386/pc/grub-setup.c (main): Likewise.
	* util/sparc64/ieee1275/grub-setup.c (main): Likewise.
	Reported and debugged by: alexxy
2010-09-05 23:24:57 +02:00
Vladimir 'phcoder' Serbinenko
294f324d89 * grub-core/disk/lvm.c (grub_lvm_scan_device) [GRUB_UTIL]: Output more
diagnostic info.
2010-09-05 23:20:13 +02:00
Jo Shields
d7ee3441eb * util/grub.d/30_os-prober.in: Add missing classes. 2010-09-05 22:43:43 +02:00
Vladimir 'phcoder' Serbinenko
d7e06c1f0b * docs/grub.texi (Theme file format): Document new position format. 2010-09-05 20:33:03 +02:00
Vladimir 'phcoder' Serbinenko
fc157e539c * docs/grub.texi (Theme file format): Replace Box_slice_names.png with
a table. Use @code instead of @verbatim.
2010-09-05 20:17:34 +02:00
Colin D Bennett
506e9a1ce0 Gfxmenu documentation.
* docs/grub.texi (Theme file format): New chapter.
2010-09-05 20:04:10 +02:00
Szymon Janc
f0aff67c47 * grub-core/Makefile.core.def (xzio): New module.
* grub-core/io/xzio.c: New file.
	* grub-core/lib/xzembed/xz.h: New file (from xembed).
	* grub-core/lib/xzembed/xz_config.h: Likewise.
	* grub-core/lib/xzembed/xz_dec_bcj.c: Likewise.
	* grub-core/lib/xzembed/xz_dec_lzma2.c: Likewise.
	* grub-core/lib/xzembed/xz_dec_stream.c: Likewise.
	* grub-core/lib/xzembed/xz_lzma2.h: Likewise.
	* grub-core/lib/xzembed/xz_private.h: Likewise.
	* grub-core/lib/xzembed/xz_stream.h: Likewise.
	* include/grub/file.h (grub_file_filter_id): New compression filter
	GRUB_FILE_FILTER_XZIO.
2010-09-05 17:12:13 +02:00
Vladimir 'phcoder' Serbinenko
82a8506214 * include/grub/file.h (GRUB_FILE_SIZE_UNKNOWN): New definition.
* grub-core/disk/loopback.c (grub_loopback_open): Handle unknown file
	size.
2010-09-05 17:01:16 +02:00
Vladimir 'phcoder' Serbinenko
3579415d20 * include/grub/err.h (grub_err_t): Replace GRUB_ERR_BAD_GZIP_DATA with
GRUB_ERR_BAD_COMPRESSED_DATA. All users updated.
2010-09-05 16:55:49 +02:00
Vladimir 'phcoder' Serbinenko
5124ae6d4f Uncompressed checksum support.
* grub-core/commands/hashsum.c (options): Add option --uncompress.
	(check_list): New parameter uncompress.
	(grub_cmd_hashsum): Handle --uncompress.
2010-09-05 16:48:54 +02:00
Vladimir 'phcoder' Serbinenko
9aadb3d146 Add missing ChangeLog entry 2010-09-05 16:43:31 +02:00
Szymon Janc
a17792c324 * grub-core/lib/posix_wrap/sys/types.h (bool): Transform into an enum.
(uint8_t): New type.
	(uint16_t): Likewise.
	(uint32_t): Likewise.
	(uint64_t): Likewise.
2010-09-05 14:24:39 +02:00
Szymon Janc
b81e40a379 * include/grub/crypto.h (GRUB_MD_CRC32): New definition. 2010-09-05 14:18:31 +02:00
Vladimir 'phcoder' Serbinenko
fc2ef1172c * grub-core/io/gzio.c (grub_gzio_open): Removed "transparent" parameter.
Made static.
	(grub_gzfile_open): Removed. All users updated.
	(GRUB_MOD_INIT): New function.
	(GRUB_MOD_FINI): Likewise.
	* grub-core/kern/file.c (grub_file_filters_all): New variable.
	(grub_file_filters_enabled): Likewise.
	(grub_file_open): Handle filters.
	* grub-core/loader/i386/bsd.c (GRUB_MOD_INIT): Load gzio.
	* grub-core/normal/main.c (GRUB_MOD_INIT): Likewise.
	* include/grub/file.h (grub_file_filter_id_t): New type.
	(grub_file_filter_t): Likewise.
	(grub_file_filters_all): New extern variable.
	(grub_file_filters_enabled): Likewise.
	(grub_file_filter_register): New inline function.
	(grub_file_filter_unregister): Likewise.
	(grub_file_filter_disable): Likewise.
	(grub_file_filter_disable_compression): Likewise.
	* include/grub/gzio.h: Removed.
2010-09-05 13:05:36 +02:00
BVK Chaitanya
35ee15e09a Filename expansion support for wildcards in GRUB script.
* tests/grub_script_expansion.in: New test.
	* Makefile.util.def: Rule for new test.

	* grub-core/commands/wildcard.c: New file, implements filename
	expansion support for GRUB script.
	* grub-core/Makefile.core.def: Rule update for regexp.mod.
	* grub-core/script/argv.c: Cosmetic changes.
	* grub-core/script/execute.c (grub_script_arglist_to_argv):
	Refactored to perform wildcard expansion on arguments.
	* include/grub/script_sh.h (grub_script_wildcard_translator): New
	struct.

	* tests/util/grub-shell.in: Fix quoting for read input.
2010-09-04 22:45:34 +05:30
BVK Chaitanya
5f0c4acaca Support for updating environment variables with matched substrings
of regexp.

	* tests/grub_cmd_regexp.in: New test.
	* Makefile.util.def: Rule for new test.

	* grub-core/commands/regexp.c: New option -s to update environment
	variables with regexp matches.
2010-09-04 22:19:58 +05:30
Szymon Janc
3759a35f75 * include/grub/file.h (grub_file): New member not_easly_seekable.
(grub_file_seekable): New inline function.
	* grub-core/io/gzio.c (test_header): Don't test end magic if file isn't
	easily seekable.
	(grub_gzio_open): Set not_easly_seekable.
	* grub-core/fs/i386/pc/pxe.c (grub_pxefs_open): Set not_easily_seekable.
	* grub-core/io/bufio.c (grub_bufio_open): Propagate not_easily_seekable.
2010-09-04 18:28:42 +02:00
BVK Chaitanya
ed8c6dec96 Support for options to appear multiple times on cmdline.
* include/grub/lib/arg.h (grub_arg_list_alloc): New prototype.
	* grub-core/commands/extcmd.c: Support for repeatable option.
	* grub-core/lib/arg.c (grub_arg_list_alloc): New function for
	repeatable option support.

	Refactor menuentry into a regular command.

	* grub-core/commands/menuentry.c: New file, menuentry command
	implementation.
	* grub-core/Makefile.core.def: Rule update for normal.mod.
	* grub-core/normal/main.c: Moved menuentry creation to
	grub-core/commands/menuentry.c.
	* grub-core/normal/menu.c (grub_menu_execute_entry): Removed.
	(grub_menu_execute_entry_real): Removed.
	* grub-core/script/execute.c (grub_script_execute_sourcecode): New
	function.
	(grub_script_execute_menuentry): Removed.
	* grub-core/script/parser.y (menuentry): Removed.
	* grub-core/script/script.c (grub_script_create_cmdmenu): Removed.
	* grub-core/script/yylex.l (menuentry): Removed.
	* include/grub/menu.h (grub_menu_init): New prototype.
	(grub_menu_fini): New prototype.
	* include/grub/normal.h (grub_normal_add_menu_entry): Removed.
	* include/grub/script_sh.h (grub_script_cmd_menuentry): Removed.
	(grub_script_execute_sourcecode): New prototype.
2010-09-04 21:43:54 +05:30
BVK Chaitanya
dacd0cf07a "return" command for GRUB script functions.
* tests/grub_script_return.in: New test.
	* Makefile.util.def: Rules for new test.

	* grub-core/script/execute.c (grub_script_return): New function.
	* grub-core/script/main.c: Register/unregister return commaond.
	* include/grub/script_sh.h (grub_script_return): New prototype.
2010-09-04 20:53:09 +05:30
BVK Chaitanya
52e72f9d46 "setparams" command to update positional parameters.
* tests/grub_script_setparams.in: New test.
	* Makefile.util.def: Rules for new test.

	* grub-core/script/argv.c (grub_script_argv_make): New function.
	* grub-core/script/execute.c (replace_scope): New function.
	(grub_script_setparams): New function.
	* grub-core/script/lexer.c: Remove unused variables.
	* grub-core/script/main.c: Register/unregister setparams command.
	* include/grub/script_sh.h (grub_script_argv_make): New prototype.
	(grub_script_setparams): New prototype.
2010-09-04 20:27:48 +05:30
BVK Chaitanya
25b60c913b * grub-core/normal/completion.c (grub_normal_do_completion): Fix
grub_free order.
2010-09-04 14:19:04 +05:30
BVK Chaitanya
37e7bf68c5 Support for passing block of commands as an argument to
extcmds.

	* Makefile.util.def: Rules for new test.
	* tests/grub_script_blockarg.in: New test.
	* grub-core/tests/test_blockarg.c: New file, block argument
	command used in the test.

	* include/grub/extcmd.h (grub_extcmd_context): New struct.
	(grub_register_extcmd_prio): New function prototype.
	(grub_extcmd_dispatcher): New function prototype.
	* include/grub/command.h (GRUB_COMMAND_FLAG_BLOCKS): New command
	type.
	* include/grub/script_sh.h (struct grub_script): New members
	`children', `next_siblings' and `refcnt' for block arguments and
	reference counting.
	(GRUB_SCRIPT_ARG_TYPE_BLOCK): New argument type.
	(grub_script_arg): New member `script' for block argument.
	(grub_script_argv): New member `script' for block argument.
	(grub_parser_param): New member `scripts' for block argument.
	(grub_script_mem_free): New extern function prototype.
	(grub_script_ref): New function prototype.
	(grub_script_unref): New function prototype.

	* grub-core/normal/dyncmd.c (grub_dyncmd_dispatcher): Moved to
	extcmd form to support block arguments.
	* grub-core/script/argv.c: Block arguments support.
	* grub-core/script/execute.c: Likewise.
	* grub-core/script/lexer.c: Likewise.
	* grub-core/script/main.c: Likewise.
	* grub-core/script/script.c: Likewise.
	* grub-core/script/parser.y: Likewise.  New `block' and `block0'
	non-terminals.

	* grub-core/commands/acpi.c: Update extcmd implementations with
	grub_extcmd_context_t.
	* grub-core/commands/cat.c: Likewise.
	* grub-core/commands/echo.c: Likewise.
	* grub-core/commands/extcmd.c: Likewise.
	* grub-core/commands/hashsum.c: Likewise.
	* grub-core/commands/hdparm.c: Likewise.
	* grub-core/commands/help.c: Likewise.
	* grub-core/commands/hexdump.c: Likewise.
	* grub-core/commands/i386/cpuid.c: Likewise.
	* grub-core/commands/i386/pc/drivemap.c: Likewise.
	* grub-core/commands/i386/pc/halt.c: Likewise.
	* grub-core/commands/i386/pc/sendkey.c: Likewise.
	* grub-core/commands/iorw.c: Likewise.
	* grub-core/commands/keystatus.c: Likewise.
	* grub-core/commands/loadenv.c: Likewise.
	* grub-core/commands/ls.c: Likewise.
	* grub-core/commands/lspci.c: Likewise.
	* grub-core/commands/memrw.c: Likewise.
	* grub-core/commands/probe.c: Likewise.
	* grub-core/commands/search_wrap.c: Likewise.
	* grub-core/commands/setpci.c: Likewise.
	* grub-core/commands/sleep.c: Likewise.
	* grub-core/disk/loopback.c: Likewise.
	* grub-core/hello/hello.c: Likewise.
	* grub-core/loader/i386/bsd.c: Likewise.
	* grub-core/loader/xnu.c: Likewise.
	* grub-core/term/gfxterm.c: Likewise.
	* grub-core/term/serial.c: Likewise.
	* grub-core/tests/lib/functional_test.c: Likewise.
2010-09-04 09:13:30 +05:30
BVK Chaitanya
888d1500b2 Multi-line quoted strings support.
* grub-core/script/lexer.c (append_newline): Removed.
	(grub_script_lexer_yywrap): Refactored.
	(grub_script_lexer_init): Refactored.
	* grub-core/script/yylex.l (yywrap): New function.
	(grub_lexer_resplit): New function.
	(grub_lexer_unput): New function.
	* include/grub/script_sh.h (grub_lexer_param): New members, unput
	and resplit.
	* tests/grub_script_echo1.in: Added few more testcases.
2010-09-04 08:43:35 +05:30
Vladimir 'phcoder' Serbinenko
dda060dd0f * grub-core/kern/misc.c: Don't add abort alias in utils.
Reported by: echoline.
2010-09-04 02:18:48 +02:00
BVK Chaitanya
6556eba9c6 Add missing files into "make dist" tarball for other platforms.
* gentpl.py (script): Use dist_noinst_DATA instead of EXTRA_DIST.
	* conf/Makefile.common (dist_noinst_DATA): New variable.
	* conf/Makefile.extra-dist: Added missing make dist files.
	* grub-core/Makefile.core.def: Likewise.
2010-09-03 21:23:00 +05:30
Vladimir 'phcoder' Serbinenko
c8e7bf5ff7 Compress grub_prefix.
* grub-core/boot/i386/pc/lnxboot.S: Use
	GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE.
	* grub-core/kern/i386/pc/startup.S: Move grub_prefix to compressed part.
	* include/grub/offsets.h: Rename GRUB_MACHINE_DATA_END to
	GRUB_MACHINE_PREFIX_END. All users updated.
	(GRUB_KERNEL_I386_PC_PREFIX): Set to GRUB_KERNEL_I386_PC_RAW_SIZE.
	(GRUB_KERNEL_I386_PC_PREFIX_END): Set to GRUB_KERNEL_I386_PC_PREFIX
	+ 0x40.
	(GRUB_KERNEL_I386_PC_RAW_SIZE): Decrease.
	* util/grub-mkimage.c (image_target_desc): Change data_end to
	prefix_end. All users updated.
2010-09-03 14:54:04 +02:00
Vladimir 'phcoder' Serbinenko
a7c00cdb94 * grub-core/loader/i386/bsd.c (grub_freebsd_boot): Set %ebp to sane
value.
	(grub_openbsd_boot): Likewise.
	(grub_netbsd_boot): Likewise.
	* grub-core/loader/i386/xnu.c (grub_xnu_boot_resume): Likewise.
	(grub_xnu_boot): Likewise.
2010-09-03 14:05:19 +02:00
Vladimir 'phcoder' Serbinenko
9f915872ef * configure.ac: Clean LIBS variable after tests. 2010-09-03 03:26:22 +02:00
Colin Watson
efa1bee7a1 * INSTALL: Document that libdevmapper needs to be 1.02.34 or later. 2010-09-02 23:57:21 +01:00
Vladimir 'phcoder' Serbinenko
61d720e535 * configure.ac: Check for dm_log_with_errno_init in libdevmapper and
echo if libdevmapper will be used.
2010-09-03 00:53:41 +02:00
Ian Turner
ef8e0ec8ed * grub-core/fs/i386/pc/pxe.c (grub_pxefs_read): Keep the blocksize
constant for the same file.
2010-09-02 23:59:27 +02:00
Vladimir 'phcoder' Serbinenko
03e261d84c * grub-core/kern/i386/multiboot_mmap.c: Remove leftover include. 2010-09-02 23:50:07 +02:00
Colin Watson
c2a4eba698 * .bzrignore: Add *.pp, **/.dirstamp, grub-core/*.module, and
grub-core/*.pp.
2010-09-02 22:42:36 +01:00
Colin Watson
9056cbf38e Zero %ebp and %edi when entering Linux's 32-bit entry point, as
required by the boot protocol.
* include/grub/i386/relocator.h (struct grub_relocator32_state): Add
ebp and edi members.
* grub-core/lib/i386/relocator.c (grub_relocator_boot): Handle
state.ebp and state.edi.
* grub-core/lib/i386/relocator32.S (grub_relocator32_start): Set
%ebp and %edi according to grub_relocator32_ebp and
grub_relocator32_edi respectively.
* grub-core/loader/i386/linux.c (grub_linux_boot): Zero state.ebp
and state.edi.
2010-09-02 22:36:09 +01:00
Vladimir 'phcoder' Serbinenko
529cc99acf Add i386-pc-pxe image target.
* util/grub-mkimage.c (image_target_desc): New enum value
	IMAGE_I386_PC_PXE.
	(image_targets): New target i386-pc-pxe.
	(generate_image): Handle i386-pc-pxe image.
2010-09-02 16:07:52 +02:00
Vladimir 'phcoder' Serbinenko
9a09392057 Fix grub_pxe_scan.
* grub-core/fs/i386/pc/pxe.c (grub_pxe_pxenv): Put correct type bangpxe.
	(grub_pxe_scan): Fix types and pxe_rm_entry computation.
	All users updated.
	* include/grub/i386/pc/pxe.h (grub_pxe_bangpxe): New struct.
	(grub_pxe_pxenv): Correct type.
2010-09-02 15:47:03 +02:00
Colin Watson
f9cefc4eb3 * NEWS: Document most of the important changes since 1.98. 2010-09-01 18:15:46 +01:00
Colin Watson
4066f57f19 * util/grub-mkrescue.in (usage): Tidy up usage output (and hence
generated manual page) a little.
2010-09-01 10:32:34 +01:00
Colin Watson
da2891f962 * docs/grub.texi: Add myself as an author. 2010-09-01 10:29:30 +01:00
Vladimir 'phcoder' Serbinenko
ad717faeff * Makefile.util.def (libgrub.a): Add missing sunpc.
Reported by: Seth Goldberg.
2010-09-01 01:09:00 +02:00
Vladimir 'phcoder' Serbinenko
21ed554bb0 Interrupt wrapping and code simplifications.
* Makefile.util.def (grub-mkrescue): Use x86 tg instead of
	x86_noieee1275 which are functionaly equivalent in this case.
	(grub-install): Make source on each platform explicit. Enable on
	all noemu.
	* gentpl.py (x86_efi_pc): Removed group.
	(x86_noefi): Likewise.
	(i386_noefi): Likewise.
	(x86_noieee1275): Likewise.
	(i386_noieee1275): Likewise.
	(i386_noefi_noieee1275): Likewise.
	(i386_pc_qemu_coreboot): Likewise.
	(i386_coreboot_multiboot): Likewise.
	(i386_pc_coreboot_multiboot_qemu): Likewise.
	(x86_noefi_mips): Likewise.
	(noieee1275): Likewise.
	(ieee1275_mips): Likewise.
	(noemu_noieee1275): Likewise.
	(cmos): New group.
	(usb): Likewise.
	(videoinkernel): Likewise.
	(videomodules): Likewise.
	* grub-core/Makefile.am (KERNEL_HEADER_FILES): Remove
	include/grub/elf.h, include/grub/elfload.h, include/grub/net.h,
	include/grub/reader.h, include/grub/symbol.h, include/grub/types.h,
	include/grub/loader.h, include/grub/msdos_partition.h,
	include/grub/machine/biosdisk.h, include/grub/machine/boot.h,
	include/grub/machine/console.h, include/grub/machine/vga.h,
	include/grub/machine/vbe.h, include/grub/machine/init.h,
	include/grub/machine/kernel.h, include/grub/cpu/time.h,
	include/grub/cpu/types.h, include/grub/gzio.h and include/grub/menu.h
	(KERNEL_HEADER_FILES) [i386-pc]: Add include/grub/machine/int.h.
	(KERNEL_HEADER_FILES) [i386-ieee1275]: Add include/grub/i386/pit.h
	* grub-core/Makefile.core.def (kernel): Explicit the source for
	startup. Explicit the platforms using kern/generic/rtc_get_time_ms.c.
	Split ieee1275_mips. Remove kern/i386/halt.c. Remove kern/i386/misc.S.
	Enable kern/i386/pit.c on all x86. Remove kern/i386/ieee1275/init.c.
	Use videoinkernel tag.
	(usb): Enable on all usb.
	(usbserial_common): Likewise.
	(usbserial_pl2303): Likewise.
	(usbserial_ftdi): Likewise.
	(uhci): Enable on all x86.
	(ohci): Enable on all pci.
	(cmostest): Enable on all CMOS.
	(acpi): Include commands/acpi.c on all platforms.
	(halt): Add relevant lib/*/halt.c.
	(hdparm): Enable on all pci.
	(lspci): Likewise.
	(usbtest): Enable on all usb.
	(ata): Enable on all pci.
	(ata_pthru): Likewise.
	(usbms): Enable on all usb.
	(usb_keyboard): Likewise.
	(font): Use tag videomodules.
	(bufio): Likewise.
	(datetime): Use tag cmos. Enable on all noemu.
	(mmap): Use tags common and x86.
	(gfxterm): Use tag videomodules.
	(bitmap): Likewise.
	(bitmap_scale): Likewise.
	(video_fb): Likewise.
	(video): Likewise.
	* grub-core/bus/usb/ohci.c (grub_ohci_td): Make link_td a pointer and
	adjust padding accordingly. All users updated.
	(grub_ohci_transaction): Fix bad format specification.
	(GRUB_MOD_INIT): Add asserts for struct size.
	* grub-core/bus/usb/uhci.c (grub_uhci_pci_iter): Add explicit casts.
	(grub_alloc_td): Likewise.
	(grub_free_queue): Likewise.
	(grub_uhci_transfer): Likewise.
	(grub_uhci_transaction): Fix bad format specification.
	* grub-core/bus/usb/usbtrans.c (grub_usb_control_msg): Likewise.
	(grub_usb_bulk_readwrite): Likewise.
	* grub-core/kern/i386/misc.S (grub_stop): Moved from here ...
	* grub-core/commands/i386/pc/halt.c (stop): ...here. Transformed into C.
	Made static.
	* grub-core/lib/i386/halt.c (stop): ... and here. Transformed into C.
	Made static.
	* grub-core/kern/i386/pc/startup.S (grub_halt): Moved from here ...
	* grub-core/commands/i386/pc/halt.c (grub_halt): ...here.
	Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_int13_extensions):
	Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_int13_extensions):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_standard):
	Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_standard):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_check_int13_extensions): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_check_int13_extensions): ... here. Transformed into C.
	Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_cdinfo_int13_extensions): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_cdinfo_int13_extensions): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_diskinfo_int13_extensions): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_diskinfo_int13_extensions): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_diskinfo_standard): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_diskinfo_standard): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_num_floppies): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_num_floppies): ... here.
	Transformed into C. Made static.
	* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_diskinfo_real):
	New function.
	* grub-core/kern/i386/pc/startup.S (grub_pxe_scan): Moved from here ...
	* grub-core/fs/i386/pc/pxe.c (grub_pxe_scan): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_rm_entry): Moved from here ...
	* grub-core/fs/i386/pc/pxe.c (grub_rm_entry): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/ieee1275/init.c: Removed.
	* grub-core/kern/i386/misc.S: Likewise.
	* grub-core/kern/i386/pc/startup.S (grub_get_memsize):
	Splitted from here ...
	* grub-core/kern/i386/pc/init.c (grub_get_conv_memsize): ... here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/mmap.c (grub_get_ext_memsize): ... and here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/startup.S (grub_get_eisa_mmap):
	Moved from here...
	* grub-core/kern/i386/pc/mmap.c (grub_get_eisa_mmap): ... here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/startup.S (grub_get_mmap_entry):
	Moved from here...
	* grub-core/kern/i386/pc/mmap.c (grub_get_mmap_entry): ... here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/startup.S (grub_stop_floppy):
	Removed (replaced by C version).
	* grub-core/kern/i386/pc/startup.S (grub_vga_set_mode):
	Moved from here...
	* grub-core/video/i386/pc/vga.c (grub_vga_set_mode): ...here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_controller_info):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_controller_info):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode_info):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode_info):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_mode):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_mode):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S
	(grub_vbe_bios_getset_dac_palette_width):Moved from here...
	* grub-core/video/i386/pc/vbe.c
	(grub_vbe_bios_getset_dac_palette_width):... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_memory_window):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_memory_window):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_memory_window):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_memory_window):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_scanline_length):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_scanline_length):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_scanline_length):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_scanline_length):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_display_start):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_display_start):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_display_start):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_display_start):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_palette_data):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_palette_data):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_pxe_call): Receive
	pxe_rm_entry as third argument.
	(grub_bios_interrupt): New function.
	* grub-core/kern/i386/qemu/mmap.c: Remove useless include.
	* grub-core/kern/i386/qemu/startup.S (codestart): Do cli;hlt instead
	of calling grub_stop.
	* grub-core/kern/efi/efi.c (grub_halt): Moved from here ...
	* grub-core/lib/efi/halt.c (grub_halt): ...here.
	* grub-core/kern/emu/main.c (grub_halt): Moved from here ...
	* grub-core/lib/emu/halt.c (grub_halt): ... here.
	* grub-core/lib/i386/halt.c: Moved from here ...
	* grub-core/lib/i386/halt.c: ... here.
	* grub-core/kern/ieee1275/openfw.c (grub_halt): Moved from here ...
	* grub-core/lib/ieee1275/halt.c (grub_halt): ... here.
	* grub-core/loader/i386/pc/linux.c (grub_linux16_boot): Call
	grub_stop_floppy.
	* grub-core/loader/i386/xnu.c (guessfsb) [IEEE1275]: Enable.
	* include/grub/i386/coreboot/init.h: Removed.
	* include/grub/i386/multiboot/init.h: Likewise.
	* include/grub/i386/pc/biosdisk.h: Removed all function prototypes.
	* include/grub/i386/pc/init.h: Likewise except grub_gate_a20.
	* include/grub/i386/pc/int.h: New file.
	* include/grub/i386/pc/pxe.h (GRUB_PXE_SIGNATURE): New definition.
	(grub_pxe_scan): Removed.
	(grub_pxe_call): Update prototype.
	* include/grub/i386/pc/vbe.h: Removed EXPORT_FUNC and useless
	prototypes.
	* include/grub/i386/pc/vga.h (grub_vga_set_mode): Removed.
	* include/grub/i386/qemu/init.h: Removed.
	* include/grub/mips/yeeloong/kernel.h (grub_reboot): Add missing
	noreturn.
	(grub_halt): Likewise.
	* include/grub/misc.h (grub_halt): Removed EXPORT_FUNC.
	(grub_reboot): Likewise.
	* grub-core/kern/i386/coreboot/init.c (grub_stop_floppy): Moved from here...
	* include/grub/i386/floppy.h (grub_stop_floppy): ...here. Inlined.
	* grub-core/kern/i386/pc/startup.S (grub_hard_stop): Removed.
2010-08-30 22:02:58 +02:00
Robert Millan
215dd4716e 2010-08-30 Robert Millan <rmh@gnu.org>
* NEWS: Document addition of ZFS support in `grub-install' and
	`grub-mkconfig'.
2010-08-30 21:55:10 +02:00
Vladimir 'phcoder' Serbinenko
11721d1926 Remove leftover embedding of font objects.
* include/grub/kernel.h (OBJ_TYPE_FONT): Removed.
	* util/grub-install.in (font): Removed.
	* util/grub-mkimage.c (generate_image): Remove font support. All users
	updated.
2010-08-30 20:23:04 +02:00
Vladimir 'phcoder' Serbinenko
00cf36062b Merge mainline into install 2010-08-30 19:58:00 +02:00
Vladimir 'phcoder' Serbinenko
37837d4ecb Remove leftover embedding of font objects.
* include/grub/kernel.h (OBJ_TYPE_FONT): Removed.
	* util/grub-install.in (font): Removed.
	* util/grub-mkimage.c (generate_image): Remove font support. All users
	updated.
2010-08-30 19:48:10 +02:00
Vladimir 'phcoder' Serbinenko
9494ef9aaf Add ChangeLog 2010-08-30 16:28:01 +02:00
Vladimir 'phcoder' Serbinenko
eefe8abd52 Dimplify tags and enable USB on more platforms 2010-08-30 15:13:38 +02:00
BVK Chaitanya
ebd65b82dc remove leading / in dprintf output 2010-08-30 09:37:35 +05:30
Vladimir 'phcoder' Serbinenko
e176a764ee Add missing Reported by 2010-08-30 02:01:59 +02:00
Vladimir 'phcoder' Serbinenko
b4c1aae0f1 * docs/grub.texi (Network): Fix reference to pxe_blksize. 2010-08-30 01:56:35 +02:00
Vladimir 'phcoder' Serbinenko
8920a08d87 * grub-core/normal/menu.c (grub_wait_after_message): Add a 10 second
timeout to avoid indefinite boot stalling.
2010-08-30 01:14:07 +02:00
Vladimir 'phcoder' Serbinenko
f21db0332f * grub-core/normal/color.c (grub_env_write_color_normal): Fix a warning.
(grub_env_write_color_highlight): Likewise.
2010-08-30 01:12:37 +02:00
Vladimir 'phcoder' Serbinenko
9a9de209a2 * grub-core/normal/term.c (print_more): Return to normal and not
to standard state after printing "---MORE---".
2010-08-30 01:11:12 +02:00
Vladimir 'phcoder' Serbinenko
3dca01d7e3 * grub-core/term/i386/vga_common.c (grub_console_setcolorstate):
Mask out the bit 0x80 since it has other meaning that specifiing color.
2010-08-30 01:09:28 +02:00
Vladimir 'phcoder' Serbinenko
1935c0773e Finish Changelog 2010-08-29 23:08:06 +02:00
Vladimir 'phcoder' Serbinenko
4847f93e2a Merge mainline into newreloc 2010-08-29 22:05:46 +02:00
Vladimir 'phcoder' Serbinenko
0b986c402b First part of ChangeLog 2010-08-29 22:03:28 +02:00
Vladimir 'phcoder' Serbinenko
5303b85d44 * grub-core/normal/charset.c (grub_utf8_to_ucs4_alloc): Avoid deadloop
on malloc error.
	(grub_bidi_logical_to_visual): Check that malloc succeded.
	* grub-core/normal/term.c (grub_puts_terminal): Fix fallback to dumb
	puts.
	(grub_xputs_normal): Likewise.
2010-08-29 21:57:37 +02:00
Vladimir 'phcoder' Serbinenko
d768d15986 * grub-core/Makefile.core.def (kernel): Add kern/mips/cache_flush.S to
extra_dist.
2010-08-29 18:53:56 +02:00
Vladimir 'phcoder' Serbinenko
5bf84df429 * Makefile.util.def (grub-ofpathname): Add missing ldadd. 2010-08-29 17:49:37 +02:00
Vladimir 'phcoder' Serbinenko
3626810e53 * grub-core/kern/misc.c (grub_real_dprintf): Always refresh after
dprintf.
2010-08-29 17:17:52 +02:00
BVK Chaitanya
a7363f53c8 Use ldadd instead of ldflags for libraries 2010-08-29 09:33:13 +05:30
Vladimir 'phcoder' Serbinenko
902f75f645 * grub-core/normal/term.c (print_more): Fix a memory leak.
(grub_puts_terminal): Revert to dumb puts if memory allocation fails.
	(grub_xputs_normal): Likewise.
2010-08-28 15:39:34 +02:00
Vladimir 'phcoder' Serbinenko
3c7079670d * grub-core/script/lexer.c (grub_script_lexer_init): Don't look before
the begining of the string
2010-08-28 15:35:43 +02:00
Vladimir 'phcoder' Serbinenko
2053cc077b * grub-core/script/script.c (grub_script_parse): Free parsed on
failure.
2010-08-28 15:34:29 +02:00
Vladimir 'phcoder' Serbinenko
46422ebf1a * grub-core/normal/completion.c (grub_normal_do_completion): Free argv
on failure.
2010-08-28 15:31:21 +02:00
Vladimir 'phcoder' Serbinenko
9e0fa3f606 * grub-core/normal/cmdline.c (grub_cmdline_get): Free cl_terms on
return.
2010-08-28 15:29:44 +02:00
Vladimir 'phcoder' Serbinenko
3393cf16d6 * grub-core/term/gfxterm.c (grub_gfxterm_term_fini): Free the text buffer.
(scroll_up): Fix a memory leak.
2010-08-28 15:28:08 +02:00
Vladimir 'phcoder' Serbinenko
b17540cbd9 * grub-core/fs/nilfs2.c (grub_nilfs2_load_sb): Handle grub_disk_read
errors.
2010-08-28 15:25:12 +02:00
Vladimir 'phcoder' Serbinenko
671404469c Handle USB pendrives exposed as floppies.
* grub-core/boot/i386/pc/boot.S: Check LBA even on what appears to be
	floppy.
	* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
	Check for partitions on all devices.
2010-08-27 03:44:55 +02:00
Vladimir 'phcoder' Serbinenko
e35e46fce1 * grub-core/term/ieee1275/ofconsole.c (put): Correct prototype.
(readkey): Likewise.
2010-08-25 22:32:17 +02:00
BVK Chaitanya
8ecbb72dee Multiple variable names support to "export" command.
* normal/context.c (grub_cmd_export): "export" command supports
	multiple variable names.
2010-08-25 18:50:41 +05:30
BVK Chaitanya
d24c6190ae add changelog 2010-08-25 18:34:20 +05:30
Samuel Thibault
04ddcc6a88 2010-08-23 Samuel Thibault <samuel.thibault@ens-lyon.org>
* util/grub.d/30_os-prober.in: Fix conversion from grub-probe
	--target=drive output to Mach device name.
2010-08-23 22:41:14 +02:00
BVK Chaitanya
0c8b61d8e4 automake based build system for grub 2010-08-23 23:26:24 +05:30
BVK Chaitanya
645586e686 Replace --enable-grub-emu-modules with grub-emu-lite.
* kern/emu/cache.S: New file.  Wrapper for $target_cpu specific
	cache.S.

	* include/grub/emu/misc.h (grub_emu_init): New prototype.
	* kern/emu/full.c: New file. For grub-emu specific initialization.
	* kern/emu/lite.c: New file. For grub-emu-lite initialization.
	* kern/emu/main.c: Call initialization function grub_emu_init.

	* Makefile.in: Include grub-emu-lite in install.
	* commands/parttool.c: Use grub_no_autoload to differentiate
	between grub-emu and grub-emu-lite.
	* include/grub/misc.h: New variable grub_no_autoload.

	* conf/any-emu.rmk: New rules for grub-emu-lite.
	* configure.ac: Remove --enable-grub-emu-modules.
	* genmk.rb: Cleanup unnecessary rules.
	* include/grub/dl.h: Remove GRUB_NO_MODULES macro.

	* normal/main.c: Don't load list files on grub-emu-lite.
	* util/misc.c (grub_arch_sync_caches): Removed.
2010-08-23 23:06:29 +05:30
Colin Watson
f86a4030ed * kern/mips/startup.S (grub_prefix): Update comment to refer to
grub-mkimage rather than grub-mkelfimage.
* kern/powerpc/ieee1275/startup.S (grub_prefix): Likewise.
2010-08-23 12:55:47 +01:00
Vladimir 'phcoder' Serbinenko
0677694455 * term/at_keyboard.c (grub_at_keyboard_getkey_noblock): Don't discard
a key after CapsLock or NumLock. It's just a qemu bug.
2010-08-22 17:10:39 +02:00
Vladimir 'phcoder' Serbinenko
df26241939 * include/grub/usb.h (grub_usb_device): Add 'data' field back. It's
needed by libusb wrapper.
2010-08-21 02:09:16 +02:00
Samuel Thibault
b40ea81bc7 2010-08-21 Samuel Thibault <samuel.thibault@ens-lyon.org>
* docs/grub.texi (GNU/Hurd): Document booting GNU/Hurd.
2010-08-21 01:36:02 +02:00
Vladimir 'phcoder' Serbinenko
dee5057594 * loader/multiboot.c (grub_cmd_module): Don't unzip module if
--nounzip is passed.
2010-08-21 00:57:12 +02:00
Vladimir 'phcoder' Serbinenko
05a765c88b USB hotunplugging and USB serial support.
* bus/usb/ohci.c (grub_ohci_transfer): Fill *actual and respect timeout.
	* bus/usb/uhci.c (grub_free_queue): Compute *actual.
	(grub_uhci_transfer): Respect timeout and set *actual.
	* bus/usb/usb.c (grub_usb_device_initialize): Correctly skip fields of
	non-standard length.
	(grub_usb_device_attach): Autoload modules.
	(GRUB_MOD_INIT): Set grub_term_poll_usb.
	(GRUB_MOD_FINI): Unset grub_term_poll_usb.
	* bus/usb/usbhub.c (grub_usb_hub): Replace speed with devices. All
	users updated.
	(grub_usb_add_hub): Fill nports and children.
	(attach_root_port): Receive hub instead of controller.
	All users updated. Fill hub->devices.
	(grub_usb_root_hub): Allocate hub->devices.
	(detach_device): New function.
	(poll_nonroot_hub): Fill children and detach devices.
	* bus/usb/usbtrans.c (grub_usb_bulk_readwrite): Accept timeout and
	actual arguments. All users updated.
	(grub_usb_bulk_read_extended): New function.
	* bus/usb/serial/common.c: New file.
	* bus/usb/serial/ftdi.c: Likewise.
	* bus/usb/serial/pl2303.c: Likewise.
	* commands/terminal.c (handle_command): Support wildcard.
	* commands/usbtest.c: Output "Unknown" instead of empty string.
	* conf/any-emu.rmk (pkglib_MODULES): Add usbserial_common.mod.
	(usbserial_common_mod_SOURCES): New variable.
	(usbserial_common_mod_CFLAGS): Likewise.
	(usbserial_common_mod_LDFLAGS): Likewise.
	(pkglib_MODULES): Add usbserial_pl2303.mod.
	(usbserial_pl2303_mod_SOURCES): New variable.
	(usbserial_pl2303_mod_CFLAGS): Likewise.
	(usbserial_pl2303_mod_LDFLAGS): Likewise.
	(pkglib_MODULES): Add usbserial_ftdi.mod.
	(usbserial_ftdi_mod_SOURCES): New variable.
	(usbserial_ftdi_mod_CFLAGS): Likewise.
	(usbserial_ftdi_mod_LDFLAGS): Likewise.
	(pkglib_MODULES): Add serial.mod.
	(serial_mod_SOURCES): New variable.
	(serial_mod_CFLAGS): Likewise.
	(serial_mod_LDFLAGS): Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/mips-yeeloong.rmk: Likewise.
	* conf/i386.rmk (serial_mod_SOURCES): Add term/ns8250.c.
	* conf/mips-yeeloong.rmk (kernel_img_SOURCES): Likewise.
	* disk/usbms.c (first_available_slot): New variable.
	(grub_usbms_attach): Don't reuse free slots due to potential cache
	problems.
	* include/grub/serial.h: Moved to ..
	* include/grub/ns8250.h: ...this.
	* include/grub/serial.h: New file.
	* include/grub/term.h (grub_term_poll_usb): New variable.
	* include/grub/terminfo.h (grub_terminfo_input_state): Pass term to
	readkey. All users updated.
	(grub_terminfo_output_state): Pass term to put.
	* include/grub/usb.h (GRUB_USB_REQTYPE): New enum.
	(grub_usb_controller_dev): Add timeout and actual arguments to
	transfer. All users updated.
	(grub_usb_interface): New field detach_data.
	(grub_usb_device): New fields children and nports.
	(grub_usb_ep_type_t): New type.
	(grub_usb_get_ep_type): New function.
	(grub_usb_bulk_read_extended): Likewise.
	* include/grub/usbdesc.h (grub_usb_desc): New type.
	* include/grub/usbserial.h: New file.
	* include/grub/usbtrans.h (grub_usb_transaction): New field preceding.
	* kern/term.c (grub_term_poll_usb): New variable.
	(grub_getkey): Call grub_term_poll_usb if set.
	(grub_checkkey): Likewise.
	(grub_getkeystatus): Likewise.
	* term/serial.c: Moved controller-specific parts to ...
	* term/ns8250.c: ... here.
	* term/serial.c: Mostly rewritten.
	* term/usb_keyboard.c: Reorganised to use GET_REPORT only on attaching
	according to spec.
2010-08-20 21:34:52 +02:00
Vladimir 'phcoder' Serbinenko
fb1d7b7975 Add ChangeLog 2010-08-20 21:26:27 +02:00
Robert Millan
21a313dedc 2010-08-20 Robert Millan <rmh@gnu.org>
Make kFreeBSD code more generic to support ext2fs as root, ufs as
	a separate module and maybe other interesting combinations.
	
	* util/grub.d/10_kfreebsd.in (load_kfreebsd_module): New function.
	(kfreebsd_entry): Use load_kfreebsd_module() to load modules.
	(kfreebsd_entry): Add generic filesystem module load routine.
	Map GRUB `ext2' to kFreeBSD `ext2fs'.
2010-08-20 16:36:07 +02:00
Colin Watson
63c734a63e * commands/i386/pc/sendkey.c (keysym_table): Rename "numlock" to
"numcenter" (I misunderstood the purpose of this entry).
* docs/grub.texi (sendkey): Likewise.
2010-08-20 00:15:23 +01:00
Colin Watson
c4d1654256 * commands/i386/pc/sendkey.c (options): Remove "keep" from all
status flag options; simply omitting the option is equivalent and
simpler.  Rename "wait" to "pause".  Rename "sysreq" to "sysrq".
(keysym_table): Rename "num5numlock" to "numlock".
(grub_cmd_sendkey): Reinitialise `andmask' and `ormask', so that we
can uniformly say that only the last of multiple `sendkey'
invocations has any effect.
* docs/grub.texi (sendkey): New section.
2010-08-20 00:05:14 +01:00
Colin Watson
93541d660d * commands/i386/pc/sendkey.c (options): Fix three typos. 2010-08-19 21:53:50 +01:00
Vladimir 'phcoder' Serbinenko
b4ece5e11e Implement sendkey support.
* commands/i386/pc/sendkey.c: New file.
	* conf/i386-pc.rmk (pkglib_MODULES): Add sendkey.mod.
	(sendkey_mod_SOURCES): New variable.
	(sendkey_mod_CFLAGS): Likewise.
	(sendkey_mod_LDFLAGS): Likewise.
2010-08-19 21:03:14 +02:00
Colin Watson
51f1f5afab * configure.ac: Move AM_INIT_AUTOMAKE after AC_CANONICAL_TARGET to
fix warnings from Autoconf.
2010-08-18 11:15:08 +01:00
Colin Watson
9da94e0576 * acinclude.m4 (grub_ASM_USCORE): Use a more accurate grep pattern,
to avoid false positives with some assemblers that output things
like "someprefix_func" as part of their output.
2010-08-18 11:08:00 +01:00
Robert Millan
729a0f2e0c 2010-08-15 Robert Millan <rmh@gnu.org>
* kern/emu/misc.c (grub_get_libzfs_handle): Handle libzfs_init()
	errors.
	* kern/emu/getroot.c (find_root_device_from_libzfs): Handle
	grub_get_libzfs_handle() errors.
2010-08-15 22:48:23 +02:00
Robert Millan
f3710e088c 2010-08-14 Robert Millan <rmh@gnu.org>
* kern/emu/misc.c (grub_find_zpool_from_dir): Abort function if
	filesystem is not ZFS.
2010-08-14 16:53:25 +02:00
BVK Chaitanya
7a3c13dea5 Fix for misspelled color names defaulting to black/black (bug
reported by Doug Nazar)

	* include/grub/normal.h (grub_parse_color_name_pair): Add return
	status to prototype.
	* normal/color.c (grub_parse_color_name_pair): Return failure
	status.
	(grub_env_write_color_normal): Ignore bad color names.
	(grub_env_write_color_highlight): Likewise.
	* normal/main.c (GRUB_MOD_INIT): Set default color names.
2010-08-12 20:52:42 +05:30
BVK Chaitanya
ab8ba50d75 "shift" command support to GRUB script.
* include/grub/script_sh.h (grub_script_shift): New prototype.
	* script/execute.c (grub_script_shift): New function.
	* script/main.c (grub_script_init): Register shift command.
	(grub_script_fini): Unregister shift command.
	* util/grub-script-check.c (grub_script_cmd_shift): New function.

	* tests/grub_script_shift.in: New testcase.
	* conf/tests.rmk: Rules for new testcase.
2010-08-12 12:07:27 +05:30
BVK Chaitanya
4d61999e33 "continue" command support to GRUB script.
* script/execute.c (grub_script_execute_cmdwhile): Continue support.
	(grub_script_break): Continue support.
	* script/main.c (grub_script_init): Register continue command.
	(grub_script_fini): Unregister continue command.

	* tests/grub_script_continue.in: New testcase.
	* conf/tests.rmk: Rules for new testcase.
2010-08-12 11:48:21 +05:30
BVK Chaitanya
4df51e0007 "break" command support to GRUB script.
* conf/common.rmk: Rule updates to grub-script-check.
	* include/grub/misc.h (grub_min): New function.
	* include/grub/script_sh.h (grub_script_init): New prototype.
	(grub_script_fini): New prototype.
	(grub_script_break): New prototype.
	* script/main.c (grub_script_init): New function.
	(grub_script_fini): New function.
	* script/execute.c (grub_script_break): New function.
	* normal/main.c: Calls to grub_script_{init,fini}.
	* util/grub-script-check.c (grub_script_break): New function.

	* tests/grub_script_break.in: New testcase.
	* conf/tests.rmk: Rules for new test case.
2010-08-12 09:35:15 +05:30
BVK Chaitanya
f12c842082 Function parameters support to GRUB script.
* script/yylex.l (VARIABLE): Regular expression update.
	* script/function.c (grub_script_function_call): Moved ...
	* script/execute.c (grub_script_function_call): ... to here.
	(grub_script_execute_arglist_to_argv): Removed.
	(grub_script_arglist_to_argv): New function.
	* script/argv.c: New file.
	(grub_script_argv_free): New function.
	(grub_script_argv_next): Likewise.
	(grub_script_argv_append): Likewise.
	(grub_script_argv_split_append): Likewise.
	* include/grub/script_sh.h (grub_script_argv): New struct.
	(grub_script_argv_free): New function.
	(grub_script_argv_next): Likewise.
	(grub_script_argv_append): Likewise.
	(grub_script_argv_split_append): Likewise.

	* conf/common.rmk (normal.mod): New source script/argv.c.

	* tests/grub_script_echo1.in: More tests.
	* tests/grub_script_vars1.in: Likewise.
	* tests/grub_script_functions.in: New test case.
	* conf/tests.rmk: Rules for new testcase.
2010-08-12 09:20:58 +05:30
BVK Chaitanya
8022b74825 Remove grub_script_cmdblock struct.
* include/grub/script_sh.h: Remove grub_script_cmdblock.
	* script/parser.y: Likewise.
	* script/execute.c: Rename cmdblock suffix to cmdlist.
	* script/script.c: Likewise.
	* util/grub-script-check.c: Likewise.
2010-08-12 09:04:37 +05:30
Yves Blusseau
79a6ba6101 2010-08-11 Yves Blusseau <blusseau@zetam.org>
* .bzrignore: add grub-macho2img
2010-08-11 13:24:37 +02:00
Vladimir 'phcoder' Serbinenko
d04b9414a8 * kern/i386/qemu/init.c (grub_qemu_init_cirrus): Fix compilation error. 2010-08-11 04:25:56 +02:00
Vladimir 'phcoder' Serbinenko
f947ab49b0 Remove the dump of sm712 initialisation sequence.
* include/grub/pci.h (GRUB_PCI_CLASS_SUBCLASS_VGA): New const.
	* include/grub/vga.h (GRUB_VGA_IO_ARX_READ): New register.
	(GRUB_VGA_IO_MISC_WRITE): Likewise.
	(GRUB_VGA_CR_*): Added many registers.
	(GRUB_VGA_SR_*): Likewise.
	(GRUB_VGA_GR_*): Likewise.
	(grub_vga_write_arx): New function.
	(grub_video_hw_config): New struct.
	(grub_vga_set_geometry): New function.
	* kern/i386/qemu/init.c (load_palette): Use grub_vga_write_arx and
	GRUB_PCI_CLASS_SUBCLASS_VGA.
	* video/cirrus.c (grub_video_cirrus_setup): Use grub_vga_set_geometry.
	* video/sm712.c (grub_sm712_write_reg): New function
	(grub_sm712_read_reg): Likewise.
	(grub_sm712_sr_write): Likewise.
	(grub_sm712_gr_write): Likewise.
	(grub_sm712_cr_write): Likewise.
	(grub_sm712_write_arx): Likewise.
	(grub_sm712_cr_shadow_write): Likewise.
	(grub_sm712_write_dda_lookup): Likewise.
	(grub_video_sm712_setup): Initialise the video rather then
	blindly replay the dump.
	(main) [TEST]: Add a routine to be able to compile as standalone for
	tests.
	* video/sm712_init.c (sm712_init): Removed.
	(sm712_sr_seq1): New array.
	(sm712_sr_seq2): Likewise.
2010-08-11 04:18:07 +02:00
Vladimir 'phcoder' Serbinenko
f0206638bf * include/grub/vga.h: Add missing grub/pci.h include. 2010-08-11 04:00:06 +02:00
Yves Blusseau
2764da3ba2 2010-08-10 Yves Blusseau <blusseau@zetam.org>
* util/grub-macho2img.c (main): fix typo
2010-08-10 16:32:48 +02:00
Vladimir 'phcoder' Serbinenko
cf0c775ed4 * include/grub/vga.h (grub_vga_gr_write): Add GRUB_MACHINE_PCI_IO_BASE.
(grub_vga_gr_read): Likewise.
	(grub_vga_cr_write): Likewise.
	(grub_vga_cr_read): Likewise.
	(grub_vga_sr_write): Likewise.
	(grub_vga_sr_read): Likewise.
	(grub_vga_palette_read): Likewise.
	(grub_vga_palette_write): Likewise.
	* video/sm712.c (GRUB_SM712_REG_BASE): New definition.
	(grub_sm712_sr_read): New function.
	(grub_video_sm712_setup): Use grub_vga_sr_write and grub_sm712_sr_read.
	* video/sm712_init.c (sm712_init): Substract GRUB_MACHINE_PCI_IO_BASE.
2010-08-10 13:43:43 +02:00
Robert Millan
07f360e92d 2010-08-09 Robert Millan <rmh@gnu.org>
* kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Filter
	out unused variables on non-ZFS build.
2010-08-09 17:44:24 +02:00
Robert Millan
346c207240 2010-08-08 Robert Millan <rmh@gnu.org>
Fix path generation for sub-filesystems in ZFS.
	
	* kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Add
	missing slash.
2010-08-09 00:11:19 +02:00
Robert Millan
7117542069 2010-08-08 Robert Millan <rmh@gnu.org>
* util/grub-fstest.c (read_file, cmd_cmp): Improve error message.
2010-08-08 22:47:32 +02:00
Robert Millan
0d8286f328 2010-08-08 Robert Millan <rmh@gnu.org>
* util/grub.d/10_kfreebsd.in: When files required for ZFS do not
	exist, issue a proper error message (rely on `ls' for translated
	strings).
2010-08-08 16:27:58 +02:00
Robert Millan
55dd292477 2010-08-08 Robert Millan <rmh@gnu.org>
Fix grub-probe invocation.
	
	* util/grub.d/10_kfreebsd.in: s/label/fs_label/g.
2010-08-08 15:45:33 +02:00
Robert Millan
d3dd9e80f6 2010-08-04 Robert Millan <rmh@gnu.org>
* configure.ac: Remove checks for getfsstat() and getmntany().
	Add checks for `<sys/param.h>' and `<sys/mount.h>'.
	* kern/emu/misc.c [HAVE_GETMNTANY]: Remove `<sys/mnttab.h>'.
	[HAVE_SYS_PARAM_H]: Include `<sys/param.h>'.
	[HAVE_SYS_MOUNT_H]: Include `<sys/mount.h>'.
	[HAVE_LIBZFS && HAVE_LIBNVPAIR] (find_mount_point_from_dir): Remove
	function.
	(grub_find_zpool_from_dir): Use statfs() instead of indirect matching
	via find_mount_point_from_dir() and getfsstat() / getmntany().
2010-08-04 14:45:58 +02:00
Robert Millan
0de22aa997 2010-08-04 Robert Millan <rmh@gnu.org>
* include/grub/emu/misc.h (grub_find_mount_point_from_dir)
	(grub_find_zpool_from_mount_point): Merge into ...
	(grub_find_zpool_from_dir): ... this.
	* kern/emu/misc.c: Likewise.
	
	* kern/emu/misc.c
	(grub_make_system_path_relative_to_its_root): Replace
	grub_find_mount_point_from_dir() / grub_find_zpool_from_mount_point()
	with grub_find_zpool_from_dir().
	* kern/emu/getroot.c (find_root_device_from_libzfs): Likewise.
2010-08-04 13:29:13 +02:00
Robert Millan
62858144fe 2010-08-04 Robert Millan <rmh@gnu.org>
Support OpenSolaris in ZFS device resolution.
	
	* configure.ac: Check for getmntany().
	* kern/emu/misc.c [HAVE_GETMNTANY]: Include `<sys/mnttab.h>'.
	[HAVE_GETMNTANY] (grub_find_zpool_from_mount_point): Add OpenSolaris
	support.
2010-08-04 00:15:29 +02:00
Robert Millan
9dd6fd50b4 2010-08-03 Robert Millan <rmh@gnu.org>
Fix grub-emu build.
	
	* include/grub/util/misc.h: Move `<grub/util/libzfs.h>' to ...
	* include/grub/emu/misc.h: ... here.
	
	* include/grub/util/misc.h (grub_get_libzfs_handle): Move function ...
	* include/grub/emu/misc.h (grub_get_libzfs_handle): ... here.
	
	* util/misc.c: Remove `<grub/util/libzfs.h>'.
	[HAVE_LIBZFS] (libzfs_handle, fini_libzfs)
	(grub_get_libzfs_handle): Move to ...
	* kern/emu/misc.c [HAVE_LIBZFS] (__libzfs_handle, fini_libzfs)
	(grub_get_libzfs_handle): ... here.
2010-08-03 23:51:48 +02:00
BVK Chaitanya
c9f7ff97cf * script/execute.c (grub_script_execute_cmdline): Check for NULL
as command name case.
2010-08-03 11:56:36 +05:30
Colin Watson
a870a783be * disk/raid.c (insert_array): Select unique numbers for named arrays
as well, for use as keys in the disk cache.
2010-08-02 09:51:23 -05:00
Robert Millan
c7db243b92 2010-08-01 Robert Millan <rmh@gnu.org>
* util/grub.d/10_kfreebsd.in: Initialize ${kfreebsd_device} as the
	kFreeBSD device name, except on ZFS where the filesystem label is
	used.
	(kfreebsd_entry): On ZFS root, load `opensolaris.ko', `zfs.ko' and
	`/boot/zfs/zpool.cache'.
	Set mountfrom kernel variable using ${kfreebsd_device}.
2010-08-01 23:21:09 +02:00
Robert Millan
f7abdefbdd 2010-08-01 Robert Millan <rmh@gnu.org>
Make it even harder to use uninitialized `libzfs_handle' (and
	make the interface a bit simpler).
	
	* include/grub/util/misc.h (grub_util_init_libzfs)
	(libzfs_handle): Remove.
	(grub_get_libzfs_handle): New prototype.
	
	* util/misc.c [HAVE_LIBZFS] (libzfs_handle): Add `static'
	attribute.
	(grub_util_init_libzfs): Remove.
	(grub_get_libzfs_handle): New function.
	
	* kern/emu/getroot.c (find_root_device_from_libzfs): Use
	grub_get_libzfs_handle() to obtain a libzfs handle instead of
	accessing `libzfs_handle' directly.
2010-08-01 23:12:24 +02:00
Robert Millan
c882acc031 2010-08-01 Robert Millan <rmh@gnu.org>
* include/grub/emu/misc.h (grub_find_mount_point_from_dir)
	(grub_find_zpool_from_mount_point): New function prototypes.
	
	* kern/emu/getroot.c [HAVE_GETFSSTAT]: Move `<sys/mount.h>' to ...
	* kern/emu/misc.c [HAVE_GETFSSTAT]: ... here.
	
	* kern/emu/getroot.c (find_mount_point_from_dir): Move to ...
	* kern/emu/misc.c (grub_find_mount_point_from_dir): ... this.  Remove
	`static' attribute.
	
	* kern/emu/getroot.c (find_root_device_from_libzfs): Split code for
	finding zpool from mount point into ...
	* kern/emu/misc.c (grub_find_zpool_from_mount_point): ... this.
	
	* kern/emu/misc.c (grub_make_system_path_relative_to_its_root): When
	requested path is part of a ZFS pool, use
	grub_find_zpool_from_mount_point() to detect its filesystem name,
	and generate a path with `/fsname@path' syntax.
2010-08-01 22:59:02 +02:00
Colin Watson
8bfe31d82b * include/grub/util/libzfs.h (libzfs_init): Set argument list to
(void) rather than () so that this is a proper prototype.
2010-08-01 16:41:46 -05:00
Vladimir 'phcoder' Serbinenko
553df63d76 * lib/arg.c (grub_arg_show_help): Add the necessary spacing. 2010-08-01 21:01:05 +02:00
Vladimir 'phcoder' Serbinenko
8687cf071e * kern/emu/getroot.c (find_mount_point_from_dir): Compile only if
[HAVE_LIBZFS && HAVE_LIBNVPAIR]
2010-08-01 16:11:27 +02:00
Colin Watson
ea9be8eadb * util/grub-mkrescue.in: Remove ${efi_dir} after building efi.img. 2010-08-01 11:30:03 -05:00
Colin Watson
6eea041aa4 * script/yylex.l (NAME): Remove [:digit:], redundant with [:alnum:]. 2010-08-01 11:28:12 -05:00
Colin Watson
2cfb45df5e * docs/grub.texi (Simple configuration): Document GRUB_CMDLINE_XEN
and GRUB_CMDLINE_XEN_DEFAULT.  Recommend setting
GRUB_GFXPAYLOAD_LINUX=text rather than unsetting it in order to
disable gfxpayload.
(Shell-like scripting): Add real content.
(Serial terminal): Suggest `terminal_input serial; terminal_output
serial' rather than putting the two commands on separate lines,
since console input will be inoperative after the first command.
(menuentry): Document --class, --users, and --hotkey options.
(terminfo): Describe what `visually-ordered UTF-8' means (thanks,
Vladimir Serbinenko).
2010-08-01 11:25:09 -05:00
Vladimir Serbinenko
7decd202a7 * kern/misc.c (grub_memset): Optimise to reduce cache stalls.
Also-By: Colin Watson <cjwatson@ubuntu.com>
2010-08-01 09:44:36 -05:00
Robert Millan
deb0caa38e 2010-08-01 Robert Millan <rmh@gnu.org>
Prevent accidental use of uninitialized libzfs_handle.
	
	* util/grub-probe.c (main): Move grub_util_init_libzfs() call to ...
	* kern/emu/getroot.c (find_root_device_from_libzfs): ... here.
	* util/misc.c (grub_util_init_libzfs): Make this function idempotent.
2010-08-01 15:23:44 +02:00
Colin Watson
ce04ef47e2 * util/grub.d/20_linux_xen.in: Don't use UUID for LVM root (matching
util/grub.d/10_linux.in).  Fixes Debian bug #591093.
2010-08-01 08:54:10 -05:00
Robert Millan
ebf53056b8 2010-08-01 Robert Millan <rmh@gnu.org>
* kern/emu/getroot.c: Include `<grub/util/misc.h>'.
2010-08-01 14:47:14 +02:00
Robert Millan
3710bb6b96 2010-07-31 Robert Millan <rmh@gnu.org>
* util/grub.d/10_kfreebsd.in: Make module handling more generic.
2010-08-01 02:14:07 +02:00
Robert Millan
8072efebf2 2010-07-31 Robert Millan <rmh@gnu.org>
* kern/emu/misc.c: Add missing license header.
2010-07-31 18:45:57 +02:00
Robert Millan
3169f4c76a 2010-07-31 Robert Millan <rmh@gnu.org>
* configure.ac: Check for `libzfs.h' and `libnvpair.h'.
	
	* include/grub/util/libnvpair.h: Include `<config.h>'.
	[HAVE_LIBNVPAIR_H]: Include `<libnvpair.h>' instead of
	declaring libnvpair prototypes ourselves.
	* include/grub/util/libzfs.h: Include `<config.h>'.
	[HAVE_LIBZFS_H]: Include `<libzfs.h>' instead of
	declaring libzfs prototypes ourselves.
	
	(libzfs_handle): Moved to ...
	* include/grub/util/misc.h (libzfs_handle): ... here.
	Include `<grub/util/libzfs.h>'.
2010-07-31 12:22:01 +02:00
Robert Millan
c9a00aeeaa 2010-07-30 Robert Millan <rmh@gnu.org>
* include/grub/emu/misc.h: Add missing license header.
2010-07-30 22:01:10 +02:00
Robert Millan
a184f9c801 2010-07-30 Robert Millan <rmh@gnu.org>
Enable `grub-probe -t device' resolution on ZFS.
	
	* configure.ac: Check for getfsstat(), libzfs and libnvpair.
	* include/grub/util/libnvpair.h: New file.
	* include/grub/util/libzfs.h: New file.
	
	* kern/emu/getroot.c: Include `<assert.h>' and `<error.h>'.
	[HAVE_LIBZFS && HAVE_LIBNVPAIR]: Include `<grub/util/libzfs.h>' and
	`<grub/util/libnvpair.h>'.
	[HAVE_GETFSSTAT]: Include `<sys/mount.h>'.
	
	(find_mount_point_from_dir): New static function.
	[HAVE_LIBZFS && HAVE_LIBNVPAIR] (find_root_device_from_libzfs): New
	function.
	[HAVE_LIBZFS && HAVE_LIBNVPAIR] (grub_guess_root_device): Use
	find_root_device_from_libzfs() before ressorting to find_root_device().
	
	* include/grub/util/misc.h (grub_util_init_libzfs): New function
	prototype.
	* util/misc.c: Include `<grub/util/libzfs.h>'.
	(grub_util_init_libzfs): New function.
	[HAVE_LIBZFS] (libzfs_handle): New global variable.
	[HAVE_LIBZFS] (fini_libzfs): New static function.
	(grub_util_init_libzfs): New function.
	* util/grub-probe.c (main): Call grub_util_init_libzfs().
2010-07-30 21:43:12 +02:00
Robert Millan
f7790cdd5d 2010-07-30 Robert Millan <rmh@gnu.org>
* include/grub/emu/misc.h (grub_make_system_path_relative_to_its_root)
	(xmalloc, xrealloc, xstrdup, xasprintf): Add
	`warn_unused_result' attribute.
	* include/grub/misc.h (grub_strdup, grub_strndup, grub_strlen)
	(grub_xasprintf, grub_xvasprintf): Likewise.
	* include/grub/emu/misc.h (xasprintf): Remove duplicate prototype.
2010-07-30 11:27:02 +02:00
Robert Millan
0806b63c09 2010-07-29 Robert Millan <rmh@gnu.org>
* util/grub-probe.c (PRINT_FS_LABEL): New enum value.
	(probe): Handle `PRINT_FS_LABEL'.
	(main): Handle `-t fs_label'.
2010-07-29 18:46:42 +02:00
Robert Millan
9f841f5cbf 2010-07-29 Robert Millan <rmh@gnu.org>
* configure.ac: Remove grub-mkisofs checks.
2010-07-29 15:06:39 +02:00
Vladimir 'phcoder' Serbinenko
463711215f * util/ieee1275/grub-install.in: Don't use empty grub_device.
Reported by: Lennart Sorensen.
2010-07-28 18:25:48 +03:00
Vladimir 'phcoder' Serbinenko
0ac33bf5eb * util/grub.d/00_header.in: Remove compatibility with terminal.mod
prior to terminal_input/terminal_output separation. It's been over 1.5
	years and those versions weren't widely deployed.
2010-07-21 06:44:38 +02:00
Colin Watson
697e053c44 real name for Michael Guntsche 2010-07-22 09:44:19 +01:00
Colin Watson
a9600892c1 * disk/raid.c (insert_array): Don't count named arrays when looking
for unused array numbers.
Reported and tested by: maru.
2010-07-22 09:38:06 +01:00
Colin Watson
c03507dfb8 * bus/usb/emu/usb.c (grub_usb_poll_devices): Add a dummy
implementation of this so that grub-emu links again, with a note
that this should support hotplugging in the future.
2010-07-20 23:16:32 +01:00
Colin Watson
b26f1c1160 * kern/emu/getroot.c (grub_util_get_grub_dev): Use xasprintf. 2010-07-20 23:09:45 +01:00
Colin Watson
efc9d7f175 * disk/loopback.c (grub_cmd_loopback): Don't leak a grub_file_t
handle on failure.
(grub_loopback_close): Remove empty function.
(grub_loopback_dev): Remove close method.
2010-07-20 22:14:26 +01:00
Colin Watson
dd8ff5c9e9 Disable EFI cursor when the EFI console becomes inactive.
* term/efi/console.c (grub_efi_console_init): New function.
(grub_efi_console_fini): New function.
(grub_console_term_output): Register init and fini methods.
2010-07-20 22:00:18 +01:00
Vladimir 'phcoder' Serbinenko
5e3bec6716 * tests/util/grub-shell-tester.in: Remove bashism and declare as
sh script.
2010-07-20 22:10:23 +02:00
Vladimir 'phcoder' Serbinenko
afaec079d1 * disk/loopback.c (grub_loopback): Replace filename with file.
(delete_loopback): Handle new semantics.
	(grub_cmd_loopback): Likewise.
	(grub_loopback_iterate): Likewise.
	(grub_loopback_close): Likewise.
2010-07-20 21:56:00 +02:00
Vladimir 'phcoder' Serbinenko
a6a11f3cac * util/i386/efi/grub-install.in: Revert to platform-specific behaviour
with -p "".
	Reported by: Tito Keitel.
2010-07-20 20:36:11 +02:00
Vladimir 'phcoder' Serbinenko
64a638b0d9 * docs/grub.texi (Naming convention): Document new naming convention. 2010-07-20 20:22:52 +02:00
Vadim Solomin
ab8ba95760 2010-07-20 Vadim Solomin <vadic052@gmail.com>
2010-07-20  Colin Watson  <cjwatson@ubuntu.com>

	Generate device.map in something closer to the old ordering.

	* util/deviceiter.c (struct device): New declaration.
	(compare_file_names): Rename to ...
	(compare_devices): ... this.  Sort by kernel name in preference to
	the stable by-id name, but keep the latter as a fallback comparison.
	Update header comment.
	(grub_util_iterate_devices) [__linux__]: Construct and sort an array
	of `struct device' rather than of plain file names.

	Also-By: Colin Watson <cjwatson@ubuntu.com>
2010-07-20 17:14:00 +01:00
Thomas Frauendorfer
a29d6a4bc5 * lib/i386/relocator_asm.S [! __x86_64__]: Don't try to disable amd64
on i386.
2010-07-20 15:59:56 +02:00
Vladimir 'phcoder' Serbinenko
39d824e8f9 * commands/acpi.c (setup_common_tables): Use sizeof instead of
hardcoding size.
	(setv1table): Likewise.
2010-07-20 14:42:32 +02:00
Felix Zielcke
f058276b19 2010-07-20 Colin Watson <cjwatson@ubuntu.com>
* disk/raid.c (insert_array): Use md/%s to name mdadm 1.x devices,
	removing the homehost if present.
	* kern/emu/getroot.c (get_mdadm_name) [__linux__]: New function.
	(grub_util_get_grub_dev): Use md/%s to name mdadm 1.x devices,
	removing the homehost if present.
	(grub_util_get_grub_dev) [__linux__]: Get the array name from mdadm
	if possible.
	* util/i386/pc/grub-setup.c (main): Handle md/* devices.

	* disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Add start_sector
	parameter.  Set its pointer target to 0.
	* disk/mdraid_linux.c (grub_mdraid_detect): Add start_sector
	parameter.  Set its pointer target to 0 for 0.9 metadata, or to the
	`data_offset' value from the superblock for 1.x metadata.
	* disk/raid.c (grub_raid_read): Offset reads by the start sector of
	data on the device.
	(insert_array): Record the start sector of data on the device.
	(grub_raid_register): Pass start_sector parameters to
	grub_raid_list->detect and insert_array.
	* include/grub/raid.h (struct grub_raid_array): Add start_sector
	member.
	(struct grub_raid): Add start_sector parameter to `detect'.

	* disk/mdraid_linux.c (struct grub_raid_super_1x): Remove
	__attribute__ ((packed)), leaving a comment.
	(grub_mdraid_detect): Split out 0.9 and 1.x detection to ...
	(grub_mdraid_detect_09): ... here and ...
	(grub_mdraid_detect_1x): ... here.

2010-07-20  Peter Henn  <peter.henn@web.de>

	* disk/mdraid_linux.c (grub_mdraid_detect): Fix calculation of 1.x
	chunk size and disk size, which are already given as sector counts
	as distinct from the 0.90 units.  Fetch the correct device number
	from the role table instead of using the table index.

2010-07-20  Felix Zielcke  <fzielcke@z-51.de>

	* disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Set array->name to NULL.
	* disk/mdraid_linux.c (grub_raid_super_1x): New structure.
	(WriteMostly1): New macro.
	Set array->name to NULL for metadata format 0.90.  Add support for
	metadata 1.x.  Fix some comments.
	* disk/raid.c (): Add support for name based RAID arrays.  Fix a
	few comments.
	* util/getroot.c (grub_util_get_grub_dev): Add support for
	/dev/md/name style devices.

	Also-By: Peter Henn <peter.henn@web.de>

	Also-By: Colin Watson <cjwatson@ubuntu.com>
2010-07-20 11:26:27 +01:00
Colin Watson
4b761da902 * .bzrignore: Ignore 20_linux_xen. 2010-07-20 11:20:23 +01:00
Colin Watson
5771289a14 * util/import_unicode.py: Remove unnecessary imports. 2010-07-17 19:27:18 +01:00
Aleš Nesrsta
5dab68dfa4 Hotplugging and USB hub support.
* bus/usb/ohci.c (grub_ohci_td): Add convenience fields.
	(grub_ohci): Likewise.
	(GRUB_OHCI_REG_CONTROL_BULK_ENABLE): New definition.
	(GRUB_OHCI_REG_CONTROL_CONTROL_ENABLE): Likewise.
	(GRUB_OHCI_RESET_CONNECT_CHANGE): Likewise.
	(GRUB_OHCI_CTRL_EDS): Likewise.
	(GRUB_OHCI_BULK_EDS): Likewise.
	(GRUB_OHCI_TDS): Likewise.
	(GRUB_OHCI_ED_ADDR_MASK): Likewise.
	(grub_ohci_ed_phys2virt): New function.
	(grub_ohci_virt_to_phys): Likewise.
	(grub_ohci_td_phys2virt): Likewise.
	(grub_ohci_td_virt2phys): Likewise.
	(grub_ohci_pci_iter): Allocate memory and don't wait for stable
	attachment.
	(grub_ohci_find_ed): New function.
	(grub_ohci_alloc_td): Likewise.
	(grub_ohci_free_td): Likewise.
	(grub_ohci_free_tds): Likewise.
	(grub_ohci_transfer): Use previously allocated memory.
	(grub_ohci_portstatus): Reset status changed bit.
	(grub_ohci_detect_dev): Supply status changed.
	(grub_ohci_fini_hw): Free memory.
	(grub_ohci_restore_hw): Reallocate memory.
	* bus/usb/uhci.c (grub_uhci_portstatus): Don't reset on disable.
	Reset status change.
	(grub_uhci_detect_dev): Supply status_change.
	* bus/usb/usb.c (attach_hooks): New var.
	(grub_usb_device_attach): New function.
	(grub_usb_register_attach_hook_class): Likewise.
	(grub_usb_unregister_attach_hook_class): Likewise.
	* bus/usb/usbhub.c (grub_usb_hub_add_dev): Handle errors correctly.
	(grub_usb_add_hub): Reset connection changed bit.
	(attach_root_port): New function.
	(grub_usb_root_hub): Likewise.
	(poll_nonroot_hub): Likewise.
	(grub_usb_poll_devices): Likewise.
	* commands/usbtest.c (grub_cmd_usbtest): Poll devices before listing.
	* disk/usbms.c (grub_usbms_open): Use device hooks.
	(grub_usbms_iterate) :Poll devices.
	(grub_usbms_finddevs): Split into ...
	(grub_usbms_attach): ... this ...
	(grub_usbms_attach): ... and this.
	* include/grub/usb.h (grub_usb_controller_dev): Supply status_changed
	in detect_dev.
	(grub_usb_interface): New fields attached and detach_hook.
	(grub_usb_attach_hook_class): New type.
	(grub_usb_attach_desc): New struct.
	(grub_usb_register_attach_hook_class): New function.
	(grub_usb_unregister_attach_hook_class): Likewise.
	(grub_usb_poll_devices): Likewise.
	(grub_usb_device_attach): Likewise.
	* include/grub/usbtrans.h (GRUB_USB_HUB_FEATURE_C_CONNECTED): New const.
	(GRUB_USB_HUB_STATUS_C_CONNECTED): Likewise.
2010-07-17 03:06:34 +02:00
Vladimir 'phcoder' Serbinenko
3222efaff3 * include/grub/bsdlabel.h (GRUB_PC_PARTITION_BSD_LABEL_WHOLE_DISK_PARTITION): New definition.
* partmap/bsdlabel.c (bsdlabel_partition_map_iterate): Use FreeBSD
	delta determination style. Works with most NetBSD partitions too.
2010-07-17 01:57:48 +02:00
Vladimir 'phcoder' Serbinenko
139b714a93 * kern/partition.c [GRUB_UTIL]: Add missing util/misc.h inclusion.
* partmap/bsdlabel.c [GRUB_UTIL]: Likewise.
2010-07-17 01:55:01 +02:00
Vladimir 'phcoder' Serbinenko
986aad56c1 * disk/scsi.c (grub_scsi_open): Fix incorrect pointer dereference. 2010-07-17 01:52:41 +02:00
Anton Blanchard
99be513c3b * loader/powerpc/ieee1275/linux.c (grub_cmd_linux): Do not reject
ET_DYN files.
2010-07-14 16:47:45 +01:00
Grégoire Sutre
18075f6254 Fix condition in Makefile.in's LINGUAS assignment. 2010-07-14 16:47:28 +02:00
Grégoire Sutre
8d9a5b15e3 Discard improperly nested partitions. 2010-07-14 11:26:17 +02:00
Colin Watson
19563c25c1 * Makefile.in (.SUFFIX): Spell correctly, as ...
(.SUFFIXES): ... this.  Fixes bug where `make foo' (where foo is a
bare module name without `.mod', e.g. `test') tried to invoke a
Modula-2 compiler.
2010-07-13 12:24:07 +01:00
Colin Watson
1a1f1e6794 * README: Point to the Info manual. 2010-07-13 12:20:32 +01:00
Jiro SEKIBA
811b0dcab8 * fs/nilfs2.c: fix macro NILFS_2ND_SUPER_BLOCK to calculate
2nd superblock position from partition size.
2010-07-13 11:47:30 +02:00
Colin Watson
e4f4eafc91 * Makefile.in (MAINTAINER_CLEANFILES): Remove
unicode/UnicodeData.txt, unicode/BidiMirroring.txt, and
unicode/ArabicShaping.txt again; these are inputs to autogen.sh, not
outputs.
2010-07-10 22:37:05 +01:00
Vladimir 'phcoder' Serbinenko
4274c30fbc Restructure SCSI .id handling.
Reported and tested by: Aleš Nesrsta.

	* disk/ata.c (grub_atapi_close): Removed. All users updated.
	(grub_atapi_dev): Changed .name to "ata". New field .id.
	* disk/usbms.c (grub_usbms_close): Removed. All users updated.
	(grub_usbms_dev): New field .id.
	* disk/scsi.c (grub_scsi_iterate): Generate name.
	(grub_scsi_open): Parse name.
	* include/grub/scsi.h (grub_make_scsi_id): New function.
	(grub_scsi_dev): Change iterate and open to number instead of naming
	busses. All users updated.
	(grub_scsi): Remove name. Add .bus.
2010-07-10 02:59:33 +02:00
Vladimir 'phcoder' Serbinenko
5bc24388fb * commands/help.c (grub_cmd_help): Fix a typo. 2010-07-10 02:40:41 +02:00
Vladimir 'phcoder' Serbinenko
249975ba6b * normal/term.c (put_glyphs_terminal): Fix state->num_lines counting.
Reported and tested by: Colin Watson.
2010-07-10 02:23:48 +02:00
Vladimir 'phcoder' Serbinenko
3eaac1a13e * util/grub-mkrescue.in: Don't use tar GNU-ism since it's not necessary
in this context.
2010-07-10 02:15:49 +02:00
Vladimir 'phcoder' Serbinenko
becce1b16a * tests/util/grub-shell.in: Remove bashisms and declare as sh script. 2010-07-07 17:51:26 +02:00
Colin Watson
f7bf0918aa * term/gfxterm.c (grub_gfxterm_background_image_cmd): Fix
indentation.
2010-07-07 14:12:16 +01:00
Colin Watson
0b0f9620f2 * conf/common.rmk (grub_probe_SOURCES): Add disk/raid5_recover.c
and disk/raid6_recover.c.
* conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
* conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Likewise.
2010-07-06 19:27:55 +01:00
Colin Watson
1e54546914 * term/gfxterm.c (repaint_schedulded): Rename to ...
(repaint_scheduled): ... this.  Update all callers.
(repaint_was_schedulded): Rename to ...
(repaint_was_scheduled): ... this.  Update all callers.
2010-07-06 18:31:45 +01:00
Colin Watson
5357687a55 * util/deviceiter.c (grub_util_iterate_devices): Skip MD devices,
which we expect to be handled by upper layers.
2010-07-06 15:10:36 +01:00
BVK Chaitanya
29d7e783d2 * bus/usb/usbhub.c: #include time.h header. 2010-07-06 14:53:55 +05:30
Colin Watson
37582066cd * fs/reiserfs.c (grub_reiserfs_iterate_dir): Zero out first byte of
entry_name also for entries without stat blocks (e.g. ".."); fixes
corruption of the first entry in a directory.
2010-07-06 09:51:42 +01:00
Colin Watson
c8c069533f * util/grub.d/00_header.in: Process GRUB_THEME and GRUB_BACKGROUND
after setting gfxterm as the active terminal.  GRUB_BACKGROUND
doesn't work otherwise.
2010-07-06 09:42:37 +01:00
Vladimir 'phcoder' Serbinenko
75d959ea7c Revert latest two Aleš' commits 2010-07-06 01:55:26 +02:00
starous
f1f7d19ead ChangeLog & usbhub.c correction 2010-07-05 20:34:27 +02:00
Colin Watson
e75056f162 * docs/grub.texi (Features): Update list of supported file systems.
(GNU/Linux): Update for GRUB 2.
(Serial terminal): Remove mention of --disable-serial, which was a
GRUB Legacy configure option.  Update instructions to use
`terminal_input' and `terminal_output' rather than `terminal'.
(Vendor power-on keys): Copy-edit.  Add cross-references to `Simple
configuration' and `Installing GRUB using grub-install'.
(Menu entry editor): Update for GRUB 2.
(terminfo): Add vt100-color, ieee1275, and dumb terminal types.
Document new -a, -u, and -v options.
(initrd): New section.
(initrd16): New section.
(linux): New section.
(linux16): New section.
(search): The `var' argument to `--set' is optional.
(GRUB only offers a rescue shell): Go into a little more detail on
drive ordering.
2010-07-05 11:08:04 +01:00
Colin Watson
5cf691510f * Makefile.in: Set LINGUAS to empty if ENABLE_NLS is undefined. 2010-07-05 09:29:02 +01:00
Colin Watson
fcda2a1f80 fix typo in reporter name 2010-07-05 01:45:25 +01:00
Colin Watson
e3f90044e1 * Makefile.in (MAINTAINER_CLEANFILES): Add unicode/UnicodeData.txt,
unicode/BidiMirroring.txt, unicode/ArabicShaping.txt, and unidata.c.
2010-07-05 01:24:10 +01:00
Colin Watson
38d8f4f3f7 * util/i386/pc/grub-setup.c (setup): Rename prefix to
install_prefix, in line with install_dos_part and install_bsd_part.
Add new prefix variable, which is copied to install_prefix after
comparing core.img in memory with the one read from disk in the
no-embedding case, and use that rather than overwriting
install_prefix immediately when installing to a partition.
Fixes Debian bug #586621; based on patches by Matt Kraai and M. Vefa
Bicakci.
2010-07-05 01:09:00 +01:00
Grégoire Sutre
57ebd41ef1 Avoid == in test command, it's not portable. 2010-07-05 00:45:14 +02:00
Colin Watson
cb7f64b229 * kern/emu/getroot.c [__GNU__]: Include <sys/mman.h> for munmap. 2010-07-04 22:00:45 +01:00
Vladimir 'phcoder' Serbinenko
72a2026d33 missing ChangeLog commit. 2010-07-04 14:29:01 +02:00
Grégoire Sutre
6b654bb0a5 Do not embed when there are multiple (top-level) partmaps. 2010-07-04 11:13:31 +02:00
Vladimir 'phcoder' Serbinenko
df3eb88f04 Bidi and diacritics support.
* Makefile.in (widthspec.bin): New target.
	(widthspec.h): Likewise.
	(TARGET_CFLAGS): Add -DHAVE_UNIFONT_WIDTHSPEC=1 if font was available.
	* autogen.sh: Generate unidata.c.
	* commands/cat.c (grub_cmd_cat): Don't use grub_putchar.
	* commands/ls.c (grub_ls_list_devices): Likewise.
	(grub_ls_list_files): Likewise.
	* commands/minicmd.c (grub_mini_cmd_cat): Likewise.
	(grub_mini_cmd_lsmod): Likewise.
	* commands/read.c: Likewise.
	* kern/corecmd.c (grub_core_cmd_ls): Likewise.
	* kern/rescue_reader.c (grub_rescue_read_line): Likewise.
	* lib/arg.c (grub_arg_show_help): Likewise.
	* lib/crypto.c (grub_password_get): Likewise.
	* normal/auth.c (grub_username_get): Likewise.
	* normal/misc.c (grub_normal_print_device_info): Likewise.
	* commands/help.c (grub_cmd_help): Use grub_unicode_aglomerate_comb.
	* conf/common.rmk (grub_mkfont_SOURCES): Add unidata.c.
	(gfxmenu_mod_SOURCES): Add gfxmenu/font.c.
	(normal/charset.c_DEPENDENCIES): New variable.
	(normal_mod_SOURCES): Add normal/charset.c and unidata.c.
	(pkglib_MODULES): Remove charset.mod.
	(charset_mod_SOURCES): Removed.
	(charset_mod_CFLAGS): Likewise.
	(charset_mod_LDFLAGS): Likewise.
	(pkglib_MODULES) [ieee1275]: Remove terminfo.mod.
	* conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Add term/terminfo.c
	and term/tparm.c.
	* conf/sparc64-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	(kernel_img_HEADERS): Add terminfo.h.
	* font/font.c (ascii_glyph_lookup): Return NULL on failure.
	Fill ->font. Reverse ascii bitmaps.
	(grub_font_get_xheight): New function.
	* font/font.c (grub_font_get_string_width): Moved from here ...
	* gfxmenu/font.c (grub_font_get_string_width): ... here.
	* font/font.c (grub_font_draw_string): Moved from here ...
	* gfxmenu/font.c (grub_font_draw_string): ... here.
	* font/font.c (grub_font_dup_glyph): New function.
	(grub_font_blit_glyph): Likewise.
	(grub_font_blit_glyph_mirror): Likewise.
	(blit_comb): Likewise.
	(grub_font_construct_dry_run): Likewise.
	(grub_font_get_constructed_device_width): Likewise.
	(grub_font_construct_glyph): Likewise.
	* include/grub/charset.h (grub_ucs4_to_utf8): New proto.
	* include/grub/misc.h (grub_utf8_to_ucs4): Moved from here ...
	* include/grub/charset.h (grub_utf8_to_ucs4): ... here.
	* include/grub/font.h (GRUB_FONT_CODE_CHAR_MASK): New constant.
	(GRUB_FONT_CODE_RIGHT_JOINED): Likewise.
	(GRUB_FONT_CODE_LEFT_JOINED): Likewise.
	(grub_font_get_xheight): New proto.
	(grub_font_get_constructed_device_width): Likewise.
	(grub_font_construct_glyph): Likewise.
	* include/grub/font.h (grub_font_get_string_width): Moved from here ...
	* include/grub/gfxmenu_view.h (grub_font_get_string_width): ... here.
	* include/grub/font.h (grub_font_draw_string): Moved from here ...
	* include/grub/gfxmenu_view.h (grub_font_draw_string): ... here.
	* include/grub/i386/vga_common.h (grub_console_putchar): Moved from here..
	* include/grub/i386/pc/console.h (grub_console_putchar): ... here.
	* include/grub/i386/vga_common.h (grub_console_real_putchar): Removed.
	(grub_console_getcharwidth): Likewise.
	* include/grub/misc.h (grub_xputs): New proto.
	(grub_puts): Inlined.
	* include/grub/normal.h (grub_print_ucs4): Add margin specification.
	(grub_normal_get_line_counter): Removed.
	(grub_install_newline_hook): Likewise.
	(grub_normal_get_char_counter): New proto.
	(grub_normal_reset_more): Likewise.
	(grub_xputs_normal): Likewise.
	* include/grub/powerpc/ieee1275/console.h: Removed.
	* include/grub/sparc64/ieee1275/console.h: Likewise.
	* include/grub/term.h (GRUB_TERM_CODE_TYPE_MASK): New definition.
	(GRUB_TERM_CODE_TYPE_ASCII): Likewise.
	(GRUB_TERM_CODE_TYPE_CP437): Likewise.
	(GRUB_TERM_CODE_TYPE_UTF8_LOGICAL): Likewise.
	(GRUB_TERM_CODE_TYPE_UTF8_VISUAL): Likewise.
	(GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS): Likewise.
	(grub_term_input): Pass reference to self. All users updated.
	(grub_term_output): Pass grub_unicode_glyph to putchar and getcharwidth.
	Pass reference to self. New fields normal_color, highlight_color and
	data. All users updated.
	(grub_putchar): Removed.
	(grub_putcode): Remove EXPORT_FUNC since it's not in kernel anymore.
	(grub_unicode_estimate_width): New function.
	(grub_term_getcharwidth): Add defaults.
	(GRUB_TERM_DEFAULT_NORMAL_COLOR): New definition.
	(GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR): Likewise.
	(GRUB_TERM_DEFAULT_STANDARD_COLOR): Likewise.
	(grub_cls): Remove EXPORT_FUNC.
	(grub_setcolorstate): Inline.
	(grub_newline_hook): Removed.
	* include/grub/terminfo.h: Rewritten. All users updated.
	* include/grub/unicode.h: New file.
	* include/grub/video.h (grub_video_signed_rect): New type.
	* kern/emu/console.c (grub_console_highlight_color): Removed.
	(grub_console_normal_color): Likewise.
	(grub_console_standard_color): Made static.
	(grub_ncurses_putchar): Remove mapping.
	(grub_ncurses_getcharwidth): Removed.
	(grub_ncurses_term_output): Declare as GRUB_TERM_CODE_TYPE_ASCII.
	(grub_ncurses_setcolor): Removed.
	(grub_ncurses_getcolor): Likewise.
	* kern/i386/pc/startup.S (grub_console_real_putchar): Renamed to ...
	(grub_console_putchar): ... this.
	(grub_console_putchar): Handle argument difference.
	* kern/ieee1275/init.c (grub_machine_init): Split console_init into
	console_init_early and console_init_lately.
	* kern/sparc64/ieee1275/init.c (grub_machine_init): Likewise.
	* kern/misc.c (grub_puts): Removed.
	(grub_vprintf): Store UTF-8 string instead of outputting it directly.
	(grub_vsnprintf_real): Remove str = NULL support.
	* kern/misc.c (grub_utf8_to_ucs4): Move from here ...
	* normal/charset.c (grub_utf8_to_ucs4): ... here.
	* kern/term.c (grub_putcode): Renamed to ...
	(grub_putcode_dumb): ... this. Pass grub_unicode_glyph instead of code.
	(grub_putchar): Removed.
	(grub_xputs_dumb): New function.
	(grub_xputs): New variable.
	* lib/charset.c: Move from here ...
	* normal/charset.c: ... to here.
	(grub_ucs4_to_utf8): New function.
	(grub_ucs4_to_utf8_alloc): Use grub_ucs4_to_utf8.
	(join_types): New variable.
	(unpack_join): New function.
	(bidi_types): New variable.
	(unpack_bidi): New function.
	(get_bidi_type): Likewise.
	(get_join_type): Likewise.
	(is_mirrored): Likewise.
	(grub_unicode_get_comb_type): Likewise.
	(grub_unicode_estimate_width) [HAVE_UNIFONT_WIDTHSPEC]: Likewise.
	(is_type_after): Likewise.
	(grub_unicode_aglomerate_comb): Likewise.
	(bidi_line_wrap): Likewise.
	(grub_bidi_line_logical_to_visual): Likewise.
	(grub_bidi_logical_to_visual): Likewise.
	(grub_unicode_mirror_code): Likewise.
	(grub_unicode_shape_code): Likewise.
	* normal/cmdline.c (grub_cmdline_get): Reset more counter.
	Don't use grub_putchar.
	* normal/main.c (grub_normal_init_page): Use grub_putcode.
	(grub_normal_reader_init): Likewise.
	(grub_xputs_saved): New variable.
	(GRUB_MOD_INIT): Set grub_xputs.
	(GRUB_MOD_FINI): Restore grub_xputs.
	* normal/menu.c (grub_wait_after_message): Don't use grub_putchar.
	(menu_init): Avoid printing gfxmenu error.
	(show_menu): Use grub_normal_get_char_counter.
	* normal/menu_entry.c (update_screen): Fix out-of-array.
	(complete): Avoid NULL dereferencing.
	* grub_menu_entry_run (grub_menu_entry_run): Don't use putchar.
	* normal/menu_text.c (print_spaces): Removed.
	(grub_print_ucs4): Likewise.
	(grub_print_message_indented): Use grub_print_ucs4.
	(print_message): Use grub_putcode.
	(print_entry): Hanlde diacritics.
	* normal/term.c (term_state): New type.
	(grub_more_lines): Removed.
	(term_states): New variable.
	(grub_normal_line_counter): Renamed to ..
	(grub_normal_char_counter): ...this. All users updated.
	(grub_normal_get_line_counter): Renamed to ...
	(grub_normal_get_char_counter): ... this.
	(grub_normal_reset_more): New function.
	(process_newline): Removed.
	(print_more): New function.
	(grub_install_newline_hook): Removed.
	(map_code): New function.
	(grub_puts_terminal): Use grub_print_ucs4.
	(putglyph): New function.
	(putcode_real): Likewise.
	(grub_putcode): Use putcode_real.
	(get_maxwidth): New function.
	(get_startwidth): Likewise.
	(print_ucs4_terminal): Likewise.
	(find_term_state): Likewise.
	(put_glyphs_terminal): Likewise.
	(print_backlog): Likewise.
	(print_ucs4_real): Likewise.
	(grub_print_ucs4): Likewise.
	(grub_xputs_normal): Likewise.
	* term/efi/console.c (grub_console_putchar): Output diacritics.
	(grub_console_getcharwidth): Removed.
	(grub_console_term_output): Declare as GRUB_TERM_CODE_TYPE_UCS4_VISUAL.
	* term/gfxterm.c (clear_char): Free chars.
	(scroll_up): Avoid leaking memory.
	(grub_gfxterm_putchar): Support diacritics.
	(grub_video_term): Declare as GRUB_TERM_CODE_TYPE_UCS4_VISUAL.
	* term/i386/pc/console.c (grub_console_term_output): Declare as
	GRUB_TERM_CODE_TYPE_VGA.
	* term/i386/pc/vga.c (grub_vga_term): Declare as
	GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS.
	* term/i386/pc/vga_text.c (grub_vga_text_term): Declare as
	GRUB_TERM_CODE_TYPE_VGA.
	* term/i386/vga_common.c (map_char): Removed.
	(grub_console_putchar): Likewise.
	(grub_console_getcharwidth): Likewise.
	* term/ieee1275/ofconsole.c: Simplify using terminfo.
	(colors): Reordered to match terminfo.
	(grub_ofconsole_normal_color): Removed.
	(grub_ofconsole_writeesc): Likewise.
	(grub_ofconsole_highlight_color): Likewise.
	(grub_ofconsole_getcharwidth): Likewise.
	(grub_ofconsole_setcolorstate): Likewise.
	(grub_ofconsole_setcolor): Likewise.
	(grub_ofconsole_getcolor): Likewise.
	(grub_ofconsole_readkey): Renamed to ...
	(readkey): ... this. Remove escape sequence handling. Return -1 on no
	key.
	(grub_ofconsole_checkkey): Removed.
	(grub_ofconsole_getkey): Likewise.
	(grub_ofconsole_getxy): Likewise.
	(grub_ofconsole_gotoxy): Likewise.
	(grub_ofconsole_cls): Likewise.
	(grub_ofconsole_refresh): Likewise.
	(grub_ofconsole_terminfo_input): New struct.
	(grub_ofconsole_terminfo_output): Likewise.
	(grub_ofconsole_term_input): Use terminfo.
	(grub_ofconsole_term_output): Likewise.
	(grub_console_init): Split into ...
	(grub_console_init_early): ...this and ...
	(grub_console_init_lately): ...this. Use terminfo.
	(grub_ofconsole_putchar): Renamed to ...
	(put): ... this. Remove mapping.
	(grub_ofconsole_term_output): Declare as GRUB_TERM_CODE_TYPE_ASCII.
	* term/serial.c: Simplify using terminfo.
	(xpos): Removed.
	(ypos): Likewise.
	(keep_track): Likewise.
	(registered): Likewise.
	(input_buf): Likewise.
	(npending): Likewise.
	(serial_translate_key_sequence): Likewise.
	(fill_input_buf): Likewise.
	(grub_serial_checkkey): Likewise.
	(grub_serial_getkey): Likewise.
	(grub_serial_getxy): Likewise.
	(grub_serial_gotoxy): Likewise.
	(grub_serial_putchar): Likewise.
	(grub_serial_cls): Likewise.
	(grub_serial_setcolorstate): Likewise.
	(grub_serial_setcursor): Likewise.
	(serial_hw_init): Use serial_hw_fetch.
	(grub_serial_terminfo_input): New variable.
	(grub_serial_terminfo_output): Likewise.
	(grub_serial_term_input): Use terminfo.
	(grub_serial_term_output): Likewise.
	* term/terminfo.c (putstr): Use put.
	(grub_terminfo_all_free): New function
	(grub_terminfo_set_current): New types vt100-color, ieee1275 and dumb.
	(grub_terminfo_output_register): New function.
	(grub_terminfo_output_unregister): Likewise.
	(grub_terminfo_getxy): Likewise.
	(grub_terminfo_readkey): Likewise.
	(grub_terminfo_checkkey): Likewise.
	(grub_terminfo_getkey): Likewise.
	(grub_terminfo_input_init): Likewise.
	(print_terminfo): Likewise.
	(grub_cmd_terminfo): Handle encoding.
	(grub_terminfo_gotoxy): Track position.
	(grub_terminfo_cls): Likewise.
	(grub_terminfo_putchar): Likewise.
	(grub_terminfo_setcolorstate): Handle colors
	(grub_terminfo_cursor_on): This ...
	(grub_terminfo_cursor_off): ... and this merged into ...
	(grub_terminfo_setcursor): ... this.
	* term/tparm.c (grub_terminfo_tparm): Avoid NULL dereferencing.
	* unicode/ArabicShaping.txt: New file (imported from Unicode).
	* unicode/BidiMirroring.txt: Likewise.
	* unicode/UnicodeData.txt: Likewise.
	* unicode/COPYING: Likewise.
	* util/grub-editenv.c (grub_putchar): Removed.
	(grub_xputs_real): New function.
	(grub_xputs): New variable.
	* util/grub-fstest.c (grub_putchar): Removed.
	(grub_xputs_real): New function.
	(grub_xputs): New variable.
	* util/grub-mkdevicemap.c (grub_putchar): Removed.
	(grub_xputs_real): New function.
	(grub_xputs): New variable.
	* util/grub-probe.c (grub_putchar): Removed.
	(grub_xputs_real): New function.
	(grub_xputs): New variable.
	* util/grub-script-check.c (grub_putchar): Removed.
	(grub_xputs_real): New function.
	(grub_xputs): New variable.
	* util/i386/pc/grub-setup.c (grub_putchar): Removed.
	(grub_xputs_real): New function.
	(grub_xputs): New variable.
	* util/import_unicode.py: New file.
	* util/grub-mkfont.c (ft_errmsgs): New array.
	(grub_glyph_info): Make bitmap a pointer.
	(file_formats): New type WIDTH_SPEC.
	(grub_font_info): New members glyphs_unsorted, glyphs_sorted, num_glyphs.
	(options): Add width-spec.
	(help): Likewise.
	(add_char): Renamed to ...
	(add_glyph): ... this.
	(add_glyph): Use index. Show freetype errors. Cut blank space at borders.
	(glyph_replace): New type.
	(subst_rightjoin), (subst_leftjoin), (subst_medijoin): New variables.
	(add_char): New function.
	(add_subst): Likewise.
	(process_cursive): Likewise.
	(add_font): Handle GSUB.
	(write_font_width_spec): New function.
	(main): Sort glyphs.
	* commands/minicmd.c (grub_mini_cmd_clear): Moved from here ...
	* normal/main.c (grub_mini_cmd_clear): ..here. All users updated.
	* kern/term.c (grub_cls): Moved from here...
	* normal/term.c (grub_cls): ... here.
2010-07-02 22:16:35 +02:00
Colin Watson
50f0bcdab5 * include/grub/types.h: Define the C99-style PRIxGRUB_SIZE macro,
suitable for using within the format argument of printf when
converting grub_size_t.
* disk/usbms.c (grub_usbms_transfer): Use PRIxGRUB_SIZE rather than
"x" to convert grub_size_t arguments.
2010-07-02 18:04:54 +01:00
Vladimir 'phcoder' Serbinenko
4037210375 * gfxmenu/gui_list.c (draw_menu): Use viewport to simplify code and fix
too long captions.
	(list_get_minimal_size): Take selection box into account.
2010-07-02 18:28:54 +02:00
Vladimir 'phcoder' Serbinenko
942a10c71e * font/font.c (grub_font_get_glyph_with_fallback): Avoid dereferencing
NULL font.
2010-07-02 18:25:42 +02:00
Colin Watson
2bdb2892b3 * util/deviceiter.c (grub_util_iterate_devices): Skip device-mapper
devices when iterating over /dev/disk/by-id; they will be handled
later if appropriate, which they aren't always (e.g. LVM).
2010-07-02 17:11:42 +01:00
Colin Watson
e03ed6c1ee * include/grub/misc.h (grub_reboot): Declare as noreturn.
* kern/efi/efi.c (grub_reboot): Don't return, even if reset_system
fails.
(grub_halt): Likewise.
* kern/ieee1275/openfw.c (grub_reboot): Don't return, even if
reset-all fails.
(grub_halt): Don't return, even if all of shut-down, power-off, and
poweroff fail.
2010-07-02 13:47:14 +01:00
Colin Watson
47695765a4 * kern/efi/init.c (grub_efi_init): set_watchdog_timer takes four
arguments, not three.
2010-07-02 13:42:18 +01:00
Colin Watson
507736c87c * util/grub-mkconfig_lib.in (uses_abstraction): New function.
* util/grub.d/10_linux.in: Use it to check for LVM, so that
LVM-on-RAID is handled correctly.
2010-07-02 12:32:05 +01:00
Colin Watson
e3c8cd3719 * docs/grub.texi (Changes from GRUB Legacy): New section.
(Future): Fix typo.
2010-07-02 12:13:48 +01:00
Colin Watson
8d4a2fec0d * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Sometimes
grub.d/README accidentally ends up executable for one reason or
another.  Ignore it.
2010-07-02 10:50:04 +01:00
Vladimir 'phcoder' Serbinenko
1c4827beff * partmap/gpt.c (MAX_SECTOR_LOG): New definition.
(gpt_partition_map_iterate): Support non-512B sectors.
2010-07-02 02:47:10 +02:00
Vladimir 'phcoder' Serbinenko
d9a0c9413e * kern/efi/init.c (grub_efi_init): Disable watchdog.
Tested by: Seth Goldberg.
2010-07-02 02:43:09 +02:00
Vladimir 'phcoder' Serbinenko
48f27e87fc * loader/multiboot.c (grub_multiboot_boot) [GRUB_USE_MULTIBOOT2]:
Properly align mbi.
	Reported by: Seth Goldberg.
2010-07-02 00:40:37 +02:00
Vladimir 'phcoder' Serbinenko
b0c4f95642 * util/grub-mkrescue.in: Avoid module duplication. 2010-07-01 23:35:45 +02:00
Sean Finney
105a2e8c66 * util/grub.d/10_linux.in: Don't use UUID for LVM root. 2010-07-01 23:24:21 +02:00
Sean Finney
5944958c61 * disk/lvm.c (grub_lvm_scan_device): Skip snapshots.
2010-07-01  Vladimir Serbinenko  <phcoder@gmail.com>

	* disk/lvm.c (grub_lvm_checkvalue): New function.
	(grub_lvm_check_flag): Likewise.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-07-01 23:19:11 +02:00
Robert Millan
b79889ba76 2010-07-01 Robert Millan <rmh@gnu.org>
* kern/emu/hostdisk.c (convert_system_partition_to_system_disk):
	Support 'p' as partition separator on kernel of FreeBSD (used
	with GPT labels).
	(grub_util_biosdisk_get_grub_dev): Likewise.
2010-07-01 10:52:23 +02:00
Vladimir 'phcoder' Serbinenko
ec1d04f1de Yeeloong firmware port.
* boot/mips/yeeloong/fwstart.S: New file.
	* bus/cs5536.c (gpiodump): New const.
	(set_io_space): New function.
	(set_iod): Likewise.
	(set_p2d): Likewise.
	(grub_cs5536_init_geode): Likewise.
	* commands/mips/yeeloong/lsspd.c: New file.
	* conf/mips-qemu-mips.rmk (pkglib_MODULES): Add serial.mod.
	(serial_mod_SOURCES): New variable.
	(serial_mod_CFLAGS): Likewise.
	(serial_mod_LDFLAGS): Likewise.
	* conf/mips-yeeloong.rmk (kernel_img_SOURCES): Add term/serial.c,
	term/terminfo.c and term/tparm.c.
	(pkglib_IMAGES): Add fwstart.img.
	(fwstart_img_SOURCES): New variable.
	(fwstart_img_CFLAGS): Likewise.
	(fwstart_img_ASFLAGS): Likewise.
	(fwstart_img_LDFLAGS): Likewise.
	(fwstart_img_FORMAT): Likewise.
	(pkglib_MODULES): Add lsspd.mod.
	(lsspd_mod_SOURCES): New variable.
	(lsspd_mod_CFLAGS): Likewise.
	(lsspd_mod_LDFLAGS): Likewise.
	(pkglib_MODULES): Add halt.mod.
	(halt_mod_SOURCES): New variable.
	(halt_mod_CFLAGS): Likewise.
	(halt_mod_LDFLAGS): Likewise.
	* conf/mips.rmk (pkglib_MODULES): Remove serial.mod.
	(serial_mod_SOURCES): Removed.
	(serial_mod_CFLAGS): Likewise.
	(serial_mod_LDFLAGS): Likewise.
	* disk/ata.c (check_device): New function.
	(grub_ata_device_initialize): Use check_device.
	(grub_ata_iterate): Recheck devices.
	(grub_ata_open): Likewise.
	(grub_atapi_iterate): Likewise.
	(grub_atapi_open): Likewise.
	* include/grub/ata.h (GRUB_ATA_CH0_PORT1): New macro.
	(GRUB_ATA_CH1_PORT1): Likewise.
	(GRUB_ATA_CH0_PORT2): Likewise.
	(GRUB_ATA_CH1_PORT2): Likewise.
	* include/grub/mips/loongson.h: New file.
	* include/grub/mips/yeeloong/ec.h: Likewise.
	* include/grub/mips/yeeloong/serial.h (GRUB_MACHINE_SERIAL_PORT): New definition.
	(GRUB_MACHINE_SERIAL_DIVISOR_115200): Likewise.
	(GRUB_MACHINE_SERIAL_PORTS) [ASM_FILE]: Remove.
	* include/grub/misc.h (grub_halt): Declare as noreturn.
	* include/grub/serial.h (UART_ENABLE_FIFO): Renamed to ...
	(UART_ENABLE_FIFO_TRIGGER14): ... this. All users updated.
	(UART_ENABLE_FIFO_TRIGGER1): New definition.
	(UART_ENABLE_DTRRTS): Likewise.
	(UART_ENABLE_MODEM): Removed.
	(UART_ENABLE_OUT2): New const.
	* include/grub/term.h (grub_term_register_input_active): New function.
	(grub_term_register_output_active): Likewise.
	* kern/mips/startup.S [GRUB_MACHINE_MIPS_YEELOONG]: Handle 0xffffffff
	argument.
	* kern/mips/yeeloong/init.c (grub_get_rtc): Macroify.
	(init_pci): New function.
	(grub_machine_init): Execute platform init when firmware. Init serial.
	(grub_halt): Implement.
	(grub_exit): Likewise.
	(grub_reboot): Likewise.
	* term/serial.c (serial_hw_init): Update macros.
	[GRUB_MACHINE_MIPS_YEELOONG]: Init on startup.
	* util/grub-mkimage.c (image_target_desc): New id IMAGE_YEELOONG_FLASH.
	(image_targets): New target mipsel-yeeloong-flash.
	(generate_image): Support IMAGE_YEELOONG_FLASH.
	* video/sm712.c (GRUB_SM712_TOTAL_MEMORY_SPACE): New definition.
	(grub_video_sm712_setup): Init card.
	(grub_video_sm712_set_palette): Removed.
	* video/sm712_init.c: New file.
2010-07-01 03:16:56 +02:00
Colin Watson
ff4a70d291 * Makefile.in (install-local): Temporarily prepend $(builddir) to
PATH when running help2man and then run it on the unadorned
executable names, rather than passing $(builddir)/* paths to
help2man.  This avoids the build directory ending up in generated
manual pages.
2010-06-30 13:36:58 +01:00
Colin Watson
1246efeb8b * util/grub-mkconfig.in: Use 'set -e' rather than '#! /bin/sh -e',
to avoid accidents when debugging with 'sh -x'.
* util/grub-mkrescue.in: Likewise.
* util/grub.d/00_header.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/10_netbsd.in: Likewise.
* util/grub.d/10_windows.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
2010-06-29 16:20:49 +01:00
Colin Watson
1ba9b88946 * commands/cat.c (grub_cmd_cat): Fix buffer overrun if '\r' is the
last character in the buffer.
Reported by: Vladimir Serbinenko.
2010-06-29 16:15:46 +01:00
Robert Millan
dccaf99d10 2010-06-29 Robert Millan <rmh@gnu.org>
* docs/grub.texi (Simple configuration): Document ${GRUB_BADRAM}.
	(Command-line and menu entry commands): Document `badram' command.
2010-06-29 00:48:53 +02:00
Robert Millan
d500ed127e 2010-06-28 Robert Millan <rmh@gnu.org>
* util/grub-mkconfig.in: Export `GRUB_BADRAM' variable.
	* util/grub.d/00_header.in: When `GRUB_BADRAM' is set, issue badram
	command using ${GRUB_BADRAM} as parameter.
2010-06-28 23:52:03 +02:00
Colin Watson
20bc84a6ff * docs/grub.texi (Device map): New section.
(Themes): New section (stub).
* Makefile.in (docs/grub.info): The info documentation now builds
without errors.  Make sure it stays that way.
2010-06-28 12:02:39 +01:00
Vladimir 'phcoder' Serbinenko
4045dee1b9 Use normal parser for menu entries.
Reported by: Thomas Frauendorfer

	* include/grub/parser.h (grub_parser_execute): Don't export.
	* normal/menu.c (grub_menu_execute_entry_real): New function.
	(grub_menu_execute_entry): Use grub_menu_execute_entry_real.
2010-06-28 12:42:50 +02:00
Colin Watson
bca58c7bb6 * docs/grub.texi (Embedded configuration): New section (replacing
old "Preset Menu" stub).
(Images): New section.
(configfile): Note that any menu entries defined in `file' are shown
immediately.
2010-06-28 11:32:50 +01:00
Josh Triplett
dec53e635c * mmap/i386/pc/mmap_helper.S: Set CF on return. 2010-06-28 10:17:57 +02:00
Colin Watson
c06e40f728 * util/grub-install.in: Add --debug-image= option. 2010-06-28 09:06:41 +01:00
Colin Watson
cb88052ba3 Change grub-mkdevicemap to emit /dev/disk/by-id/ names where
possible on Linux.
* util/deviceiter.c (check_device): Rename to ...
(check_device_readable_unique): ... this.  Update all callers.
Maintain and check a list of which devices (by canonicalized name)
have already been seen.
(clear_seen_devices): New function.
(compare_file_names) [__linux__]: New function.
(grub_util_iterate_devices): Clear the list of seen devices on exit
and (just in case) on entry.
(grub_util_iterate_devices) [__linux__]: Iterate over non-partition
devices in /dev/disk/by-id/, in sorted order.  Remove DM-RAID
seen-devices list, superseded by general code in check_device.
2010-06-28 08:55:05 +01:00
Colin Watson
bbe346529e * commands/cat.c (options): New variable.
(grub_cmd_cat): Parse options.  If the --dos option is given, print
DOS-style "\r\n" line endings as simple newlines (Debian bug
#586358).
(GRUB_MOD_INIT): Use extcmd.
(GRUB_MOD_FINI): Likewise.
* docs/grub.texi (cat): Document --dos.
2010-06-28 08:51:46 +01:00
Vladimir 'phcoder' Serbinenko
412e09f355 XEN with Linux grub-mkconfig support.
* conf/common.rmk (grub-mkconfig_SCRIPTS) [linux]: Add 20_linux_xen.
	* util/grub-mkconfig.in: Export GRUB_CMDLINE_XEN and
	GRUB_CMDLINE_XEN_DEFAULT.
	* util/grub.d/20_linux_xen.in: New file.
2010-06-28 02:39:49 +02:00
Vladimir 'phcoder' Serbinenko
53f3ef38c5 Initialise VGA video on qemu ourselves.
* boot/i386/qemu/boot.S: Don't call 0xc000.
	* conf/i386-qemu.rmk (kern/i386/qemu/init.c_DEPENDENCIES): New variable.
	(kernel_img_SOURCES): Add kern/i386/qemu/init.c and bus/pci.c.
	(kernel_img_HEADERS): Add pci.h.
	* conf/i386.rmk (pkglib_MODULES) [qemu]: Remove pci.mod.
	* configure.ac: Force unifont on qemu and yeeloong.
	* include/grub/i386/qemu/kernel.h (grub_qemu_init_cirrus): New proto.
	(grub_vga_palette_write): Use correct register.
	* kern/i386/coreboot/init.c (grub_machine_init) [GRUB_MACHINE_QEMU]:
	Call grub_qemu_init_cirrus.
	* kern/i386/qemu/init.c: New file.
	* term/i386/pc/vga_text.c (inc_y): Never read outside the screen.

	* commands/videotest.c (grub_cmd_videotest): Handle double buffering.
2010-06-28 02:33:32 +02:00
Pavel Roskin
c75be4fb0c * util/grub.d/10_linux.in: Add support for initrd images on Fedora
13.
2010-06-26 20:31:40 +01:00
Colin Watson
d803460357 * docs/grub.texi (Simple configuration): Explain that
GRUB_DISABLE_LINUX_RECOVERY and GRUB_DISABLE_NETBSD_RECOVERY must be
set to `true' to disable their respective recovery entries, not
merely set.
2010-06-26 10:50:39 +01:00
Colin Watson
3fa0648724 Make the `source' command slightly faster.
* normal/main.c (grub_normal_execute): Don't re-read list files when
nested.
2010-06-26 10:46:54 +01:00
Colin Watson
e9b29642bd * loader/i386/multiboot_mbi.c (retrieve_video_parameters): Set red
field position and mask size to red fields from mode_info, not
green.
* loader/multiboot_mbi2.c (retrieve_video_parameters): Likewise.
Remove redundant tag->common.framebuffer_type assignment.
Reported by: Seth Goldberg.
2010-06-23 09:22:03 +01:00
Colin Watson
e726542fa3 Sync up other versions of the Linux loader with Robert Millan's
change of 2010-01-09, "Make loader output a bit more user-friendly".
* loader/i386/efi/linux.c (grub_linux_boot): Move debug info to
grub_dprintf().
(grub_cmd_linux): Likewise.
(grub_cmd_initrd): Likewise.
* loader/i386/ieee1275/linux.c (grub_cmd_linux): Likewise.
* loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
2010-06-23 09:16:39 +01:00
Colin Watson
d6e98a17d7 * kern/efi/mm.c (grub_efi_mm_init): Handle systems with memory maps
larger than MEMORY_MAP_SIZE.
2010-06-21 17:59:51 +01:00
BVK Chaitanya
14d3f08e70 Fix parallel build.
* conf/common.rmk: Add grub_script.tab.h as a grub-script-check
	dependency.
	* script/parser.y: #include grub_script.tab.h header.
2010-06-21 20:34:30 +05:30
Vladimir 'phcoder' Serbinenko
994b0c27ea Add ChangeLog 2010-06-21 02:23:58 +02:00
Vladimir 'phcoder' Serbinenko
4f9613a3a0 Support >3GiB and <16MiB RAM in i386-qemu.
* kern/i386/qemu/mmap.c (QEMU_CMOS_MEMSIZE2_HIGH): New const.
	(QEMU_CMOS_MEMSIZE2_LOW): Likewise.
	(grub_lower_mem): Removed.
	(grub_upper_mem): Likewise.
	(mem_size): Made static.
	(above_4g): New variable.
	(grub_machine_mmap_init): Detect small mem_size and above_4g.
	(grub_machine_mmap_iterate): Order in ascending order and add above_4g
	support.
2010-06-20 14:22:34 +02:00
Vladimir 'phcoder' Serbinenko
05e5187978 Cirrus 5446 and Bochs video cards support.
* conf/i386.rmk (pkglib_MODULES): Add video_cirrus.mod and
	video_bochs.mod
	(video_cirrus_mod_SOURCES): New variable.
	(video_cirrus_mod_CFLAGS): Likewise.
	(video_cirrus_mod_LDFLAGS): Likewise.
	(video_bochs_mod_SOURCES): Likewise.
	(video_bochs_mod_CFLAGS): Likewise.
	(video_bochs_mod_LDFLAGS): Likewise.
	* include/grub/vga.h: New file.
	* include/grub/video_fb.h (grub_video_fb_doublebuf_blit_init): Removed.
	(grub_video_fb_set_page_t): New type.
	(grub_video_fb_setup): New prototype.
	(grub_video_fb_swap_buffers): Likewise.
	(grub_video_fb_get_info_and_fini): Likewise.
	* term/i386/pc/vga_text.c (CRTC_ADDR_PORT): Moved to include/grub/vga.h.
	(CRTC_DATA_PORT): Likewise.
	(CRTC_CURSOR): Likewise.
	(CRTC_CURSOR_ADDR_HIGH): Likewise.
	(CRTC_CURSOR_ADDR_LOW): Likewise.
	(CRTC_CURSOR_DISABLE): Likewise.
	(update_cursor): Use grub_vga_cr_write.
	(grub_vga_text_setcursor): Likewise.
	* video/bochs.c: New file.
	* video/fb/video_fb.c (render_target): Moved into framebuffer variable.
	(palette): Likewise.
	(palette_size): Likewise.
	(framebuffer): New variable.
	(grub_video_fb_init): Use 'framebuffer'.
	(grub_video_fb_fini): Likewise.
	(grub_video_fb_get_info): Likewise.
	(grub_video_fb_get_palette): Likewise.
	(grub_video_fb_set_palette): Likewise.
	(grub_video_fb_set_viewport): Likewise.
	(grub_video_fb_get_viewport): Likewise.
	(grub_video_fb_map_color): Likewise.
	(grub_video_fb_map_rgb): Likewise.
	(grub_video_fb_map_rgba): Likewise.
	(grub_video_fb_unmap_color): Likewise.
	(grub_video_fb_unmap_color_int): Likewise.
	(grub_video_fb_fill_rect): Likewise.
	(grub_video_fb_blit_bitmap): Likewise.
	(grub_video_fb_blit_render_target): Likewise.
	(grub_video_fb_scroll): Likewise.
	(grub_video_fb_create_render_target): Likewise.
	(grub_video_fb_doublebuf_blit_init): Likewise.
	(grub_video_fb_set_active_render_target): Handle doublebuffering.
	(doublebuf_pageflipping_update_screen): New function.
	(doublebuf_pageflipping_init): Likewise.
	(grub_video_fb_setup): Likewise.
	(grub_video_fb_swap_buffers): Likewise.
	(grub_video_fb_get_info_and_fini): Likewise.
	* video/i386/pc/vbe.c (framebuffer): Remove all doublebuffering fields.
	All users updated.
	(doublebuf_pageflipping_commit): Restructured into ...
	(doublebuf_pageflipping_set_page): ... this.
	(doublebuf_pageflipping_update_screen): Removed.
	(doublebuf_pageflipping_init): Likewise.
	(double_buffering_init): Likewise.
	(grub_video_vbe_setup): Use grub_video_fb_setup.
	(grub_video_vbe_swap_buffers): Removed.
	(grub_video_vbe_set_active_render_target): Likewise.
	(grub_video_vbe_get_active_render_target): Likewise.
	(grub_video_vbe_get_info_and_fini): Use grub_video_fb_get_info_and_fini.
	(grub_video_vbe_adapter): Use grub_video_fb_swap_buffers,
	grub_video_fb_set_active_render_target and
	grub_video_fb_get_active_render_target.
	* video/i386/pc/vga.c (SEQUENCER_ADDR_PORT): Move to include/grub/vga.h.
	(SEQUENCER_DATA_PORT): Likewise.
	(MAP_MASK_REGISTER): Likewise.
	(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.
	(get_map_mask): Use grub_vga_sr_read.
	(set_map_mask): Use grub_vga_sr_write.
	(set_read_map): Use grub_vga_gr_write.
	(set_start_address): Use grub_vga_cr_write.
	* video/sm712.c (framebuffer): Remove leftover fields.
2010-06-20 14:15:20 +02:00
Colin Watson
4321c64aff * util/grub-mkconfig.in: Capitalise and export GRUB_PREFIX. Stop
setting GRUB_VIDEO_BACKEND.  Make it available as a user override
	instead.  Replace the gfxterm backend check with a check that
	${GRUB_PREFIX}/video.lst is non-empty.
	* util/grub.d/00_header.in: Use GRUB_PREFIX rather than computing it
	again.
	(load_video): New generated function.  Call it before loading
	gfxterm rather than loading ${GRUB_VIDEO_BACKEND}.
	* util/grub.d/10_linux.in (linux_entry): Call load_video.
	* util/grub.d/30_os-prober.in (osx_entry): Likewise.
	* docs/grub.texi (Simple configuration): Document
	GRUB_VIDEO_BACKEND.

	Use video functions in linux and xnu loaders.

	* conf/i386-pc.rmk (xnu_mod_SOURCES): Remove loader/i386/pc/xnu.c.
	* conf/x86-efi.rmk (xnu_mod_SOURCES): Remove loader/i386/efi/xnu.c.
	* include/grub/i386/xnu.h (grub_xnu_set_video): Removed.
	* loader/i386/efi/linux.c (grub_linux_setup_video): Copied from
	loader/i386/pc/linux.c.
	(grub_linux_boot): Resynced with loader/i386/pc/linux.c.
	(find_line_len): Removed.
	(find_framebuf): Likewise.
	(grub_cmd_linux): Declare grub_linux_boot as possibly returning.
	* loader/i386/efi/xnu.c: Removed.
	* loader/i386/pc/xnu.c: Moved from here...
	* loader/i386/xnu.c: ...here.

	Enable priorities in video drivers.

	* include/grub/video.h (grub_video_adapter_prio_t): New type.
	(grub_video_adapter): New field prio.
	(grub_video_register): Respect prio when inserting.
	* video/efi_gop.c (grub_video_gop_adapter): Add prio.
	* video/efi_uga.c (grub_video_uga_adapter): Likewise.
	* video/emu/sdl.c (grub_video_sdl_adapter): Likewise.
	* video/i386/pc/vbe.c (grub_video_vbe_adapter): Likewise.
	* video/i386/pc/vga.c (grub_video_vga_adapter): Likewise.
	* video/ieee1275.c (grub_video_ieee1275_adapter): Likewise.
	* video/sm712.c (grub_video_sm712_adapter): Likewise.

	Fix SDL driver ID.

	* include/grub/video.h (grub_video_driver_id_t): New value
	GRUB_VIDEO_DRIVER_SDL.
	* video/emu/sdl.c (grub_video_sdl_adapter): Add id.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-06-20 13:37:18 +02:00
Colin Watson
7d24e434c5 * util/i386/pc/grub-setup.c (usage): Pass an extra `program_name'
argument to printf.
* util/sparc64/ieee1275/grub-setup.c (usage): Likewise.
2010-06-17 21:54:04 +01:00
Colin Watson
c88a83f644 * util/i386/pc/grub-setup.c (usage): Fix syntax error.
* util/sparc64/ieee1275/grub-setup.c (usage): Likewise.
2010-06-17 21:49:50 +01:00
Colin Watson
094dfb699e * util/i386/pc/grub-setup.c (usage): Warn against running grub-setup
directly, and recommend grub-install instead.
* util/sparc64/ieee1275/grub-setup.c (usage): Likewise.
2010-06-17 21:20:43 +01:00
Colin Watson
2164da6b25 Fix i386-pc prefix handling with nested partitions (Debian bug
#585068).  Note that the case where the core image is booted using
multiboot and relocated from its original location still requires
more work.
* kern/i386/pc/init.c (make_install_device): If the prefix starts
with "(,", fill the boot drive in between those two characters, but
expect that a full partition specification including partition map
names will follow.
* util/i386/pc/grub-setup.c (setup): Unless an explicit prefix was
specified, write a prefix without the drive name but including a
full partition specification.
2010-06-17 12:15:37 +01:00
Colin Watson
044e2e60be * util/grub-mkconfig.in: Ignore non-option arguments, for
compatibility with older versions (before 2010-06-12) which did the
same.  In particular, this makes it easier to ship an update-grub
wrapper which is compatible with that used with GRUB Legacy (Debian
bug #586056).
2010-06-16 12:51:26 +01:00
Grégoire Sutre
5591324fc6 Fix help2man failure with program name transformation. 2010-06-14 21:26:48 +02:00
Grégoire Sutre
662e24d5f3 Remove leftover commands/handler.c in POTFILES. 2010-06-14 20:27:25 +02:00
Colin Watson
8d70754eed * util/grub-mkconfig.in: Remove vestige of old argument parsing that
left this script non-functional.
2010-06-14 15:34:47 +01:00
Colin Watson
41160e2e6f * docs/man/grub-emu.h2m: New file. 2010-06-14 15:08:02 +01:00
Colin Watson
b5309cc1b2 * docs/grub.texi (Commands): Document reduced command set in rescue
mode.
(cpuid): New section.
2010-06-13 13:17:23 +01:00
Grégoire Sutre
fcb2d09011 New partition naming style in grub-probe for Linux and NetBSD. 2010-06-13 02:36:39 +02:00
BVK Chaitanya
96e5c55634 Add "-o grub.iso" like cmdline options support.
* util/grub-install.in: Improve cmdline option parsing.
	* util/grub-mkconfig.in: Likewise.
	* util/grub-mkrescue.in: Likewise.
	* util/grub-reboot.in: Likewise.
	* util/grub-set-default.in: Likewise.
	* util/i386/efi/grub-install.in: Likewise.
	* util/ieee1275/grub-install.in: Likewise.
	* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
2010-06-12 20:30:38 +05:30
Colin Watson
c16be99ba3 * .bzrignore: Ignore 41_custom. 2010-06-12 15:09:38 +01:00
Thomas Schmitt
ce08a9fb28 * util/grub-mkrescue.in: Pass unrecognized options to xorriso. 2010-06-12 16:03:34 +02:00
Colin Watson
7beac90c5f Avoid false positives in fs.lst, partmap.lst, and video.lst due to
prototype declarations.
* genmk.rb (PModule::rule): Define GRUB_LST_GENERATOR when
generating fs, partmap, and video lists.
* include/grub/fs.h (grub_fs_register): Omit prototype if
GRUB_LST_GENERATOR is defined.
* include/grub/partition.h (grub_partition_map_register): Likewise.
* include/grub/video.h (grub_video_register): Likewise.
2010-06-12 14:33:09 +01:00
Javier Martín
1c8f0f8d11 * include/grub/types.h: Check for GRUB_CPU_SIZEOF_LONG when appropriate. 2010-06-12 14:50:07 +02:00
Thomas Schmitt
a608597318 * util/grub-mkrescue.in: Support --xorriso argument. 2010-06-12 13:54:35 +02:00
Vladimir 'phcoder' Serbinenko
25c56d2928 * util/grub-mkrescue.in: Use -graft-points instead of -pathspecs.
Suggested by: Thomas Schmitt.
2010-06-12 13:47:08 +02:00
Vladimir 'phcoder' Serbinenko
e03e4b24ca * util/grub-mkrescue.in: Add --sort-weight arguments to xorriso.
Suggested by: Thomas Schmitt.
2010-06-12 13:44:01 +02:00
Vladimir 'phcoder' Serbinenko
57711df6ad custom.cfg support.
* conf/common.rmk (grub-mkconfig_SCRIPTS): Add 41_custom.
	* util/grub.d/41_custom.in: New file.
2010-06-12 13:20:21 +02:00
Colin Watson
ee62c427e5 * util/grub-mkrescue.in (make_image): Remove sh module, which has
been merged back into normal.
2010-06-12 12:02:38 +01:00
Colin Watson
283af07aff * include/grub/efi/uga_draw.h (GRUB_EFI_UGA_GLT_MAX): Rename to ...
(GRUB_EFI_UGA_BLT_MAX): ... this (typo fix).
2010-06-11 22:15:35 +01:00
Colin Watson
56a0d956d1 * Makefile.in (install-local): Include $(srcdir)/docs/man/$$dest.h2m
when generating manual pages.
* docs/man/grub-bin2h.h2m: New file.
* docs/man/grub-editenv.h2m: New file.
* docs/man/grub-fstest.h2m: New file.
* docs/man/grub-install.h2m: New file.
* docs/man/grub-macho2img.h2m: New file.
* docs/man/grub-mkconfig.h2m: New file.
* docs/man/grub-mkdevicemap.h2m: New file.
* docs/man/grub-mkfont.h2m: New file.
* docs/man/grub-mkimage.h2m: New file.
* docs/man/grub-mkpasswd-pbkdf2.h2m: New file.
* docs/man/grub-mkrelpath.h2m: New file.
* docs/man/grub-mkrescue.h2m: New file.
* docs/man/grub-ofpathname.h2m: New file.
* docs/man/grub-pe2elf.h2m: New file.
* docs/man/grub-probe.h2m: New file.
* docs/man/grub-reboot.h2m: New file.
* docs/man/grub-script-check.h2m: New file.
* docs/man/grub-set-default.h2m: New file.
* docs/man/grub-setup.h2m: New file.
2010-06-11 22:12:16 +01:00
Vladimir 'phcoder' Serbinenko
3a37e3226b Use FOR_* macros instead of *_iterate whenever possible.
* commands/handler.c: Removed.
	* commands/help.c (grub_cmd_help): Use FOR_COMMANDS.
	* commands/minicmd.c (grub_mini_cmd_lsmod): Use FOR_DL_MODULES.
	* conf/any-emu.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* conf/common.rmk (script/lexer.c_DEPENDENCIES): Add grub_script.yy.h.
	(grub_probe_SOURCES): Remove kern/parser.c.
	(util/grub-script-check.c_DEPENDENCIES): Removed.
	(grub_script_check_SOURCES): Remove kern/handler.c, kern/parser.c
	and grub_script_check_init.c.
	(grub_script_check_init.lst): Removed.
	(grub_script_check_init.h): Likewise.
	(grub_script_check_init.c): Likewise.
	(pkglib_MODULES): Remove handler.mod and sh.mod.
	(handler_mod_SOURCES): Removed.
	(handler_mod_CFLAGS): Likewise.
	(handler_mod_LDFLAGS): Likewise.
	(normal_mod_SOURCES): Remove normal/handler.c.
	Add script/main.c, script/script.c, script/execute.c,
	script/function.c, script/lexer.c, grub_script.tab.c
	and grub_script.yy.c.
	* conf/i386-coreboot.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* conf/i386-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Likewise.
	(grub_setup_SOURCES): Remove kern/parser.c.
	* conf/i386-qemu.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* conf/mips-qemu-mips.rmk (kernel_img_SOURCES): Likewise.
	* conf/mips-yeeloong.rmk (kernel_img_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	(grub_setup_SOURCES): Remove kern/parser.c.
	* conf/x86-efi.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* gettext/gettext.c (grub_gettext_delete_list): Don't use grub_list_pop.
	* include/grub/command.h (grub_command_iterate): Removed.
	(FOR_COMMANDS): New macro.
	* include/grub/dl.h (grub_dl): New member next.
	(grub_dl_iterate): Removed.
	(grub_dl_head): New variable declaration.
	(FOR_DL_MODULES): New macro.
	* include/grub/fs.h: Include list.h.
	(grub_fs): Make next first element.
	(grub_fs_list): New variable declaration.
	(grub_fs_register): Make inline.
	(grub_fs_unregister): Likewise.
	(grub_fs_iterate): Removed.
	(FOR_FILESYSTEMS): New macro.
	* include/grub/handler.h: Removed.
	* include/grub/list.h (grub_list_hook_t): Removed.
	(grub_list_test_t): Likewise.
	(grub_list_pop): Likewise.
	(grub_list_iterate): Likewise.
	(grub_list_insert): Likewise.
	(FOR_LIST_ELEMENTS): New macro.
	* include/grub/parser.h (grub_parser_class): Removed.
	(grub_parser_register): Likewise.
	(grub_parser_unregister): Likewise.
	(grub_parser_get_current): Likewise.
	(grub_parser_set_current): Likewise.
	(grub_register_rescue_parser): Likewise.
	(grub_rescue_parse_line): New function.
	* include/grub/partition.h (FOR_PARTITION_MAPS): Use FOR_LIST_ELEMENTS.
	* include/grub/script_sh.h (grub_script_function_list): New variable
	declaration.
	(FOR_SCRIPT_FUNCTIONS): New macro.
	(grub_script_function_iterate): Removed.
	(grub_normal_parse_line): New prototype.
	* include/grub/term.h (FOR_ACTIVE_TERM_INPUTS): Use FOR_LIST_ELEMENTS.
	(FOR_DISABLED_TERM_INPUTS): Likewise.
	(FOR_ACTIVE_TERM_OUTPUTS): Likewise.
	(FOR_DISABLED_TERM_OUTPUTS): Likewise.
	* include/grub/video.h (grub_video_adapter): Move 'next' to first
	element.
	(grub_video_register): Inline.
	(grub_video_unregister): Likewise.
	(grub_video_adapter_list): New variable declaration.
	(grub_video_iterate): Removed.
	(FOR_VIDEO_ADAPTERS): New macro.
	* kern/dl.c (grub_dl_list): Removed. All users updated.
	(grub_dl_iterate): Removed.
	* kern/fs.c (grub_fs_list): Make global.
	(grub_fs_register): Removed.
	(grub_fs_unregister): Likewise.
	(grub_fs_iterate): Likewise.
	* kern/handler.c: Removed.
	* kern/list.c (grub_list_pop): Removed.
	(grub_list_iterate): Likewise.
	(grub_list_insert): Likewise.
	(grub_named_list_find): Use FOR_LIST_ELEMENTS.
	(grub_prio_list_insert): Don't use grub_list_insert.
	* kern/main.c (grub_register_rescue_parser): Don't call
	grub_register_rescue_parser.
	* kern/parser.c (grub_parser_class): Removed.
	(grub_parser_execute): Use grub_rescue_parse_line.
	* kern/rescue_parser.c (grub_rescue_parse_line): Make global.
	(grub_rescue_parser): Removed.
	(grub_register_rescue_parser): Likewise.
	* kern/rescue_reader.c (grub_rescue_run): Use grub_rescue_parse_line.
	* normal/auth.c (is_authenticated): Use FOR_LIST_ELEMENTS.
	(grub_auth_check_authentication): Likewise.
	* normal/completion.c (iterate_command): Removed.
	(grub_normal_do_completion): Use FOR_COMMANDS.
	* normal/handler.c: Removed.
	* normal/main.c (read_config_file): Remove parser changing.
	(grub_normal_execute): Don't call read_handler_list.
	(grub_normal_read_line_real): Statically allocate prompt.
	(grub_cmdline_run): Use grub_normal_parse_line.
	(GRUB_MOD_FINI): Don't call free_handler_list.
	* normal/menu_entry.c (run): Likewise.
	* script/function.c (grub_script_function_list): Make global.
	(grub_script_function_iterate): Removed.
	* script/main.c (grub_normal_parse_line): Make global.
	(grub_sh_parser): Removed.
	(GRUB_MOD_INIT): Likewise.
	(GRUB_MOD_FINI): Likewise.
	* tests/lib/functional_test.c (grub_functional_test): Use
	FOR_LIST_ELEMENTS.
	* tests/lib/test.c (free_failures): Don't use grub_list_pop.
	(grub_test_run): Use FOR_LIST_ELEMENTS.
	* tests/lib/unit_test.c (main): Likewise.
	* util/deviceiter.c (grub_util_iterate_devices): Don't use
	grub_list_pop.
	* util/grub-fstest.c (grub_term_input_class): Removed.
	(grub_term_output_class): Likewise.
	* util/grub-probe.c: Likewise.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/sparc64/ieee1275/grub-setup.c: Likewise.
	* util/grub-script-check.c (main): Don't call grub_init_all and
	grub_fini_all.
	* video/video.c (grub_video_adapter_list): Make global.
	(grub_video_register): Removed.
	(grub_video_unregister): Likewise.
	(grub_video_iterate): Likewise.
2010-06-11 22:31:16 +02:00
Vladimir 'phcoder' Serbinenko
6289c3a715 * docs/grub.texi (Vendor power-on button): Add Asus EeePC 1005PE as
reported by Henrique Ferreiro.
2010-06-09 22:24:12 +02:00
Robert Millan
9146024736 2010-06-09 Robert Millan <rmh@gnu.org>
* util/grub.d/10_linux.in: Prefer compressed images over non-compressed
	ones, when both are available.
2010-06-09 20:43:25 +02:00
Grégoire Sutre
0ea7c4f93c Make --version uniform and avoid hard-coded program name. 2010-06-08 12:52:42 +02:00
Grégoire Sutre
e8a6f3b6a5 Use absolute offsets for start of embedding area. 2010-06-08 12:23:30 +02:00
Grégoire Sutre
f4d095d77d Add . to the directories searched for unifont. 2010-06-08 12:09:34 +02:00
Colin Watson
50e532ca1a * .bzrignore: Add ascii.bitmaps, ascii.h, grub_script.yy.c, and
grub_script.yy.h.
2010-06-08 10:37:16 +01:00
Colin Watson
d39f3dec5f * docs/grub.texi (History): Expand to cover GRUB 2.
(Serial terminal): Refer to `terminal_input' and `terminal_output'
commands, not `terminal'.
(serial): Likewise.
(terminal_input): New section.
(terminal_output): New section.
(uppermem): New section (stub).
(Obtaining and Building GRUB): Refer to Bazaar, not Subversion.
2010-06-08 10:29:25 +01:00
Colin Watson
6ef0ddb476 * docs/grub.texi (Security): Menu entries are unrestricted by
default, not restricted to superusers as I had previously thought.
Reword to account for this.
2010-06-08 10:18:53 +01:00
Colin Watson
e0f4c43882 * kern/emu/misc.c (device_mapper_null_log): New function.
(grub_device_mapper_supported): New function.
* include/grub/emu/misc.h (grub_device_mapper_supported): Add
prototype.
* kern/emu/hostdisk.c (find_partition_start): Check whether
device-mapper is supported before trying to use it.
* util/deviceiter.c (grub_util_iterate_devices): Likewise.
2010-06-07 22:41:55 +01:00
Colin Watson
da90820083 * docs/grub.texi (Naming convention): Use GRUB 2 syntax.
(File name syntax): Likewise.
(help): --all is no longer supported in GRUB 2.  Be more precise
about pattern matching.
2010-06-07 22:18:00 +01:00
Colin Watson
fb55c3acf9 * normal/completion.c (grub_normal_do_completion): When completing
arguments to "set" and the current word contains an equals sign,
skip to after the equals sign before starting completion.
2010-06-07 22:13:26 +01:00
Colin Watson
258c2573a6 * fs/i386/pc/pxe.c (grub_pxe_open): Fix parsing of gateway_ip. 2010-06-07 21:29:25 +01:00
Colin Watson
ee75515e69 * docs/grub.texi (Network): New section.
(Device syntax): The network device is called `(pxe)' in GRUB 2, not
`(nd)' as in GRUB Legacy.
(pxe_unload): New section.
2010-06-07 21:26:30 +01:00
Colin Watson
a6a700aa52 * docs/grub.texi (Troubleshooting): `echo' is not usually available
in the rescue shell, so recommend using `set' instead.  Thanks,
Jordan Uggla.
2010-06-07 21:10:29 +01:00
Colin Watson
4003dd38df * docs/grub.texi (Filesystem): Refer to search' instead of find'.
(password): New section.
(password_pbkdf2): New section.
(search): New section.
(Security): New section.
(Troubleshooting): New section, currently very incomplete.
(Invoking grub-mkpasswd-pbkdf2): New section.
(Internals): New section, currently very incomplete.
2010-06-07 14:32:12 +01:00
Colin Watson
e1cbcc40a4 * util/grub.d/00_header.in: Add some more quoting (of
"${prev_saved_entry}" and "${boot_once}") needed to make savedefault
work again.
Reported by: Mario 'BitKoenig' Holbe (Debian bug #584812).
2010-06-07 14:22:40 +01:00
Colin Watson
db8fa1ad87 * util/grub-mkpasswd-pbkdf2.c (main): Rename top-level `c' variable
to `count', fixing variable shadowing that broke the -c option.
2010-06-07 14:15:57 +01:00
Colin Watson
71c3809882 * util/grub.d/00_header.in: Quote values assigned to `saved_entry',
in case they contain spaces.
2010-06-05 20:44:44 +01:00
Colin Watson
f28a9212b4 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Prepend
"part_" to partmap module names, in line with grub-install.
Reported by: Jindřich Makovička (Debian bug #584426).
2010-06-04 13:53:30 +01:00
Colin Watson
9cdfe32f09 * util/grub-mkimage.c: Make target-related error messages slightly
more helpful; -O talks about "format".  Explicitly point to the use
of -O if no target is specified.
Reported by: Didier Raboud (Debian bug #584415).
2010-06-04 13:38:10 +01:00
Colin Watson
795b593a47 * INSTALL: Document several build requirements for optional features
(libdevmapper, ncurses, libusb, SDL, FreeType, GNU Unifont).
2010-06-03 09:48:23 +01:00
Grégoire Sutre
9d9b583350 Handle all possible disk device names for NetBSD. 2010-06-03 00:47:22 +02:00
Colin Watson
0819fec8a1 * docs/grub.texi (Simple configuration): Fix copy-and-paste typo.
Thanks to Jordan Uggla for spotting this.
2010-06-02 22:48:13 +01:00
Aleš Nesrsta
1515ec8684 2010-06-02 Aleš Nesrsta <starous@volny.cz>
Finally make USB usable.

	* bus/usb/ohci.c (grub_ohci_reg_t): Add missing values.
	(GRUB_OHCI_RHUB_PORT_POWER_MASK): New macro.
	(GRUB_OHCI_RHUB_PORT_ALL_POWERED): Likewise.
	(GRUB_OHCI_REG_FRAME_INTERVAL_FSMPS_MASK): Likewise.
	(GRUB_OHCI_REG_FRAME_INTERVAL_FSMPS_SHIFT): Likewise.
	(GRUB_OHCI_REG_FRAME_INTERVAL_FI_SHIFT): Likewise.
	(GRUB_OHCI_FSMPS): Likewise.
	(GRUB_OHCI_PERIODIC_START): Likewise.
	(GRUB_OHCI_FRAME_INTERVAL): Likewise.
	(GRUB_OHCI_SET_PORT_ENABLE): Likewise.
	(GRUB_OHCI_CLEAR_PORT_ENABLE): Likewise.
	(GRUB_OHCI_SET_PORT_RESET): Likewise.
	(GRUB_OHCI_SET_PORT_RESET_STATUS_CHANGE): Likewise.
	* bus/usb/ohci.c (grub_ohci_pci_iter): Various important fixups.
	(grub_ohci_transaction): Likewise.
	(grub_ohci_transfer): Improve condition detection algorithms.
	Handle toggle property. Program the transactions correctly.
	Improve error handling. Various important fixups.
	(grub_ohci_portstatus): Put register writes in right order.
	* bus/usb/uhci.c (grub_free_queue): Compute last_trans.
	(grub_uhci_transfer): Don't show "failed" message on success.
	* bus/usb/usb.c (grub_usb_set_configuration): Zero-fill whole "toggle"
	array.
	(grub_usb_device_initialize): Read first 8 bytes of descriptor to
	determine its size.
	* bus/usb/usbtrans.c (grub_usb_control_msg): Use descdev.maxsize0 even
	before initialization is completed. Use IN direction for empty
	transfers. Use last_trans and compute toggle.
	* include/grub/usbtrans.h (grub_usb_transfer): New field last_trans.
	(GRUB_USB_FEATURE_ENDP_HALT): Correct the value.
	(GRUB_USB_FEATURE_DEV_REMOTE_WU): Likewise.
	(GRUB_USB_FEATURE_TEST_MODE): Likewise.
	* include/grub/usb.h (grub_usb_err_t): New value GRUB_USB_ERR_UNRECOVERABLE.
	(grub_usb_device): Increase toggle to 256.
	(grub_usbms_subclass_t): New values GRUB_USBMS_SUBCLASS_RBC,
	GRUB_USBMS_SUBCLASS_MMC2, GRUB_USBMS_SUBCLASS_UFI and
	GRUB_USBMS_SUBCLASS_SFF8070.
	* include/grub/scsicmd.h (grub_scsi_test_unit_ready): New structure.
	(grub_scsi_inquiry): New member page and alloc_length.
	(grub_scsi_request_sense): New structure.
	(grub_scsi_request_sense_data): Likewise.
	(grub_scsi_read_capacity): New fields logical_block_addr, PMI and
	control.
	* disk/scsi.c (grub_scsi_request_sense): New function.
	(grub_scsi_test_unit_ready): Likewise.
	(grub_scsi_inquiry): Fill new fields.
	(grub_scsi_read_capacity): Likewise.
	(grub_scsi_read10): Add request sense at the end.
	(grub_scsi_read12): Likewise.
	(grub_scsi_write10): Likewise.
	(grub_scsi_write12): Likewise.
	(grub_scsi_open): Add Test Unit Ready.
	* disk/usbms.c (grub_usbms_finddevs): Check configcnt.
	Support additional subclasses. Con't clear halt yet. Activate the
	proper config. Calculate LUNs correctly.
	(grub_usbms_transfer): Various important fixups.

2010-06-02  Vladimir Serbinenko  <phcoder@gmail.com>

	* bus/pci.c (grub_pci_iterate) [GRUB_MACHINE_MIPS_YEELOONG]: Skip ghosts.
	* bus/usb/ohci.c (grub_ohci_portstatus): Handle R/WC correctly.
	(grub_ohci_fini_hw): New function.
	(grub_ohci_restore_hw): Likewise.
	(GRUB_MOD_INIT(ohci)): Register preboot hook.
	(GRUB_MOD_FINI(ohci)): Shutdown OHCI.
	* term/usb_keyboard.c: Remove include of grub/machine/console.h.

2010-06-02  Vladimir Serbinenko  <phcoder@gmail.com>

	Dedicated DMA allocations.

	* bus/pci.c (grub_memalign_dma32): New function
	(grub_dma_free): Likewise.
	(grub_dma_get_virt): Likewise.
	(grub_dma_get_phys): Likewise.
	* bus/usb/ohci.c (grub_ohci): New members hcca_addr and hcca_chunk.
	(grub_ohci_pci_iter): Use dma32_alloc.
	(grub_ohci_transfer): Likewise.
	* bus/usb/usbtrans.c (grub_usb_control_msg): Likewise.
	(grub_usb_bulk_readwrite): Likewise.
	* include/grub/pci.h: Add declarations.

2010-06-02  Vladimir Serbinenko  <phcoder@gmail.com>

	CS5536 support.

	* bus/cs5536.c: New file.
	* bus/usb/ohci.c (grub_ohci_pci_iter): Check for CS5536.
	* conf/i386.rmk (pkglib_MODULES): Add cs5536.mod.
	(cs5536_mod_SOURCES): New variable.
	(cs5536_mod_CFLAGS): Likewise.
	(cs5536_mod_LDFLAGS): Likewise.
	* conf/mips-yeeloong.rmk (kernel_img_HEADERS): Add cs5536.h and
	machine/pci.h.
	(kernel_img_SOURCES): Add bus/cs5536.c.
	(pkglib_MODULES): Add usb.mod, usbtest.mod, ohci.mod, usbms.mod and
	usb_keyboard.mod.
	(usb_mod_SOURCES): New variable.
	(usb_mod_CFLAGS): New variable.
	(usb_mod_LDFLAGS): New variable.
	(usbtest_mod_SOURCES): New variable.
	(usbtest_mod_CFLAGS): New variable.
	(usbtest_mod_LDFLAGS): New variable.
	(ohci_mod_SOURCES): New variable.
	(ohci_mod_CFLAGS): New variable.
	(ohci_mod_LDFLAGS): New variable.
	(usbms_mod_SOURCES): New variable.
	(usbms_mod_CFLAGS): New variable.
	(usbms_mod_LDFLAGS): New variable.
	(usb_keyboard_mod_SOURCES): New variable.
	(usb_keyboard_mod_CFLAGS): New variable.
	(usb_keyboard_mod_LDFLAGS): New variable.
	* include/grub/smbus.h: New file.
	* include/grub/cs5536.h: New file.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-06-02 17:16:20 +02:00
Vladimir 'phcoder' Serbinenko
49396b4f61 Add ChangeLog 2010-06-02 16:52:16 +02:00
Colin Watson
0b35b2a921 * util/grub.d/00_header.in: Add safety check to make sure that
${locale_dir} exists before trying to probe it.
2010-06-02 13:57:13 +01:00
Colin Watson
ca0afd5bab * docs/grub.texi (SCO UnixWare): Remove, at Vladimir's request and
per the GNU Coding Standards; this is now too obscure to be worth
documenting.
(QNX): Likewise.
(chainloader): Remove cross-reference to `SCO UnixWare'.
2010-06-02 13:11:33 +01:00
Colin Watson
1c41aa7883 * docs/grub.texi (Chain-loading): New section.
(DOS/Windows): New section, borrowed from GRUB Legacy with details
adjusted for GRUB 2.
(SCO UnixWare): Likewise.
(QNX): Likewise.
(chainloader): Add reference to `Block list syntax'.
(drivemap): New section.
(parttool): New section.
2010-06-02 12:47:11 +01:00
Colin Watson
bb8ea0f5c3 * docs/grub.texi (GNU GRUB manual): Remove reference to `Invoking
the grub shell'.
(Installation): Add reference to `Making a GRUB bootable CD-ROM'.
(Installing GRUB using grub-install): Remove reference to the grub
shell; mention `grub-mkimage' and `grub-setup' instead.
(Invoking grub-install): Likewise.
(Interface): Add reference to `Menu entry editor'.
(serial): Remove `--device' option.
2010-06-02 11:26:28 +01:00
Colin Watson
288dd6ed3d * docs/grub.texi (Configuration): New section, documenting
configuration file generation using grub-mkconfig.  I've left a slot
for documenting the full shell scripting format but have not yet
started on writing that up.
(Invoking grub-mkconfig): New section.
2010-06-02 11:14:02 +01:00