2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	* util/i386/pc/grub-setup.c (setup): Add missing parameter to
	grub_util_error() call.

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/fs.h [GRUB_UTIL] (struct grub_fs): Add
	`reserved_first_sector' member.
	* fs/ext2.c [GRUB_UTIL] (grub_ext2_fs): Initialize
	`reserved_first_sector' to 1.
	* fs/fat.c [GRUB_UTIL] (grub_fat_fs): Likewise.
	* fs/ntfs.c [GRUB_UTIL] (grub_ntfs_fs): Likewise.
	* fs/hfsplus.c [GRUB_UTIL] (grub_hfsplus_fs): Likewise.
	* util/i386/pc/grub-setup.c (setup): Add safety check that probes for
	filesystems which begin at first sector.
	(options): New option --skip-fs-probe.
	(main): Handle --skip-fs-probe and pass it to setup().

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/misc.h: Fix wrong evaluation of APPLE_CC.
	(memset): Fix function prototype.

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
2009-10-25  Vasily Averin  <vvs@parallels.com>

	* fs/ext2.c (grub_ext2_iterate_dir): Avoid infinite loop when
	`dirent.direntlen == 0'.

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	* fs/cpio.c [MODE_USTAR]: Initialize `tar' module instead of
	`cpio'.
	[! MODE_USTAR]: Initialize `cpio' module instead of `tar'.

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Check for `__ashldi3', `__ashrdi3', `__lshrdi3',
	`__trampoline_setup' and `__ucmpdi2'.
	* include/grub/powerpc/libgcc.h: Only export symbols for functions
	that libgcc provides.

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/powerpc/libgcc.h (memset): Remove function prototype.
	* include/grub/sparc64/libgcc.h (memset): Likewise.
	* include/grub/misc.h (memset, memcmp): New function prototypes.

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	* fs/cpio.c [MODE_USTAR]: Finish `tar' module instead of
	`cpio'.
	[! MODE_USTAR]: Finish `cpio' module instead of `tar'.

2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>

	Patch from Samuel Thibault <samuel.thibault@ens-lyon.org>
	* docs/grub.cfg: Compensate for recent change in multiboot
	loader (since 2009-08-14 it won't pass filename to payload).
	* util/grub.d/10_hurd.in: Likewise.

2009-10-21  Felix Zielcke  <fzielcke@z-51.de>

	* config.guess: Update to latest version from config git
	repository.
	* config.sub: Likewise.

2009-10-20  Robert Millan  <rmh.grub@aybabtu.com>

	Fix build on sparc64.

	* configure.ac: Perform checks for libgcc symbols before
	adding `-nostdlib' to LDFLAGS.

2009-10-16  Vladimir Serbinenko  <phcoder@gmail.com>

	Let user specify OpenBSD root device.

	* loader/i386/bsd.c (openbsd_root): New variable.
	(openbsd_opts): New option 'root'.
	(OPENBSD_ROOT_ARG): New macro.
	(grub_openbsd_boot): Use 'openbsd_root'.
	(grub_cmd_openbsd): Fill 'openbsd_root'.

2009-10-16  Robert Millan  <rmh.grub@aybabtu.com>

	* NEWS: Misc adjustments.

2009-10-16  Vladimir Serbinenko  <phcoder@gmail.com>

	* NEWS: Mentioned XNU, ACPI, gptsync, password and parttool.

2009-10-16  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Bump version to 1.97.

2009-10-16  Colin Watson  <cjwatson@ubuntu.com>

	* configure.ac (TARGET_CFLAGS): Add -mno-mmx -mno-sse -mno-sse2
	-mno-3dnow on x86 architectures.  Some toolchains enable these
	features by default, but they rely on registers that aren't enabled
	in GRUB.  Thanks to Vladimir Serbinenko for the suggestion.

2009-10-15  Robert Millan  <rmh.grub@aybabtu.com>

	Make entry text a bit more readable.

	* util/grub.d/10_linux.in: Add `with' before `Linux'.

2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/pc/xnu.c (grub_xnu_set_video): Fix loading splash image.

2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>

	* commands/xnu_uuid.c (grub_cmd_xnu_uuid): Remove duplicated bitwise
	operations.

2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>

	* configure.ac: Add missing dollar.

2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>

        Revert 2009-06-10  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Put checks for __bswapsi2 and __bswapdi2.
	* include/grub/powerpc/libgcc.h: Don't use weak attribute for all
	exports.
	* include/grub/sparc64/libgcc.h: Likewise.  Use
	preprocessor conditionals.

2009-10-14  Robert Millan  <rmh.grub@aybabtu.com>

	* conf/common.rmk (grub-dumpbios): Remove rule.
	(sbin_SCRIPTS, CLEANFILES): Remove `grub-dumpbios'.
	* util/grub-dumpbios.in: Remove file.

2009-10-14  Robert Millan  <rmh.grub@aybabtu.com>

	Refer to kernel of FreeBSD "kFreeBSD" to avoid confusion between
	the Operating System (FreeBSD) and its kernel (kernel of FreeBSD).

	* loader/i386/bsd.c (grub_freebsd_boot): Read kernel environment
	from "kFreeBSD" namespace (rather than "FreeBSD").  Update all
	users.

	(GRUB_MOD_INIT (bsd)): Rename "freebsd" command to "kfreebsd",
	"openbsd" to "kopenbsd", "netbsd" to "knetbsd", "freebsd_loadenv"
	to "kfreebsd_loadenv", "freebsd_module" to "kfreebsd_module",
	and "freebsd_module_elf" to "kfreebsd_module_elf".  Update all
	users.

2009-10-12  Robert Millan  <rmh.grub@aybabtu.com>

	* term/tparm.c: Switch to GPLv3.

2009-10-09  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/cpuid.h: Add header protection.

2009-10-09  Robert Millan  <rmh.grub@aybabtu.com>

	Fail gracefuly when attempting to load 64-bit kFreeBSD on IA32 CPU.

	* include/grub/i386/cpuid.h: New file.
	* commands/i386/cpuid.c: Include `<grub/i386/cpuid.h>'.
	(has_longmode): Rename to ...
	(grub_cpuid_has_longmode): ... this.  Update all users.  Remove
	`static' attribute.
	* loader/i386/bsd.c: Include `<grub/i386/cpuid.h>'.
	(grub_bsd_load_elf): Fail if load of 64-bit kernel was requested
	on a CPU that doesn't implement AMD64 instruction set.

2009-10-06  Colin Watson  <cjwatson@ubuntu.com>

	* Makefile.in (docs/stamp-vti): Depend on configure.ac as well, so
	that version.texi is rebuilt on version number changes.

2009-10-06  Colin Watson  <cjwatson@ubuntu.com>

	* Makefile.in: Don't set info_INFOS unless makeinfo was found.
	Fixes bug #27602.

2009-10-06  Colin Watson  <cjwatson@ubuntu.com>

	* util/i386/pc/grub-install.in: Source
	${libdir}/grub/grub-mkconfig_lib before option processing, in order
	that the --grub-probe option will work.
	* util/sparc64/ieee1275/grub-install.in: Likewise.

2009-10-05  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Bump version to 1.97~beta4.

2009-10-03  Robert Millan  <rmh.grub@aybabtu.com>

	Resync grub-mkdevicemap in x86_64-efi.

	* conf/x86_64-efi.rmk (sbin_UTILITIES): Enable `grub-mkdevicemap'.
	(grub_mkdevicemap_SOURCES): Add missing `util/deviceiter.c' and
	`util/devicemap.c'.

2009-10-01  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub-editenv.c (create_envblk_file): Write new block with a
	.new suffix and then rename it into place, to ensure atomic
	creation.

2009-09-28  Robert Millan  <rmh.grub@aybabtu.com>

	Do not automatically install headers.

	* Makefile.in (include_DATA): Remove.  Update all users.

2009-09-26  Robert Millan  <rmh.grub@aybabtu.com>

	* conf/common.rmk (pkglib_MODULES): Remove `lua.mod'.
	(lua_mod_SOURCES, lua_mod_CFLAGS, lua_mod_LDFLAGS): Remove.

	* util/osdetect.lua: Remove.
	* script/lua/lauxlib.c: Likewise.
	* script/lua/ldebug.c: Likewise.
	* script/lua/grub_main.c: Likewise.
	* script/lua/lauxlib.h: Likewise.
	* script/lua/ldebug.h: Likewise.
	* script/lua/ltablib.c: Likewise.
	* script/lua/liolib.c: Likewise.
	* script/lua/lstrlib.c: Likewise.
	* script/lua/lualib.h: Likewise.
	* script/lua/ldo.c: Likewise.
	* script/lua/ldump.c: Likewise.
	* script/lua/ldo.h: Likewise.
	* script/lua/loslib.c: Likewise.
	* script/lua/lundump.c: Likewise.
	* script/lua/grub_lib.c: Likewise.
	* script/lua/ldblib.c: Likewise.
	* script/lua/lundump.h: Likewise.
	* script/lua/lmem.c: Likewise.
	* script/lua/grub_lib.h: Likewise.
	* script/lua/lmathlib.c: Likewise.
	* script/lua/lstate.c: Likewise.
	* script/lua/ltm.c: Likewise.
	* script/lua/lvm.c: Likewise.
	* script/lua/lmem.h: Likewise.
	* script/lua/lstate.h: Likewise.
	* script/lua/ltm.h: Likewise.
	* script/lua/ltable.c: Likewise.
	* script/lua/lvm.h: Likewise.
	* script/lua/llex.c: Likewise.
	* script/lua/lgc.c: Likewise.
	* script/lua/grub_lua.h: Likewise.
	* script/lua/loadlib.c: Likewise.
	* script/lua/lfunc.c: Likewise.
	* script/lua/lopcodes.c: Likewise.
	* script/lua/lparser.c: Likewise.
	* script/lua/ltable.h: Likewise.
	* script/lua/llex.h: Likewise.
	* script/lua/lgc.h: Likewise.
	* script/lua/lfunc.h: Likewise.
	* script/lua/lbaselib.c: Likewise.
	* script/lua/lopcodes.h: Likewise.
	* script/lua/lparser.h: Likewise.
	* script/lua/lzio.c: Likewise.
	* script/lua/linit.c: Likewise.
	* script/lua/lobject.c: Likewise.
	* script/lua/llimits.h: Likewise.
	* script/lua/lstring.c: Likewise.
	* script/lua/lzio.h: Likewise.
	* script/lua/lapi.c: Likewise.
	* script/lua/lcode.c: Likewise.
	* script/lua/lua.h: Likewise.
	* script/lua/lobject.h: Likewise.
	* script/lua/lstring.h: Likewise.
	* script/lua/lapi.h: Likewise.
	* script/lua/lcode.h: Likewise.
	* script/lua/luaconf.h: Likewise.

2009-09-26  Colin Watson  <cjwatson@ubuntu.com>

	* docs/grub.texi (Command-line and menu entry commands): Document
	date and echo commands.

2009-09-24  Pavel Roskin  <proski@gnu.org>

	* include/grub/kernel.h (struct grub_module_header): Remove
	`grub_module_header_types'.  Make `type' unsigned.  Make `size'
	32-bit on all platforms.
	* util/elf/grub-mkimage.c (load_modules): Treat `type' as an
	8-bit field.  Use grub_host_to_target32() for `size'.
	* util/i386/efi/grub-mkimage.c (make_mods_section): Likewise.
	* util/i386/pc/grub-mkimage.c (generate_image): Likewise.
	* util/sparc64/ieee1275/grub-mkimage.c (generate_image): Likewise.

2009-09-24  Robert Millan  <rmh.grub@aybabtu.com>

	Fix "lost keypress" bug in at_keyboard.

	* term/i386/pc/at_keyboard.c (grub_at_keyboard_checkkey): New function.
	Checks for readyness of input buffer (without flushing it).
	(grub_at_keyboard_term): Use grub_at_keyboard_checkkey() rather
	than grub_at_keyboard_getkey_noblock() for `checkkey' struct member.

2009-09-24  Robert Millan  <rmh.grub@aybabtu.com>

	* util/i386/pc/grub-mkimage.c (generate_image): Enclose BIOS-specific
	size check within GRUB_MACHINE_PCBIOS section.

2009-09-24  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/at_keyboard.h (KEYBOARD_ISREADY): Negate
	return value.
	* term/i386/pc/at_keyboard.c (grub_keyboard_getkey): Negate
	KEYBOARD_ISREADY check.
	(grub_at_keyboard_checkkey): Rename to ...
	(grub_at_keyboard_getkey_noblock): ... this.  Update all users.
	Remove gratuitous cast.

2009-09-23  Colin Watson  <cjwatson@ubuntu.com>

	* configure.ac: Call AC_PROG_MKDIR_P.
	* Makefile.in (docs/stamp-vti): Create docs directory.  Create
	version.texi in $(builddir) rather than $(srcdir).
	(docs/grub.info): Create docs directory.  Prepend $(builddir)/docs
	to makeinfo's @include search path.

2009-09-23  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Cope with `*.dpkg-*'

2009-09-23  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Add support
	for `*.dpkg-new'.

2009-09-21  Colin Watson  <cjwatson@ubuntu.com>

	Build info documentation.  Some code borrowed from Automake.

	* configure.ac: Check for makeinfo.
	* Makefile.in (MAKEINFO, INFOS, info_INFOS): New variables.
	(MAINTAINER_CLEANFILES): Add $(INFOS), docs/stamp-vti, and
	docs/version.texi.
	(MOSTLYCLEANFILES): Add vti.tmp.
	(docs/version.texi, docs/stamp-vti): Update automatically.
	(docs/grub.info): Build info documentation.  Use --force and ignore
	errors for now.
	(all-local): Add $(INFOS).
	(install-local): Install info files.
	(uninstall): Uninstall info files.
	* docs/version.texi: Remove from revision control.  This file is
	automatically generated on build now.
	* gendistlist.sh: Add `*.info'.

2009-09-21  Felix Zielcke  <fzielcke@z-51.de>

	* kern/term.c: Fix indentation.

2009-09-21  Felix Zielcke  <fzielcke@z-51.de>

	* util/hostdisk.c: Fix a comment.

2009-09-20  Robert Millan  <rmh.grub@aybabtu.com>

	Fix regression introduced in r2539.

	* term/usb_keyboard.c (USB_HID_DEVICE_TO_HOST): Change from 0x61
	to 0xA1.

2009-09-19  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub.d/30_os-prober.in: Don't throw away stderr from
	os-prober. Under normal operation, it does not print anything to
	stderr; if it does, we need to debug it, and throwing away stderr
	makes that excessively difficult.

2009-09-16  Vladimir Serbinenko  <phcoder@gmail.com>

	* mmap/mmap.c (grub_cmd_badram): Fix off-by-one error.

2009-09-16  Robert Millan  <rmh.grub@aybabtu.com>

	* aclocal.m4 (AC_LANG_PROGRAM): New macro.  Overrides stock
	AC_LANG_PROGRAM from autoconf.
	(grub_ASM_USCORE, grub_PROG_OBJCOPY_ABSOLUTE): Add missing
	prototypes (fixes warning).

	* configure.ac: Add `-Werror' to TARGET_CFLAGS unless
	`--disable-werror' was used.

2009-09-16  Robert Millan  <rmh.grub@aybabtu.com>

	* partmap/msdos.c (pc_partition_map_iterate): Fix possible use of
	uninitialized `lastaddr'.

2009-09-15  Vladimir Serbinenko  <phcoder@gmail.com>

	* partmap/msdos.c (pc_partition_map_iterate): Detect and break loops.

2009-09-14  Colin Watson  <cjwatson@ubuntu.com>

	* commands/test.c (get_fileinfo): Return immediately if
	grub_fs_probe fails.

2009-09-14  José Martínez  <xosemp@gmail.com>

	* commands/acpi.c (grub_cmd_acpi): Fix loading ACPI tables from file.

2009-09-14  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub.d/30_os-prober.in: Cope with Windows 7 in os-prober
	output.

2009-09-13  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Remove --enable-grub-pe2elf.  Only build
	grub-pe2elf when needed by the build system itself.
	* conf/common.rmk: Remove $(enable_grub_pe2elf) check.

2009-09-12  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Bump version to 1.97~beta3.
	* docs/version.texi: Likewise.

2009-09-12  Robert Millan  <rmh.grub@aybabtu.com>

	* video/i386/pc/vbe.c (grub_vbe_get_video_mode_info): Move packed
	mode special handling (grub_vbe_bios_set_dac_palette_width() call)
	from here ...
	* loader/i386/linux.c [GRUB_MACHINE_PCBIOS]
	(grub_linux_setup_video): ... to here (with some adjustments).

2009-09-12  Robert Millan  <rmh.grub@aybabtu.com>

	Fix memory corruption issue (spotted by Colin Watson).

	* kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette): Fix bug
	causing returned size to be stored in an incorrect memory location.
	Fix use of uninitialized value when storing the returned size.

2009-09-12  Yves Blusseau  <blusseau@zetam.org>

	Change clean rules to properly remove files

	* genmk.rb: add new clean rules
	* Makefile.in (clean): add the new targets
	(mostlyclean): likewise

2009-09-11  Colin Watson  <cjwatson@ubuntu.com>

	* include/grub/ntfs.h (struct grub_fshelp_node): Change `size'
	to grub_uint64_t.
	* fs/ntfs.c (init_file): Understand 64-bit sizes for
	non-resident files.

2009-09-11  Colin Watson  <cjwatson@ubuntu.com>

	* configure.ac: Don't look for help2man when cross-compiling.  Fixes
	part of bug #27349.

2009-09-10  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig.in: Make the created config mode 400 and
	print a warning if it fails.

2009-09-10  Robert Millan  <rmh.grub@aybabtu.com>

	* util/grub.d/40_custom.in: Ask user to type custom entries below
	comment, rather than below 'exec tail' line.

2009-09-10  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub.d/40_custom.in: Make sure that the explanatory text is
	visible in grub.cfg.

2009-09-10  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub.d/40_custom.in: Make it a little clearer how to use this
	file.

2009-09-10  Felix Zielcke  <fzielcke@z-51.de>

	* docs/grub.cfg: Add an example menu entry for memtest86+.

2009-09-09  Felix Zielcke  <fzielcke@z-51.de>

	* config.guess: Update to latest version from config git.
	* config.sub: Likewise.

2009-09-08  Colin Watson  <cjwatson@ubuntu.com>

	* script/sh/execute.c (grub_script_execute_cmdline): Set "?" in
	unknown-command case.  Fixes bug #27320.

2009-09-08  Felix Zielcke  <fzielcke@z-51.de>

	* kern/rescue_parser.c (grub_rescue_parse_line): Only suggest to try
	`help' if the command exists.

2009-09-06  Robert Millan  <rmh.grub@aybabtu.com>

	* INSTALL: Require GCC 4.1.3 or later.

2009-09-06  Yves Blusseau  <blusseau@zetam.org>

	* Makefile.in (RMKFILES): add i386-qemu.rmk
	(MAINTAINER_CLEANFILES): add $(srcdir)/DISTLIST $(srcdir)/config.h.in
	$(srcdir)/stamp-h.in

2009-09-05  Robert Millan  <rmh.grub@aybabtu.com>

	* util/grub-probe.c (probe): Comment out buggy codepath, which
	was unexpectedly enabled by Colin Watson's 2009-09-02 fix.  This
	should be re-enabled after 1.97.

2009-09-05  Felix Zielcke  <fzielcke@z-51.de>

	* gendistlist.sh: Add `grub-dumpdevtree' and `*.lua' to the list
	find searches for.

2009-09-04  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/xnu.c (grub_cpu_xnu_fill_devicetree): Remove
	unnecessary calls to grub_error.

2009-09-04  Colin Watson  <cjwatson@ubuntu.com>

	* NEWS: Mention `keystatus' and Unicode fonts.

2009-09-04  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Bump version to 1.97~beta2.
	* docs/version.texi: Likewise.

2009-09-03  Colin Watson  <cjwatson@ubuntu.com>

	* configure.ac: By default, GCC 4.4 generates .eh_frame sections
	containing unwind information in some cases where it previously did
	not. Use -fno-dwarf2-cfi-asm if available to restore the old
	behaviour. See http://patchwork.kernel.org/patch/8555/ for related
	discussion.

2009-09-02  Yves BLUSSEAU  <blusseau@zetam.org>

	Embedding loadenv module into grub-emu

	* conf/i386-pc.rmk (grub_emu_SOURCES): add lib/envblk.c and
	commands/loadenv.c
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise

2009-09-03  Magnus Granberg  <zorry@ume.nu>

	* aclocal.m4: Add grub_CHECK_PIE. It check if the compiler
	include -fPIE in the default specs.
	* configure.ac: Check if pie_possible is yes and add -fno-PIE
	to TARGET_CFLAGS.

2009-09-03  Felix Zielcke  <fzielcke@z-51.de>

	* INSTALL: Note that GNU Bison 2.3 or later is required.

2009-09-03  Colin Watson  <cjwatson@ubuntu.com>

	* kern/i386/pc/startup.S: Fix typo.

2009-09-02  Vladimir Serbinenko  <phcoder@gmail.com>

	* efiemu/loadcore.c (SUFFIX (grub_efiemu_loadcore_load)): Fix style
	according to GCS.

2009-09-02  Colin Watson  <cjwatson@ubuntu.com>

	* docs/grub.texi (Naming convention): Describe one-based partition
	numbering.
	(Device syntax): Likewise.
	(File name syntax): Likewise.
	(Block list syntax): Likewise.
	(Making a GRUB bootable CD-ROM): Talk about grub.cfg rather than
	menu.lst.
	(File name syntax): Likewise.
	(Command-line and menu entry commands): Document acpi, blocklist,
	crc, export, insmod, keystatus, ls, set, and unset commands.

2009-09-02  Colin Watson  <cjwatson@ubuntu.com>

	* commands/keystatus.c (GRUB_MOD_INIT (keystatus)): Adjust summary
	to avoid implying that only one of --shift, --ctrl, or --alt may be
	used.

2009-09-02  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub-probe.c (probe): Test st.st_mode using S_ISREG macro
	rather than comparing against S_IFREG, which will almost never work.

2009-09-01  Vladimir Serbinenko  <phcoder@gmail.com>

	* commands/loadenv.c (check_blocklists): Fix off-by-one error.
	(write_blocklists): Likewise.

2009-09-01  Colin Watson  <cjwatson@ubuntu.com>

	* script/lua/grub_lua.h (fputs): Supply a format string as the first
	argument to grub_printf.

2009-09-01  Felix Zielcke  <fzielcke@z-51.de>

	* genmk.rb: Add quotes around $(TARGET_OBJ2ELF) to cope with
	 non GNU test.

2009-08-30  Vladimir Serbinenko  <phcoder@gmail.com>

	* kern/file.c (grub_file_read): Spelling fix

2009-08-30  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/bsdXX.c (SUFFIX (grub_freebsd_load_elfmodule)): Fix
	loading of headers in some cases.

2009-08-30  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Bump version to 1.97~beta1.
	* docs/version.texi: Likewise.

2009-08-29  Vladimir Serbinenko  <phcoder@gmail.com>

	* include/grub/i386/xnu.h: Add license header.
	include grub/err.h explicitly.

2009-08-29  Robert Millan  <rmh.grub@aybabtu.com>

	* util/grub.d/10_freebsd.in: Detect `ufs1' and `ufs2' and map them
	to `ufs' in the vfs.root.mountfrom kernel parameter.

2009-08-29  Robert Millan  <rmh.grub@aybabtu.com>

	* term/i386/pc/serial.c: Include `<grub/machine/memory.h>'.

	[GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Macroify initialization
	value (0x0400 -> GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR).

	[! GRUB_MACHINE_PCBIOS] (GRUB_SERIAL_PORT_NUM): Calculate using
	`ARRAY_SIZE' macro.

2009-08-28  Vladimir Serbinenko  <phcoder@gmail.com>

	* kern/file.c (grub_file_read): Check offset.
	* fs/hfs.c (grub_hfs_read_file): Remove unnecessary offset check.
	* fs/jfs.c (grub_jfs_read_file): Likewise.
	* fs/ntfs.c (grub_ntfs_read): Likewise.
	* fs/reiserfs.c (grub_reiserfs_read): Likewise.
	* fs/minix.c (grub_minix_read_file): Correct offset check.
	* fs/ufs.c (grub_ufs_read_file): Likewise.

2009-08-28  Colin Watson  <cjwatson@ubuntu.com>

	* term/i386/pc/console.c (bios_data_area): Cast
	GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR explicitly.

2009-08-28  Vladimir Serbinenko  <phcoder@gmail.com>

	1-bit optimised blitters.

	* include/grub/fbblit.h (grub_video_fbblit_replace_32bit_1bit): New
	prototype.
	(grub_video_fbblit_replace_24bit_1bit): Likewise.
	(grub_video_fbblit_replace_16bit_1bit): Likewise.
	(grub_video_fbblit_replace_8bit_1bit): Likewise.
	(grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
	(grub_video_fbblit_blend_XXX888_1bit): Likewise.
	(grub_video_fbblit_blend_XXX565_1bit): Likewise.
	* video/fb/fbblit.c (grub_video_fbblit_replace_32bit_1bit): New
	function.
	(grub_video_fbblit_replace_24bit_1bit): Likewise.
	(grub_video_fbblit_replace_16bit_1bit): Likewise.
	(grub_video_fbblit_replace_8bit_1bit): Likewise.
	(grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
	(grub_video_fbblit_blend_XXX888_1bit): Likewise.
	(grub_video_fbblit_blend_XXX565_1bit): Likewise.
	* video/fb/video_fb.c (common_blitter): Use 1-bit optimised blitters
	when possible.
	* video/video.c (grub_video_get_blit_format): Return
	GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED if bpp = 1.

2009-08-28  Colin Watson  <cjwatson@ubuntu.com>

	* normal/cmdline.c (grub_cmdline_get): Supply a format string as
	the first argument to grub_printf.

2009-08-28  Colin Watson  <cjwatson@ubuntu.com>
2009-08-28  Robert Millan  <rmh.grub@aybabtu.com>

	Add `getkeystatus' terminal method.  Add a new `keystatus' command
	to query it.

	* include/grub/term.h (GRUB_TERM_STATUS_SHIFT,
	GRUB_TERM_STATUS_CTRL, GRUB_TERM_STATUS_ALT): Definitions for
	modifier key bitmasks.
	(struct grub_term_input): Add `getkeystatus' member.
	(grub_getkeystatus): Add prototype.
	* kern/term.c (grub_getkeystatus): New function.

	* include/grub/i386/pc/memory.h
	(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR): New macro.
	(struct grub_machine_bios_data_area): Define necessary parts of BIOS
	Data Area layout.
	* term/i386/pc/console.c (grub_console_getkeystatus): New function.
	(grub_console_term_input): Set `getkeystatus' member.
	* term/usb_keyboard.c (grub_usb_hid): Macroify HID protocol
	constants.
	(grub_usb_keyboard_getreport): Likewise.
	(grub_usb_keyboard_checkkey): Likewise.
	(grub_usb_keyboard_getkeystatus): New function.
	(grub_usb_keyboard_term): Set `getkeystatus' member.

	* commands/keystatus.c: New file.
	* conf/common.rmk (pkglib_MODULES): Add keystatus.mod.
	(keystatus_mod_SOURCES): New variable.
	(keystatus_mod_CFLAGS): Likewise.
	(keystatus_mod_LDFLAGS): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add
	commands/keystatus.c.
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.

2009-08-28  Vladimir Serbinenko  <phcoder@gmail.com>

	Split befs.mod and afs.mod into *_be.mod and *.mod

	* conf/common.rmk (grub_probe_SOURCES): Add afs_be.c and befs_be.c.
	(grub_fstest_SOURCES): Likewise.
	(pkglib_MODULES): Add afs_be.mod and befs_be.mod.
	(afs_be_mod_SOURCES): New variable.
	(afs_be_mod_CFLAGS): Likewise.
	(afs_be_mod_LDFLAGS): Likewise.
	(befs_be_mod_SOURCES): Likewise.
	(befs_be_mod_CFLAGS): Likewise.
	(befs_be_mod_LDFLAGS): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add afs_be.c and befs_be.c.
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
	* fs/afs_be.c: New file.
	* fs/befs_be.c: New file.
	* fs/afs.c (GRUB_AFS_FSNAME_SUFFIX): New definition.
	(GRUB_AFS_FSNAME): Use GRUB_AFS_FSNAME_SUFFIX.
	(U16): Replaced with ...
	(grub_afs_to_cpu16): ...this. All users updated.
	(U32): Replaced with ...
	(grub_afs_to_cpu32): ...this. All users updated.
	(U64): Replaced with ...
	(grub_afs_to_cpu64): ...this. All users updated.
	(GRUB_AFS_BO_LITTLE_ENDIAN): Remove.
	(GRUB_AFS_BO_BIG_ENDIAN): Likewise.
	(grub_afs_validate_sblock): Check only one endianness.
	(GRUB_MOD_INIT (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
	(GRUB_MOD_INIT (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
	(GRUB_MOD_INIT (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
	(GRUB_MOD_INIT (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.
	(GRUB_MOD_FINI (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
	(GRUB_MOD_FINI (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
	(GRUB_MOD_FINI (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
	(GRUB_MOD_FINI (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.

2009-08-26  Bean  <bean123ch@gmail.com>

	* fs/xfs.c (GRUB_XFS_INO_INOINAG): Replace 1L with 1LL to support
	64-bit number.
	(GRUB_XFS_FSB_TO_BLOCK): Likewise.
	(grub_xfs_inode_block): Change return type to grub_uint64_t.
	(grub_xfs_read_inode): Change type of block to grub_uint64_t.

2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>

	NetBSD memory map support.

	* include/grub/i386/bsd.h (NETBSD_BTINFO_MEMMAP): New definition.
	(grub_netbsd_btinfo_mmap_header): New structure.
	(grub_netbsd_btinfo_mmap_entry): Likewise.
	* loader/i386/bsd.c (grub_netbsd_boot): Pass memory map.

2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>

	Enable bsd.mod on coreboot.

	* conf/i386-coreboot.rmk (pkglib_MODULES): Add bsd.mod.
	(bsd_mod_SOURCES): New variable.
	(bsd_mod_CFLAGS): Likewise.
	(bsd_mod_LDFLAGS): Likewise.
	(bsd_mod_ASFLAGS): Likewise.
	* loader/i386/bsd.c [!GRUB_MACHINE_PCBIOS]: Fix includes.
	(grub_bsd_get_device) [!GRUB_MACHINE_PCBIOS]: Set *biosdev to 0xff.

2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>

	Cleanup NetBSD root support.

	* loader/i386/bsd.c (grub_netbsd_boot): Remove call to
	grub_bsd_get_device.
	Fix typo.

2009-08-25  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub.d/00_header.in: Move check for the video backend of
	gfxterm from here ...
	* util/grub-mkconfig.in: ... to here.  Enable gfxterm if there's
	a suitable video backend.

2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix breakage in grub-setup.

	* util/i386/pc/grub-setup.c (setup): Use "part_msdos" instead of
	"msdos_partition_map".

2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix breakage in normal/auth.c.

	* normal/auth.c (grub_iswordseparator): New function.

2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>

	Authentication support.

	* commands/password.c: New file.
	* conf/common.rmk (pkglib_MODULES): Add password.mod.
	(password_mod_SOURCES): New variable.
	(password_mod_CFLAGS): Likewise.
	(password_mod_LDFLAGS): Likewise.
	(normal_mod_SOURCES): Add normal/auth.c.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add commands/password.c and
	normal/auth.c.
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
	* include/grub/auth.h: New file.
	* include/grub/err.h (grub_err_t): New enum value
	GRUB_ERR_ACCESS_DENIED.
	* include/grub/menu.h (grub_menu_entry): New fields 'restricted' and
	'users'.
	* include/grub/normal.h (grub_cmdline_get): New argument 'history'.
	* normal/cmdline.c (grub_cmdline_get): New argument 'history'. All
	users updated.
	* normal/auth.c: New file.
	* normal/main.c (grub_normal_add_menu_entry): Handle --users option.
	(grub_cmdline_run): Don't allow to go to command line without
	authentication.
	* normal/menu.c (grub_menu_execute_entry): Handle restricted entries.
	* normal/menu_entry.c (grub_menu_entry_run): Don't allow editing
	menuentry without superuser rights.
	* normal/menu_viewer.c (grub_menu_viewer_show_menu): Don't exit if
	user isn't a superuser.

2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>

	Save space by inlining misc.c functions.

	* kern/misc.c (grub_iswordseparator): Made static.
	* kern/misc.c (grub_strcat): Moved from here ...
	* include/grub/misc.h (grub_strcat): ... here. Inlined.
	* kern/misc.c (grub_strncat): Moved from here ...
	* include/grub/misc.h (grub_strncat): ... here. Inlined.
	* kern/misc.c (grub_strcasecmp): Moved from here ...
	* include/grub/misc.h (grub_strcasecmp): ... here. Inlined.
	* kern/misc.c (grub_strncasecmp): Moved from here ...
	* include/grub/misc.h (grub_strncasecmp): ... here. Inlined.
	* kern/misc.c (grub_isalpha): Moved from here ...
	* include/grub/misc.h (grub_isalpha): ... here. Inlined.
	* kern/misc.c (grub_isdigit): Moved from here ...
	* include/grub/misc.h (grub_isdigit): ... here. Inlined.
	* kern/misc.c (grub_isgraph): Moved from here ...
	* include/grub/misc.h (grub_isgraph): ... here. Inlined.
	* kern/misc.c (grub_tolower): Moved from here ...
	* include/grub/misc.h (grub_tolower): ... here. Inlined.

2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>

	* script/sh/function.c (grub_script_function_find): Cut error message
	not to flood terminal.
	* script/sh/lexer.c (grub_script_yylex): Remove command line length
	limit.
	* script/sh/script.c (grub_script_arg_add): Duplicate string.

2009-08-24  Colin Watson  <cjwatson@ubuntu.com>

	* term/usb_keyboard.c (grub_usb_keyboard_getreport): Make
	`report' grub_uint8_t *.
	(grub_usb_keyboard_checkkey): Make `data' elements grub_uint8_t.
	Use a 50-millisecond timeout rather than just repeating
	grub_usb_keyboard_getreport 50 times.
	(grub_usb_keyboard_getkey): Make `data' elements grub_uint8_t.

2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>

	Rename *_partition_map to part_*

	* partmap/acorn.c (grub_acorn_partition_map): Set name to 'part_acorn'.
	* partmap/amiga.c (grub_amiga_partition_map): Set name to 'part_amiga'.
	* partmap/apple.c (grub_apple_partition_map): Set name to 'part_apple'.
	* partmap/gpt.c (grub_gpt_partition_map): Set name to 'part_gpt'.
	All users updated.
	* partmap/msdos.c (grub_msdos_partition_map): Set name to 'part_msdos'.
	All users updated.
	* partmap/sun.c (grub_sun_partition_map): Set name to 'part_sun'.
	* util/grub-probe.c (probe_partmap): Don't transform partition name
	to get module name.

2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix OpenBSD and NetBSD support.

	* include/grub/i386/bsd.h (GRUB_BSD_TEMP_BUFFER): Change to resolve
	memory address conflict.
	(OPENBSD_MMAP_ACPI): New definition.
	(OPENBSD_MMAP_NVS): Likewise.
	* loader/i386/bsd.c (grub_openbsd_boot): Support OPENBSD_MMAP_ACPI
	and OPENBSD_MMAP_NVS.
	Add memory map terminator
	Explicit cast when calling grub_unix_real_boot.
	(grub_netbsd_boot): Explicit cast when calling grub_unix_real_boot.

2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>

	Let user specify NetBSD root device.

	* loader/i386/bsd.c (netbsd_root): New variable.
	(netbsd_opts): New option 'root'.
	(NETBSD_ROOT_ARG): New macro.
	(grub_netbsd_boot): Use 'netbsd_root'.
	(grub_bsd_unload): Free 'netbsd_root'.
	(grub_cmd_netbsd): Fill 'netbsd_root'.

2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>

	Support for 64-bit NetBSD.

	* loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry
	point when booting non-FreeBSD.

2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>

	Support --no-smp and --no-acpi for NetBSD.

	* include/grub/i386/bsd.h (NETBSD_AB_NOSMP): New definition.
	(NETBSD_AB_NOACPI): Likewise.
	* loader/i386/bsd.c (netbsd_opts): New entries no-smp and no-acpi.
	(netbsd_flags): Add NETBSD_AB_NOSMP, NETBSD_AB_NOACPI.

2009-08-23  Vladimir Serbinenko  <phcoder@gmail.com>

	* fs/hfsplus.c (grub_hfsplus_mount): Don't ignore grub_hfsplus_read_file
	errors.
	(grub_hfsplus_btree_iterate_node): Don't ignore grub_hfsplus_read_file
	errors. Call grub_error when needed.

2009-08-23  Vladimir Serbinenko  <phcoder@gmail.com>

	* commands/search.c (search_fs): Try searching without autoload first.
	* util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
	filesystem module explicitly for faster booting.

2009-08-23  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER.

2009-08-23  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub.d/30_os-prober.in: Disable os-prober if
	`GRUB_DISABLE_OS_PROBER' was set to true.

2009-08-23  Robert Millan  <rmh.grub@aybabtu.com>

	* partmap/pc.c: Rename to ...
	* partmap/msdos.c: ... this.  Update all users.
	(grub_pc_partition_map): Rename to ...
	(grub_msdos_partition_map): ... this.  Update all users.

	* parttool/pcpart.c: Rename to ...
	* parttool/msdospart.c: ... this.  Update all users.

	* include/grub/pc_partition.h: Rename to ...
	* include/grub/msdos_partition.h: ... this.  Update all users.
	(grub_pc_partition_bsd_entry): Rename to ...
	(grub_msdos_partition_bsd_entry): ... this.  Update all users.
	(grub_pc_partition_disk_label): Rename to ...
	(grub_msdos_partition_disk_label): ... this.  Update all users.
	(grub_pc_partition_entry): Rename to ...
	(grub_msdos_partition_entry): ... this.  Update all users.
	(grub_pc_partition_mbr): Rename to ...
	(grub_msdos_partition_mbr): ... this.  Update all users.
	(grub_pc_partition): Rename to ...
	(grub_msdos_partition): ... this.  Update all users.
	(grub_pc_partition_is_empty): Rename to ...
	(grub_msdos_partition_is_empty): ... this.  Update all users.
	(grub_pc_partition_is_extended): Rename to ...
	(grub_msdos_partition_is_extended): ... this.  Update all users.
	(grub_pc_partition_is_bsd): Rename to ...
	(grub_msdos_partition_is_bsd): ... this.  Update all users.

	* conf/common.rmk (amiga_mod_SOURCES, amiga_mod_CFLAGS)
	(amiga_mod_LDFLAGS, apple_mod_SOURCES, apple_mod_CFLAGS)
	(apple_mod_LDFLAGS, msdos_mod_SOURCES, msdos_mod_CFLAGS)
	(msdos_mod_LDFLAGS, sun_mod_SOURCES, sun_mod_CFLAGS)
	(sun_mod_LDFLAGS, acorn_mod_SOURCES, acorn_mod_CFLAGS)
	(acorn_mod_LDFLAGS, gpt_mod_SOURCES, gpt_mod_CFLAGS)
	(gpt_mod_LDFLAGS): Rename to ...
	(part_amiga_mod_SOURCES, part_amiga_mod_CFLAGS, part_amiga_mod_LDFLAGS)
	(part_apple_mod_SOURCES, part_apple_mod_CFLAGS, part_apple_mod_LDFLAGS)
	(part_msdos_mod_SOURCES, part_msdos_mod_CFLAGS, part_msdos_mod_LDFLAGS)
	(part_sun_mod_SOURCES, part_sun_mod_CFLAGS, part_sun_mod_LDFLAGS)
	(part_acorn_mod_SOURCES, part_acorn_mod_CFLAGS, part_acorn_mod_LDFLAGS)
	(part_gpt_mod_SOURCES, part_gpt_mod_CFLAGS)
	(part_gpt_mod_LDFLAGS): ... this.
	(pkglib_MODULES): Prefix partition modules with `part_'.  Rename
	`pcpart.mod' to `msdospart.mod'.
	(pcpart_mod_SOURCES, pcpart_mod_CFLAGS, pcpart_mod_LDFLAGS): Rename
	to ...
	(msdospart_mod_SOURCES, msdospart_mod_CFLAGS)
	(msdospart_mod_LDFLAGS): ... this.

2009-08-23  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/bsd.c (freebsd_opts): Rewritten to use extcmd.
	(openbsd_opts): Likewise.
	(netbsd_opts): Likewise.
	(freebsd_flags): Added 0 terminator.
	(openbsd_flags): Likewise.
	(netbsd_flags): Likewise.
	(grub_bsd_parse_flags): Rewritten to use extcmd. All users updated.
	(grub_cmd_freebsd): Transformed into extended command.
	(grub_cmd_openbsd): Likewise.
	(grub_cmd_netbsd): Likewise.
	(cmd_freebsd): Changed type to grub_extcmd_t.
	(cmd_openbsd): Likewise.
	(cmd_netbsd): Likewise.
	(GRUB_MOD_INIT (bsd)): Register grub_cmd_freebsd, grub_cmd_netbsd and
	grub_cmd_openbsd as extended commands.
	(GRUB_MOD_FINI (bsd)): Use grub_unregister_extcmd for cmd_freebsd,
	cmd_netbsd and cmd_openbsd

2009-08-22  Vladimir Serbinenko  <phcoder@gmail.com>

	* commands/xnu_uuid.c (transform): Use grub_memcpy instead of memcpy.

2009-08-21  Pavel Roskin  <proski@gnu.org>

	* Makefile.in (install-local): When checking if a file is in the
	build directory, use "test -e" to detect symlinks.

	* Makefile.in (install-local): Remove all files in
	$(DESTDIR)$(pkglibdir) before installing new files there.

2009-08-18  Felix Zielcke  <fzielcke@z-51.de>

	* util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Use
	grub-mkelfimage.

2009-08-18  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig.in: Don't use gfxterm by default if not
	explicitly specified by the user.

2009-08-18  Pavel Roskin  <proski@gnu.org>

	* include/grub/fbfill.h (struct grub_video_fbrender_target): Use
	grub_uint8_t pointer for data.
	* include/grub/fbutil.h (struct grub_video_fbblit_info):
	Likewise.
	* video/fb/fbutil.c: Remove unnecessary casts.

2009-08-17  Michal Suchanek  <hramrach@centrum.cz>

	VBE cleanup.

	* video/i386/pc/vbe.c (vbe_mode_in_use): Removed (duplicate).
	(grub_vbe_set_video_mode): Save active mode info
	only after setting the mode.
	(grub_video_vbe_setup): Call 'grub_vbe_set_video_mode' with NULL as
	second argument.

2009-08-17  Michal Suchanek  <hramrach@centrum.cz>

	Rename variables for clarity.

	* video/i386/pc/vbe.c (active_mode_info): Renamed to ...
	(active_vbe_mode_info): ... this. All users updated.
	(framebuffer): Rename 'active_mode' to 'active_vbe_mode'.
	All users updated.
	(initial_mode): Rename to ...
	(initial_vbe_mode): ... this. All users updated.
	(mode_in_use): Rename to ..
	(vbe_mode_in_use): ... this. All users updated.
	(mode_list): Rename to ..
	(vbe_mode_list): ... this. All users updated.
	(grub_vbe_set_video_mode): Rename 'mode' to 'vbe_mode', 'mode_info' to
	'vbe_mode_info' and 'old_mode' to 'old_vbe_mode'.
	(grub_video_vbe_init): Rename 'rm_mode_list' to 'rm_vbe_mode_list' and
	'mode_list_size' to 'vbe_mode_list_size'.
	(grub_video_vbe_setup): Rename 'mode_info' to 'vbe_mode_info',
	'best_mode_info' to 'best_vbe_mode_info' and
	'best_mode' to 'best_vbe_mode'

2009-08-17  Michal Suchanek  <hramrach@centrum.cz>

	Remove duplicate grub_video_fb_get_video_ptr.

	* include/grub/fbutil.h (get_data_ptr): Rename to ...
	(grub_video_fb_get_video_ptr): ... this.
	* include/grub/video_fb.h (grub_video_fb_get_video_ptr): Removed.
	* video/fb/fbutil.c: Add comment about addressing.
	(get_data_ptr): Rename to ...
	(grub_video_fb_get_video_ptr): ... this. All users updated.
	* video/fb/video_fb.c (grub_video_fb_get_video_ptr): Remove.

2009-08-17  Robert Millan  <rmh.grub@aybabtu.com>

	* fs/fat.c (grub_fat_read_data): Remove `#if 0' braces around the
	grub_dprintf() that was just added.

2009-08-17  Robert Millan  <rmh.grub@aybabtu.com>

	* loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT)
	(DEFAULT_VIDEO_MODE): Remove macros.
	(grub_linux_boot): Remove assumption that Linux has FB support,
	and use "text" as default video mode.

2009-08-15  Vladimir Serbinenko  <phcoder@gmail.com>

	* fs/affs.c (grub_affs_read_symlink): Change leftover grub_printf into
	grub_dprintf.
	* fs/fat.c (grub_fat_read_data): Likewise.

2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/multiboot.c (grub_multiboot): Don't pass filename to
	payload.
	(grub_module): Likewise.

2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/multiboot.c (grub_multiboot_unload): Don't free mbi and
	mbi->cmdline but free playground.

2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>

	Handle group offset on UFS1.

	* fs/ufs.c (grub_ufs_sblock): New field 'cylg_mask'.
	(grub_ufs_read_inode) [!MODE_UFS2]: handle cylg_offset and cylg_mask.

2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>

	Split ufs.mod into ufs1.mod and ufs2.mod.

	* conf/common.rmk (grub_probe_SOURCES): Add fs/ufs2.c.
	(grub_fstest_SOURCES): Likewise.
	(pkglib_MODULES): Remove ufs.mod. Add ufs1.mod and ufs2.mod.
	(ufs_mod_SOURCES): Remove.
	(ufs_mod_CFLAGS): Likewise.
	(ufs_mod_LDFLAGS): Likewise.
	(ufs1_mod_SOURCES): New variable.
	(ufs1_mod_CFLAGS): Likewise.
	(ufs1_mod_LDFLAGS): Likewise.
	(ufs2_mod_SOURCES): New variable.
	(ufs2_mod_CFLAGS): Likewise.
	(ufs2_mod_LDFLAGS): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add fs/ufs2.c.
	* conf/i386-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
	Likewise.
	(grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	(grub_setup_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64.rmk (grub_emu_SOURCES): Likewise.
	(grub_setup_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
	Likewise.
	* fs/ufs2.c: New file.
	* fs/ufs.c: Separate UFS1 from UFS2 by using preprocessor.

2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>

	Framebuffer split.

	* commands/i386/pc/vbetest.c (grub_cmd_vbetest): Restore video
	subsystem at the end.
	* conf/common.rmk (pkglib_MODULES): Add video_fb.mod.
	(video_fb_mod_SOURCES): New variable.
	(video_fb_mod_CFLAGS): Likewise.
	(video_fb_mod_LDFLAGS): Likewise.
	* conf/i386-pc.rmk (vbe_mod_SOURCES): Remove video/i386/pc/vbeblit.c,
	video/i386/pc/vbefill.c and video/i386/pc/vbeutil.c.
	* video/i386/pc/vbeblit.c: Moved from here ...
	* video/fb/fbblit.c: ..here. Replaced 'vbe' with 'fb'.
	* video/i386/pc/vbefill.c: Moved from here ...
	* video/fb/fbfill.c: ..here. Replaced 'vbe' with 'fb'.
	* video/i386/pc/vbeutil.c: Moved from here ...
	* video/fb/fbutil.c: ..here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbeblit.h: Moved from here ...
	* include/grub/fbblit.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbefill.h: Moved from here ...
	* include/grub/fbfill.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbeutil.h: Moved from here ...
	* include/grub/fbutil.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbe.h: Moved framebuffer part ...
	* include/grub/video_fb.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/video.h (GRUB_VIDEO_RENDER_TARGET_FRONT_BUFFER): Removed.
	(GRUB_VIDEO_RENDER_TARGET_BACK_BUFFER): Likewise.
	(grub_video_adapter): Added 'get_info_and_fini'.
	(grub_video_get_info_and_fini): New prototype.
	(grub_video_set_mode): make modestring const char *.
	* loader/i386/linux.c (grub_linux_setup_video): Use
	grub_video_get_info_and_fini.
	(grub_linux_boot): Move modesetting just before booting.
	* loader/i386/pc/xnu.c (grub_xnu_set_video): Use
	grub_video_get_info_and_fini.
	* video/i386/pc/vbe.c: Moved framebuffer part ...
	* video/fb/video_fb.c: ... here. Replaced 'vbe' with 'fb'.
	* video/i386/pc/vbe.c (grub_vbe_set_video_mode): Use
	grub_video_fbstd_colors and grub_video_fb_set_palette.
	(grub_video_vbe_init): Clear 'framebuffer' variable and use
	grub_video_fb_init.
	(grub_video_vbe_fini): Use grub_video_fb_fini.
	(grub_video_vbe_setup): Use framebuffer.render_target instead of
	render_target and use grub_video_fb_set_active_render_target and
	grub_video_fb_set_palette.
	(grub_video_vbe_set_palette): Use grub_video_fb_set_palette.
	(grub_video_vbe_set_viewport): Use grub_video_fb_set_viewport.
	(grub_video_vbe_adapter): Use framebuffer.
	* video/video.c (grub_video_get_info_and_fini): New function.
	(grub_video_set_mode): Make modestring const char *.
	(GRUB_MOD_INIT(video_video)): Don't set variables to 0 since these
	values are already initialised.

2009-08-14  Pavel Roskin  <proski@gnu.org>

	* boot/i386/pc/cdboot.S: Use LOCAL for local labels.  Eliminate
	ABS and APPLE_CC.
	* boot/i386/pc/diskboot.S: Likewise.
	* boot/i386/pc/lnxboot.S: Likewise.  Hardcode the number of code
	sectors allow compilation on MacOSX.
	* conf/i386-pc.rmk: Enable unconditional compilation of
	lnxboot.img.

2009-08-13  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub-mkconfig.in: Export GRUB_HIDDEN_TIMEOUT.
	* util/grub.d/00_header.in: Enter interruptible sleep if
	GRUB_HIDDEN_TIMEOUT is set.

2009-08-13  Yves Blusseau  <blusseau@zetam.org>

	* include/grub/symbol.h: Add the LOCAL macro.
	* boot/i386/pc/boot.S: Use the LOCAL macro for all labels
	starting with "L_".

2009-08-13  Pavel Roskin  <proski@gnu.org>

	* boot/i386/pc/boot.S: Remove ABS macro, it's not required by
	any modern compilers we support.

	* boot/i386/pc/boot.S: Remove all code dependent on APPLE_CC.
	Use local labels starting with "L_" so that Apple assembler
	knows they are local.

2009-08-10  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/bsd.h (KERNEL_TYPE_NONE, KERNEL_TYPE_FREEBSD)
	(KERNEL_TYPE_OPENBSD, KERNEL_TYPE_NETBSD): Convert to ...
	(bsd_kernel_types): ... this enum.

	* loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module)
	(grub_cmd_freebsd_module_elf): Abort with "You need to load the
	kernel first." when `kernel_type' is set to KERNEL_TYPE_NONE.

	(grub_bsd_load_aout, grub_bsd_load, grub_cmd_freebsd_loadenv)
	(grub_cmd_freebsd_module, grub_cmd_freebsd_module_elf)
	(GRUB_MOD_INIT (bsd)): Fix capitalization in a few error
	messages.

2009-08-08  Robert Millan  <rmh.grub@aybabtu.com>

	* util/grub-dumpdevtree: Moved from here ...
	* util/i386/efi/grub-dumpdevtree: ... to here.
	(hexify): New function.  Converts a string to its hex version.
	Generate hex versions of "efi" and "device-properties" by calling
	hexify() on the ASCII strings rather than by hardcoding numbers.

2009-08-08  Robert Millan  <rmh.grub@aybabtu.com>

	* fs/jfs.c: Update copyright year.

2009-08-08  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub.d/00_header.in: Fix a comment.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_windows.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.

2009-08-08  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig.in: Allow the user to specify the used font
	with GRUB_FONT.

2009-08-08  Pavel Roskin  <proski@gnu.org>

	* include/grub/powerpc/libgcc.h: Export __ashrdi3() if
	available, xfs.mod needs it now.

	* util/grub-mkconfig_lib.in (version_test_numeric): Don't use
	the "g" modifier in sed when the intention is to strip something
	once.  This fixes comparison of kernels with multiple dashes.

	* util/grub-mkconfig.in: Define datarootdir, datadir may depend
	on it.  Add missing space before closing bracket.  Fix
	misleading formatting.

2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>

	* docs/grub.texi: Major overhaul.  Remove all sections that are
	specific to GRUB Legacy, or mostly composed of Legacy-specific
	information.

2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>

	* docs/version.texi: New file.  Provides version information for
	grub.texi.

2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>

	* docs/grub.texi: Update CVS information to SVN.
	Replace outdated "GRUB 2 will include" phrase with "GRUB 2 includes".

2009-08-07  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig.in: Remove a wrong `fi'.

2009-08-07  Felix Zielcke  <fzielcke@z-51.de>

	* fs/uuid.c (grub_jfs_superblock): New fields unused2 and uuid.
	(grub_jfs_uuid): New function.
	(grub_jfs_fs): Set uuid field to grub_jfs_uuid.

2009-08-07  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig_lib.in (font_path): Move the functionality
	of it to ...
	* util/grub-mkconfig.in: ... here.  Prefer unicode.pf2 and
	unifont.pf2 over ascii.pf2.  Export LANG=C in case ascii.pf2 gets used.

2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>

	* util/grub.d/10_linux.in (test_numeric): Moved from here ...
	* util/grub-mkconfig_lib.in (version_test_numeric): ... to here.
	Update all users.

	* util/grub.d/10_linux.in (test_gt): Strip any basename prefix,
	not just "vmlinu[zx]".
	Moved from here ...
	* util/grub-mkconfig_lib.in (version_test_gt): ... to here.  Update
	all users.

	* util/grub.d/10_linux.in (find_latest): Moved from here ...
	* util/grub-mkconfig_lib.in (version_find_latest): ... to here.  Update
	all users.

2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>

	* util/grub.d/10_freebsd.in: Use an absolute device path for
	`vfs.root.mountfrom'.  Set `vfs.root.mountfrom.options=rw'.

2009-08-06  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix
	handling of multiple abstraction modules.

2009-08-04  Robert Millan  <rmh.grub@aybabtu.com>

	Fix a bug resulting in black screen when loading Linux using a
	packed video mode.

	* kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette_width): New
	function.

	* include/grub/i386/pc/vbe.h (GRUB_VBE_CAPABILITY_DACWIDTH): New macro.
	(grub_vbe_bios_getset_dac_palette_width): New function.
	(grub_vbe_bios_get_dac_palette_width)
	(grub_vbe_bios_set_dac_palette_width): New macros (act as wrappers for
	grub_vbe_bios_getset_dac_palette_width()).

	* video/i386/pc/vbe.c (grub_vbe_probe): Use `GRUB_VBE_STATUS_OK' to
	check for return status.
	(grub_vbe_get_video_mode_info): When getting information for a packed
	mode (<= 8 bpp), obtain DAC palette width using
	grub_vbe_bios_getset_dac_palette_width(), and use that for initializing
	{red,green,blue}_mark_size.

2009-08-04  Felix Zielcke  <fzielcke@z-51.de>

	* commands/search.c (options): Fix help output to match actual code.

2009-08-02  Vladimir Serbinenko  <phcoder@gmail.com>

	* commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_read instead
	of homegrown code.

2009-08-01  Vladimir Serbinenko  <phcoder@gmail.com>

	* util/hostfs.c (grub_hostfs_dir): Don't use DT_DIR: It doesn't work
	on XFS or ReiserFS.

2009-08-01  Vladimir Serbinenko  <phcoder@gmail.com>

	Support Apple partition map with sector size different from 512 bytes.

	* partmap/apple.c (grub_apple_header): New field 'blocksize'.
	(apple_partition_map_iterate): Respect 'aheader.blocksize'
	and 'apart.partmap_size'.

2009-08-01  Vladimir Serbinenko  <phcoder@gmail.com>
2009-08-01  Robert Millan  <rmh.grub@aybabtu.com>

	Fix cpuid command.

	* commands/i386/cpuid.c (options): New variable.
	(grub_cmd_cpuid): Return real error.
	(GRUB_MOD_INIT(cpuid)): Declare options.

2009-07-31  Vladimir Serbinenko  <phcoder@gmail.com>

	* partmap/pc.c (pc_partition_map_iterate): Check that boot flags are
	valid.

2009-07-31  Bean  <bean123ch@gmail.com>

	* fs/xfs.c (grub_xfs_sblock): Change unused5 field to log2_sect and
	log2_inode.
	(grub_fshelp_node): Move inode field to the end.
	(grub_xfs_data): Remove inode field.
	(grub_xfs_inode_block): Calculate inode size using sblock.
	(grub_xfs_inode_offset): Likewise.
	(grub_xfs_read_inode): Calculate inode size using sblock.
	(grub_xfs_read_block): Replace XFS_INODE_EXTENTS with nrec.
	(grub_xfs_iterate_dir): Calculate inode size using sblock.
	(grub_xfs_mount): Use grub_zalloc instead of grub_malloc. Realloc data
	to match inode size.
	(grub_xfs_dir): goto mount_fail when mount fails, as data->diropen is
	not accessible when data is null.
	(grub_xfs_open): Likewise.

2009-07-31  Bean  <bean123ch@gmail.com>

	* disk/lvm.c (grub_lvm_scan_device): Ignore extra copy of metadata.
	Don't change pv->disk if it's already set.

	* disk/raid.c (grub_raid_scan_device): Merge this function into ...
	(grub_raid_register): ... here.
	(grub_raid_rescan): Removed.

	* include/grub/raid.h (grub_raid_rescan): Removed.

	* util/grub-fstest.c: Remove include file <grub/raid.h>.
	(fstest): Replace grub_raid_rescan with module fini function followed
	by init function.

	* util/grub-probe.c: Add include file <grub/raid.h>.
	(probe_raid_level): New function.
	(probe): Detect abstraction by walking the disk device, support two
	level of abstraction (LVM on RAID) when detecting partition map.

2009-07-31  Pavel Roskin  <proski@gnu.org>

	* disk/raid5_recover.c (grub_raid5_recover): Revert conversion
	to grub_zalloc(), it was erroneous.
	Reported by Bean <bean123ch@gmail.com>

2009-07-30  Vladimir Serbinenko  <phcoder@gmail.com>

	* util/i386/pc/grub-setup.c (setup): Check that no partition is in
	embedding zone, not only the first one.

2009-07-29  Joe Auricchio  <jauricchio@gmail.com>

	* term/gfxterm.c (clear_char): New function.
	(grub_virtual_screen_setup): Use clear_char.
	(scroll_up): Likewise.
	(grub_virtual_screen_cls): Likewise.

2009-07-29  Felix Zielcke  <fzielcke@z-51.de>

	* util/deviceiter.c (get_acceleraid_disk_name): New static
	function.
	(grub_util_iterate_devices): Handle Accelraid devices.
	* util/hostdisk.c (convert_system_partition_to_system_disk): Likewise.

2009-07-28  Robert Millan  <rmh.grub@aybabtu.com>

	* loader/i386/linux.c (grub_cmd_linux): Use ',' rather than ';' as
	separator for the suggested gfxpayload string (';' collides with the
	parser and needs escaping).

2009-07-28  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/multiboot_helper.S (grub_multiboot_backward_relocator):
	Clear direction flag before jumping to OS.
	(grub_multiboot2_real_boot): Likewise.

2009-07-28  Felix Zielcke  <fzielcke@z-51.de>

	* util/i386/pc/grub-install: Fix parsing of --disk-module
	option.

2009-07-28  Felix Zielcke  <fzielcke@z-51.de>

	* util/i386/pc/grub-setup.c (setup): Fix 2 incorrect checks
	when embedding.

2009-07-26  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig.in (package_version): New variable.
	Use it do display the version.

2009-07-25  Felix Zielcke  <fzielcke@z-51.de>

	* kern/file.c (grub_file_open): Revert to previous check with
	grub_errno.

2009-07-25  Vladimir Serbinenko  <phcoder@gmail.com>

	* commands/probe.c (GRUB_MOD_INIT (probe)): Remove "[--target=target]"
	from help line. It's out of sync with code.

2009-07-25  Vladimir Serbinenko  <phcoder@gmail.com>

	* kern/parser.c (grub_parser_execute): Fix a bug causing truncated
	entries on failed boot.

2009-07-25  Felix Zielcke  <fzielcke@z-51.de>

	* kern/file.c (grub_file_open): Fix an error check.

2009-07-24  Vladimir Serbinenko  <phcoder@gmail.com>

	* util/i386/pc/grub-setup.c (setup): Fix segmentation fault when
	partition map couldn't be identified.

2009-07-23  Pavel Roskin  <proski@gnu.org>

	* commands/xnu_uuid.c (transform): Use GRUB_CPU_WORDS_BIGENDIAN
	instead of WORDS_BIGENDIAN.  Use grub_le_to_cpu32(), so that the
	case of little endian words becomes just an optimization.
	Respect const modifier.
	(md5_final): Use code that doesn't depend on endianness.

	* include/grub/misc.h (ALIGN_UP): Cast align to the type of addr
	to avoid loss of upper bits if align is unsigned and shorter
	than addr.

2009-07-21  Vladimir Serbinenko  <phcoder@gmail.com>

	UUID support for UFS

	* fs/ufs.c (grub_ufs_sblock): Add uuidhi and uuidlow.
	(grub_ufs_uuid): New function.
	(grub_ufs_fs): add .uuid

2009-07-21  Pavel Roskin  <proski@gnu.org>

	* kern/dl.c (grub_dl_check_header): Make static.

2009-07-21  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub.d/30_os-prober.in: Remove unused CHAINROOT.  Don't
	add drivemap for Vista.  It breaks Windows 7.

2009-07-21  Vladimir Serbinenko  <phcoder@gmail.com>

	* fs/ufs.c (grub_ufs_sblock): Fix offset of mtime2 which was off by
	128 bytes

2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>

	Add BFS support

	* conf/common.rmk (grub_probe_SOURCES): Add fs/befs.c.
	(grub_fstest_SOURCES): Likewise.
	(pkglib_MODULES): Add befs.mod.
	(befs_mod_SOURCES): New variable.
	(befs_mod_CFLAGS): Likewise.
	(befs_mod_LDFLAGS): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	(grub_setup_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	(grub_setup_SOURCES): Likewise.
	* fs/befs.c: New file.
	* fs/afs.c (GRUB_AFS_FSNAME): New declaration.
	(GRUB_AFS_SBLOCK_SECTOR): Likewise.
	(GRUB_AFS_SBLOCK_MAGIC1) [MODE_BFS]: New conditional declaration.
	(GRUB_AFS_BTREE_MAGIC) [MODE_BFS]: Likewise
	(B_KEY_INDEX_ALIGN): New declaration.
	(B_KEY_INDEX_OFFSET): Use B_KEY_INDEX_ALIGN.
	(grub_afs_bnode) [MODE_BFS]: Make key_count and key_size 16-bit
	(grub_afs_btree) [MODE_BFS]: New conditional declaration.
	(grub_afs_sblock) [MODE_BFS]: Remove link_count.
	(grub_afs_validate_sblock) [MODE_BFS]: Support BFS
	(grub_afs_mount) [MODE_BFS]: Likewise.
	(grub_afs_dir) [MODE_BFS]: Divide mtime by 65536 and not 1000000.
	(grub_afs_fs): Use GRUB_AFS_FSNAME
	(GRUB_MOD_INIT (afs)) [MODE_BFS]: Rename to ...
	(GRUB_MOD_INIT (befs)) [MODE_BFS]: ... this
	(GRUB_MOD_FINI (afs)) [MODE_BFS]: Rename to ...
	(GRUB_MOD_FINI (befs)) [MODE_BFS]: ... this

2009-07-19  Yves BLUSSEAU  <yves.grub-devel@zetam.org>

	* util/getroot.c (find_root_device): Add support for MacOSX.
	* util/hostdisk.c: Likewise.

2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>

	* font/font.c (find_glyph): Check whether a font is present to avoid
	segmentation fault.

2009-07-20  Joe Auricchio  <jauricchio@gmail.com>

	* term/gfxterm.c (grub_virtual_screen_setup): Clear virtual_screen.

2009-07-20  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Trim excessively wordy excuses.

2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>

	Add symlink, mtime and label support to AtheFS.

	* fs/afs.c (grub_afs_sblock): Declare `name' as char.
	(grub_afs_iterate_dir): Handle symlinks.
	(grub_afs_open): Use grub_afs_read_symlink.
	(grub_afs_dir): Likewise.
	Pass mtime.
	(grub_afs_label): New function.
	(grub_afs_fs): Add grub_afs_label.
	(grub_afs_read_symlink): New function.

2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix AtheFS support.

	* fs/afs.c: Fix comments style.
	(grub_afs_blockrun): Declare as packed.
	(grub_afs_datastream): Likewise.
	(grub_afs_bnode): Likewise.
	(grub_afs_btree): Likewise.
	(grub_afs_sblock): Likewise.
	Declare `name' as char.
	(grub_afs_inode): Declare as packed.
	Change void *vnode to grub_uint32_t unused.
	(grub_afs_iterate_dir): Check that key_size is positive.
	(grub_afs_mount): Don't read superblock twice.
	(grub_afs_dir): Don't free node in case of error,
	grub_fshelp_find_file already handles this.
	(grub_afs_open): Likewise.

2009-07-19  Pavel Roskin  <proski@gnu.org>

	* Makefile.in: Remove LIBLZO and enable_lzo.
	* conf/i386-pc.rmk: Remove lzo support.
	* configure.ac: Remove checks for lzo, don't define ENABLE_LZMA.
	* include/grub/i386/pc/kernel.h: Define ENABLE_LZMA.  Remove lzo
	support.
	* kern/i386/pc/lzo1x.S: Remove.
	* kern/i386/pc/startup.S: Remove lzo support.
	* util/i386/pc/grub-mkimage.c: Likewise.

2009-07-19  Vladimir Serbinenko  <phcoder@gmail.com>

	* disk/usbms.c (grub_usbms_transfer): Fix double semicolon.
	* fs/xfs.c (grub_xfs_dir): Likewise.
	* fs/afs.c (grub_afs_dir): Likewise.
	* fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
	(grub_iso9660_open): Likewise.
	* fs/jfs.c (grub_jfs_open): Likewise.
	* fs/ext2.c (grub_ext2_dir): Likewise.
	* include/grub/macho.h (grub_macho_fat_arch): Likewise.
	* script/sh/lexer.c (grub_script_yylex): Likewise.

2009-07-16  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Never add "-c" to CFLAGS.

	* configure.ac: Fix incorrect comparison for grub_cv_cc_efiemu.

	* configure.ac: Fix wrong use of grub_cv_cc_no_red_zone where
	grub_cv_cc_efiemu should be used.

	* configure.ac: Typo fixes.

	* kern/mm.c (grub_zalloc): New function.
	(grub_debug_zalloc): Likewise.
	* include/grub/mm.h: Declare grub_zalloc() and
	grub_debug_zalloc().
	* util/misc.c (grub_zalloc): New function.
	* bus/usb/uhci.c (grub_uhci_pci_iter): Use grub_zalloc()
	instead of grub_malloc(), remove unneeded initializations.
	* bus/usb/usbhub.c (grub_usb_hub_add_dev): Likewise.
	* commands/extcmd.c (grub_extcmd_dispatcher): Likewise.
	* commands/parttool.c (grub_cmd_parttool): Likewise.
	* disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
	* disk/raid5_recover.c (grub_raid5_recover): Likewise.
	* disk/raid6_recover.c (grub_raid6_recover): Likewise.
	* disk/usbms.c (grub_usbms_finddevs): Likewise.
	* efiemu/mm.c (grub_efiemu_request_memalign): Likewise.
	* efiemu/pnvram.c (grub_efiemu_pnvram): Likewise.
	(grub_cmd_efiemu_pnvram): Likewise.
	* fs/i386/pc/pxe.c (grub_pxefs_open): Likewise.
	* fs/iso9660.c (grub_iso9660_mount): Likewise.
	(grub_iso9660_iterate_dir): Likewise.
	* fs/jfs.c (grub_jfs_opendir): Likewise.
	* fs/ntfs.c (list_file): Likewise.
	(grub_ntfs_mount): Likewise.
	* kern/disk.c (grub_disk_open): Likewise.
	* kern/dl.c (grub_dl_load_core): Likewise.
	* kern/elf.c (grub_elf_file): Likewise.
	* kern/env.c (grub_env_context_open): Likewise.
	(grub_env_set): Likewise.
	(grub_env_set_data_slot): Likewise.
	* kern/file.c (grub_file_open): Likewise.
	* kern/fs.c (grub_fs_blocklist_open): Likewise.
	* loader/i386/multiboot.c (grub_module): Likewise.
	* loader/xnu.c (grub_xnu_create_key): Likewise.
	(grub_xnu_create_value): Likewise.
	* normal/main.c (grub_normal_add_menu_entry): Likewise.
	(read_config_file): Likewise.
	* normal/menu_entry.c (make_screen): Likewise.
	* partmap/sun.c (sun_partition_map_iterate): Likewise.
	* script/sh/lexer.c (grub_script_lexer_init): Likewise.
	* script/sh/script.c (grub_script_parse): Likewise.
	* video/bitmap.c (grub_video_bitmap_create): Likewise.
	* video/readers/jpeg.c (grub_video_reader_jpeg): Likewise.
	* video/readers/png.c (grub_png_output_byte): Likewise.
	(grub_video_reader_png): Likewise.

2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>

	Enable all targets that can be built by default

	* configure.ac: enable efiemu runtime, grub-emu, grub-emu-usb,
	grub-mkfont and grub-fstest if they can be built

2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix hang and segmentation fault in grub-emu-usb

	* disk/scsi.c (grub_scsi_open): return err and not grub_errno
	* util/usb.c (grub_libusb_devices): likewise
	(grub_libusb_init): rename to ...
	(GRUB_MOD_INIT (libusb)):...this
	(grub_libusb_fini): rename to ..
	(GRUB_MOD_FINI (libusb)):...this
	* disk/usbms.c (grub_usbms_transfer): fix retry logic
	* include/grub/disk.h (grub_raid_init): removed, it's useless
	(grub_raid_fini): likewise
	(grub_lvm_init): likewise
	(grub_lvm_fini): likewise
	* util/grub-emu.c (main): don't call grub_libusb_init, it's done
	by grub_init_all

2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix libusb

	* Makefile.in (LIBUSB): new macro
	* genmk.rb (Utility/print_tail): new method
	(Utility/rule): use intermediary variable #{prefix}_OBJECTS
	(top level): call util.print_tail at the end.

2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>

	Make FreeBSD accept zpool.cache

	* loader/i386/bsd.c (grub_freebsd_add_meta_module): spoof filename if
	type is /boot/zfs/zpool.cache

2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix 64-bit efiemu

	* include/grub/efiemu/efiemu.h (grub_efiemu_configuration_table64_t):
	correct wrong typedef
	* efiemu/prepare.c (SUFFIX (grub_efiemu_prepare)): minor style fixes

2009-07-15  Pavel Roskin  <proski@gnu.org>

	* include/grub/disk.h (struct grub_disk_dev): Use enum for id.
	* kern/disk.c (struct grub_disk_cache): Likewise.

	* commands/probe.c (options): Typo fix.

	* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_BPB_END):
	Increase to 0x5a to accommodate FAT32.  Adjust other offsets
	accordingly.
	Original patch by Yves Blusseau <yves.grub-devel@zetam.org>

	* boot/i386/pc/boot.S (general_error_string): Add DOS newline at
	the end of "Error" to make the message more readable.

	* boot/i386/pc/boot.S (kernel_segment): Remove.
	(copy_buffer): Use GRUB_BOOT_MACHINE_KERNEL_ADDR in segment 0
	for destination.

	* boot/i386/pc/boot.S (boot_version): Remove.
	* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
	Remove.

	* include/grub/i386/pc/boot.h: Sort all offsets.
	(GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Remove, it's unused.
	(GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Likewise.
	* boot/i386/pc/boot.S: Assert location of every offset listed in
	include/grub/i386/pc/boot.h.

2009-07-13  Pavel Roskin  <proski@gnu.org>

	* include/grub/i386/coreboot/machine.h: Rename
	GRUB_MACHINE_LINUXBIOS to GRUB_MACHINE_COREBOOT.
	* loader/multiboot_loader.c (grub_cmd_multiboot_loader): Allow
	multiboot 1 for GRUB_MACHINE_COREBOOT and GRUB_MACHINE_QEMU.

	* kern/dl.c: Force native word size to suppress warnings when
	compiling grub-emu.

	* kern/device.c (grub_device_iterate): Change struct part_ent to
	hold the name, not a pointer to it.  Use one grub_malloc() per
	partition, not two.  Free partition_name if grub_malloc() fails.
	Set ents to NULL only before grub_partition_iterate() is called.

2009-07-11  Bean  <bean123ch@gmail.com>

	* kern/ieee1275/openfw.c (grub_children_iterate): Fix size of
	childname.

2009-07-10  Bean  <bean123ch@gmail.com>
2009-07-10  Robert Millan  <rmh.grub@aybabtu.com>

	* kern/ieee1275/openfw.c (grub_children_iterate)
	(grub_devalias_iterate): Fix size evaluation for property or path
	strings, which was broken since r2132.

2009-07-07  Pavel Roskin  <proski@gnu.org>

	* commands/search.c (search_file): Merge into ...
	(search_fs): ... this.  Accept search type as argument.
	(grub_cmd_search): Pass search type to search_fs().

	* include/grub/util/console.h: New file.
	* util/console.c: Use it instead of grub/machine/console.h.
	* util/grub-emu.c: Likewise.

	* lib/arg.c (find_long_option): Remove.
	(find_long): Add `len' argument, make `s' const char *.
	(grub_arg_parse): Parse long options in place, not in a
	temporary buffer.

2009-07-06  Pavel Roskin  <proski@gnu.org>

	* commands/search.c (search_fs): Fix potential NULL pointer
	dereference.

	* commands/search.c (search_fs): Replace QUID macro with quid_fn
	function pointer.

2009-07-06  Daniel Mierswa  <impulze@impulze.org>

	* commands/search.c (search_fs): Use grub_strcasecmp() for UUID
	comparison.

2009-07-05  Pavel Roskin  <proski@gnu.org>

	* include/grub/i386/linux.h (struct linux_kernel_params):
	Restore padding3, it's still needed.

	* util/grub.d/10_freebsd.in: Fix spelling of `device.hints' on
	FreeBSD.
	* util/osdetect.lua: Likewise.

2009-07-05  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (lua_mode_SOURCES): Add script/lua/lstrlib.c.

	* script/lua/grub_lib.c (grub_lua_run): Check input parameter.
	(grub_lua_getenv): Likewise.
	(grub_lua_setenv): Likewise.
	(save_errno): New function.
	(push_result): Likewise.
	(grub_lua_enum_device): Likewise.
	(grub_lua_enum_file): Likewise.
	(grub_lua_file_open): Likewise.
	(grub_lua_file_close): Likewise.
	(grub_lua_file_seek): Likewise.
	(grub_lua_file_read): Likewise.
	(grub_lua_file_getline): Likewise.
	(grub_lua_file_getsize): Likewise.
	(grub_lua_file_getpos): Likewise.
	(grub_lua_file_eof): Likewise.
	(grub_lua_file_exist): Likewise.
	(grub_lua_add_menu): Likewise.

	* script/lua/grub_lua.h (isupper): New inline function.
	(islower): Likewise.
	(ispunct): Likewise.
	(isxdigit): Likewise.
	(strcspn): Change to normal function.
	(strpbkr): New function declaration.
	(memchr): Likewise.

	* script/lua/grub_main.c (scan_str): New function.
	(strcspn): Likewise.
	(strpbrk): Likewise.
	(memchr): Likewise.

	* script/lua/linit.c (lualibs): Enable the string library.

	* util/osdetect.lua: New file.

2009-07-04  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/linux.h (struct linux_kernel_params): Add
	`capabilities' member.

2009-07-02  Pavel Roskin  <proski@gnu.org>

	* genparttoollist.sh: Add missing newline at the end.

2009-07-01  Pavel Roskin  <proski@gnu.org>

	* kern/x86_64/efi/callwrap.S: Add missing newline at the end.

	* util/hostdisk.c (open_device): Remove `const' from
	`sysctl_size', as sysctlbyname() can change it (in this case it
	doesn't actually happen).

	* include/grub/types.h: Define GRUB_LONG_MAX and GRUB_LONG_MIN
	using signed long int constants.

	* util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Make `p'
	constant to avoid a warning on FreeBSD.

	* util/hostdisk.c (device_is_wholedisk): Compile only on systems
	where it's needed.

	* Makefile.in: Install include/grub/machine symlink.

	* Makefile.in: When installing symlinks, use "cp -fR", which
	works on FreeBSD and MacOSX.
	From Yves Blusseau <cl7m42e02@sneakemail.com>

	* kern/dl.c (grub_dl_resolve_symbol): Make static.
	* include/grub/dl.h: Remove grub_dl_resolve_symbol().

	* util/misc.c: Move grub_reboot() and grub_halt() ...
	* util/grub-emu.c: ... here.  Make main_env static.
	* include/grub/util/misc.h: Remove main_env.

	* kern/mm.c: Use correct format to print size_t.

	* include/grub/elf.h: Define Elf_Sword and Elf_Xword.
	* kern/i386/dl.c: Use ELF symbols without "32" or "64".
	* kern/powerpc/dl.c: Likewise.
	* kern/sparc64/dl.c: Likewise.
	* kern/x86_64/dl.c: Likewise.

2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>

	Fix grub-emu build on sparc64-ieee1275.

	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Synchronize with ...
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): ... this.

2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>

	* util/misc.c: Include `<setjmp.h>' and `<grub/machine/machine.h>'.
	(grub_reboot, grub_halt): New functions.

	* util/i386/pc/misc.c: Delete.  Update all users.
	* util/sparc64/ieee1275/misc.c: Likewise.
	* util/powerpc/ieee1275/misc.c: Likewise.

2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>

	* conf/i386.rmk (setjmp_mod_SOURCES)
	(setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Move to ...
	* conf/common.rmk (setjmp_mod_SOURCES)
	(setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): ... here, and modify
	to use $(target_cpu).
	* conf/x86_64-efi.rmk (setjmp_mod_SOURCES)
	(setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Remove.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.

	* conf/i386-pc.rmk (kernel_img_SOURCES): Use
	$(target_cpu) for kern/$(target_cpu)/dl.c.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Use
	$(target_cpu) for kern/$(target_cpu)/dl.c and for
	kern/$(target_cpu)/cache.S.
	* conf/sparc64-ieee1275.rmk: Likewise.

2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size'
	type to `grub_uint8_t', and adjust `padding9' accordingly.

2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): New macro.

	* loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
	assembly in final jump, using register constraints.

	(grub_linux_boot): For text mode, initialize `have_vga' using
	GRUB_VIDEO_TYPE_TEXT rather than 0 (this changes its value to 1).

	Initialize `video_cursor_x' and `video_cursor_y' as late as possible,
	right before the final jump.

	Set `video_mode' to 0x3.

	Document initialization of `video_page', `video_mode' and
	`video_ega_bx'.

2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro.
	* loader/i386/linux.c (grub_cmd_linux): Recognize "quiet" option,
	and set GRUB_LINUX_FLAG_QUIET appropriately.

2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>

	Fix build on Debian / sparc.

	* configure.ac: Recognize `sparc' target_cpu (as sparc64).

2009-06-28  Pavel Roskin  <proski@gnu.org>

	* kern/i386/qemu/mmap.c (grub_machine_mmap_iterate): Use cast to
	fix a warning.

	* util/grub.d/10_linux.in: Match SUSE style initrd names.

2009-06-27  Robert Millan  <rmh.grub@aybabtu.com>

	* loader/i386/linux.c (grub_linux_boot): Fix uninitialized use of
	`err'.

2009-06-27  Robert Millan  <rmh.grub@aybabtu.com>

	Revert r2338.

	* loader/i386/linux.c (grub_cmd_linux): Don't call grub_error when
	file can't be opened.  grub_file_open() is already supposed to set
	grub_errno / grub_errmsg appropriately.
	* loader/i386/pc/linux.c (grub_cmd_linux): Likewise.

2009-06-27  Pavel Roskin  <proski@gnu.org>
2009-06-27  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/dl.h: Include grub/elf.h.
	(struct grub_dl): Add symtab field.
	* kern/dl.c [GRUB_MACHINE_QEMU]: Define
	GRUB_MODULES_MACHINE_READONLY.
	(grub_dl_resolve_symbols): Populate mod->symtab, making a copy
	of the header for read-only modules.
	(grub_dl_unload): Free mod->symtab for read-only modules.
	* kern/i386/dl.c: Use mod->symtab.
	* kern/powerpc/dl.c: Likewise.
	* kern/sparc64/dl.c: Likewise.
	* kern/x86_64/dl.c: Likewise.

	* conf/i386-qemu.rmk: New file.
	* kern/i386/qemu/startup.S: Likewise.
	* kern/i386/qemu/mmap.c: Likewise.
	* boot/i386/qemu/boot.S: Likewise.
	* include/grub/i386/qemu/time.h: Likewise.
	* include/grub/i386/qemu/serial.h: Likewise.
	* include/grub/i386/qemu/kernel.h: Likewise.
	* include/grub/i386/qemu/console.h: Likewise.
	* include/grub/i386/qemu/boot.h: Likewise.
	* include/grub/i386/qemu/init.h: Likewise.
	* include/grub/i386/qemu/machine.h: Likewise.
	* include/grub/i386/qemu/loader.h: Likewise.
	* include/grub/i386/qemu/memory.h: Likewise.

	* conf/i386-coreboot.rmk (GRUB_BOOT_MACHINE_LINK_ADDR)
	(GRUB_KERNEL_MACHINE_LINK_ADDR): New variables.
	[qemu] (pkglib_IMAGES): Add `boot.img'.
	[qemu] (boot_img_SOURCES, boot_img_ASFLAGS, boot_img_LDFLAGS)
	[qemu] (boot_img_FORMAT): New variables.
	[qemu] (bin_UTILITIES): Add `grub-mkimage'.
	[qemu] (grub_mkimage_SOURCES, grub_mkimage_CFLAGS): New variables.
	[qemu] (kernel_img_SOURCES, kernel_img_HEADERS, kernel_img_CFLAGS)
	[qemu] (kernel_img_ASFLAGS, kernel_img_LDFLAGS)
	[qemu] (kernel_img_FORMAT): New variables.

	* configure.ac: Recognise `i386-qemu'.

	* util/i386/pc/grub-mkimage.c (compress_kernel): Add dummy variant
	(for no compression).
	[GRUB_MACHINE_QEMU] (generate_image): Misc adjustments to produce
	a valid i386 ROM image.  Make `GRUB_KERNEL_MACHINE_COMPRESSED_SIZE',
	`GRUB_KERNEL_MACHINE_INSTALL_DOS_PART' and
	`GRUB_KERNEL_MACHINE_INSTALL_BSD_PART' optional features (with
	ifdefs).

2009-06-27  Pavel Roskin  <proski@gnu.org>

	* efiemu/prepare.c: Eliminate TYPE macro, it makes code hard to
	read.
	* efiemu/prepare32.c: Likewise.
	* efiemu/prepare64.c: Likewise.

2009-06-26  Pavel Roskin  <proski@gnu.org>

	* include/grub/types.h: Define GRUB_TARGET_WORDSIZE.
	* include/grub/elf.h: Define symbols without "32" or "64" based
	on GRUB_TARGET_WORDSIZE.
	* include/grub/multiboot2.h: Use GRUB_TARGET_WORDSIZE.
	* efiemu/loadcore32.c: Redefine GRUB_TARGET_WORDSIZE, remove own
	ELF definitions.
	* efiemu/loadcore64.c: Likewise.
	* loader/i386/bsd32.c: Likewise.
	* loader/i386/bsd64.c: Likewise.
	* kern/dl.c: Remove own ELF definitions.
	* util/i386/efi/grub-mkimage.c: Likewise.

2009-06-23  Robert Millan  <rmh.grub@aybabtu.com>

	* kern/i386/pc/startup.S (real_to_prot): Access `gdtdesc' using
	segment 0x0 unconditionally, because the reference generated by
	GAS is an absolute address.

2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/kernel.h: Include `<grub/machine/machine.h>'.
	[! GRUB_MACHINE_IEEE1275]: Set `GRUB_MOD_ALIGN' to 0x1.

2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>

	* commands/search.c (grub_cmd_search): Macroify hardcoded args[]
	indexes.  Check for -f explicitly.
	(search_file): Improve error message.
	(GRUB_MOD_INIT(search)): Add missing `-n' to help output.

2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>

	* conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): Rename to ...
	(GRUB_KERNEL_MACHINE_LINK_ADDR): ... this.  Update all users.

2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/misc.S'.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-coreboot.rmk: Likewise.

	* kern/i386/pc/startup.S (grub_stop): Remove function.
	* kern/i386/ieee1275/startup.S: Likewise.
	* kern/i386/coreboot/startup.S: Likewise.
	* kern/i386/misc.S (grub_stop): New function.

2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>

	* kern/i386/pc/startup.S (real_to_prot): Move from here ...
	* kern/i386/realmode.S (real_to_prot): ... to here.

2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>

	* conf/i386-ieee1275.rmk (pkglib_PROGRAMS): Replace `kernel.elf'
	with `kernel.img'.
	(kernel_elf_SOURCES): Rename to ...
	(kernel_img_SOURCES): ... this.
	(kernel_elf_HEADERS): Rename to ...
	(kernel_img_HEADERS): ... this.  Update all users.
	(kernel_elf_ASFLAGS): Rename to ...
	(kernel_img_ASFLAGS): ... this.
	(kernel_elf_CFLAGS): Rename to ...
	(kernel_img_CFLAGS): ... this.
	(kernel_elf_LDFLAGS): Rename to ...
	(kernel_img_LDFLAGS): ... this.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.

	* util/elf/grub-mkimage.c (add_segments): Replace "kernel.elf"
	with "kernel.img".

2009-06-21  Pavel Roskin  <proski@gnu.org>

	* loader/powerpc/ieee1275/linux.c (offset_phdr): Fix prototypes
	to match nested functions.
	* loader/sparc64/ieee1275/linux.c: Likewise.

	* conf/i386-ieee1275.rmk: Define kernel_elf_ASFLAGS.

2009-06-21  Robert Millan  <rmh.grub@aybabtu.com>

	* configure.ac: Enable `END_SYMBOL' / `BSS_START_SYMBOL' test on
	all i386 platforms.

2009-06-21  Robert Millan  <rmh.grub@aybabtu.com>

	Fix asm file handling on ELF, and remove workarounds.

	* genmk.rb (class Programs): Detect assembly files, and set ASFLAGS
	and -DASM_FILE=1 appropriately (copied from `class Images' stanza).
	* kern/i386/ieee1275/startup.S (ASM_FILE): Remove macro.
	* kern/i386/coreboot/startup.S (ASM_FILE): Likewise.

2009-06-21  Vladimir Serbinenko  <phcoder@gmail.com>

	Load BSD ELF modules

	* conf/i386-pc.rmk (bsd_mod_SOURCES): Add loader/i386/bsd32.c
	and loader/i386/bsd64.c
	* include/grub/i386/bsd.h (FREEBSD_MODTYPE_MODULE): Remove
	(FREEBSD_MODTYPE_ELF_MODULE): New definition
	(FREEBSD_MODTYPE_ELF_MODULE_OBJ): Likewise
	(grub_freebsd_load_elfmodule32): New declaration
	(grub_freebsd_load_elfmoduleobj64): Likewise
	(grub_freebsd_load_elf_meta32): Likewise
	(grub_freebsd_load_elf_meta64): Likewise
	(grub_freebsd_add_meta): Likewise
	(grub_freebsd_add_meta_module): Likewise
	* loader/i386/bsd.c (grub_freebsd_add_meta): Make global
	(grub_freebsd_add_meta_module): Likewise and move module-specific
	parts to grub_cmd_freebsd and grub_cmd_freebsd_module
	(grub_cmd_freebsd): Add elf-kernel specific parts
	based on grub_freebsd_add_meta_module
	(grub_cmd_freebsd_module): Add type parsing moved from
	grub_freebsd_add_meta_module
	(grub_cmd_freebsd_module_elf): New function
	(cmd_freebsd_module_elf): New variable
	(GRUB_MOD_INIT): Register freebsd_module_elf
	* loader/i386/bsd32.c: New file
	* loader/i386/bsd64.c: Likewise
	* loader/i386/bsdXX.c: Likewise
	* kern/elf.c (grub_elf32_load): Let hook decide which pheaders to load
	(grub_elf64_load): Likewise
	* include/grub/elfload.h (grub_elf32_load_hook_t): New parameter do_load
	All users updated
	(grub_elf64_load_hook_t): Likewise

2009-06-21  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub-mkconfig.in (GRUB_DISABLE_LINUX_RECOVERY): Export
	variable.
	* util/grub.d/10_linux.in: If GRUB_DISABLE_LINUX_RECOVERY is true,
	don't write a menu entry for recovery mode.

2009-06-20  Robert Millan  <rmh.grub@aybabtu.com>

	* util/i386/pc/grub-mkimage.c (main): Oops, free `output' only
	after it's no longer needed.

2009-06-20  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/loader.h (grub_linux_prot_size)
	(grub_linux_tmp_addr, grub_linux_real_addr)
	(grub_linux_is_bzimage, grub_linux16_boot): Declare only on
	GRUB_MACHINE_PCBIOS.
	* util/i386/pc/grub-mkimage.c (compress_kernel): Move
	common grub_util_info() call to ...
	(generate_image): ... here.
	Fix use of uninitialized memory, comparison of signed with
	unsigned integers and memory leak.
	Remove bogus module address message.

2009-06-20  Vladimir Serbinenko  <phcoder@gmail.com>

	* disk/mdraid_linux.c (GRUB_MOD_FINI): use grub_raid_unregister and not
	grub_raid_register
	* disk/dmraid_nvidia.c (GRUB_MOD_FINI): likewise

2009-06-19  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Remove stray AC_MSG_CHECKING.

2009-06-19  Vladimir Serbinenko  <phcoder@gmail.com>

	* disk/scsi.c (grub_scsi_open): use continue instead of big if

2009-06-18  Pavel Roskin  <proski@gnu.org>

	* conf/common.rmk: Add fs_file.mod.
	* disk/fs_file.c: New file.
	* include/grub/disk.h (enum grub_disk_dev_id): Add
	GRUB_DISK_DEVICE_FILE_ID.

2009-06-18  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix build with Apple's toolchain. Part 2

	* aclocal.m4 (grub_PROG_TARGET_CC): add missing prototype for main and
	a fake start

2009-06-18  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix build with Apple's toolchain. Part 1

	* commands/i386/pc/drivemap_int13h.S: use assembly-time constants
	for long calls
	* configure.ac: remove a leftover AC_MSG_RESULT
	(CFLAGS): don't add -Wl,--defsym,___main=0x8100 when building with
	Apple's toolchain

2009-06-18  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix warnings

	* fs/ntfscomp.c (decomp_get16): initialize c1 and c2
	(decomp_block): initialize ch
	use grub_memcpy instead of memcpy

2009-06-17  Pavel Roskin  <proski@gnu.org>

	* include/grub/i386/coreboot/console.h: Don't use the i386-pc
	version, use declarations needed to use vga_text as the startup
	console.

	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): Remove
	term/i386/pc/at_keyboard.c, it doesn't need to be compiled into
	the kernel.
	* kern/i386/coreboot/init.c: Don't call grub_at_keyboard_init()
	and grub_at_keyboard_fini(), it's done on module load and
	unload.

2009-06-17  Felix Zielcke  <fzielcke@z-51.de>

	* loader/i386/linux.c (grub_cmd_linux): Set grub_error if the
	file can't be found.
	* loader/i386/pc/linux.c (grub_cmd_linux): Likewise.

2009-06-17  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix newline handling

	* include/grub/script_sh.h (grub_lexer_param): new field was_newline
	* script/sh/lexer.c (grub_script_lexer_init): initialize was_newline
	(grub_script_yylex): don't segfault on unterminated script
	newline terminates command and variable

2009-06-17  Vladimir Serbinenko  <phcoder@gmail.com>

	avoid double grub_adjust_range call. Bug reported by David Simner

	* kern/disk.c (grub_disk_write): change to raw disk access before
	calling disk_read

2009-06-17  Colin Watson  <cjwatson@ubuntu.com>

	* util/elf/grub-mkimage.c (usage): Prefix each option line with two
	spaces, for the benefit of help2man.
	* util/i386/efi/grub-mkimage.c (usage): Likewise.

2009-06-16  Pavel Roskin  <proski@gnu.org>

	* kern/i386/halt.c: Include grub/machine/init.h.
	* kern/i386/reboot.c: Include grub/cpu/reboot.h.

2009-06-16  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub.d/30_os-prober.in: Use ${root} in the generated
	drivemap menuentry.

2009-06-16  James Jarvis  <James.Jarvis@ed.ac.uk>

	* commands/help.c GRUB_MOD_INIT(echo): Fix the help output of
	`echo' command.

2009-06-16  Pavel Roskin  <proski@gnu.org>

	* boot/i386/pc/boot.S: Remove root_drive.  Assert offset of
	boot_drive_check by using GRUB_BOOT_MACHINE_DRIVE_CHECK.  Don't
	save %dx, we only need %dl and we never change it.
	* boot/i386/pc/cdboot.S: Don't set the root drive.
	* boot/i386/pc/pxeboot.S: Likewise.
	* include/grub/i386/pc/boot.h: Remove
	GRUB_BOOT_MACHINE_ROOT_DRIVE, adjust
	GRUB_BOOT_MACHINE_DRIVE_CHECK.
	* include/grub/i386/pc/kernel.h: Remove grub_root_drive.
	* kern/i386/pc/init.c (make_install_device): Remove references
	to grub_root_drive.
	* kern/i386/pc/startup.S: Likewise.
	* util/i386/pc/grub-setup.c (setup): Don't set root_drive.

2009-06-16  Vladimir Serbinenko  <phcoder@gmail.com>

	xnu_uuid command

	* commands/xnu_uuid.c: new file
	* conf/common.rmk (pkglib_MODULES): add xnu_uuid.mod
	(xnu_uuid_mod_SOURCES): new variable
	(xnu_uuid_mod_CFLAGS): likewise
	(xnu_uuid_mod_LDFLAGS): likewise
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
	* conf/i386-ieee1275.rmk: likewise
	* conf/i386-pc.rmk: likewise
	* conf/powerpc-ieee1275.rmk: likewise
	* conf/sparc64-ieee1275.rmk: likewise
	* util/grub.d/30_os-prober.in: use UUID for Mac OS X/Darwin

2009-06-16  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Avoid '==' in test command, it's not portable.

2009-06-16  Vladimir Serbinenko  <phcoder@gmail.com>

	Probe command

	* commands/probe.c: new file
	* conf/common.rmk (pkglib_MODULES): add probe.mod
	(probe_mod_SOURCES): new variable
	(probe_mod_CFLAGS): likewise
	(probe_mod_LDFLAGS): likewise
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
	* conf/i386-ieee1275.rmk: likewise
	* conf/i386-pc.rmk: likewise
	* conf/powerpc-ieee1275.rmk: likewise
	* conf/sparc64-ieee1275.rmk: likewise

2009-06-15  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix handling of string like \"hello\" and "a
	b"

	* script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC
	(grub_script_yylex): fix parsing of quoting, escaping and newline

2009-06-13  Vladimir Serbinenko  <phcoder@gmail.com>

	* loader/i386/multiboot.c (grub_multiboot_get_bootdev): fix partition
	handling

2009-06-13  Jun Inoue  <jun.lambda@gmail.com>

	* util/grub-mkconfig.in: Fix parsing of --output option.

2009-06-12  Pavel Roskin  <proski@gnu.org>

	* Makefile.in (pkgdata_SRCDIR): Remove.  genmodsrc.sh and
	genmk.rb don't need to be generated or installed.

2009-06-12  Vladimir Serbinenko  <phcoder@gmail.com>

	* commands/i386/pc/drivemap_int13h.S: add more comments

2009-06-11  Pavel Roskin  <proski@gnu.org>

	* Makefile.in (uninstall): Uninstall manuals.

	* Makefile.in: Rename lib_DATA to lib_SCRIPTS, move it from
	PKGLIB to SCRIPTS.  This fixes installation of grub-mkconfig_lib
	and update-grub_lib in two places.
	* conf/common.rmk: Rename lib_DATA to lib_SCRIPTS.

	* disk/usbms.c (grub_usbms_transfer): Initialize `err' to fix
	a compiler warning.

	* loader/i386/bsd.c (grub_freebsd_boot): Rename `entry' to
	`entry_lo' to fix variable shadowing.

2009-06-11  Christian Franke  <franke@computer.org>

	* kern/misc.c (__enable_execute_stack): Add missing return type
	to prevent gcc warning.

2009-06-11  Felix Zielcke  <fzielcke@z-51.de>

	* conf/i386-ieee1275.rmk (COMMON_LDFLAGS): Remove `-static -lgcc'.

2009-06-11  Pavel Roskin  <proski@gnu.org>

	* Makefile.in: Don't rely on any scripts being executable.
	Always use $(SHELL) to run shell scripts.

	* configure.ac: Always define ___main if using -nostdlib.  This
	fixes tests on Cygwin.

2009-06-11  Giuseppe Caizzone  <acaizzo@gmail.com>

	UDF fix

	* fs/udf.c (grub_udf_read_block): handle the fact that ad->length
	is in bytes and not in blocks

2009-06-11  Pavel Roskin  <proski@gnu.org>

	* kern/i386/halt.c (grub_halt): Make `i' unsigned to fix a
	warning.

2009-06-11  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub.d/30_os-prober.in: Fix a comment. Source
	${libdir}/grub/grub-mkconfig_lib.  Use prepare_grub_to_access_device
	to set the root device.  Place drivemap command in the generated
	chain entry.

2009-06-11  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Remove host_m32.  Issues with 64-bit utilities
	have long been resolved.

2009-06-11  Colin Watson  <cjwatson@ubuntu.com>

	* util/grub.d/10_linux.in: Capitalise "Linux".

	* util/grub-pe2elf.c (usage): Fix references to grub-editenv.

2009-06-11  Pavel Roskin  <proski@gnu.org>

	* kern/efi/efi.c (grub_exit): Add infinite loop at the end to
	fix a gcc warning and ensure that the function won't ever exit.

	* kern/i386/ieee1275/init.c: Add missing prototype for
	grub_stop_floppy().

	* loader/ieee1275/multiboot2.c [__i386__]: Include
	grub/cpu/multiboot.h.

	* term/i386/pc/serial.c (serial_translate_key_sequence): Avoid
	casts to short - they are not portable and cause warnings.  Fix
	use of uninitialized values in input_buf.  Use ARRAY_SIZE.

2009-06-11  Vladimir Serbinenko  <phcoder@gmail.com>

	Drivemap fixes

	* commands/i386/pc/drivemap.c (grub_get_root_biosnumber_drivemap):
	new function
	(grub_get_root_biosnumber_saved): new variable
	(GRUB_MOD_INIT): register grub_get_root_biosnumber_drivemap
	(GRUB_MOD_FINI): unregister grub_get_root_biosnumber_drivemap
	* commands/i386/pc/drivemap_int13h.S (grub_drivemap_handler): restore
	%dx after the call if necessary
	* conf/common.rmk (pkglib_MODULES): remove boot.mod
	(boot_mod_SOURCES): remove
	(boot_mod_CFLAGS): remove
	(boot_mod_LDFLAGS): remove
	* conf/i386-coreboot.rmk (pkglib_MODULES): add boot.mod
	(boot_mod_SOURCES): new variable
	(boot_mod_CFLAGS): likewise
	(boot_mod_LDFLAGS): likewise
	* conf/i386-efi.rmk: likewise
	* conf/i386-ieee1275.rmk: likewise
	* conf/i386-pc.rmk: likewise
	* conf/powerpc-ieee1275.rmk: likewise
	* conf/sparc64-ieee1275.rmk: likewise
	* conf/x86_64-efi.rmk: likewise
	* include/grub/i386/pc/biosnum.h: new file
	* lib/i386/pc/biosnum.c: likewise
	* loader/i386/bsd.c (grub_bsd_get_device): use grub_get_root_biosnumber
	* loader/i386/multiboot.c (grub_multiboot_get_bootdev): likewise
	* loader/i386/pc/chainloader.c (grub_chainloader_cmd): likewise

2009-06-10  Pavel Roskin  <proski@gnu.org>

	* io/gzio.c (test_header): Don't reuse one buffer for all data.
	Use separate variables.  Read only the file size at the end, but
	not the checksum that we don't use.

	* kern/file.c (grub_file_read): Use void pointer for the buffer.
	Adjust all callers.

	* kern/ieee1275/openfw.c: Remove libc includes.
	* kern/ieee1275/cmain.c: Likewise.
	* include/grub/ieee1275/ieee1275.h: Likewise.

	* kern/i386/coreboot/init.c: Include grub/cpu/tsc.h to fix
	compiler warnings.

2009-06-10  Felix Zielcke  <fzielcke@z-51.de>

	* Makefile.in: Remove all trailing whitespace.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.
	* docs/grub.texi: Likewise.
	* docs/texinfo.tex: Likewise.
	* disk/fs_uuid.c: Likewise.
	* disk/lvm.c: Likewise.
	* disk/scsi.c: Likewise.
	* disk/ata.c: Likewise.
	* disk/ieee1275/ofdisk.c: Likewise.
	* disk/i386/pc/biosdisk.c: Likewise.
	* disk/host.c: Likewise.
	* disk/raid.c: Likewise.
	* disk/efi/efidisk.c: Likewise.
	* disk/usbms.c: Likewise.
	* disk/memdisk.c: Likewise.
	* disk/loopback.c: Likewise.
	* kern/powerpc/dl.c: Likewise.
	* kern/device.c: Likewise.
	* kern/dl.c: Likewise.
	* kern/sparc64/dl.c: Likewise.
	* kern/ieee1275/ieee1275.c: Likewise.
	* kern/term.c: Likewise.
	* kern/fs.c: Likewise.
	* kern/i386/dl.c: Likewise.
	* kern/i386/pc/startup.S: Likewise.
	* kern/i386/pc/init.c: Likewise.
	* kern/i386/pc/mmap.c: Likewise.
	* kern/i386/pc/lzo1x.S: Likewise.
	* kern/i386/ieee1275/init.c: Likewise.
	* kern/i386/realmode.S: Likewise.
	* kern/i386/tsc.c: Likewise.
	* kern/partition.c: Likewise.
	* kern/corecmd.c: Likewise.
	* kern/file.c: Likewise.
	* kern/efi/efi.c: Likewise.
	* kern/efi/init.c: Likewise.
	* kern/efi/mm.c: Likewise.
	* kern/main.c: Likewise.
	* kern/err.c: Likewise.
	* kern/env.c: Likewise.
	* kern/disk.c: Likewise.
	* kern/generic/millisleep.c: Likewise.
	* kern/generic/rtc_get_time_ms.c: Likewise.
	* kern/misc.c: Likewise.
	* kern/parser.c: Likewise.
	* genmk.rb: Likewise.
	* configure.ac: Likewise.
	* boot/i386/pc/diskboot.S: Likewise.
	* boot/i386/pc/pxeboot.S: Likewise.
	* boot/i386/pc/boot.S: Likewise.
	* boot/i386/pc/lnxboot.S: Likewise.
	* boot/i386/pc/cdboot.S: Likewise.
	* parttool/pcpart.c: Likewise.
	* video/readers/tga.c: Likewise.
	* video/video.c: Likewise.
	* video/bitmap.c: Likewise.
	* lib/envblk.c: Likewise.
	* lib/i386/setjmp.S: Likewise.
	* fs/xfs.c: Likewise.
	* fs/afs.c: Likewise.
	* fs/fat.c: Likewise.
	* fs/ntfs.c: Likewise.
	* fs/udf.c: Likewise.
	* fs/affs.c: Likewise.
	* fs/iso9660.c: Likewise.
	* fs/hfs.c: Likewise.
	* fs/fshelp.c: Likewise.
	* fs/ext2.c: Likewise.
	* fs/jfs.c: Likewise.
	* fs/reiserfs.c: Likewise.
	* fs/hfsplus.c: Likewise.
	* fs/minix.c: Likewise.
	* fs/cpio.c: Likewise.
	* fs/sfs.c: Likewise.
	* fs/ufs.c: Likewise.
	* efiemu/prepare.c: Likewise.
	* efiemu/loadcore_common.c: Likewise.
	* efiemu/runtime/efiemu.sh: Likewise.
	* efiemu/runtime/efiemu.S: Likewise.
	* efiemu/runtime/efiemu.c: Likewise.
	* efiemu/pnvram.c: Likewise.
	* efiemu/main.c: Likewise.
	* efiemu/i386/pc/cfgtables.c: Likewise.
	* efiemu/i386/loadcore64.c: Likewise.
	* efiemu/i386/loadcore32.c: Likewise.
	* efiemu/loadcore.c: Likewise.
	* efiemu/symbols.c: Likewise.
	* efiemu/mm.c: Likewise.
	* include/grub/autoefi.h: Likewise.
	* include/grub/datetime.h: Likewise.
	* include/grub/term.h: Likewise.
	* include/grub/hfs.h: Likewise.
	* include/grub/lvm.h: Likewise.
	* include/grub/i386/tsc.h: Likewise.
	* include/grub/i386/linux.h: Likewise.
	* include/grub/i386/xnu.h: Likewise.
	* include/grub/i386/efiemu.h: Likewise.
	* include/grub/i386/pc/biosdisk.h: Likewise.
	* include/grub/i386/pc/memory.h: Likewise.
	* include/grub/i386/pc/vbe.h: Likewise.
	* include/grub/parttool.h: Likewise.
	* include/grub/video.h: Likewise.
	* include/grub/memory.h: Likewise.
	* include/grub/fs.h: Likewise.
	* include/grub/partition.h: Likewise.
	* include/grub/xnu.h: Likewise.
	* include/grub/efi/api.h: Likewise.
	* include/grub/efi/pe32.h: Likewise.
	* include/grub/efi/memory.h: Likewise.
	* include/grub/multiboot.h: Likewise.
	* include/grub/usbdesc.h: Likewise.
	* include/grub/multiboot2.h: Likewise.
	* include/grub/acpi.h: Likewise.
	* include/grub/efiemu/efiemu.h: Likewise.
	* include/grub/disk.h: Likewise.
	* include/grub/ieee1275/ieee1275.h: Likewise.
	* include/grub/net.h: Likewise.
	* include/grub/machoload.h: Likewise.
	* include/grub/macho.h: Likewise.
	* include/multiboot.h: Likewise.
	* genmoddep.awk: Likewise.
	* normal/main.c: Likewise.
	* normal/menu_entry.c: Likewise.
	* normal/menu_viewer.c: Likewise.
	* normal/completion.c: Likewise.
	* normal/cmdline.c: Likewise.
	* normal/misc.c: Likewise.
	* normal/datetime.c: Likewise.
	* bus/usb/usbtrans.c: Likewise.
	* bus/usb/ohci.c: Likewise.
	* bus/usb/uhci.c: Likewise.
	* bus/usb/usb.c: Likewise.
	* mmap/efi/mmap.c: Likewise.
	* mmap/i386/pc/mmap_helper.S: Likewise.
	* mmap/i386/pc/mmap.c: Likewise.
	* mmap/i386/mmap.c: Likewise.
	* mmap/i386/uppermem.c: Likewise.
	* mmap/mmap.c: Likewise.
	* commands/acpi.c: Likewise.
	* commands/echo.c: Likewise.
	* commands/blocklist.c: Likewise.
	* commands/loadenv.c: Likewise.
	* commands/usbtest.c: Likewise.
	* commands/boot.c: Likewise.
	* commands/parttool.c: Likewise.
	* commands/search.c: Likewise.
	* commands/cat.c: Likewise.
	* commands/i386/pc/play.c: Likewise.
	* commands/i386/pc/drivemap.c: Likewise.
	* commands/i386/pc/vbeinfo.c: Likewise.
	* commands/i386/pc/acpi.c: Likewise.
	* commands/i386/pc/vbetest.c: Likewise.
	* commands/ls.c: Likewise.
	* commands/cmp.c: Likewise.
	* commands/test.c: Likewise.
	* commands/efi/acpi.c: Likewise.
	* commands/gptsync.c: Likewise.
	* commands/help.c: Likewise.
	* partmap/amiga.c: Likewise.
	* partmap/apple.c: Likewise.
	* partmap/acorn.c: Likewise.
	* partmap/pc.c: Likewise.
	* partmap/sun.c: Likewise.
	* partmap/gpt.c: Likewise.
	* script/sh/lexer.c: Likewise.
	* script/sh/function.c: Likewise.
	* font/font.c: Likewise.
	* font/font_cmd.c: Likewise.
	* loader/powerpc/ieee1275/linux.c: Likewise.
	* loader/efi/chainloader.c: Likewise.
	* loader/multiboot_loader.c: Likewise.
	* loader/macho.c: Likewise.
	* loader/i386/multiboot.c: Likewise.
	* loader/i386/linux.c: Likewise.
	* loader/i386/pc/linux.c: Likewise.
	* loader/i386/pc/multiboot2.c: Likewise.
	* loader/i386/pc/chainloader.c: Likewise.
	* loader/i386/pc/xnu.c: Likewise.
	* loader/i386/bsd_trampoline.S: Likewise.
	* loader/i386/efi/linux.c: Likewise.
	* loader/i386/multiboot_elfxx.c: Likewise.
	* loader/i386/bsd_helper.S: Likewise.
	* loader/i386/bsd.c: Likewise.
	* loader/i386/linux_trampoline.S: Likewise.
	* loader/i386/xnu_helper.S: Likewise.
	* loader/i386/xnu.c: Likewise.
	* loader/i386/bsd_pagetable.c: Likewise.
	* loader/i386/multiboot_helper.S: Likewise.
	* loader/xnu.c: Likewise.
	* loader/xnu_resume.c: Likewise.
	* io/gzio.c: Likewise.
	* term/efi/console.c: Likewise.
	* term/terminfo.c: Likewise.
	* term/ieee1275/ofconsole.c: Likewise.
	* term/i386/pc/serial.c: Likewise.
	* term/i386/pc/vesafb.c: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* term/usb_keyboard.c: Likewise.
	* term/gfxterm.c: Likewise.
	* aclocal.m4: Likewise.
	* util/lvm.c: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.
	* util/console.c: Likewise.
	* util/grub-macho2img.c: Likewise.
	* util/grub-probe.c: Likewise.
	* util/hostfs.c: Likewise.
	* util/i386/pc/grub-mkimage.c: Likewise.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/i386/efi/grub-mkimage.c: Likewise.
	* util/grub-mkconfig.in: Likewise.
	* util/raid.c: Likewise.
	* util/resolve.c: Likewise.
	* util/grub-mkdevicemap.c: Likewise.
	* util/grub-emu.c: Likewise.
	* util/getroot.c: Likewise.
	* util/hostdisk.c: Likewise.
	* util/usb.c: Likewise.
	* util/grub-editenv.c: Likewise.
	* util/misc.c: Likewise.

2009-06-10  Felix Zielcke  <fzielcke@z-51.de>

	* gendistlist.sh (EXTRA_DISTFILES): Add `genhandlerlist.sh' and
	`genparttoollist.sh'.
	(DISTDIRS): Add `efiemu', `mmap', `parttool' and `script'.
	Add `*.sh' to the list find searches for and change `mdate.sh'
	to `mdate-sh'.

2009-06-10  Pavel Roskin  <proski@gnu.org>

	* include/grub/multiboot2.h: Provide compatibility defines for
	multiboot2.h.
	* include/multiboot2.h: Include stdint.h only if needed, using
	angle brackets.
	* loader/i386/pc/multiboot2.c: Include multiboot2.h after
	grub/multiboot2.h.
	* loader/ieee1275/multiboot2.c: Likewise.
	* loader/multiboot2.c: Likewise.
	* loader/multiboot_loader.c: Likewise.

	* configure.ac: Use -nostdlib when probing for the target.  It
	should not be required to have libc for the target.

	* configure.ac: Remove checks for __bswapsi2 and __bswapdi2,
	they fail without libc headers for the target.
	* include/grub/powerpc/libgcc.h: Use weak attribute for all
	exports.
	* include/grub/sparc64/libgcc.h: Likewise.  Don't use
	preprocessor conditionals.

	* conf/common.rmk: Compile tar.mod from tar.c, not cpio.c.  The
	build system doesn't need to be aware of the tar.c internals.

2009-06-09  Michel Hermier  <michel.hermier@gmail.com>

	* fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values.

2009-06-09  Robert Millan  <rmh.grub@aybabtu.com>

	* util/deviceiter.c (grub_util_iterate_devices): Increase number of
	disk limit to 26 for IDE, Virtio, Xen and SCSI.

2009-06-09  Felix Zielcke  <fzielcke@z-51.de>

	* util/i386/pc/grub-install.in: Change the error message if UUIDs
	aren't available if ata.mod gets used.

2009-06-09  Oliver Henshaw  <oliver.henshaw@gmail.com>

	* bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after
	initialising controller.
	* bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.

2009-06-08  Felix Zielcke  <fzielcke@z-51.de>

	* util/i386/pc/grub-install.in: Add a parameter --disk-module
	to choose between ata and biosdisk module on i386-pc.

2009-06-08  Oliver Henshaw  <oliver.henshaw@gmail.com>

	* bus/usb/ohci.c (grub_ohci_pci_iter): Define the Class,
	Subclass and Programming Interface fields in terms of the 3 byte
	Class Code register.
	* bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.

	* bus/usb/ohci.c (grub_ohci_pci_iter): Check that programming
	interface is OHCI.  Add grub_dprintf for symmetry with
	bus/usb/uhci.c.
	* bus/usb/uhci.c (grub_uhci_pci_iter): Check that programming
	interface is UHCI.  Add interf variable for programming
	interface.  Print interface with class/subclass.

	* bus/usb/ohci.c: Set interf with correct field.

	* bus/usb/uhci.c: Remove unneeded doubled lines.
	* bus/usb/ohci.c: Likewise. Change interf to grub_uint32_t.
	Remove whitespace inside comment.

2009-06-08  Robert Millan  <rmh.grub@aybabtu.com>

	* loader/i386/linux.c (grub_cmd_linux): When processing `vga=', use
	as fallback an equivalent option without depth.

2009-06-08  Vladimir Serbinenko  <phcoder@gmail.com>

	Not fail if unable to retrieve C/H/S on LBA disks

	* disk/i386/pc/biosdisk.c (grub_biosdisk_open): behave gracefully
	if unable to retrieve C/H/S on LBA disks

2009-06-08  Pavel Roskin  <proski@gnu.org>

	* fs/hfs.c (grub_hfs_find_dir): Use union to avoid a warning
	about aliasing.

2009-06-08  Felix Zielcke  <fzielcke@z-51.de>

	* Makefile.in (uninstall): Remove all $lib_DATA files.

2009-06-08  Vladimir Serbinenko  <phcoder@gmail.com>

	Bugfix: install on partitionless device

	* util/hostdisk.c (grub_util_biosdisk_get_grub_dev): check if os_dev
	is a whole disk

2009-06-08  Felix Zielcke  <fzielcke@z-51.de>

	* Makefile.in (uninstall): Remove all $include_DATA files.

2009-06-08  Felix Zielcke  <fzielcke@z-51.de>

	* commands/true.c: New file.  Implement the true and false commands.
	* conf/common.rmk.c (pkglib_MODULES): Add `true.mod'.
	(true_mod_SOURCES): New variable.
	(true_mod_CFLAGS): Likewise.
	(true_mod_LDFLAGS): Likewise.

2009-06-05  Colin D Bennett  <colin@gibibit.com>

	Optimized font character lookup using binary search instead of linear
	search.  Fonts now are required to have the character index ordered by
	code point.

	* font/font.c (load_font_index): Verify that fonts have ordered
	character indices.
	(find_glyph): Use binary search instead of linear search to find a
	character in a font.

2009-06-05  Michael Scherer  <misc@mandriva.org>

	* fs/hfsplus.c (grub_hfsplus_mount): Determine if the filesystem
	uses case sensitive btree.
	(grub_hfsplus_iterate_dir): Use GRUB_FSHELP_CASE_INSENSITIVE
	only for case insensitive filesystems.

2009-06-05  Vladimir Serbinenko  <phcoder@gmail.com>

	* conf/i386-pc.rmk (efiemu_mod_CFLAGS): remove -Werror -Wall
	* conf/common.rmk (search_mod_CFLAGS): likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	* kern/i386/pc/startup.S [APPLE_CC]: block of nops to
	compensate a compiler bug

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	* include/grub/term.h (GRUB_TERM_BACKSPACE): explicitly define as 8
	instead of '\b'

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Definitions for creating asm symbols with Apple's CC

	* include/grub/symbol.h [APPLE_CC] (FUNCTION): new macro
	[APPLE_CC] (VARIABLE): likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Disable lnxboot.img when compiled
	with Apple's CC

	* conf/i386-pc.rmk (pkglib_IMAGES): remove lnxboot.img
	pkglib_IMAGES [! TARGET_APPLE_CC] (pkglib_IMAGES): add lnxboot.img
	* boot/i386/pc/lnxboot.S [APPLE_CC]: define an #error
	[! APPLE_CC] (CODE_LENG): skip
	[! APPLE_CC] (setup_sects): likewise
	[! APPLE_CC]: skip filling

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Address in trampolines based on 32-bit registers when compiled
	with Apple's CC

	* loader/i386/xnu_helper.S [APPLE_CC]: use 32-bit registers
	for addresses
	* loader/i386/linux_trampoline.S [APPLE_CC]: likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Avoid aliases when compiling with Apple's CC for PCBIOS machine

	* kern/misc.c [APPLE_CC] (memcpy): new function
	[APPLE_CC] (memmove): likewise
	[APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise
	(memcpy): define alias conditionally on !APPLE_CC
	(memset): likewise
	(abort): likewise
	* include/grub/misc.h (memove): don't define when both GRUB_UTIL and
	APPLE_CC are defined
	* include/grub/list.h [APPLE_CC] (grub_assert_fail): new function
	(grub_assert_fail): make prototype conditional

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Use grub-macho2img when compiling with Apple's CC for PCBIOS machine

	* conf/common.rmk (bin_UTILITIES): add (on false on condition)
	grub-macho2img
	(CLEANFILES): add grub-macho2img
	(grub_macho2img_SOURCES): new variable
	* kern/i386/pc/startup.S (bss_start): new variable
	(bss_end): likewise
	* genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC
	* util/grub-macho2img.c: new file

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Use objconv when compiling with Apple's CC

	* conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined
	(efiemu64.o): likewise
	(efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1
	when compiling with Apple's CC
	(efiemu64_s.o): likewise
	* configure.ac: check for objconv when compiling with Apple's CC
	* genmk.rb: use objconv for modules when compiled with Apple's CC

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Define segment as well as section when compiling with
	Apple's CC

	* efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition
	(efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE
	(efiemu_convert_pointer): likewise
	(efiemu_set_virtual_address_map): likewise
	(efiemu_convert_pointer): likewise
	(efiemu_getcrc32): likewise
	(init_crc32_table): likewise
	(reflect): likewise
	* include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC
	(GRUB_MOD_DEP): likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Allow a compilation without -mcmodel=large

	* kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB
	when compiled without -mcmodel=large
	(filter_memory_map): remove memory post 4 GiB when compiled
	without -mcmodel=large
	* configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to
	TARGET_CFLAGS when -mcmodel=large isn't supported

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Remove nested functions in efiemu core

	* efiemu/runtime/efiemu.c (reflect): make static instead of nested

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC

	* efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as
	temporary storage
	* include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when
	using Apple's CC
	(grub_cpu_is_tsc_supported): likewise
	* loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Absolute addressing through constant with Apple's cc

	* kern/i386/pc/startup.S: Define necessary constants
	and address through it when using ABS with Apple's CC
	* boot/i386/pc/diskboot.S: likewise
	* boot/i386/pc/boot.S: likewise
	* boot/i386/pc/lnxboot.S: likewise
	* boot/i386/pc/cdboot.S: likewise
	* mmap/i386/pc/mmap_helper.S: likewise
	* commands/i386/pc/drivemap_int13h.S: likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Check if compiler is apple cc

	* Makefile.in (ASFLAGS): new variable
	(TARGET_ASFLAGS): likewise
	(TARGET_MODULE_FORMAT): likewise
	(TARGET_APPLE_CC): likewise
	(OBJCONV): likewise
	(TARGET_IMG_CFLAGS): likewise
	(TARGET_CPPFLAGS): add includedir
	* configure.ac: call grub_apple_cc and grub_apple_target_cc
	(TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated
	Check for linker script only if compiler isn't Apple's CC
	(TARGET_MODULE_FORMAT): set
	(TARGET_APPLE_CC): likewise
	(TARGET_ASFLAGS): likewise
	(ASFLAGS): likewise
	Check for objcopy only if compiler isn't Apple's CC
	Check for BSS symbol only if compiler isn't Apple's CC
	* genmk.rb: adapt nm options if we use Apple's utils
	* aclocal.m4 (grub_apple_cc): new test
	(grub_apple_target_cc): likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Simplify sed expressions and improve awk

	* Makefile.in (install-local): simplify sed expression
	* gencmdlist.sh: likewise
	* genmoddep.awk: avoid adding module as a dependency of itself

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Add missing start symbols

	* boot/i386/pc/boot.S: add start
	* boot/i386/pc/pxeboot.S: likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Fix wrong assumptions with grub-mkimage on EFI

	* i386/efi/grub-mkimage.c (read_kernel_module): don't write prefix here
	(relocate_addresses): consider both r_addend and value at offset
	(make_mods_section): zerofill modinfo and header
	(convert_elf): write prefix here

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Use .asciz instead of .string

	* i386/pc/diskboot.S: use .asciz instead of .string
	* i386/pc/boot.S: likewise
	* include/grub/dl.h (GRUB_MOD_DEP): likewise
	(GRUB_MOD_NAME): likewise

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	gfxpayload support

	* commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
	* include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
	(grub_video_setup): remove
	(grub_video_set_mode): new prototype
	* loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
	(vid_mode): remove
	(linux_vesafb_res): compile only on PCBIOS
	(grub_linux_boot): support gfxpayload
	* loader/i386/pc/xnu.c (video_hook): new function
	(grub_xnu_set_video): support gfxpayload
	* term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
	(DEFAULT_VIDEO_HEIGHT): likewise
	(DEFAULT_VIDEO_FLAGS): likewise
	(DEFAULT_VIDEO_MODE): new definition
	(video_hook): new function
	(grub_gfxterm_init): use grub_video_set_mode
	* util/grub.d/30_os-prober.in: remove explicit modesetting before
	loading xnu
	* video/video.c (grub_video_setup): removed
	(grub_video_set_mode): new function based on grub_gfxterm_init and
	grub_video_setup

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Avoid calling biosdisk in drivemap

	* commands/i386/pc/drivemap.c (parse_biosdisk): remove
	(revparse_biosdisk): likewise
	(list_mappings): derive name from id directly
	(grub_cmd_drivemap): use tryparse_diskstring

2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Script fixes

	* include/grub/script_sh.h (grub_script_cmdline): remove cmdline
	(grub_lexer_param): add tokenonhold
	(grub_script_create_cmdline): remove cmdline. All callers updated
	(grub_script_function_create): make functionname
	grub_script_arg. All callers updated
	(grub_script_execute_argument_to_string): new prototype
	* kern/parser.c (state_transitions): reorder
	(grub_parser_cmdline_state): fix a bug and make more compact
	* script/sh/execute.c (grub_script_execute_argument_to_string):
	make global
	(grub_script_execute_cmdline): use new format
	* script/sh/function.c (grub_script_function_create): make functionname
	grub_script_arg. All callers updated
	* script/sh/lexer.c (grub_script_lexer_init): initialize tokenonhold
	(grub_script_yylex): remove
	(grub_script_yylex2): renamed to ...
	(grub_script_yylex): ...renamed
	parse the expressions like a${b}c
	* script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
	(GRUB_PARSER_TOKEN_VAR): remove
	(GRUB_PARSER_TOKEN_NAME): likewise
	("if"): declare as typeless
	("while"): likewise
	("function"): likewise
	("else"): likewise
	("then"): likewise
	("fi"): likewise
	(text): remove
	(argument): likewise
	(script): accept empty scripts and make exit on error
	(arguments): use GRUB_PARSER_TOKEN_ARG
	(function): likewise
	(command): move error handling to script
	(menuentry): move grub_script_lexer_ref before
	* script/sh/script.c (grub_script_create_cmdline): remove cmdline
	argument. All callers updated

2009-06-04  Robert Millan  <rmh.grub@aybabtu.com>

	Prevent GRUB from probing floppies during boot.

	* conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'.
	* commands/search.c (options): Add --no-floppy.
	(search_fs, search_file, grub_cmd_search): Support --no-floppy.
	* util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use
	--no-floppy when searching for UUIDs.

2009-06-04  Robert Millan  <rmh.grub@aybabtu.com>

	Simplify the code duplication in commands/search.c.

	* commands/search.c (search_label, search_fs_uuid): Merge into ...
	(search_fs): ... this.  Update all users.

2009-06-03  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir.

2009-05-28  Pavel Roskin  <proski@gnu.org>

	* Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD.
	Remove the original symlink explicitly.

	* fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not
	just one slash.  That's how grub_fshelp_find_file() does it.

2009-05-26  Pavel Roskin  <proski@gnu.org>

	* genmk.rb: Avoid shadowing variable `s', rename the outer `s'
	to `str'.

	* util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as
	possibly unused.

2009-05-25  Christian Franke  <franke@computer.org>

	* disk/ata.c (grub_ata_wait_not_busy): Add debug output of status
	register.
	(grub_atapi_identify): Add wait after drive select.
	(grub_ata_identify): Do more strict status register check before
	calling grub_atapi_identify ().  Suppress error message if status
	register is 0x00 after command failure.  Add status register
	check after PIO read to avoid bogus identify due to stuck DRQ.
	Thanks to Pavel Roskin for testing.
	(grub_device_initialize): Remove unsafe status register check.
	Thanks to 'phcoder' for problem report and patch.
	Prevent sign extension in debug message.

2009-05-23  Colin D Bennett  <colin@gibibit.com>

	Cleaned up `include/grub/normal.h'.  Grouped prototypes by
	definition file, and functions defined in `normal/menu.c' have had
	their prototypes moved to `include/grub/menu.h' for consistency.

	* include/grub/menu.h (grub_menu_execute_callback): Added; moved
	from normal.h.
	(grub_menu_get_entry): Likewise.
	(grub_menu_get_timeout): Likewise.
	(grub_menu_set_timeout): Likewise.
	(grub_menu_execute_entry): Likewise.
	(grub_menu_execute_with_fallback): Likewise.
	(grub_menu_entry_run): Likewise.

	* include/grub/normal.h: Re-ordered and grouped function
	prototypes by file that the function is defined in.
	(grub_menu_execute_callback): Removed; moved to menu.h.
	(grub_menu_get_entry): Likewise.
	(grub_menu_get_timeout): Likewise.
	(grub_menu_set_timeout): Likewise.
	(grub_menu_execute_entry): Likewise.
	(grub_menu_execute_with_fallback): Likewise.
	(grub_menu_entry_run): Likewise.
	(grub_menu_addentry): Renamed from this ...
	(grub_normal_add_menu_entry): ... to this.

	* normal/main.c (grub_menu_addentry): Renamed from this ...
	(grub_normal_add_menu_entry): ... to this.

	* script/sh/execute.c (grub_script_execute_menuentry): Update
	reference to renamed grub_menu_addentry function.

2009-05-23  Felix Zielcke  <fzielcke@z-51.de>

	* commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users.

2009-05-22  Pavel Roskin  <proski@gnu.org>

	* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove.
	* configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG.  Define
	NESTED_FUNC_ATTR using AH_BOTTOM.  Use regparm(1) only when
	compiling for the i386 targets, but not for the utilities.

	* include/grub/i386/pc/kernel.h (grub_boot_drive): Change type
	to grub_uint8_t.
	(grub_root_drive): Likewise.
	* kern/i386/pc/startup.S (grub_boot_drive): Change size to byte,
	remove alignment.
	(grub_root_drive): Change size to byte.
	(grub_start_addr): Remove.
	(grub_end_addr): Likewise.
	(grub_apm_bios_info): Likewise.

2009-05-21  Felix Zielcke  <fzielcke@z-51.de>

	* normal/i386: Remove.
	* normal/powerpc: Likewise.
	* normal/sparc64: Likewise.
	* normal/x86_64: Likewise.

2009-05-19  Vladimir Serbinenko  <phcoder@gmail.com>

	* conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable
	* loader/i386/linux_trampoline.S: Fix indentation
	* loader/i386/xnu_helper.S: Likewise

2009-05-18  Colin D Bennett  <colin@gibibit.com>

	Display error messages when parsing a Lua statement fails.
	Previously, executing a syntactically invalid statement like
	")foo" or "bar;" would silently fail.

	* script/lua/grub_main.c (handle_lua_error): New function.
	(grub_lua_parse_line): Improved reporting of Lua parser and
	execution errors.

2009-05-17  Vladimir Serbinenko  <phcoder@gmail.com>

	Remove -Werror which causes build to fail on some systems

	* conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall
	* conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise
	* conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise

2009-05-17  Vladimir Serbinenko  <phcoder@gmail.com>

	trampoline for linux on 64-bit platform

	* conf/x86_64-efi.rmk (linux_mod_SOURCES): added
	loader/i386/efi/linux_trampoline.S
	* include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed
	declaration
	* kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from
	here
	* loader/i386/linux_trampoline.S: moved here
	* loader/i386/efi/linux.c (allocate_pages): reserve space for
	trampoline
	(jumpvector): removed
	(grub_linux_trampoline_start): new declaration
	(grub_linux_trampoline_end): likewise
	(grub_linux_boot): use trampoline when on 64-bit platform
	* loader/i386/linux.c: likewise

2009-05-16  Pavel Roskin  <proski@gnu.org>

	* script/lua/grub_lib.c (grub_lua_getenv): Make name and value
	const to avoid a warning.
	(grub_lua_setenv): Likewise.
	* script/lua/grub_main.c (grub_lua_parse_line): Use size_t for
	lmsg to fix a warning.

2009-05-16  Felix Zielcke  <fzielcke@z-51.de>

	* conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ...
	(setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
	* conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ...
	(setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
	* conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
	(setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
	* conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
	(setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).

2009-05-16  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT.

2009-05-16  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (pkglib_MODULES): Add lua.mod.
	(lua_mod_SOURCES): New variable.
	(lua_mod_CFLAGS): Likewise.
	(lua_mod_LDFLAGS): Likewise.

	* conf/i386.rmk (pkglib_MODULES): Add setjmp.mod.
	(setjmp_mod_SOURCES): New variable.
	(setjmp_mod_CFLAGS): Likewise.
	(setjmp_LDFLAGS): Likewise.

	* conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod.
	(setjmp_mod_SOURCES): New variable.
	(setjmp_mod_CFLAGS): Likewise.
	(setjmp_LDFLAGS): Likewise.

	* conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
	(setjmp_mod_SOURCES): New variable.
	(setjmp_mod_CFLAGS): Likewise.
	(setjmp_LDFLAGS): Likewise.

	* conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
	(setjmp_mod_SOURCES): New variable.
	(setjmp_mod_CFLAGS): Likewise.
	(setjmp_LDFLAGS): Likewise.

	* normal/i386/setjmp.S: Moved from here ...
	* lib/i386/setjmp.S: ... Moved here
	* normal/x86_64/setjmp.S: Moved from here ...
	* lib/x86_64/setjmp.S: ... Moved here
	* normal/powerpc/setjmp.S: Moved from here ...
	* lib/powerpc/setjmp.S: ... Moved here
	* normal/sparc64/setjmp.S: Moved from here ...
	* lib/sparc64/setjmp.S: ... Moved here

	* include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute
	returns_twice in mingw.

	* script/lua/grub_lib.c: New file.
	* script/lua/grub_lib.h: Likewise.
	* script/lua/grub_lua.h: Likewise.
	* script/lua/grub_main.c: Likewise.
	* script/lua/lapi.c: Likewise.
	* script/lua/lapi.h: Likewise.
	* script/lua/lauxlib.c: Likewise.
	* script/lua/lauxlib.h: Likewise.
	* script/lua/lbaselib.c: Likewise.
	* script/lua/lcode.c: Likewise.
	* script/lua/lcode.h: Likewise.
	* script/lua/ldblib.c: Likewise.
	* script/lua/ldebug.c: Likewise.
	* script/lua/ldebug.h: Likewise.
	* script/lua/ldo.c: Likewise.
	* script/lua/ldo.h: Likewise.
	* script/lua/ldump.c: Likewise.
	* script/lua/lfunc.c: Likewise.
	* script/lua/lfunc.h: Likewise.
	* script/lua/lgc.c: Likewise.
	* script/lua/lgc.h: Likewise.
	* script/lua/linit.c: Likewise.
	* script/lua/liolib.c: Likewise.
	* script/lua/llex.c: Likewise.
	* script/lua/llex.h: Likewise.
	* script/lua/llimits.h: Likewise.
	* script/lua/lmathlib.c: Likewise.
	* script/lua/lmem.c: Likewise.
	* script/lua/lmem.h: Likewise.
	* script/lua/loadlib.c: Likewise.
	* script/lua/lobject.c: Likewise.
	* script/lua/lobject.h: Likewise.
	* script/lua/lopcodes.c: Likewise.
	* script/lua/lopcodes.h: Likewise.
	* script/lua/loslib.c: Likewise.
	* script/lua/lparser.c: Likewise.
	* script/lua/lparser.h: Likewise.
	* script/lua/lstate.c: Likewise.
	* script/lua/lstate.h: Likewise.
	* script/lua/lstring.c: Likewise.
	* script/lua/lstring.h: Likewise.
	* script/lua/lstrlib.c: Likewise.
	* script/lua/ltable.c: Likewise.
	* script/lua/ltable.h: Likewise.
	* script/lua/ltablib.c: Likewise.
	* script/lua/ltm.c: Likewise.
	* script/lua/ltm.h: Likewise.
	* script/lua/lua.h: Likewise.
	* script/lua/luaconf.h: Likewise.
	* script/lua/lualib.h: Likewise.
	* script/lua/lundump.c: Likewise.
	* script/lua/lundump.h: Likewise.
	* script/lua/lvm.c: Likewise.
	* script/lua/lvm.h: Likewise.
	* script/lua/lzio.c: Likewise.
	* script/lua/lzio.h: Likewise.

2009-05-16  Bean  <bean123ch@gmail.com>

	* include/grub/kernel.h (grub_module_header_types): Add type
	OBJ_TYPE_CONFIG.

	* kern/main.c (grub_load_config): New function.
	(grub_main): Call grub_load_config to read boot config.

	* grub-mkimage (generate_image): New parameter config_path.
	(options): New option --config.
	(main): Parse --config option, and pass it to generate_image.

2009-05-14  Christian Franke  <franke@computer.org>

	* commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols.
	This fixes build on Cygwin.

2009-05-14  Pavel Roskin  <proski@gnu.org>

	* commands/i386/pc/drivemap_int13h.S: Eliminate unconditional
	jump.  This saves two bytes, so the typical case of 2 swapped
	drives would fit 32 bytes.

2009-05-13  Pavel Roskin  <proski@gnu.org>

	* loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to
	grub_uint32_t to avoid a warning.

	* loader/i386/linux.c (allocate_pages): When assigning
	real_mode_mem, cast through grub_size_t to fix a warning.  The
	code already makes sure that the value would fit a pointer.
	(grub_linux_setup_video): Cast render_target->data to
	grub_size_t to fix a warning.

2009-05-13  Javier Martín  <lordhabbit@gmail.com>

	* commands/i386/pc/drivemap.c: New file - implement drivemap
	command.
	* commands/i386/pc/drivemap_int13h.S: New file - int13 handler.
	* conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S.

2009-05-13  Pavel Roskin  <proski@gnu.org>

	* util/i386/pc/grub-setup.c (setup): Remove unused variable
	embedding_area_exists.

2009-05-13  Robert Millan  <rmh.grub@aybabtu.com>

	* util/i386/pc/grub-setup.c (setup): Restructure code flow to make
	it easier to understand / work with.
	Improve warning messages for cases where there's no embedding area,
	or when it is too small (or core.img too large).

2009-05-13  Pavel Roskin  <proski@gnu.org>

	* loader/i386/pc/multiboot2.c: Add necessary includes for
	grub_multiboot2_real_boot().

	* fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
	PX record is always little-endian.  We only need the lower 2
	bytes of the mode.

	* fs/cpio.c: Use the same name "struct head" for tar and cpio to
	facilitate code reuse.
	(grub_cpio_mount): Use "struct head", not a char buffer.  This
	fixes a warning reported by gcc 4.4.

	* kernel/disk.c (grub_disk_read): Use void pointer for the
	buffer.
	(grub_disk_write): Use const void pointer for the buffer.
	Adjust all callers.  Remove unnecessary casts.

2009-05-10  Robert Millan  <rmh.grub@aybabtu.com>

	* util/i386/pc/grub-install.in: Update copyright year.

2009-05-09  Vladimir Serbinenko  <phcoder@gmail.com>

	gptsync

	* commands/gptsync.c: new file
	* conf/common.rmk (pkglib_MODULES): add gptsync.mod
	(gptsync_mod_SOURCES): new variable
	(gptsync_mod_CFLAGS): likewise
	(gptsync_mod_LDFLAGS): likewise
	* include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS):
	new definition
	(GRUB_PC_PARTITION_TYPE_HFS): likewise
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c
	* conf/i386-ieee1275.rmk: likewise
	* conf/i386-pc.rmk: likewise
	* conf/powerpc-ieee1275.rmk: likewise

2009-05-09  Vladimir Serbinenko  <phcoder@gmail.com>

	Fixed grub-emu

	* kern/dl.c (grub_dl_ref): omit when compiling grub-emu
	(grub_dl_ref): likewise

2009-05-08  Robert Millan  <rmh.grub@aybabtu.com>

	* util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(),
	split in two functions (one for msdos and one for gpt).

2009-05-08  Pavel Roskin  <proski@gnu.org>

	* disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's
	not modified.

	* disk/raid6_recover.c (grub_raid6_recover): Fix warnings about
	uninitialized err[0] and err[1].  Rename them to bad1 and bad2.
	Initialize them with -1.  Add sanity check for bad1.  Eliminate
	nerr variable.

2009-05-08  David S. Miller  <davem@davemloft.net>

	* util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname.

2009-05-06  Robert Millan  <rmh.grub@aybabtu.com>

	* util/i386/pc/grub-setup.c (setup): Fix check for embed region
	existence.

2009-05-05  Felix Zielcke  <fzielcke@z-51.de>

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'.

2009-05-05  David S. Miller  <davem@davemloft.net>

	* util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting.

2009-05-05  Pavel Roskin  <proski@gnu.org>

	* include/grub/dl.h [GRUB_UTIL]: Provide inline implementations
	of grub_dl_ref() and grub_dl_unref().
	* commands/parttool.c: Remove preprocessor conditionals around
	grub_dl_ref() and grub_dl_unref().
	* fs/affs.c: Likewise.
	* fs/afs.c: Likewise.
	* fs/cpio.c: Likewise.
	* fs/ext2.c: Likewise.
	* fs/fat.c: Likewise.
	* fs/hfs.c: Likewise.
	* fs/hfsplus.c: Likewise.
	* fs/iso9660.c: Likewise.
	* fs/jfs.c: Likewise.
	* fs/minix.c: Likewise.
	* fs/ntfs.c: Likewise.
	* fs/reiserfs.c: Likewise.
	* fs/sfs.c: Likewise.
	* fs/udf.c: Likewise.
	* fs/ufs.c: Likewise.
	* fs/xfs.c: Likewise.
	* include/grub/dl.h: Likewise.
	* loader/xnu.c: Likewise.

2009-05-04  Pavel Roskin  <proski@gnu.org>

	* commands/acpi.c: Remove unused variable my_mod.
	* partmap/amiga.c: Likewise.
	* partmap/apple.c: Likewise.
	* partmap/gpt.c: Likewise.
	* partmap/pc.c: Likewise.
	* partmap/sun.c: Likewise.
	* term/gfxterm.c: Likewise.
	* term/i386/pc/vesafb.c: Likewise.
	* term/i386/pc/vga.c: Likewise.

2009-05-04  David S. Miller  <davem@davemloft.net>

	* kern/ieee1275/openfw.c (grub_children_iterate): Fix string
	pointer args to grub_ieee1275_get_property().

	* conf/sparc64-ieee1275.rmk: Fix build due to missing '\'.

	* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
	devices, and do not traverse down under controller nodes.

	* disk/ieee1275/ofdisk.c (compute_dev_path): New.
	(grub_ofdisk_open): Use it to un-escape "," characters.
	* kern/disk.c (find_part_sep): New.
	(grub_disk_open): Use it to find the first non-escaped ','
	character in the disk name.
	* util/ieee1275/devicemap.c (escape_of_path): New.
	(grub_util_emit_devicemap_entry): Use it.
	* util/sparc64/ieee1275/grub-install.in: Update script to
	strip partition specifiers properly by not triggering on
	'\' escaped ',' characters.

2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>

	* include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set
	to 0x300.
	* loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few
	resolutions.
	(linux_vesafb_modes): Add a lot of additional modes to the list (based
	on documentation from Wikipedia).

2009-05-04  Pavel Roskin  <proski@gnu.org>

	* disk/ata.c: Spelling fixes.
	* disk/raid.c: Likewise.
	* disk/usbms.c: Likewise.
	* disk/dmraid_nvidia.c: Likewise.
	* kern/ieee1275/openfw.c: Likewise.
	* kern/ieee1275/init.c: Likewise.
	* kern/ieee1275/cmain.c: Likewise.
	* boot/i386/pc/cdboot.S: Likewise.
	* video/readers/png.c: Likewise.
	* video/i386/pc/vbe.c: Likewise.
	* fs/udf.c: Likewise.
	* fs/hfs.c: Likewise.
	* fs/reiserfs.c: Likewise.
	* efiemu/runtime/efiemu.c: Likewise.
	* efiemu/main.c: Likewise.
	* efiemu/mm.c: Likewise.
	* include/grub/elf.h: Likewise.
	* include/grub/xnu.h: Likewise.
	* include/grub/usbdesc.h: Likewise.
	* include/grub/usb.h: Likewise.
	* include/grub/script_sh.h: Likewise.
	* include/grub/lib/LzmaEnc.h: Likewise.
	* include/grub/efiemu/efiemu.h: Likewise.
	* include/grub/command.h: Likewise.
	* normal/menu.c: Likewise.
	* normal/main.c: Likewise.
	* normal/datetime.c: Likewise.
	* bus/usb/uhci.c: Likewise.
	* mmap/i386/uppermem.c: Likewise.
	* mmap/mmap.c: Likewise.
	* commands/acpi.c: Likewise.
	* commands/test.c: Likewise.
	* partmap/apple.c: Likewise.
	* font/font.c: Likewise.
	* loader/sparc64/ieee1275/linux.c: Likewise.
	* loader/macho.c: Likewise.
	* loader/i386/bsd_trampoline.S: Likewise.
	* loader/i386/bsd.c: Likewise.
	* loader/xnu.c: Likewise.
	* term/i386/pc/vesafb.c: Likewise.
	* term/usb_keyboard.c: Likewise.
	* util/resolve.c: Likewise.
	* util/getroot.c: Likewise.

2009-05-04  Felix Zielcke  <fzielcke@z-51.de>

	* conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA.

2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>

	* loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix
	build error.

2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>

	* loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility
	parameter only available on BIOS.

2009-05-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Removed wrong semicolon in declaration

	* grub/misc.h (grub_dprintf): remove semicolon

2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>

	* loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro.
	(grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this
	is done by grub_cmd_linux() now).
	[! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set,
	restore video to text mode.
	(grub_cmd_linux): Default `vid_mode' initialization to 0, which
	indicates lack of "vga=" parameter.  "vga=0" is mapped to
	`GRUB_LINUX_VID_MODE_NORMAL'.

2009-05-04  Felix Zielcke  <fzielcke@z-51.de>

	* conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c',
	`normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c'
	and `normal/script.c'.  Add `kern/rescue_reader.c',
	`kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c',
	`script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and
	`grub_script.tab.c'.

	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.

	* Makefile.in: Remove duplicated 2008 in Copyright line.

2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>

	* util/misc.c (grub_util_warn): New function.  Emits a warning
	unconditionally.
	* include/grub/util/misc.h (grub_util_warn): New declaration.

	* util/i386/pc/grub-install.in: Understand --force and pass it down
	to grub-setup.

	* util/i386/pc/grub-setup.c (main): Understand --force and pass it
	down to setup().
	(setup): Improve error messages and add warnings when requested to
	install in odd layouts.  Refuse to install using blocklists unless
	--force was set.

2009-05-04  martin f. krafft  <madduck@madduck.net>

	* disk/raid.c (grub_raid_scan_device): Improve debug message.

2009-05-04  Vladimir Serbinenko  <phcoder@gmail.com>

	Updated copyright year

	* fs/hfsplus.c: updated copyright year

2009-05-04  Vladimir Serbinenko  <phcoder@gmail.com>

	HFS+ UUID

	* fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field
	in the space previously used by unused3
	(grub_hfsplus_uuid): new function
	(grub_hfsplus_fs): added uuid field

2009-05-03  Pavel Roskin  <proski@gnu.org>

	* disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to
	suppress warnings.  It's no longer needed.
	* disk/host.c: Likewise.
	* disk/ata_pthru.c: Likewise.
	* disk/loopback.c: Likewise.
	* hook/datehook.c: Likewise.
	* parttool/pcpart.c: Likewise.
	* fs/i386/pc/pxe.c: Likewise.
	* fs/ntfscomp.c: Likewise.
	* efiemu/main.c: Likewise.
	* mmap/mmap.c: Likewise.
	* commands/crc.c: Likewise.
	* commands/hexdump.c: Likewise.
	* commands/hdparm.c: Likewise.
	* commands/acpi.c: Likewise.
	* commands/echo.c: Likewise.
	* commands/minicmd.c: Likewise.
	* commands/blocklist.c: Likewise.
	* commands/memrw.c: Likewise.
	* commands/loadenv.c: Likewise.
	* commands/usbtest.c: Likewise.
	* commands/lsmmap.c: Likewise.
	* commands/boot.c: Likewise.
	* commands/parttool.c: Likewise.
	* commands/configfile.c: Likewise.
	* commands/search.c: Likewise.
	* commands/ieee1275/suspend.c: Likewise.
	* commands/cat.c: Likewise.
	* commands/i386/pc/pxecmd.c: Likewise.
	* commands/i386/pc/play.c: Likewise.
	* commands/i386/pc/halt.c: Likewise.
	* commands/i386/pc/vbeinfo.c: Likewise.
	* commands/i386/pc/vbetest.c: Likewise.
	* commands/lspci.c: Likewise.
	* commands/date.c: Likewise.
	* commands/handler.c: Likewise.
	* commands/ls.c: Likewise.
	* commands/test.c: Likewise.
	* commands/cmp.c: Likewise.
	* commands/efi/loadbios.c: Likewise.
	* commands/efi/fixvideo.c: Likewise.
	* commands/halt.c: Likewise.
	* commands/help.c: Likewise.
	* commands/reboot.c: Likewise.
	* hello/hello.c: Likewise.
	* script/sh/main.c: Likewise.
	* loader/xnu.c: Likewise.
	* term/terminfo.c: Likewise.
	* term/i386/pc/serial.c: Likewise.
	* term/usb_keyboard.c: Likewise.

2009-05-03  David S. Miller  <davem@davemloft.net>

	* normal/menu.c: Include grub/parser.h

2009-05-03  Pavel Roskin  <proski@gnu.org>

	* mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*,
	not char*.
	* mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise.
	Suggested by Javier Martín <lordhabbit@gmail.com>

	* util/i386/pc/grub-mkrescue.in: Allow for the case when
	efiemu??.o doesn't exist.
	* util/i386/pc/grub-install.in: Likewise.  Use "cp -f" for
	copying.

2009-05-03  Bean  <bean123ch@gmail.com> Vladimir Serbinenko  <phcoder@gmail.com>

	FreeBSD 64-bit support

	* conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S
	and loader/i386/bsd_trampoline.S
	(bsd_mod_ASFLAGS): new variable
	* include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition
	(FREEBSD_MODTYPE_KERNEL64): likewise
	(grub_bsd64_trampoline_start): likewise
	(grub_bsd64_trampoline_end): likewise
	(grub_bsd64_trampoline_selfjump): likewise
	(grub_bsd64_trampoline_gdt): likewise
	* include/grub/i386/loader.h (grub_unix_real_boot): moved from here ...
	* include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here
	* kern/i386/loader.S (grub_unix_real_boot): moved from here ...
	* loader/i386/bsd_helper.S (grub_unix_real_boot): moved here
	* include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
	of "attrib" member
	* loader/i386/bsd_pagetable.c: new file
	* loader/i386/bsd_trampoline.S: likewise
	* loader/i386/bsd.c (ALIGN_QWORD): new macro
	(ALIGN_VAR): likewise
	(entry_hi): new variable
	(kern_end_mdofs): likewise
	(is_64bit): likewise
	(grub_freebsd_add_meta): use ALIGN_VAR
	(grub_e820_mmap): new declaration
	(grub_freebsd_add_mmap): new function
	(grub_freebsd_add_meta_module): support 64 bit kernels
	(grub_freebsd_list_modules): use ALIGN_VAR
	(gdt_descriptor): new declaration
	(grub_freebsd_boot): support 64 bit kernels
	(grub_bsd_elf64_hook): new function
	(grub_bsd_load_elf): support elf64

2009-05-03  Bean  <bean123ch@gmail.com>

	* script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno
	after we get the result of if statement.

2009-05-03  Bean  <bean123ch@gmail.com>

	* Makefile.in (enable_efiemu): New variable.

	* conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is
	set.
	(efiemu32.o): Use macro $< for source file, add $(srcdir) to include
	path.
	(efi64_c.o): Use macro $< for source file, add $(srcdir) to include
	path, add -mno-red-zone option.
	(efiemu64_s.o): Likewise.
	(efiemu64.o): Use macro $^ for source file.

	* configure.ac (--enable-efiemu): New option.

2009-05-03  Vladimir Serbinenko  <phcoder@gmail.com>

	xnu support

	* conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h
	(pkglib_MODULES): add xnu.mod
	(xnu_mod_SOURCES): new variable
	(xnu_mod_CFLAGS): likewise
	(xnu_mod_LDFLAGS): likewise
	(xnu_mod_ASFLAGS): likewise
	* conf/i386-pc.rmk: likewise
	* conf/x86_64-efi.rmk: likewise
	* include/grub/efi/efi.h (grub_efi_finish_boot_services):
	new declaration
	* include/grub/i386/macho.h: new file
	* include/grub/i386/xnu.h: likewise
	* include/grub/macho.h: likewise
	* include/grub/machoload.h: likewise
	* include/grub/x86_64/macho.h: likewise
	* include/grub/x86_64/xnu.h: likewise
	* include/grub/xnu.h: likewise
	* kern/efi/efi.c (grub_efi_finish_boot_services): new function
	* kern/efi/mm.c (MAX_HEAP_SIZE): increase
	* loader/i386/efi/xnu.c: new file
	* loader/i386/pc/xnu.c: likewise
	* loader/i386/xnu.c: likewise
	* loader/i386/xnu_helper.S: likewise
	* loader/macho.c: likewise
	* loader/xnu.c: likewise
	* loader/xnu_resume.c: likewise
	* util/grub-dumpdevtree: likewise
	* include/grub/i386/pit.h: include grub/err.h
	(grub_pit_wait): export
	* util/grub.d/30_os-prober.in: support Darwin/Mac OS X

2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>

	Efiemu

	* conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram,
	_linux_efi, linux_efi.
	new files in grub-emu
	new targets efiemu32.o and efiemu64.o
	* loader/linux_normal_efiemu.c: likewise
	* loader/i386/efi/linux.c: added preliminary efiemu support
	* util/i386/pc/grub-install.in: add efiemu??.o to the list of
	files to copy
	* include/grub/autoefi.h: new file
	* include/grub/i386/efiemu.h: likewise
	* include/grub/i386/pc/efiemu.h: likewise
	* include/grub/efi/api.h: add LL suffix when necessary
	new definitions relating to tables
	* include/grub/efiemu/efiemu.h: new file
	* include/grub/efiemu/runtime.h: likewise
	* efiemu/prepare.c: likewise
	* efiemu/loadcore_common.c: likewise
	* efiemu/loadcore64.c: likewise
	* efiemu/runtime/efiemu.sh: likewise
	* efiemu/runtime/efiemu.S: likewise
	* efiemu/runtime/efiemu.c: likewise
	* efiemu/runtime/config.h: likewise
	* efiemu/prepare32.c: likewise
	* efiemu/main.c: likewise
	* efiemu/modules/pnvram.c: likewise
	* efiemu/modules/i386: likewise
	* efiemu/modules/i386/pc: likewise
	* efiemu/modules/acpi.c: likewise
	* efiemu/i386/pc/cfgtables.c: likewise
	* efiemu/i386/loadcore64.c: likewise
	* efiemu/i386/loadcore32.c: likewise
	* efiemu/prepare64.c: likewise
	* efiemu/loadcore.c: likewise
	* efiemu/symbols.c: likewise
	* efiemu/mm.c: likewise
	* efiemu/loadcore32.c: likewise

2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>

	ACPI spoofing

	* commands/acpi.c: new file
	* commands/i386/pc/acpi.c: likewise
	* commands/efi/acpi.c: likewise
	* include/grub/acpi.h: likewise
	* conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod
	(acpi_mod_SOURCES): new variable
	(acpi_mod_CFLAGS): likewise
	(acpi_mod_LDFLAGS): likewise
	* conf/i386-efi.rmk: likewise
	* conf/x86_64-efi.rmk: likewise

2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>

	Missing part from mmap patch

	* mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to
	(grub_mmap_unregister)
	(grub_mmap_free_and_unregister): use grub_mmap_register

2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>

	Mmap services

	* loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate
	* loader/i386/linux.c (find_mmap_size): likewise
	(allocate_pages): likewise
	* loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise
	(grub_fill_multiboot_mmap): likewise
	(grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper
	* loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower
	* include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition
	(OPENBSD_MMAP_RESERVED): likewise
	* include/grub/i386/pc/memory.h: include grub/memory.h
	(grub_lower_mem): removed
	(grub_upper_mem): likewise
	(GRUB_MACHINE_MEMORY_ACPI): new definition
	(GRUB_MACHINE_MEMORY_NVS): likewise
	(GRUB_MACHINE_MEMORY_MAX_TYPE): likewise
	(GRUB_MACHINE_MEMORY_HOLE): likewise
	(grub_machine_mmap_register): likewise
	(grub_machine_mmap_unregister): likewise
	(grub_machine_get_upper): likewise
	(grub_machine_get_lower): likewise
	(grub_machine_get_post64): likewise
	* include/grub/i386/efi/memory.h: new file
	* include/grub/x86_64/efi/memory.h: likewise
	* include/grub/efi/memory.h: likewise
	* conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod
	(mmap_mod_SOURCES): new variable
	(mmap_mod_LDFLAGS): likewise
	(mmap_mod_ASFLAGS): likewise
	* conf/i386-coreboot.rmk: likewise
	* conf/i386-ieee1275.rmk: likewise
	* conf/i386-efi.rmk: likewise
	* conf/x86_64-efi.rmk: likewise
	* include/grub/types.h (UINT_TO_PTR): new macro
	(PTR_TO_UINT32): likewise
	(PTR_TO_UINT64): likewise
	* include/grub/memory.h: new file
	* mmap/i386/pc/mmap.c: likewise
	* mmap/i386/pc/mmap_helper.S: likewise
	* mmap/i386/uppermem.c: likewise
	* mmap/mmap.c: likewise
	* mmap/efi/mmap.c: likewise
	* kern/i386/coreboot/init.c (grub_machine_init): don't use
	grub_upper_mem
	* kern/i386/pc/init.c (grub_lower_mem): removed variable
	(grub_upper_mem): likewise
	(grub_machine_init): don't use grub_upper_mem,
	make grub_lower_mem local
	* loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower,
	grub_mmap_iterate and grub_mmap_get_upper
	(grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper

2009-05-02  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
	script/sh/parser.y.
	(pkglib_MODULES): Add normal.mod and sh.mod.
	(normal_SOURCES): New variable.
	(normal_mod_CFLAGS): Likewise.
	(normal_mod_LDFLAGS): Likewise.
	(sh_mod_SOURCES): Likewise.
	(sh_mod_CFLAGS): Likewise.
	(sh_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
	script/sh/lexer.c_DEPENDENCIES.
	(kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
	kern/rescue_reader.c and kern/rescue_parser.c.
	(kernel_img_HEADERS): Remove rescue.h, add reader.h.
	(grub_emu_SOURCES): Change source files.
	(pkglib_MODULES): Remove normal.mod.
	(normal_SOURCES): Removed.
	(normal_mod_CFLAGS): Likewise.
	(normal_mod_LDFLAGS): Likewise.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-ieee1276.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.

	* include/grub/command.h (grub_command_execute): New inline function.

	* include/grub/menu.h (grub_menu_entry): Removed commands field.

	* include/grub/normal.h: Remove <grub/setjmp.h>.
	(grub_fs_module_list): Moved to normal/autofs.c.
	(grub_exit_env): Removed.
	(grub_command_execute): Likewise.
	(grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
	parameter script.
	(read_command_list): New function declaration.
	(read_fs_list): Likewise.

	* include/parser.h: Include <grub/reader.h>.
	(grub_parser_split_cmdline): Change type of getline parameter.
	(grub_parser): New structure.
	(grub_parser_class): New variable.
	(grub_parser_execute): New function declaration.
	(grub_register_rescue_parser): Likewise.
	(grub_parser_register): New inline function.
	(grub_parser_unregister): Likewise.
	(grub_parser_get_current): Likewise.
	(grub_parser_set_current): Likewise.

	* include/grub/reader.h: New file.
	* kern/reader.c: Likewise.
	* kern/rescue_parser.c: Likewise.
	* kern/rescue_reader.c: Likewise.
	* normal/autofs.c: Likewise.
	* normal/dyncmd.c: Likewise.

	* include/grub/rescue.h: Removed.
	* normal/command.h: Likewise.

	* include/grub/script.h: Moved to ...
	* include/grub/script_sh.h: ... Moved here.
	* normal/execute.c: Moved to ...
	* script/sh/execute.c: ... Moved here.
	* normal/function.c: Moved to ...
	* script/sh/function.c: ... Moved here.
	* normal/lexer.c: Moved to ...
	* script/sh/lexer.c: ... Moved here.
	* normal/parser.y: Moved to ...
	* script/sh/parser.y: ... Moved here.
	* normal/script.c: Moved to ...
	* script/sh/script.c: ... Moved here.

	* normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
	<grub/reader.h>.
	(grub_exit_env): Removed.
	(fs_module_list): Moved to normal/autofs.c.
	(grub_file_getline): Don't handle comment here.
	(free_menu): Skip removed field entry->commands.
	(grub_normal_menu_addentry): Removed as grub_menu_entry, removed
	script parameter.
	(read_config_file): Removed nested parameter, change getline function.
	(grub_enter_normal_mode): Removed.
	(grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
	(read_command_list): Likewise.
	(autoload_fs_module): Moved to normal/autofs.c.
	(read_fs_list): Likewise.
	(reader_nested): New variable.
	(grub_normal_execute): Run parser.sh to switch to sh parser.
	(grub_cmd_rescue): Removed.
	(cmd_normal): Removed.
	(grub_cmd_normal): Unregister itself at the beginning. Don't register
	rescue command.
	(grub_cmdline_run): New function.
	(grub_normal_reader_init): Likewise.
	(grub_normal_read_line): Likewise.
	(grub_env_write_pager): Likewise.
	(cmdline): New variable.
	(grub_normal_reader): Likewise.
	(GRUB_MOD_INIT): Register normal reader and set as current, register
	pager hook, register normal command with grub_register_command_prio,
	so that it won't show up in command.lst.
	(GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
	grub_fs_autoload_hook.

	* normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
	(grub_menu_execute_entry): Replace grub_script_execute with
	grub_parser_execute, change parameter to grub_command_execute.

	* normal/menu_text.c: Remove <grub/script.h>.

	* normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
	and <grub/parser.h>.
	(run): Change editor_getline to use new parser interface. Change
	parameter to grub_command_execute.

	* kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
	<grub/reader.h> and <grub/parser.h>.
	(grub_load_normal_mode): Execute normal command.
	(grub_main): Call grub_register_core_commands,
	grub_register_rescue_parser and grub_register_rescue_reader, use
	grub_reader_loop to enter input loop.

	* kern/parser.c (grub_parser_split_cmdline): Change type of
	getline parameter.
	(grub_parser_class): New variable.
	(grub_parser_execute): New function.

	* loader/i386/multiboot.c: Remove <grub/rescue.h>.
	* loader/multiboot2.c: Likewise.
	* loader/sparc64/ieee1275/linux.c: Likewise.

	* util/grub-emu.c (read_command_list): New dummy function.

2009-05-02  Robert Millan  <rmh.grub@aybabtu.com>

	* util/deviceiter.c (grub_util_iterate_devices): Increase max drive
	count to 16 for CCISS and IDA.

2009-05-02  Robert Millan  <rmh.grub@aybabtu.com>

	* normal/menu_text.c  (grub_wait_after_message): Print a newline
	after waiting for user input.

	* loader/i386/linux.c: Include `<grub/normal.h>'.
	(grub_cmd_linux): Improve the error message about `ask' mode, by
	waiting for user input so it's not missed (we can do this, since
	user requested interaction).

2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>

	Added missing lst to grub-mkrescue

	* util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst
	and ${input_dir}/parttool.lst

2009-04-30  David S. Miller  <davem@davemloft.net>

	* util/hostdisk.c (device_is_wholedisk): New function.
	(grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is
	zero only if device_is_wholedisk() returns true.

	* util/hostdisk.c (convert_system_partition_to_system_disk):
	Handle virtual disk devices named /dev/vdiskX as found on sparc
	and powerpc.

	* kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If
	lettered partition specifier is found, convert to numbered.

2009-04-29  David S. Miller  <davem@davemloft.net>

	* include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h.
	* include/grub/sparc64/ieee1275/memory.h: Likewise.

	* normal/command.c: Add missing newline at end of file.

	* commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf
	warnings.
	* kern/ieee1275/openfw.c (grub_claimmap): Likewise.
	* disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close,
	grub_ofdisk_read): Likewise, and deal similarly with the fact that
	ihandles have a 32-bit type but need to be stored in a "void *".

2009-04-28  Pavel Roskin  <proski@gnu.org>

	* disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev,
	not disk.  Adjust all dependencies.
	(grub_fs_uuid_close): Use grub_device_close(), not
	grub_disk_close().

	* disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy
	parent's partition, don't copy it by reference, as it gets freed
	on close.

2009-04-27  Vladimir Serbinenko  <phcoder@gmail.com>

	Preboot hooks support

	* commands/boot.c (struct grub_preboot_t): new declaration
	(preboots_head): new variable
	(preboots_tail): likewise
	(grub_loader_register_preboot_hook): new function
	(grub_loader_unregister_preboot_hook): likewise
	(grub_loader_set): launch preboot hooks
	* include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type
	(grub_loader_register_preboot_hook): new declaration
	(grub_loader_unregister_preboot_hook): likewise

2009-04-27  Vladimir Serbinenko  <phcoder@gmail.com>

	Warning fix

	* disk/scsi.c (grub_scsi_open): added missing cast when
	calling grub_dprintf

2009-04-26  Vladimir Serbinenko  <phcoder@gmail.com>

	Bug and warning fixes

	* include/grub/i386/pc/init.h (grub_stop_floppy): added missing
	declaration
	* commands/test.c (test_parse): fixed bug with file tests and corrected
	declaration of find_file

2009-04-26  Pavel Roskin  <proski@gnu.org>

	* Makefile.in: Don't install empty manual pages if help2man is
	missing.  Use help2man option for output, not shell redirection.

2009-04-26  David S. Miller  <davem@davemloft.net>

	* util/grub-mkdevicemap.c (make_device_map): Add missing
	NESTED_FUNC_ATTR to process_device().

2009-04-25  Vladimir Serbinenko  <phcoder@gmail.com>

	Test command

	* commands/test.c: rewritten to use bash-like test

2009-04-25  Vladimir Serbinenko  <phcoder@gmail.com>

	Parttool autoloading and improvements

	* Makefile.in (pkglib_DATA): add parttool.lst
	(parttool.lst): new target
	* genmk.rb: generate parttool-*
	(CLEANFILES): add #{parttool}
	(PARTTOOLFILES): new variable
	* genparttoollist.sh: new file
	* parttool/pcpart.c (grub_pcpart_boot): more feedback
	(grub_pcpart_type): likewise
	* commands/parttool.c (helpmsg): new variable
	(grub_cmd_parttool): output help if not enough arguments are supplied
	autoload modules
	(GRUB_MOD_INIT(parttool)): use helpmsg

2009-04-24  David S. Miller  <davem@davemloft.net>

	Avoiding opening same device multiple times in device iterator.

	* kern/device.c: (grub_device_iterate): Define struct part_ent,
	and use it to build a list of partitions in iterate_disk() and
	iterate_partition().

	* disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close()
	on disk->data.

	* disk/ieee1275/nand.c (grub_nand_iterate): Return
	grub_devalias_iterate() result instead of unconditional 0.
	* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise.
	Also, capture hook return value, either directly or via
	grub_children_iterate(), and propagate to caller.
	* include/grub/ieee1275/ieee1275.h (grub_devalias_iterate,
	grub_children_iterate): Return value is now 'int' instead of
	'grub_err_t'.
	* kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave
	like a proper iterator, stopping when hooks return non-zero.
	(grub_devalias_iterate): Likewise.

2009-04-23  David S. Miller  <davem@davemloft.net>

	* kern/sparc64/ieee1275/openfw.c: Unused, delete.

2009-04-22  David S. Miller  <davem@davemloft.net>

	* kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells
	is larger than address_cells, use that value for address_cells too.

	* include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN,
	IEEE1275_MAX_PATH_LEN): Define.
	* kern/ieee1275/openfw.c (grub_children_iterate): Dynamically
	allocate 'childtype', 'childpath', 'childname', and 'fullname'.
	(grub_devalias_iterate): Dynamically allocate 'aliasname' and
	'devtype'.  Explicitly NULL terminate devalias expansion.

	* util/sparc64/ieee1275/misc.c: New file.
	* util/sparc64/ieee1275/grub-setup.c: New file.
	* util/sparc64/ieee1275/grub-ofpathname.c: New file.
	* util/sparc64/ieee1275/grub-mkimage.c: New file.
	* util/sparc64/ieee1275/grub-install.in: New file.
	* util/ieee1275/ofpath.c: New file.
	* util/ieee1275/devicemap.c: New file.
	* util/devicemap.c: New file.
	* util/deviceiter.c: New file.
	* kern/sparc64/ieee1275/init.c: New file.
	* include/grub/util/ofpath.h: New file.
	* include/grub/util/deviceiter.h: New file.
	* util/grub-mkdevicemap.c: Include deviceiter.h.
	Implement using grub_util_emit_devicemap_entry and
	grub_util_iterate_devices.
	* conf/i386-corebook.rmk: Build util/deviceiter.c and
	util/devicemap.c into grub-mkdevicemap
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Add rules to build boot block
	images and installation utilities.  Build kernel as image
	instead of as elf binary.  Use common rules as much as possible.

2009-04-19  Vladimir Serbinenko  <phcoder@gmail.com>

	Correct GPT definition

	* include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
	of "attrib" member

2009-04-19  Felix Zielcke  <fzielcke@z-51.de>

	* INSTALL: Replace `autogen.sh' with `./autogen.sh'.

2009-04-19  David S. Miller  <davem@davemloft.net>

	* loader/sparc64/ieee1275/linux.c: Include grub/command.h
	(grub_rescue_cmd_linux): Rename to...
	(grub_cmd_linux): and fix prototype.
	(grub_rescue_cmd_initrd): Rename to...
	(grub_cmd_initrd): and fix prototype.
	(cmd_linux, cmd_initrd): New.
	(GRUB_MOD_INIT(linux)): Use grub_register_command().
	(GRUB_MOD_FINI(linux): Use grub_unregister_command().

2009-04-17  Pavel Roskin  <proski@gnu.org>

	* bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
	format.
	(grub_ohci_transfer): Likewise.

	* bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.

	* loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
	return without a value.  Fix inconsistent indentation.

	* fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
	match struct grub_fs.

	* disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
	* bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
	* bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
	* commands/lspci.c (grub_lspci_iter): Likewise.

2009-04-16  Bean  <bean123ch@gmail.com>

	* commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
	value.

2009-04-15  Pavel Roskin  <proski@gnu.org>

	* include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
	LONG_MAX to GRUB_LONG_MAX.  Introduce GRUB_LONG_MIN.  Update all
	users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
	definitions.

2009-04-15  Felix Zielcke  <fzielcke@z-51.de>

	* disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
	that no multiple data or metadata areas are supported and `Unknown
	metadata header'.

2009-04-15  Vladimir Serbinenko  <phcoder@gmail.com>

	Move loader out of the kernel

	* kern/loader.c: moved to ...
	* commands/boot.c: ... moved here
	* commands/minicmd.c (grub_mini_cmd_boot): moved to ...
	* commands/boot.c (grub_cmd_boot): moved here. All users updated
	* include/grub/kernel.h (grub_machine_fini): export
	* include/grub/loader.h (grub_loader_is_loaded): update declaration
	(grub_loader_set): likewise
	(grub_loader_unset): likewise
	(grub_loader_boot): likewise
	* conf/common.rmk: new module boot.mod
	(pkglib_MODULES): add boot.mod
	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
	(grub_emu_SOURCES): likewise
	* conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise

2009-04-15  Vladimir Serbinenko  <phcoder@gmail.com>

	use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes

	* kern/misc.c (grub_itoa): Removed function
	(grub_ltoa): likewise
	(grub_vsprintf): use grub_lltoa

2009-04-15  Vladimir Serbinenko  <phcoder@gmail.com>

	Restore grub-emu

	* conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
	* conf/i386-coreboot.rmk: likewise
	* conf/i386-ieee1275.rmk: likewise
	* conf/powerpc-ieee1275.rmk: likewise

2009-04-15  Felix Zielcke  <fzielcke@z-51.de>

	* INSTALL: Add that `./autogen.sh' needs to be run before
	`./configure.'.

2009-04-14  Bean  <bean123ch@gmail.com>

	* Makefile.in (pkglib_DATA): Add handler.lst.
	(handler.lst): New rule.

	* conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-efi.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.

	* genhandlerlist.sh: New file.

	* genmk.rb: Add rules to generate handler.lst.

	* include/grub/normal.h (grub_file_getline): New function definition.
	(read_handler_list): Likewise.
	(free_handler_list): Likewise.

	* include/grub/term.h (grub_term_register_input): Add name parameter
	for auto generation of handler.lst.
	(grub_term_register_output): Likewise.

	* normal/handler.c: New file.

	* normal/main.c (get_line): Renamed to grub_file_getline.
	(read_config_file): Use the newly renamed grub_file_getline.
	(read_command_list): Likewise.
	(read_fs_list): Likewise.
	(grub_normal_execute): Call read_handler_list to parse handler.lst.
	(GRUB_MOD_FINI): Call free_handler_list to free handler list.

	* term/efi/console.c (grub_console_init): Add name parameter for auto
	generation of handler.lst.
	* term/gfxterm.c: Likewise.
	* term/i386/pc/at_keyboard.c: Likewise.
	* term/i386/pc/console.c: Likewise.
	* term/i386/pc/serial.c: Likewise.
	* term/i386/pc/vesafb.c: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* term/i386/pc/vga_text.c: Likewise.
	* term/ieee1275/ofconsole.c: Likewise.
	* term/usb_keyboard.c: Likewise.

2009-04-14  Bean  <bean123ch@gmail.com>

	* util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
	properly with null character.

2009-04-14  Felix Zielcke  <fzielcke@z-51.de>

	* configure: Remove.
	* config.h.in: Likewise.
	* stamp-h.in: Likewise.
	* DISTLIST: Likewise.
	* conf/common.mk: Likewise.
	* conf/i386-coreboot.mk: Likewise.
	* conf/i386-efi.mk: Likewise.
	* conf/i386-ieee1275.mk: Likewise.
	* conf/i386.mk: Likewise.
	* conf/i386-pc.mk: Likewise.
	* conf/powerpc-ieee1275.mk: Likewise.
	* conf/sparc64-ieee1275.mk: Likewise.
	* conf/x86_64-efi.mk: Likewise.

	* INSTALL: Remove the sentence that Ruby and autoconf are only required if you
	develop on GRUB.

2009-04-14  John Stanley  <jpsinthemix@verizon.net>
	    David S. Miller  <davem@davemloft.net>

	* util/hostdisk.c (make_device_name): Fix buffer length
	calculations.

2009-04-14  Felix Zielcke  <fzielcke@z-51.de>

	* util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
	<sys/param.h> and <sys/sysctl.h>.
	(open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
	to add 0x10 to `kern.geom.debugflags' if it's not already set, before
	opening the device and reset them afterwards.

2009-04-13  Pavel Roskin  <proski@gnu.org>

	* conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
	Reported by John Stanley <jpsinthemix@verizon.net>

2009-04-13  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
	that name for menuentries when appropriate.

2009-04-13  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub.d/10_freebsd.in: Add a missing `fi'.

2009-04-13  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
	to Linux, simply abort telling the user it's no longer supported.

2009-04-13  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
	doesn't exist.  Check also for /boot/kernel/kernel.gz.  Print
	`freebsd_loadenv' only when devices.hints exist.

2009-04-13  Pavel Roskin  <proski@gnu.org>

	* term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.

2009-04-13  Felix Zielcke  <fzielcke@z-51.de>

	* util/i386/pc/grub-install.in (install_drive): Remove the BSD
	partition number.
	(grub_drive): Likewise.

2009-04-13  David S. Miller  <davem@davemloft.net>

	* kern/sparc64/ieee1275/ieee1275.c: New file.
	* include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
	IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
	IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
	IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
	(grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
	grub_ieee1275_alloc_physmem): Declare new exported functions.

	* include/grub/sparc64/ieee1275/loader.h: New file.
	* include/grub/sparc64/ieee1275/memory.h: Likewise.
	* include/grub/sparc64/kernel.h: Likewise.
	* loader/sparc64/ieee1275/linux.c: Likewise.

	* conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
	(grub_fstest_SOURCES): Likewise.

	* util/hostdisk.c (make_device_name): Do not make any assumptions
	about the length of drive names.

	* kern/dl.c (grub_dl_load_file): Close file immediately when
	we are done using it.

2009-04-12  David S. Miller  <davem@davemloft.net>

	* kern/misc.c (grub_ltoa): Fix cast when handling negative
	values.  Noticed by Pavel Roskin.

	* configure.ac: Check for __bswapsi2 and__bswapdi2 using
	target compiler.

	* genmk.rb: Add more flexible image type specification, also
	pass --strip-unneeded to objcopy.
	* conf/i386-pc.rmk: Use *_FORMAT.
	* conf/i386-pc.mk: Rebuilt.

	* disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
	(OFDISK_HASH_SZ): Define.
	(ofdisk_hash): New hash table.
	(ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
	(grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
	instead of device phandle which is not unique.

	* kern/sparc64/ieee1275/init.c: Delete, replace with...
	* kern/sparc64/ieee1275/crt0.S: assembler implementation.
	* include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
	(GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
	GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
	GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
	GRUB_KERNEL_MACHINE_DATA_END): Define.
	(grub_kernel_image_size, grub_total_module_size): Declare.

2009-04-12  Pavel Roskin  <proski@gnu.org>

	 * configure.ac: Change the logic when we check for target tools.
	 Do it when the target is specified and it's different from the
	 specified value of the host.

2009-04-11  Felix Zielcke  <fzielcke@z-51.de>

	* util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
	(grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
	GNU/kFreeBSD. Check if a device is a character device. Use
	DIOCGMEDIASIZE to get the size.
	(convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
	support for GNU/kFreeBSD.
	(grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
	is a character device instead of a block device. Add support for
	FreeBSD device names.

	* util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
	is a character device instead of a block device.

	* util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
	is a character device instead of a block device.

2009-04-11  Andrey Shuvikov  <mr_hyro@yahoo.com>

	* util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
	(grub_util_biosdisk_open) [__FreeBSD__]: Add support for
	FreeBSD. Check if a device is a character device. Use
	DIOCGMEDIASIZE to get the size.
	(convert_system_partition_to_system_disk) [__FreeBSD__]: Add
	support for FreeBSD.
	(grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
	is a character device instead of a block device. Add support for
	FreeBSD device names.

	* util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
	a character device instead of a block device.
	(grub_util_check_char_device): New function.

	* util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
	a character device instead of a block device.

	* include/grub/util/getroot.h (grub_util_check_char_device): New
	prototype.

2009-04-11  David S. Miller  <davem@davemloft.net>

	* conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
	static libgcc.
	* configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
	* include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
	function, if present.
	(__bswapdi2): Likewise.

	* include/grub/sparc64/ieee1275/boot.h: New file.
	* boot/sparc64/ieee1275/boot.S: Likewise.
	* boot/sparc64/ieee1275/diskboot.S: Likewise.

	* kern/misc.c (grub_ltoa): New function.
	(grub_vsprintf): Use it to format 'long' integers.

2009-04-10  David S. Miller  <davem@davemloft.net>

	* disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
	slots are of type grub_ieee1275_cell_t.
	(grub_nand_read): Likewise.
	* kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
	IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
	macros are used to compare values in arg/ret block of the call.
	(grub_ieee1275_finddevice, grub_ieee1275_get_property,
	grub_ieee1275_next_property, grub_ieee1275_get_property_length,
	grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
	grub_ieee1275_instance_to_path, grub_ieee1275_write,
	grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
	grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
	grub_ieee1275_close, grub_ieee1275_set_property,
	grub_ieee1275_set_color): All ieee1275 call arg slots are of type
	grub_ieee1275_cell_t.
	* kern/ieee1275/openfw.c (grub_map): Likewise.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
	grub_ieee1275_phandle_t): Define as grub_unit32_t type.

	* kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
	* kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
	(grub_devalias_iterate): Likewise.

2009-04-10  Vladimir Serbinenko  <phcoder@gmail.com>

	UFS improvements

	* fs/ufs.c (INODE_NBLOCKS): new definition
	(struct grub_ufs_dirent): added fields for non-BSD dirents
	(grub_ufs_get_file_block): fixed double indirect handling
	(grub_ufs_lookup_symlink): use more robust way to determine whether
	symlink is inline
	(grub_ufs_find_file): support for non-BSD dirents
	(grub_ufs_dir): support for non-BSD dirents

2009-04-10  Bean  <bean123ch@gnail.com>

	* include/grub/efi/api.h (grub_efi_configuration_table): Add packed
	attribute, otherwise the size would be wrong for i386 platform.

	* include/grub/pci.h (grub_pci_read_word): New inline function.
	(grub_pci_read_byte): Likewise.
	(grub_pci_write): Likewise.
	(grub_pci_write_word): Likewise.
	(grub_pci_write_byte): Likewise.

	* include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.

	* loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
	(find_framebuf): Scan pci to locate the frame buffer address.

	* commands/efi/fixvideo.c: New file.

	* commands/efi/loadbios.c: Likewise.

	* commands/memrw.c: Likewise.

	* util/grub-dumpbios.in: Likewise.

	* conf/common.rmk (grub-dumpbios): New utility.
	(pkglib_MODULES): New module memrw.mod.
	(memrw_mod_SOURCE): New macro.
	(memrw_mod_CFLAGS): Likewise.
	(memrw_mod_LDFLAGS): Likewise.

	* conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and
	fixvideo.mod.
	(loadbios_mod_SOURCE): New macro.
	(loadbios_mod_CFLAGS): Likewise.
	(loadbios_mod_LDFLAGS): Likewise.
	(fixvideo_mod_SOURCE): Likewise.
	(fixvideo_mod_CFLAGS): Likewise.
	(fixvideo_mod_LDFLAGS): Likewise.

	* conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and
	fixvideo.mod.
	(loadbios_mod_SOURCE): New macro.
	(loadbios_mod_CFLAGS): Likewise.
	(loadbios_mod_LDFLAGS): Likewise.
	(fixvideo_mod_SOURCE): Likewise.
	(fixvideo_mod_CFLAGS): Likewise.
	(fixvideo_mod_LDFLAGS): Likewise.

2009-04-08  Felix Zielcke  <fzielcke@z-51.de>

	* disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.

2009-04-07  David S. Miller  <davem@davemloft.net>

	* kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
	support for R_SPARC_OLO10 relocations.  Fix compile warning for
	R_SPARC_WDISP30 case.
	* kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.

2009-04-06  Pavel Roskin  <proski@gnu.org>

	* include/grub/misc.h (ARRAY_SIZE): New macro.
	* include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
	New macro.
	* loader/i386/linux.c (allocate_pages): Use free_pages().
	(grub_linux_unload): Don't use free_pages().
	(grub_linux_boot): Prevent accessing linux_vesafb_modes with a
	wrong index.  Treat all other modes as text modes.
	(grub_cmd_linux): Initialize vid_mode unconditionally to
	GRUB_LINUX_VID_MODE_NORMAL.  Recognize and support "vga=ask".

	* commands/help.c (print_command_help): Use cmd->prio, not
	cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.

2009-04-06  Vladimir Serbinenko  <phcoder@gmail.com>

	Parttool

	* parttool/pcpart.c: new file
	* commands/parttool.c: likewise
	* conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
	(parttool_mod_SOURCES): new variable
	(parttool_mod_CFLAGS): likewise
	(parttool_mod_LDFLAGS): likewise
	(pcpart_mod_SOURCES): likewise
	(pcpart_mod_CFLAGS): likewise
	(pcpart_mod_LDFLAGS): likewise
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
	and parttool/pcpart.c
	* conf/i386-efi.rmk: likewise
	* conf/i386-ieee1275.rmk: likewise
	* conf/i386-pc.rmk: likewise
	* conf/powerpc-ieee1275.rmk: likewise
	* conf/sparc64-ieee1275.rmk: likewise
	* conf/x86_64-ieee1275.rmk: likewise

2009-04-05  Vladimir Serbinenko  <phcoder@gmail.com>

	Support for mtime and further expandability of dir command

	* include/grub/lib/datetime.h: moved to ...
	* include/grub/datetime.h: ... moved here and added
	declaration of grub_unixtime2datetime. All users updated
	* include/grub/fs.h: new syntax for dir and mtime functions in
	struct grub_fs
	* include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
	and GRUB_FSHELP_FLAGS_MASK
	* commands/ls.c (grub_ls_list_files): Write mtime in long format
	* fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
	(grub_ext2_mtime): new function
	* fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
	(grub_hfsplus_mtime): new function
	* fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
	(GRUB_UFS_ATTR_FILE): likewise
	(GRUB_UFS_ATTR_LNK): likewise
	(struct grub_ufs_sblock): new fields mtime
	(grub_ufs_read_inode): new parameter to read inode to a separate buffer
	all users updated
	(grub_ufs_dir): mtime support
	(grub_ufs_mtime): new function
	* fs/affs.c (grub_affs_dir): use new dir syntax
	* fs/afs.c (grub_afs_dir): likewise
	* fs/cpio.c (grub_cpio_dir): likewise
	* fs/fat.c (grub_fat_find_dir): likewise
	* fs/hfs.c (grub_hfs_dir): likewise
	* fs/iso9660.c (grub_iso9660_dir): likewise
	* fs/jfs.c (grub_jfs_dir): likewise
	* fs/minix.c (grub_minix_dir): likewise
	* fs/ntfs.c (grub_ntfs_dir): likewise
	* fs/reiserfs.c (grub_reiserfs_dir): likewise
	* fs/sfs.c (grub_sfs_dir): likewise
	* fs/xfs.c (grub_xfs_dir): likewise
	* util/hostfs.c (grub_hostfs_dir): likewise
	* lib/datetime.c: moved to ...
	* normal/datetime.c: ... moved here
	(grub_unixtime2datetime): new function
	* kern/rescue.c (grub_rescue_print_files): use new dir syntax
	* normal/completion.c (iterate_dir): use new dir syntax
	* normal/misc.c (grub_normal_print_device_info): tell the
	last modification time of a volume
	* kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
	* conf/common.rmk: added lib/datetime.c to ls.mod
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
	(normal_mod_SOURCES): likewise
	(datetime_mod_SOURCES): Removed lib/datetime.c
	* conf/i386-efi.rmk: likewise
	* conf/i386-ieee1275.rmk: likewise
	* conf/i386-pc.rmk: likewise
	* conf/powerpc-ieee1275.rmk: likewise
	* conf/sparc64-ieee1275.rmk: likewise
	* conf/x86_64-efi.rmk: likewise

2009-04-05  Vladimir Serbinenko  <phcoder@gmail.com>

	Trim trailing spaces in FAT label and support mtools-like labels

	* fs/fat.c (grub_fat_iterate_dir): New function based
	on grub_fat_find_dir
	(grub_fat_find_dir): use grub_fat_iterate_dir
	(grub_fat_label): likewise

2009-04-04  Vladimir Serbinenko  <phcoder@gmail.com>

	* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
	and command.h
	remove extraneous kernel_elf_HEADERS

2009-04-04  Bean  <bean123ch@gnail.com>

	* include/grub/util/misc.h: Add dummy function fsync for mingw.

	* util/misc.c: Likewise.

2009-04-04  Yoshinori K. Okuji  <okuji@enbug.org>

	* loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
	instead of grub_printf.

2009-04-03  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/linux.c (grub_linux_setup_video): Fill
	`params->{red,green,blue,reserved}_{mask_size,field_pos}' with
	values from `mode info' structure instead of hardcoded
	values.

2009-04-01  Pavel Roskin  <proski@gnu.org>

	* Makefile.in: Remove all references to MODULE_LDFLAGS, it's
	unused now.
	* genmk.rb: Likewise.
	* configure.ac: Likewise.

2009-04-01  Manoel Abranches  <mrabran@linux.vnet.ibm.com>

	* aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
	TARGET_LDFLAGS.  This corrects a problem with grub-mkelfimage.

2009-04-01  David S. Miller  <davem@davemloft.net>

	* normal/sparc64/setjmp.S: Fix setjmp implementation.
	* include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
	(grub_setjmp): Mark with 'returns_twice' attribute.
	* include/grub/i386/setjmp.h (grub_setjmp): Likewise
	* include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
	* include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.

2009-04-01  Robert Millan  <rmh@aybabtu.com>

	Reapply fix from 2008-07-28 which was accidentally reverted; also
	perform the same fix to a similar check in same function.

	* disk/raid.c (grub_raid_scan_device): Do not abort when two disks
	with the same number are found, just use issue a warning with
	grub_dprintf(), as this error has been reported to be non-fatal.

2009-03-31  Pavel Roskin  <proski@gnu.org>

	* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
	for cross-compilation.

2009-03-30  Robert Millan  <rmh@aybabtu.com>

	Fix i386-ieee1275 build.

	* include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
	Remove declaration.

2009-03-30  Pavel Roskin  <proski@gnu.org>

	* fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
	(grub_hfs_cmp_catkeys): ... this.  Don't assume strings to be
	zero-terminated, rely only on the strlen value.  Fix comparison
	of strings differing in length.

2009-03-30  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/linux.c (grub_cmd_linux): Check for zImage before
	checking for abi version.  Improve error messages on BIOS to notify
	user about `linux16' command.

2009-03-29  Vladimir Serbinenko  <phcoder@gmail.com>

	Leak fixes

	* kern/disk.c (grub_disk_cache_store): Invalidate previous cache
	in case of collision
	* disk/scsi.c (grub_scsi_open): free scsi in case of error

2009-03-29  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
	set `vid_mode' accordingly.
	(grub_linux_boot): Process `vid_mode' and set video mode.

2009-03-29  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in (linux_entry): New function.
	Factorize generation of Linux boot entries.

2009-03-29  Yoshinori K. Okuji  <okuji@enbug.org>

	Make the format of Environment Block plain text. The boot loader
	part is not tested well yet.

	* util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
	(buffer): Removed.
	(envblk): Likewise.
	(usage): Remove "info" and "clear". Add "unset". Update the
	description of "set", as this does not delete variables any
	longer.
	(create_envblk_file): Complete rewrite.
	(open_envblk_file): Likewise.
	(cmd_info): Removed.
	(cmd_list): Likewise.
	(cmd_set): Likewise.
	(cmd_clear): Likewise.
	(list_variables): New function.
	(write_envblk): Likewise.
	(set_variables): Likewise.
	(unset_variables): Likewise.
	(main): Complete rewrite.

	* commands/loadenv.c (buffer): Removed.
	(envblk): Likewise.
	(open_envblk_file): New function.
	(read_envblk_file): Complete rewrite.
	(grub_cmd_load_env): Likewise.
	(grub_cmd_list_env): Likewise.
	(struct blocklist): New struct.
	(free_blocklists): New function.
	(check_blocklists): Likewise.
	(write_blocklists): Likewise.
	(grub_cmd_save_env): Complete rewrite.

	* include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
	a plain text signature.
	(GRUB_ENVBLK_MAXLEN): Removed.
	(struct grub_envblk): Complete rewrite.
	(grub_envblk_find): Removed.
	(grub_envblk_insert): Likewise.
	(grub_envblk_open): New prototype.
	(grub_envblk_set): Likewise.
	(grub_envblk_delete): Put const to VALUE.
	(grub_envblk_iterate): Put const to NAME and VALUE.
	(grub_envblk_close): New prototype.
	(grub_envblk_buffer): New inline function.
	(grub_envblk_size): Likewise.

	* lib/envblk.c: Include grub/mm.h.
	(grub_env_find): Removed.
	(grub_envblk_open): New function.
	(grub_envblk_close): Likewise.
	(escaped_value_len): Likewise.
	(find_next_line): Likewise.
	(grub_envblk_insert): Removed.
	(grub_envblk_set): New function.
	(grub_envblk_delete): Complete rewrite.
	(grub_envblk_iterate): Likewise.

2009-03-28  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
	(linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
	variables.  Use 16-bit loader.
	(linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
	loader.
	* kern/i386/loader.S (grub_linux_boot): Rename to ...
	(grub_linux16_boot): ... this.  Update all users.
	* loader/i386/linux.c (grub_linux32_boot): Rename to ...
	(grub_linux_boot): ... this.  Update all users.

	* loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
	(GRUB_MOD_INIT(linux16)): ... this.  Rename `linux' and `initrd'
	commands to `linux16' and `initrd16'.
	(GRUB_MOD_FINI(linux)): Rename to ...
	(GRUB_MOD_FINI(linux16)): ... this.

2009-03-24  Pavel Roskin  <proski@gnu.org>

	* genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
	not just for compilation.

2009-03-22  Vladimir Serbinenko  <phcoder@gmail.com>

	Move multiboot helper out of kernel

	* conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
	`loader/i386/multiboot_helper.S'.
	* conf/i386-coreboot.rmk: Likewise
	* conf/i386-ieee1275.rmk: Likewise

	* kern/i386/loader.S: Move multiboot helpers from here...
	* loader/i386/multiboot_helper.S: ...moved here
	* include/grub/i386/loader.h: Move declarations of multiboot
	helpers from here...
	* include/grub/i386/multiboot.h: ...moved here
	* loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h

2009-03-22  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/env.c (grub_env_context_open): Added an argument to specify
	whether a new context inherits exported variables from current
	one. This is useful when making a sandbox to interpret a config
	file.
	All callers updated.

	* include/grub/env.h (grub_env_context_open): Updated the prototype.

2009-03-22  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/env.c (grub_env_context_close): Fix memory leaks.

2009-03-22  Yoshinori K. Okuji  <okuji@enbug.org>

	* normal/main.c (grub_normal_execute): Added an argument
	BATCH to specify if an interactive interface should be provided
	after reading a config file.
	All callers updated.
	(read_command_list): Prevent being executed twice.
	(read_fs_list): Likewise.

	* include/grub/normal.h (grub_normal_execute): Updated the
	prototype.

2009-03-22  Pavel Roskin  <proski@gno.org>

	* kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
	_start.
	* kern/i386/pc/startup.S: Likewise.
	* kern/i386/efi/startup.S: Likewise.
	* kern/i386/ieee1275/startup.S: Likewise.
	* kern/i386/coreboot/startup.S: Likewise.
	* kern/x86_64/efi/startup.S: Likewise.

	* aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
	* configure.ac: Don't call grub_CHECK_START_SYMBOL.
	* kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.

2009-03-21  Vladimir Serbinenko  <phcoder@gmail.com>

	Bugfixes in multiboot for bugs uncovered by solaris kernel.

	* loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
	limit detection.
	Use vaddr of correct segment for entry_point.

2009-03-21  Bean  <bean123ch@gmail.com>

	* commands/blocklist.c: Add include file <grub/command.h>, remove
	<grub/normal.h> and <grub/arg.h>.
	(grub_cmd_blocklist): Use the new command interface.
	(GRUB_MOD_INIT): Likewise.
	(GRUB_MOD_FINI): Likewise.
	* commands/boot.c: Likewise.
	* commands/cat.c: Likewise.
	* commands/cmp.c: Likewise.
	* commands/configfile.c: Likewise.
	* commands/crc.c: Likewise.
	* commands/echo.c: Likewise.
	* commands/halt.c: Likewise.
	* commands/handler.c: Likewise.
	* commands/hdparm.c: Likewise.
	* commands/help.c: Likewise.
	* commands/hexdump.c: Likewise.
	* commands/loadenv.c: Likewise.
	* commands/ls.c: Likewise.
	* commands/lsmmap.c: Likewise.
	* commands/lspci.c: Likewise.
	* commands/loadenv.c: Likewise.
	* commands/read.c: Likewise.
	* commands/reboot.c: Likewise.
	* commands/search.c: Likewise.
	* commands/sleep.c: Likewise.
	* commands/test.c: Likewise.
	* commands/usbtest.c: Likewise.
	* commands/videotest.c: Likewise.
	* commands/i386/cpuid.c: Likewise.
	* commands/i386/pc/halt.c: Likewise.
	* commands/i386/pc/play.c: Likewise.
	* commands/i386/pc/pxecmd.c: Likewise.
	* commands/i386/pc/vbeinfo.c: Likewise.
	* commands/i386/pc/vbetest.c: Likewise.
	* commands/ieee1275/suspend.c: Likewise.
	* disk/loopback.c: Likewise.
	* font/font_cmd.c: Likewise.
	* hello/hello.c: Likewise.
	* loader/efi/appleloader.c: Likewise.
	* loader/efi/chainloader.c: Likewise.
	* loader/i386/bsd.c: Likewise.
	* loader/i386/efi/linux.c: Likewise.
	* loader/i386/ieee1275/linux.c: Likewise.
	* loader/i386/linux.c: Likewise.
	* loader/i386/pc/chainloader.c: Likewise.
	* loader/i386/pc/linux.c: Likewise.
	* loader/powerpc/ieee1275/linux.c: Likewise.
	* loader/multiboot_loader.c: Likewise.
	* term/gfxterm.c: Likewise.
	* term/i386/pc/serial.c: Likewise.
	* term/terminfo.c: Likewise.

	* term/i386/pc/vesafb.c: Removed <grub/arg.h>.
	* term/i386/pc/vga.c: Likewise.
	* video/readers/jpeg.c: Likewise.
	* video/readers/png.c: Likewise.
	* video/readers/tga.c: Likewise.

	* util/grub-fstest (cmd_loopback): Removed.
	(cmd_blocklist): Likewise.
	(cmd_ls): Likewise.
	(grub_register_command): Likewise.
	(grub_unregister_command): Likewise.
	(execute_command): Use grub_command_find to locate command and execute
	it.

	* include/grub/efi/chainloader.h: Removed.
	* loader/efi/chainloader_normal.c: Likewise.
	* loader/i386/bsd_normal.c: Likewise.
	* loader/i386/pc/chainloader_normal.c: Likewise.
	* loader/i386/pc/multiboot_normal.c: Likewise.
	* loader/linux_normal.c: Likewise.
	* loader/multiboot_loader_normal.c: Likewise.
	* loader/powerpc/ieee1275/linux_normal.c: Likewise.

	* gencmdlist.sh: Scan new registration command grub_register_extcmd
	and grub_register_command_p1.

	* conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
	kern/command.c, lib/arg.c and commands/extcmd.c.
	(pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
	(minicmd_mod_SOURCES): New variable.
	(minicmd_mod_CFLAGS): Likewise.
	(minicmd_mod_LDFLAGS): Likewise.
	(extcmd_mod_SOURCES): Likewise.
	(extcmd_mod_CFLAGS): Likewise.
	(extcmd_mod_LDFLAGS): Likewise.
	(boot_mod_SOURCES): Removed.
	(boot_mod_CFLAGS): Likewise.
	(boot_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
	kern/corecmd.c.
	(kernel_img_HEADERS): Add command.h.
	(grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
	commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
	and lib/arg.c.
	(pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
	_multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
	remove the corresponding normal mode command.
	(normal_mod_SOURCES): Remove normal/arg.c.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.

	* include/grub/arg.h: Move from here ...
	* include/grub/lib/arg.h: ... to here.

	* normal/arg.c: Move from here ...
	* lib/arg.c: ... to here.

	* commands/extcmd.c: New file.
	* commands/minicmd.c: Likewise.
	* include/grub/command.h: Likewise.
	* include/grub/extcmd.h: Likewise.
	* kern/command.c: Likewise.
	* kern/corecmd.c: Likewise.

	* kern/list.c (grub_list_iterate): Return int instead of void.
	(grub_list_insert): New function.
	(grub_prio_list_insert): Likewise.

	* kern/rescue.c (grub_rescue_command): Removed.
	(grub_rescue_command_list): Likewise.
	(grub_rescue_register_command): Likewise.
	(grub_rescue_unregister_command): Likewise.
	(grub_rescue_cmd_boot): Move to minicmd.c
	(grub_rescue_cmd_help): Likewise.
	(grub_rescue_cmd_info): Likewise.
	(grub_rescue_cmd_boot): Likewise.
	(grub_rescue_cmd_testload): Likewise.
	(grub_rescue_cmd_dump): Likewise.
	(grub_rescue_cmd_rmmod): Likewise.
	(grub_rescue_cmd_lsmod): Likewise.
	(grub_rescue_cmd_exit): Likewise.
	(grub_rescue_print_devices): Moved to corecmd.c.
	(grub_rescue_print_files): Likewise.
	(grub_rescue_cmd_ls): Likewise.
	(grub_rescue_cmd_insmod): Likewise.
	(grub_rescue_cmd_set): Likewise.
	(grub_rescue_cmd_unset): Likewise.
	(attempt_normal_mode): Use grub_command_find to get normal module.
	(grub_enter_rescue_mode): Use grub_register_core_commands to register
	commands, remove grub_rescue_register_command calls.

	* normal/command.c (grub_register_command): Removed.
	(grub_unregister_command): Likewise.
	(grub_command_find): Likewise.
	(grub_iterate_commands): Likewise.
	(rescue_command): Likewise.
	(export_command): Moved to corecmd.c.
	(set_command): Removed.
	(unset_command): Likewise.
	(insmod_command): Likewise.
	(rmmod_command): Likewise.
	(lsmod_command): Likewise.
	(grub_command_init): Likewise.

	* normal/completion.c (iterate_command): Use cmd->prio to check for
	active command.
	(complete_arguments): Use grub_extcmd_t structure to find options.
	(grub_normal_do_completion): Change function grub_iterate_commands to
	grub_command_iterate.

	* normal/execute.c (grub_script_execute_cmd): No need to parse
	argument here.

	* normal/main.c (grub_dyncmd_dispatcher): New function.
	(read_command_list): Register unload commands as dyncmd.
	(grub_cmd_normal): Use new command interface, register rescue,
	unregister normal at entry, register normal, unregister rescue at exit.

	* include/grub/list.h (grub_list_test_t): New type.
	(grub_list_iterate): Return int instead of void.
	(grub_list_insert): New function.
	(GRUB_AS_NAMED_LIST_P): New macro.
	(GRUB_AS_PRIO_LIST): Likewise.
	(GRUB_AS_PRIO_LIST_P): Likewise.
	(GRUB_PRIO_LIST_PRIO_MASK): New constant.
	(GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
	(grub_prio_list): New structure.
	(grub_prio_list_insert): New function.
	(grub_prio_list_remove): New inline function.

	* include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
	(GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
	(GRUB_COMMAND_FLAG_MENU): Likewise.
	(GRUB_COMMAND_FLAG_BOTH): Likewise.
	(GRUB_COMMAND_FLAG_TITLE): Likewise.
	(GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
	(GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
	(GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
	(grub_command): Likewise.
	(grub_register_command): Likewise.
	(grub_command_find): Likewise.
	(grub_iterate_commands): Likewise.
	(grub_command_init): Likewise.
	(grub_arg_parse): Likewise.
	(grub_arg_show_help): Likewise.

	* include/grub/rescue.h (grub_rescue_register_command): Removed.
	(grub_rescue_unregister_command): Likewise.

	* include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
	grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
	grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.

	* include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
	grub_rescue_cmd_initrd.
	* include/grub/i386/loader.h: Likewise.
	* include/grub/x86_64/loader.h: Likewise.

	* include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.

2009-03-21  Bean  <bean123ch@gmail.com>

	* util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
	instead of stat in mingw environment.

	* util/misc.c (grub_millisleep): Use Sleep in mingw environment.

	* aclocal.m4 (grub_CHECK_LINK_DIR): New function.

	* configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
	AC_CONFIG_LINKS.

2009-03-21  Bean  <bean123ch@gmail.com>

	* fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
	out of range error.

2009-03-18  Michel Dänzer  <michel@daenzer.net>

	* fs/ext2.c (grub_ext2_read_block): Take endianness into account when
	checking inode flags for EXT4_EXTENTS_FLAG.

2009-03-18  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/linux.c: Include `<grub/video.h>' and
	`<grub/i386/pc/vbe.h>'..
	(grub_linux_setup_video): New function.  Loosely based on the EFI one.
	(grub_linux32_boot): Attempt to configure video settings with
	grub_linux_setup_video().
	(grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
	to avoid grub_console_fini() which would step out of graphical mode
	unconditionally.

2009-03-14  Robert Millan  <rmh@aybabtu.com>

	Fix build on powerpc.
	* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.

2009-03-12  Vladimir Serbinenko  <phcoder@gmail.com>

	* term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
	background image command.

2009-03-12  Colin D Bennett  <colin@gibibit.com>

	* term/gfxterm.c (draw_cursor): Ensure character is redrawn.
	(grub_gfxterm_putchar): Extract pairs of identical calls to
	draw_cursor out of conditional blocks.

2009-03-11  Pavel Roskin  <proski@gnu.org>

	* fs/hfs.c (grub_hfs_strncasecmp): New function.
	(grub_hfs_cmp_catkeys): Use HFS specific string comparison.

2009-03-11  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/multiboot_elfxx.c
	(CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.

2009-03-11  Felix Zielcke  <fzielcke@z-51.de>

	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
	`kern/handler.c'.

2009-03-11  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/multiboot.c (code_size): New variable.
	(grub_multiboot): Define offsets by adding to `code_size' rather
	than subtracting from `grub_multiboot_payload_size'.  Provide
	4-byte alignment to MBI and others by increasing
	`boot_loader_name_length' appropriately.

	* loader/i386/multiboot_elfxx.c
	(CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.

2009-03-09  Felix Zielcke  <fzielcke@z-51.de>

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
	`fs/ext2.c'.

2009-03-08  Robert Millan  <rmh@aybabtu.com>

	Make loader/i386/linux.c usable on i386-pc again.

	* kern/i386/pc/init.c (grub_machine_init): Disable addition of low
	memory to heap.
	* loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
	`#error' stanza.

2009-03-07  Bean  <bean123ch@gmail.com>

	* loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
	allocation.

2009-03-06  Robert Millan  <rmh@aybabtu.com>

	Fix display issue on terminals with screen size other than 80x25
	(e.g. gfxterm with resolution higher than 640x480).

	* normal/main.c (grub_normal_init_page): Display title text in a
	position relative to the center of the terminal instead of relying
	on a hardcoded offset.

2009-03-04  Robert Millan  <rmh@aybabtu.com>

	Filter /etc/grub.d/10_* so that only add-ons for native kernels are
	installed.

	* Makefile.in (host_kernel): New variable.
	* conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
	scripts instead of just the windows one.
	* configure.ac: Initialize and AC_SUBST `host_kernel'.

2009-03-04  Felix Zielcke  <fzielcke@z-51.de>

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
	`kern/handler.c'.
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.

2009-03-04  Felix Zielcke  <fzielcke@z-51.de>

	* partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
	or if there's no space for the disk label and print the partition number on a
	invalid magic.

2009-03-04  Felix Zielcke  <fzielcke@z-51.de>

	* util/misc.c: Include <time.h>.
	(grub_millisleep): New function.

2009-03-04  Bean  <bean123ch@gmail.com>

	* configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
	another option -mno-red-zone.

	* commands/handler.c: Change module description.

	* kern/handler.c: Add missing space at the end of description line.

	* kern/list.c: Likewise.

2009-03-03  Robert Millan  <rmh@aybabtu.com>

	Move more components to the relocation area, and fix mbi pointer
	handling to use the destination rather than the origin (thanks to
	Vladimir Serbinenko for spotting).

	* loader/i386/multiboot.c (mbi_dest): New variable.
	(grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
	(grub_multiboot): Put cmdline, boot_loader_name and mbi in the
	relocation area.

2009-03-01  Bean  <bean123ch@gmail.com>

	* include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
	(GRUB_EFI_ACPI_TABLE_GUID): Likewise.
	(GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
	(GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.

	* loader/i386/efi/linux.c (acpi_guid): New variable.
	(acpi_guid): Likewise.
	(EBDA_SEG_ADDR): New constant.
	(LOW_MEM_ADDR): Likewise.
	(FAKE_EBDA_SEG): Likewise.
	(fake_bios_data): New function.
	(grub_linux_boot): Call fake_bios_data.

2009-03-01  Bean  <bean123ch@gmail.com>

	* commands/terminal.c: Removed.

	* commands/handler.c: New file.

	* include/grub/list.h: Likewise.

	* include/grub/handler.h: Likewise.

	* kern/list.c: Likewise.

	* kern/handler.c: Likewise.

	* kern/term.h: Include header file <grub/handler.h>.
	(grub_term_input): Move next field to the beginning.
	(grub_term_output): Likewise.
	(grub_term_input_class): New variable.
	(grub_term_output_class): Likewise.
	(grub_term_register_input): Changed to inline function.
	(grub_term_register_output): Likewise.
	(grub_term_unregister_input): Likewise.
	(grub_term_unregister_output): Likewise.
	(grub_term_set_current_input): Likewise.
	(grub_term_set_current_output): Likewise.
	(grub_term_get_current_input): Likewise.
	(grub_term_get_current_output): Likewise.
	(grub_term_iterate_input): Removed.
	(grub_term_iterate_output): Likewise.

	* kern/term.c (grub_term_list_input): Removed.
	(grub_term_list_output): Likewise.
	(grub_term_input_class): New variable.
	(grub_term_output_class): Likewise.
	(grub_cur_term_input): Change variable as macro.
	(grub_cur_term_output): Likewise.
	(grub_term_register_input): Removed.
	(grub_term_register_output): Likewise.
	(grub_term_unregister_input): Likewise.
	(grub_term_unregister_output): Likewise.
	(grub_term_set_current_input): Likewise.
	(grub_term_set_current_output): Likewise.
	(grub_term_iterate_input): Likewise.
	(grub_term_iterate_output): Likewise.
	(grub_term_get_current_input): Likewise.
	(grub_term_get_current_output): Likewise.

	* util/grub-editenv.c: Include header file <grub/handler.h>.
	(grub_term_get_current_input): Removed.
	(grub_term_get_current_output): Likewise.
	(grub_term_input_class): New variable.
	(grub_term_output_class): Likewise.

	* util/grub-fstest.c (grub_term_get_current_input): Removed.
	(grub_term_get_current_output): Likewise.
	(grub_term_input_class): New variable.
	(grub_term_output_class): Likewise.

	* util/grub-probe.c (grub_term_get_current_input): Removed.
	(grub_term_get_current_output): Likewise.
	(grub_term_input_class): New variable.
	(grub_term_output_class): Likewise.

	* util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
	(grub_term_get_current_output): Likewise.
	(grub_term_input_class): New variable.
	(grub_term_output_class): Likewise.

	* conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
	(terminal_mod_SOURCES): Likewise.
	(terminal_mod_CFLAGS): Likewise.
	(terminal_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
	handler.c.
	(kernel_img_SOURCES): Add list.c and handler.c.
	(kernel_img_HEADERS): Add list.h and handler.h.

	* conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
	handler.c.
	(kernel_mod_SOURCES): Add list.c and handler.c.
	(kernel_mod_HEADERS): Add list.h and handler.h.

	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
	handler.c.
	(kernel_elf_SOURCES): Add list.c and handler.c.
	(kernel_elf_HEADERS): Add list.h and handler.h.

	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
	handler.c.
	(kernel_elf_SOURCES): Add list.c and handler.c.
	(kernel_elf_HEADERS): Add list.h and handler.h.

	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
	handler.c.
	(kernel_mod_SOURCES): Add list.c and handler.c.
	(kernel_mod_HEADERS): Add list.h and handler.h.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
	handler.c.
	(kernel_elf_SOURCES): Add list.c and handler.c.
	(kernel_elf_HEADERS): Add list.h and handler.h.

2009-02-27  Robert Millan  <rmh@aybabtu.com>

	Factorize elf32 / elf64 code in Multiboot loader.  This will
	prevent it from getting out of sync again.

	* loader/i386/multiboot.c (grub_multiboot_is_elf32,
	grub_multiboot_load_elf32, grub_multiboot_is_elf64,
	grub_multiboot_load_elf64): Move from here ...
	* loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
	grub_multiboot_load_elf): ... to here (new file).

2009-02-27  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in: Rename "single-user mode" to
	"recovery mode".

2009-02-27  Vladimir Serbinenko  <phcoder@gmail.com>

	Don't leak in SCSI code.
	* disk/scsi.c (grub_scsi_close): free `scsi'.

2009-02-27  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c: Move from here ...
	* loader/i386/multiboot.c: ... to here.  Update all users.

2009-02-27  Robert Millan  <rmh@aybabtu.com>

	Patch from Alexandre Bique <bique.alexandre@gmail.com>
	* util/i386/pc/grub-setup.c (setup): Fix directory path.

2009-02-27  Krzysztof Smiechowicz  <deadwood@wp.pl>

	* fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
	b-tree.

2009-02-27  Robert Millan  <rmh@aybabtu.com>

	* kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
	`0x' qualifier as 0 when base is specified as parameter).

2009-02-24  Bean  <bean123ch@gmail.com>

	* configure.ac: Check for -mcmodel=large in x86_64 target.

	* include/grub/efi/api.h (efi_call_10): New macro.
	(efi_wrap_10): New function.

	* include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
	(GRUB_PE32_REL_BASED_HIGH): Likewise.
	(GRUB_PE32_REL_BASED_LOW): Likewise.
	(GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
	(GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
	(GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
	(GRUB_PE32_REL_BASED_SECTION): Likewise.
	(GRUB_PE32_REL_BASED_REL): Likewise.
	(GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
	(GRUB_PE32_REL_BASED_DIR64): Likewise.
	(GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.

	* kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
	issue.

	* kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
	(efi_wrap_10): New function.

	* kern/x86_64/efi/startup.S (codestart): Use relative addressing.

	* loader/efi/appleloader.c (devpath_5): Add support for late 2008
	MB/MBP model (NV chipset).
	(devdata_devs): Add devpath_5 to the list.

	* load/i386/efi/linux.c (video_base): Remove variable.
	(RGB_MASK): New macro.
	(RGB_MAGIC): Likewise.
	(LINE_MIN): Likewise.
	(LINE_MAX): Likewise.
	(FBTEST_STEP): Likewise.
	(FBTEST_COUNT): Likewise.
	(fb_list): New variable.
	(grub_find_video_card): Remove function.
	(find_framebuf): New function.
	(grub_linux_setup_video): Use find_framebuf to get frame buffer and
	line length.

	* util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
	problem for x86_64.

2009-02-22  Vesa Jääskeläinen  <chaac@nic.fi>

	Patch #25624 by Kevin Lacquement <kevin@lacqui>.

	* util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
	coding tool name.

2009-02-22  Robert Millan  <rmh@aybabtu.com>

	* include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
	* loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
	in our relocation, instead of using it directly from heap.  Also
	use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.

2009-02-21  Robert Millan  <rmh@aybabtu.com>

	Implement USB keyboard support (based on patch by Marco Gerards)

	* conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
	(usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
	(usb_keyboard_mod_LDFLAGS): New variables.

	* term/usb_keyboard.c: New file.

2009-02-14  Vladimir Serbinenko  <phcoder@gmail.com>

	Corrected wrong declaration

	* kern/disk.c: corrected declaration of grub_disk_ata_pass_through.

2009-02-14  Christian Franke  <franke@computer.org>

	* commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
	(grub_lspci_iter): Print class code and programming interface byte.

2009-02-14  Christian Franke  <franke@computer.org>

	* gendistlist.sh: Ignore `.svn' directories.

2009-02-14  Felix Zielcke  <fzielcke@z-51.de>

	* fs/fat.c: Add 2009 to Copyright line.

2009-02-14  Christian Franke  <franke@computer.org>

	* commands/hdparm.c: New file.  Provides `hdparm' command
	which sends ATA commands via grub_disk_ata_pass_through ().

	* conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.

	* disk/ata.c: Include <grub/ata.h>.  Move <grub/misc.h>
	and <grub/cpu/io.h> to include/grub/ata.h.
	(enum grub_ata_addressing_t): Move to include/grub/ata.h.
	(GRUB_CDROM_SECTOR_SIZE): Remove.
	(GRUB_ATA_*): Move to include/grub/ata.h.
	(GRUB_ATAPI_*): Likewise.
	(enum grub_ata_commands): Likewise.
	(enum grub_ata_timeout_milliseconds): Likewise.
	(struct grub_ata_device): Likewise.
	(grub_ata_regset): Likewise.
	(grub_ata_regget): Likewise.
	(grub_ata_regset2): Likewise.
	(grub_ata_regget2): Likewise.
	(grub_ata_check_ready): Likewise.
	(grub_ata_wait_not_busy): Remove static, exported in
	include/grub/ata.h.
	(grub_ata_wait_drq): Likewise.
	(grub_ata_pio_read): Likewise.

	* disk/ata_pthru.c: New file.  Provides grub_ata_pass_through ()
	function for hdparm.mod.

	* include/grub/ata.h: New file, contains declarations from
	disk/ata.c.
	(enum grub_ata_commands): Add new commands for commands/hdparm.c.

	* include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
	(grub_disk_ata_pass_through): New exported variable.

	* kern/disk.c (grub_disk_ata_pass_through): New variable.

2009-02-13  Colin D Bennett  <colin@gibibit.com>

	Support multiple fallback entries, and provide an API to support
	executing default+fallback menu entries.  Renamed the `terminal' menu
	viewer to `text'.

	* include/grub/normal.h (grub_normal_text_menu_viewer): New global
	variable declaration.
	(grub_menu_execute_callback): New structure declaration.
	(grub_menu_execute_callback_t): New typedef.
	(grub_menu_execute_with_fallback): New function declaration.
	(grub_menu_get_entry): Likewise.
	(grub_menu_get_timeout): Likewise.
	(grub_menu_set_timeout): Likewise.

	* normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.

	* normal/menu.c (grub_wait_after_message): Moved to
	`normal/menu_text.c'.
	(draw_border): Likewise.
	(print_message): Likewise.
	(print_entry): Likewise.
	(print_entries): Likewise.
	(grub_menu_init_page): Likewise.
	(get_entry_number): Likewise.
	(print_timeout): Likewise.
	(run_menu): Likewise.
	(grub_menu_execute_entry): Likewise.
	(show_text_menu): Likewise.
	(get_and_remove_first_entry_number): New function.
	(grub_menu_execute_with_fallback): Likewise.
	(get_entry): Renamed to ...
	(grub_menu_get_entry): .. this and made it global.
	(get_timeout): Renamed to ...
	(grub_menu_get_timeout): ... this and made it global.
	(set_timeout): Renamed to ...
	(grub_menu_set_timeout): ... this and made it global.
	(grub_normal_terminal_menu_viewer): Renamed to ...
	(grub_normal_text_menu_viewer): ... this.

	* normal/menu_text.c: New file.  Extracted text-menu-specific code
	from normal/menu.c.

	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
	(normal_mod_SOURCES): Likewise.

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

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

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

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

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

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

2009-02-11  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/00_header.in: Update old reference to `font' command.

2009-02-10  Felix Zielcke  <fzielcke@z-51.de>

	* fs/fat.c (grub_fat_mount): Fix wrong comparison.

	Based on patch from Javier Martín.

2009-02-09  Felix Zielcke  <fzielcke@z-51.de>

	* conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
	to avoid false positives with FAT.
	(grub_fstest_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.

2009-02-09  Felix Zielcke  <fzielcke@z-51.de>

	* fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
	bpb.version_specific.fat12_or_fat16.fstype and
	bpb.version_specific.fat32.fstype.

2009-02-08  Robert Millan  <rmh@aybabtu.com>

	* fs/tar.c: Replace "fs/cpio.c" with "cpio.c".

2009-02-08  Robert Millan  <rmh@aybabtu.com>

	* Makefile.in (host_os, host_cpu): New variables.
	(target_os): Remove.  Update all users.

2009-02-08  Marco Gerards  <marco@gnu.org>

	* Makefile.in (enable_grub_emu_usb): New variable.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
	(grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
	`util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
	(grub_emu_LDFLAGS): Add `$(LIBUSB)'.
	(pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
	`usbtest.mod' and `usbms.mod'.
	(usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
	(usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
	(uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
	(ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
	(usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
	variables.

	* disk/usbms.c: New file.

	* include/grub/usb.h: Likewise.

	* include/grub/usbtrans.h: Likewise.

	* include/grub/usbdesc.h: Likewise.

	* bus/usb/usbtrans.c: Likewise.

	* bus/usb/ohci.c: Likewise.

	* bus/usb/uhci.c: Likewise.

	* bus/usb/usbhub.c: Likewise.

	* bus/usb/usb.c: Likewise.

	* commands/usbtest.c: Likewise.

	* util/usb.c: Likewise.

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

	* configure.ac: Test for libusb presence.

	* util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.

2009-02-08  Vesa Jääskeläinen  <chaac@nic.fi>

	* kern/mm.c: Add more comments.

2009-02-08  Robert Millan  <rmh@aybabtu.com>

	Patch from Javier Martín.
	* fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
	`EXT4_FEATURE_INCOMPAT_FLEX_BG'.

2009-02-08  Robert Millan  <rmh@aybabtu.com>

	* fs/cpio.c: Split tar functionality to ...
	* fs/tar.c: ... here (new file).  Update all users.

2009-02-07  Robert Millan  <rmh@aybabtu.com>

	* fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
	backward-incompatible features.

	Based on patch from Javier Martín, with some adjustments.

2009-02-07  Michael Scherer  <misc@mandriva.org>

	* fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.

2009-02-07  Robert Millan  <rmh@aybabtu.com>

	* conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
	position of `disk/lvm.c' to ensure grub_init_all() always picks it
	after the RAID stuff.

2009-02-05  Vesa Jääskeläinen  <chaac@nic.fi>

	Fixes problem when running vbetest command as reported by
	Vladimir Serbinenko <phcoder@gmail.com>.

	* (grub_vbe_set_video_mode): Fixed problem with text modes.

2009-02-04  Felix Zielcke  <fzielcke@z-51.de>

	util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
	/dev/md/NpN style mdraid devices.

2009-02-03  Felix Zielcke  <fzielcke@z-51.de>

	* util/unifont2pff.rb: Remove.

2009-02-03  Felix Zielcke  <fzielcke@z-51.de>

	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
	`#'.

2009-02-03  Felix Zielcke  <fzielcke@z-51.de>

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.

2009-02-02  Christian Franke  <franke@computer.org>

	* lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.

2009-02-01  Felix Zielcke  <fzielcke@z-51.de>

	* INSTALL: Note that we now require at least autoconf 2.59 and
	that LZO is optional.

2009-02-01  Vesa Jääskeläinen  <chaac@nic.fi>

	Base on patch on bug #24154 created by Tomas Tintera
	<trosos@seznam.cz>.

	* video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.

2009-02-01  Vesa Jääskeläinen  <chaac@nic.fi>

	Based on patch on bug #25318 created by Bernhard Rosenkraenzer
	<bero@arklinux.org>.

	* normal/parser.y (script_init): Add missing semicolon.

2009-01-31  Colin D Bennett  <colin@gibibit.com>

	* normal/main.c: Add include to grub/menu_viewer.h.
	(free_menu_entry_classes): Added.
	(grub_normal_menu_addentry): Added class property handling.
	(grub_normal_execute): Changed to use new menu viewer for menu viewing.
	(GRUB_MOD_INIT(normal)): Added register for text based menu viewer.

	* normal/menu_viewer.c: New file.

	* normal/menu.c (run_menu_entry): Renamed to ...
	(grub_menu_execute_entry): ... this and	made it as global.
	(grub_menu_run): Renamed to ...
	(show_text_menu): ... this and made it local.
	(show_text_menu): Adapt to new function names.
	(grub_normal_terminal_menu_viewer): New global variable.

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

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

	* include/grub/normal.h: Added include to grub/menu.h.
	(grub_menu_entry): Moved to include/grub/menu.h.
	(grub_menu_entry_t): Likewise.
	(grub_menu): Likewise.
	(grub_menu_t): Likewise.
	(grub_normal_terminal_menu_viewer): Added.
	(grub_menu_execute_entry): Likewise.
	(grub_menu_run): Removed.

	* DISTLIST: Added include/grub/menu.h.
	Added include/grub/menu_viewer.h.
	Added normal/menu_viewer.c.

2009-01-31  Vesa Jääskeläinen  <chaac@nic.fi>

	* normal/execute.c (grub_script_execute_menuentry): Changed to use
	arglist for menutitle arguments.

	* normal/main.c (grub_normal_menu_addentry): Likewise.

	* normal/parser.y (menuentry): Likewise.

	* normal/script.c (grub_script_create_cmdmenu): Likewise.

	* include/grub/script.h (grub_script_cmd_menuentry): Likewise.
	(grub_script_create_cmdmenu): Likewise.

	* include/grub/normal.h (grub_normal_menu_addentry): Likewise.

	* conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
	changes.

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

	* conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.

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

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

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

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

2009-01-30  Christian Franke  <franke@computer.org>

	* normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
	in option help text.

2009-01-27  Pavel Roskin  <proski@gnu.org>

	* disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.

2009-01-27  Vesa Jääskeläinen  <chaac@nic.fi>

	* commands/lsmmap.c: Add include to grub/machine/memory.h.

	* fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.

	* term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
	unregister function.

2009-01-27  Vesa Jääskeläinen  <chaac@nic.fi>

	* disk/scsi.c (grub_scsi_read): Fix sign problem.

	* term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.

	* util/grub-mkfont.c (usage): Fix typo.

	* util/elf/grub-mkimage.c (load_modules): Fix warning.

2009-01-26  Daniel Mierswa  <impulze@impulze.org>

	* fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.

	* commands/search.c (search_fs_uuid): Ignore case of the UUID.

	* kern/misc.c (grub_strcasecmp): New function.
	(grub_strcasecmp): Use grub_size_t instead of int for length.
	Fix return value.
	* include/grub/misc.h: Update function prototypes.

2009-01-26  Robert Millan  <rmh@aybabtu.com>

	* configure.ac: Fix cross-compilation check.

2009-01-22  Christian Franke  <franke@computer.org>

	* kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
	(precision) digit string.  Allow `.format2' without `format1' (width).
	Limit input chars for `%s' output to `format2' if specified.  This is
	compatible with standard printf ().

2009-01-22  Christian Franke  <franke@computer.org>

	* disk/ata.c (grub_ata_wait_status): Replace by ...
	(grub_ata_wait_not_busy): ... this function.  Checks only BSY bit,
	other status bits may be invalid while BSY is asserted.
	(grub_ata_check_ready): New function.
	(grub_ata_cmd): Removed.
	(grub_ata_wait_drq): New function.
	(grub_ata_strncpy): Remove inline.
	(grub_ata_pio_read): Reduce to actual block transfer.  BSY wait
	and error check now done by grub_ata_wait_drq ().
	(grub_ata_pio_write): Likewise.
	(grub_atapi_identify): Set DEV before check for !BSY.  Use
	grub_ata_wait_drq () to wait for data.
	(grub_ata_device_initialize): Add status register check to
	detect missing SATA slave devices.  Add debug messages.
	(grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
	(grub_atapi_packet): Set DEV before check for !BSY.  Replace
	transfer loop by grub_ata_pio_write ().
	(grub_ata_identify): Set DEV before check for !BSY. Use
	grub_ata_wait_drq () to wait for data.
	(grub_ata_setaddress): Set DEV before check for !BSY.
	(grub_ata_readwrite): Remove duplicate code, handle batch/rest and
	read/write in one loop.  Fix invalid command on write.  Fix incomplete
	command on (size % batch) == 0.  Add missing error check after write of
	last block.  Add debug messages.
	(grub_atapi_read):  Replace transfer loop by grub_ata_pio_read ().

2009-01-19  Christian Franke  <franke@computer.org>

	* disk/ata.c (GRUB_ATAPI_REG_*): New defines.
	(GRUB_ATAPI_IREASON_*): Likewise.
	(grub_ata_pio_write): Fix timeout error return.
	(grub_atapi_identify): Add grub_ata_wait () after cmd.
	(grub_atapi_wait_drq): New function.
	(grub_atapi_packet): New parameter `size'.
	Use grub_atapi_wait_drq () and direct write instead of
	grub_ata_pio_write ().
	(grub_atapi_read): Replace grub_ata_pio_read () by a loop which
	reads the number of bytes requested by the device for each DRQ
	assertion.
	(grub_atapi_write): Remove old implementation, return not
	implemented instead.

2009-01-19  Christian Franke  <franke@computer.org>

	* disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
	of 512 to calculate data size.
	(grub_scsi_read12): Likewise.
	(grub_scsi_write10): Likewise.
	(grub_scsi_write12): Likewise.
	(grub_scsi_read): Adjust size according to blocksize.
	Add checks for invalid blocksize and unaligned transfer.

2009-01-19  Vesa Jääskeläinen  <chaac@nic.fi>

	* font/font.c (grub_font_loader_init): Re-position unknown glyph.

	* term/gfxterm.c (write_char): Fix background rendering for wide
	width glyphs.

2009-01-19  Robert Millan  <rmh@aybabtu.com>

	* config.guess: Update to latest version from config git.
	* config.sub: Likewise.

2009-01-17  Felix Zielcke  <fzielcke@z-51.de>

	* Makefile.in: Change font compilation to use new grub-mkfont instead
	of java version.

	* util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
	* util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
	* util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
	* util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
	* util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
	* util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
	* util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
	* util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
	* util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.

2009-01-16  Christian Franke  <franke@computer.org>

	* disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
	(enum grub_ata_timeout_milliseconds): New enum.
	(grub_ata_wait_status): Add parameter milliseconds.
	(grub_ata_cmd): Remove variable `err'.  Remove wait for !DRQ to allow
	recovery from timed-out commands.
	(grub_ata_pio_read): Add parameter milliseconds.  Fix error return,
	return grub_errno instead of REG_ERROR.
	(grub_ata_pio_write): Add parameter milliseconds.
	(grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
	Pass milliseconds to grub_ata_wait_status () and
	grub_ata_pio_read ().
	(grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
	(grub_ata_identify): Remove variable `ataerr'.  Pass milliseconds to
	grub_ata_wait_status ().  Fix IDENTIFY timeout check.
	(grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
	It is not suitable for device detection, because DEV bit is ignored,
	the command may run too long, and not all devices set the signature
	properly.
	(grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
	(grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
	Fix device selection, DEV bit must be set first to address the registers
	of the correct device.
	(grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
	grub_ata_pio_read/write ().
	(grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
	(grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().

2009-01-13  Carles Pina i Estany  <carles@pina.cat>

	* util/grub-editenv.c (main): Use fseeko(), not fseek().

2009-01-13  Bean  <bean123ch@gmail.com>

	* util/grub-mkfont.c (write_font): forget to remove some debug code.

2009-01-13  Bean  <bean123ch@gmail.com>

	* Makefile.in: (enable_grub_mkfont): New variable.
	(freetype_cflags): Likewise.
	(freetype_libs): Likewise.

	* common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
	(grub_mkfont_SOURCES): New variable.
	(grub_mkfont_CFLAGS): Likewise.
	(grub_mkfont_LDFLAGS): Likewise.

	* configure.ac (--enable-grub-mkfont): New option. Check for freetype2
	library if `--enable-grub-mkfont' is requested.
	(enable_grub_mkfont): New variable.
	(freetype_cflags): Likewise.
	(freetype_libs): Likewise.

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

2009-01-12  Christian Franke  <franke@computer.org>

	* disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
	mode check.  Fix setting of compat_use[].

2009-01-10  Robert Millan  <rmh@aybabtu.com>

	Update a few copyright years which we forgot to do in 2008 (only for
	files whose changes made in 2008 were copyright-significant)

	* Makefile.in: Add 2008 to Copyright line.
	* disk/ieee1275/ofdisk.c: Likewise.
	* disk/efi/efidisk.c: Likewise.
	* kern/dl.c: Likewise.
	* kern/sparc64/ieee1275/init.c: Likewise.
	* kern/mm.c: Likewise.
	* kern/efi/mm.c: Likewise.
	* boot/i386/pc/boot.S: Likewise.
	* genfslist.sh: Likewise.
	* fs/iso9660.c: Likewise.
	* fs/hfs.c: Likewise.
	* fs/jfs.c: Likewise.
	* fs/minix.c: Likewise.
	* fs/ufs.c: Likewise.
	* gensymlist.sh.in: Likewise.
	* genkernsyms.sh.in: Likewise.
	* include/grub/misc.h: Likewise.
	* include/grub/types.h: Likewise.
	* include/grub/symbol.h: Likewise.
	* include/grub/elf.h: Likewise.
	* include/grub/kernel.h: Likewise.
	* include/grub/disk.h: Likewise.
	* include/grub/dl.h: Likewise.
	* include/grub/i386/linux.h: Likewise.
	* include/grub/i386/pc/biosdisk.h: Likewise.
	* include/grub/efi/api.h: Likewise.
	* include/grub/efi/pe32.h: Likewise.
	* include/grub/util/misc.h: Likewise.
	* normal/execute.c: Likewise.
	* normal/arg.c: Likewise.
	* normal/completion.c: Likewise.
	* normal/lexer.c: Likewise.
	* normal/parser.y: Likewise.
	* normal/misc.c: Likewise.
	* commands/i386/pc/vbeinfo.c: Likewise.
	* commands/hexdump.c: Likewise.
	* commands/terminal.c: Likewise.
	* commands/ls.c: Likewise.
	* commands/help.c: Likewise.
	* partmap/pc.c: Likewise.
	* loader/efi/chainloader.c: Likewise.
	* loader/multiboot_loader.c: Likewise.
	* loader/i386/pc/multiboot2.c: Likewise.
	* term/efi/console.c: Likewise.
	* term/i386/pc/serial.c: Likewise.
	* util/lvm.c: Likewise.
	* util/console.c: Likewise.
	* util/i386/efi/grub-mkimage.c: Likewise.
	* util/raid.c: Likewise.

2009-01-06  Vesa Jääskeläinen  <chaac@nic.fi>

	* commands/videotest.c: Removed include to grub/machine/memory.h.

	* conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
	videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
	(video_mod_SOURCES): Removed.
	(video_mod_CFLAGS): Likewise.
	(video_mod_LDFLAGS): Likewise.
	(gfxterm_mod_SOURCES): Likewise.
	(gfxterm_mod_CFLAGS): Likewise.
	(gfxterm_mod_LDFLAGS): Likewise.
	(videotest_mod_SOURCES): Likewise.
	(videotest_mod_CFLAGS): Likewise.
	(videotest_mod_LDFLAGS): Likewise.
	(bitmap_mod_SOURCES): Likewise.
	(bitmap_mod_CFLAGS): Likewise.
	(bitmap_mod_LDFLAGS): Likewise.
	(tga_mod_SOURCES): Likewise.
	(tga_mod_CFLAGS): Likewise.
	(tga_mod_LDFLAGS): Likewise.
	(jpeg_mod_SOURCES): Likewise.
	(jpeg_mod_CFLAGS): Likewise.
	(jpeg_mod_LDFLAGS): Likewise.
	(png_mod_SOURCES): Likewise.
	(png_mod_CFLAGS): Likewise.
	(png_mod_LDFLAGS): Likewise.

	* conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
	bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
	(video_mod_SOURCES): Added.
	(video_mod_CFLAGS): Likewise.
	(video_mod_LDFLAGS): Likewise.
	(videotest_mod_SOURCES): Likewise.
	(videotest_mod_CFLAGS): Likewise.
	(videotest_mod_LDFLAGS): Likewise.
	(bitmap_mod_SOURCES): Likewise.
	(bitmap_mod_CFLAGS): Likewise.
	(bitmap_mod_LDFLAGS): Likewise.
	(tga_mod_SOURCES): Likewise.
	(tga_mod_CFLAGS): Likewise.
	(tga_mod_LDFLAGS): Likewise.
	(jpeg_mod_SOURCES): Likewise.
	(jpeg_mod_CFLAGS): Likewise.
	(jpeg_mod_LDFLAGS): Likewise.
	(png_mod_SOURCES): Likewise.
	(png_mod_CFLAGS): Likewise.
	(png_mod_LDFLAGS): Likewise.
	(gfxterm_mod_SOURCES): Likewise.
	(gfxterm_mod_CFLAGS): Likewise.
	(gfxterm_mod_LDFLAGS): Likewise.

	* term/gfxterm.c: Removed include to grub/machine/memory.h,
	grub/machine/console.h.

2009-01-04  Jerone Young  <jerone@gmail.com>

	Make on screen instructions clearer

	Based on patch created by Jidanni <jidanni@jidanni.org>

	* normal/menu.c: print clearer instructions on the screen

2009-01-02  Colin D Bennett  <colin@gibibit.com>

	New font engine.

	Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
	build system and fixed gfxterm.c to work with different	sized fonts.

	* configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.

	* configure: Re-generated.

	* DISTLIST: Removed font/manager.c.
	Added font/font.c.
	Added font/font_cmd.c.

	* Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF.  Added Font tool
	compilation.

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

	* kern/misc.c (grub_utf8_to_ucs4): Changed prototype.

	* kern/term.c: Changed users of grub_utf8_to_ucs4.

	* normal/menu.c: Likewise.

	* conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
	(font_mod_SOURCES): Added font/font_cmd.c, font/font.c.

	* include/grub/font.h: Replaced with new file.

	* include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
	(GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
	(GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
	(GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
	(grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
	(grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
	fg_red, fg_green, fg_blue, fg_alpha.
	(grub_video_adapter): Removed blit_glyph.
	(grub_video_blit_glyph): Removed.

	* font/manager.c: Removed file.

	* font/font.c: New file.

	* font/font_cmd.c: Likewise.

	* video/video.c (grub_video_blit_glyph): Removed.

	* video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
	(grub_video_vbe_map_rgba): Likewise.
	(grub_video_vbe_unmap_color_int): Likewise.
	(grub_video_vbe_blit_glyph): Removed.
	(grub_video_vbe_adapter): Removed blit_glyph.

	* video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
	(get_pixel): Likewise.
	(set_pixel): Likewise.

	* commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.

	* term/gfxterm.c: Adapted to new font engine.

	* term/i386/pc/vesafb.c: Marked as deprecated.  Made it compile.

	* term/i386/pc/vga.c: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.

	* util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.

	* util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.

	* util/grub.d/00_header.in: Changed to use new loadfont command.

	* util/grub-mkconfig_lib.in: Changed font extension.

2008-12-28  Felix Zielcke  <fzielcke@z-51.de>

	* util/getroot.c (grub_util_get_grub_dev): Add support for
	/dev/md/dNNpNN style partitionable mdraid devices.

2008-12-12  Alex Smith  <alex@alex-smith.me.uk>

	* fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
	at a time limit of the PXE TFTP API correctly.
	(grub_pxefs_close): Likewise.

2008-11-29  Robert Millan  <rmh@aybabtu.com>

	* disk/ata.c (grub_ata_pciinit): Handle errors raised by
	grub_ata_device_initialize() calls.

2008-11-28  Krzysztof Smiechowicz  <deadwood@wp.pl>

	* fs/affs.c (grub_affs_iterate_dir): Return failure when directory
	iteration failed.
	* fs/sfs.c (grub_sfs_iterate_dir): Likewise.

2008-11-28  Robert Millan  <rmh@aybabtu.com>

	Fix build on powerpc-ieee1275.  Based on patch created by
	Manoel Abranches <mrabran@linux.vnet.ibm.com>.
	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
	`kern/ieee1275/mmap.c'.
	* include/grub/powerpc/ieee1275/memory.h: New file.

	Provide grub-install on coreboot.
	* conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
	(grub_install_SOURCES): New variable.
	* util/i386/pc/grub-install.in: Add a few condition checks to make it
	usable on coreboot.

2008-11-25  Felix Zielcke  <fzielcke@z-51.de>

	* util/grub-fstest.c (grub_term_get_current_input): Change return type
	to `grub_term_input_t'.
	(grub_term_get_current_output): Change return type to
	`grub_term_output_t'.

2008-11-22  Robert Millan  <rmh@aybabtu.com>

	Fix breakage on coreboot due to declaration mismatch.
	* term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
	(grub_vga_text_term): Use grub_vga_text_init_fini() instead of
	grub_vga_text_cls().

	* kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
	comments.  Avoid copying one more byte than necessary (just in case).

	* conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
	to 0x200000 (avoids trouble with some OFW implementations, and matches
	with the one in Yaboot).
	Reported by Manoel Abranches

2008-11-20  Robert Millan  <rmh@aybabtu.com>

	* kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
	(grub_get_rtc, grub_exit): Abort with grub_fatal() if called.

	* util/grub-mkconfig_lib.in (grub_warn): New function.
	(convert_system_path_to_grub_path): Use grub_warn() when issuing
	warnings, to obtain consistent formatting.
	* util/grub.d/00_header.in: Likewise.
	* util/update-grub_lib.in: Likewise.

	* loader/i386/linux.c (allocate_pages): Fix a warning.
	Move comment text to `#error' stanza.

	Harmonize ieee1275's grub_available_iterate() with the generic
	grub_machine_mmap_iterate() interface (fixes a recently-introduced
	build problem on i386-ieee1275):
	* kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
	* kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here.  Add third
	parameter `type'.  Update all users of this function.
	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
	`kern/ieee1275/mmap.c'.
	* kern/ieee1275/init.c
	* include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
	with ...
	(grub_machine_mmap_iterate): ... this.
	* include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
	return type to `grub_err_t'.  Update all implementations of this
	function prototype.
	* include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
	Likewise.

	Add `lsmmap' command (lists firmware-provided memory map):
	* commands/lsmmap.c: New file.
	* conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
	(lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
	variables.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.

2008-11-19  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
	* loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
	constraints to initrd allocation (based on code from
	loader/i386/pc/linux.c).  Without them, initrd was allocated too high
	for Linux to find it.

2008-11-14  Robert Millan  <rmh@aybabtu.com>

	* fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
	order to cope with duplicate slashes.

2008-11-14  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
	Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000).  We
	don't want to mess with lower memory, because it is used in the Linux
	loader.

	* loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
	an appropriate place in lower memory, between 0x10000 and 0x90000,
	like loader/i386/efi/linux.c does.  Linux often panics if real_mode_mem
	is in our heap (probably as a result of it being corrupted during
	decompression).  Add #error instance with comment to explain why this
	loader isn't currently usable on PC/BIOS.

2008-11-14  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
	(GRUB_SERIAL_PORT_NUM): Fix miscalculation.

2008-11-12  Robert Millan  <rmh@aybabtu.com>

	Make loader/i386/linux.c buildable on i386-pc (although disabled).

	* include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
	(struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
	from here ...
	* include/grub/i386/pc/memory.h: ... to here.

2008-11-12  Robert Millan  <rmh@aybabtu.com>

	Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
	split).

	* include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
	(grub_console_cur_color, grub_console_real_putchar)
	(grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
	(grub_console_setcolorstate, grub_console_setcolor)
	(grub_console_getcolor): Move from here ...
	* include/grub/i386/vga_common.h: ... to here (new file).

	* term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
	`<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
	`<grub/i386/io.h>'.
	* term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
	`<grub/i386/vga_common.h>'.

2008-11-12  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
	* conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
	(vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
	variables.
	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
	`term/i386/pc/console.c' with `term/i386/vga_common.c'.

	* kern/i386/coreboot/init.c (grub_machine_init): Replace call to
	grub_console_init() with call to grub_vga_text_init().
	(grub_machine_fini): Replace call to
	grub_console_fini() with call to grub_vga_text_fini() and
	grub_at_keyboard_fini().

	* include/grub/i386/pc/console.h: Include `<grub/term.h>'.
	(grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
	(grub_console_setcolorstate, grub_console_setcolor)
	(grub_console_getcolor): New function prototypes.

	* term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
	(grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
	(grub_vga_text_setcursor): Static-ize.
	(grub_vga_text_term): New structure.
	(GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.

	* term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
	(grub_console_cur_color, grub_console_standard_color)
	(grub_console_normal_color, grub_console_highlight_color)
	(map_char, grub_console_putchar, grub_console_getcharwidth)
	(grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
	(grub_console_getcolor): Move from here ...
	* term/i386/vga_common.c: ... to here (same function names).

2008-11-12  Robert Millan  <rmh@aybabtu.com>

	Use newly-added Multiboot support in coreboot.

	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
	`kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.

	* kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
	alignment, set `MULTIBOOT_MEMORY_INFO' flag.
	(codestart): Store the MBI in `startup_multiboot_info' when we're
	being loaded using Multiboot.

	* kern/i386/coreboot/init.c (grub_machine_init): Move
	grub_at_keyboard_init() call to beginning of function (useful for
	debugging).  Call grub_machine_mmap_init() before attempting to use
	grub_machine_mmap_iterate().
	(grub_lower_mem, grub_upper_mem): Move from here ...
	* kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
	here (new file).

	* include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
	function prototype.

2008-11-12  Robert Millan  <rmh@aybabtu.com>

	Fix a regression introduced by the at_keyboard.mod split.  Because
	some terminals are default on some platforms and non-default on
	others, the first terminal being registered determines which is
	going to be default.

	* kern/term.c (grub_term_register_input): If this is the first
	terminal being registered, set it as the current one.
	(grub_term_register_output): Likewise.

	* term/efi/console.c (grub_console_init): Do not call
	grub_term_set_current_output() or grub_term_set_current_input().
	* term/ieee1275/ofconsole.c (grub_console_init): Likewise.
	* term/i386/pc/console.c (grub_console_init): Likewise.
	(grub_console_fini): Do not call grub_term_set_current_input()
	(but leave grub_term_set_current_output() to restore text mode).

2008-11-10  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/00_header.in: Add backward compatibility check for
	versions of terminal.mod that don't understand `terminal_input' or
	`terminal_output'.

2008-11-09  Robert Millan  <rmh@aybabtu.com>

	* commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
	`terminal_input' / `terminal_output', not `terminal'.

2008-11-08  Robert Millan  <rmh@aybabtu.com>

	* Makefile.in (include_DATA): Fix srcdir=. assumption.
	(DISTCLEANFILES): Add `build_env.mk'.

2008-11-08  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
	`struct grub_term_output'.  Remove `.checkkey' and `.getkey'
	members.  Update all users.
	* util/console.c (grub_ncurses_term): Split in ...
	(grub_ncurses_term_input): ... this, and ...
	(grub_ncurses_term_output): ... this.  Update all users.
	* term/ieee1275/ofconsole.c: Remove stale `#endif'.

2008-11-08  Robert Millan  <rmh@aybabtu.com>

	* Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
	(PKGDATA): Add $(pkgdata_SRCDIR).
	(pkglib_BUILDDIR): New variable.
	(pkgdata_SRCDIR): New variable.
	(build_env.mk): New target.
	(include_DATA): New variable.
	(install-local): Install $(include_DATA) files in $(includedir).

2008-11-07  Pavel Roskin  <proski@gnu.org>

	* gendistlist.sh: Use C locale for sorting to ensure consistent
	output on all systems.

	* util/grub.d/00_header.in: Remove incorrect space before
	"serial".

2008-11-07  Robert Millan  <rmh@aybabtu.com>

	* include/multiboot2.h (struct multiboot_header): Add `flags' member as
	per specification.
	* loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
	* loader/multiboot_loader.c (find_multi_boot2_header): New function
	(based on find_multi_boot1_header).
	(grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
	using find_multi_boot2_header(), and abort if neither Multiboot or
	Multiboot headers were found.

2008-11-07  Robert Millan  <rmh@aybabtu.com>

	Modularize at_keyboard.mod:

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

	Actual terminal split:

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

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

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

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

	Portability adjustments:

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

	Migrate full terminals to new API:

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

	Migrate input terminals to new API:

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

	Migrate output terminals to new API:

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

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

	* commands/terminal.c (grub_cmd_terminal): Split into ...
	(grub_cmd_terminal_input): ... this, and ...
	(grub_cmd_terminal_output): ... this.
	(GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
	`terminal_input' and `terminal_output'.
	* util/grub.d/00_header.in: Adjust `terminal' calls to new
	`terminal_input' / `terminal_output' API.
	* util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
	${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
	provided ${GRUB_TERMINAL}, convert it).

2008-11-04  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_freebsd.in: New file.  Generate grub configuration
	for FreeBSD.
	* conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.

2008-11-03  Bean  <bean123ch@gmail.com>

	* kern/elf.c (grub_elf32_load): Revert to previous code.
	(grub_elf64_load): Likewise.

	* loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.

2008-11-01  Robert Millan  <rmh@aybabtu.com>

	* Makefile.in (CPPFLAGS): Fix builddir=. assumption.
	(TARGET_CPPFLAGS): Likewise.
	* genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.

2008-11-01  Carles Pina i Estany  <carles@pina.cat>

	* normal/menu.c (run_menu): Add Previous and Next Page keys in menu.

2008-10-29  Guillem Jover  <guillem.jover@nokia.com>

	* disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
	addition of objects until the code is not going to be able to fail.

2008-10-29  Guillem Jover  <guillem.jover@nokia.com>

	* disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
	(add a missing NULL check, and correct them by moving the pointer
	operations after the actual check).

2008-10-29  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-install.in: Handle empty string as output from
	make_system_path_relative_to_its_root().

2008-10-05  Hans Lambermont  <hans@lambermont.dyndns.org>

	* disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
	circular metadata worst case scenario. If the metadata is circular
	then copy the wrap in place.
	* include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
	project lib/format_text/layout.h
	Circular metadata bug found and patch debugged by Jan Derk Gerlings.

2008-10-03  Felix Zielcke  <fzielcke@z-51.de>

	* util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.

2008-10-03  Felix Zielcke  <fzielcke@z-51.de>

	* util/update-grub_lib.in: Mention filename in warning message.

2008-09-29  Felix Zielcke  <fzielcke@z-51.de>

	* NEWS: Update for rename of update-grub to grub-mkconfig.

2008-09-29  Felix Zielcke  <fzielcke@z-51.de>

	* util/update-grub_lib.in: Copy to ...
	* util/grub-mkconfig_lib.in: ... this.  Update all users.
	* util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
	* util/update-grub.in: Rename to ...
	* util/grub-mkconfig.in: ... this.  Update all users.  Remove `-y'
	option. Add `--output' option to allow users to specify the generated
	configuration file.  Default to stdout.
	(update_grub_dir): Rename to ...
	(grub_mkconfig_dir): ... this.
	(grub_cfg): Default to an empty string.
	* conf/common.rmk (update-grub): Rename to ...
	(grub-mkconfig): ... this.
	(update-grub_lib): Copy to ...
	(grub-mkconfig_lib): ... this.
	(update-grub_SCRIPTS): Copy to ...
	(grub-mkconfig_SCRIPTS): ... this. Update all users.
	(update-grub_DATA): Rename to ...
	(grub-mkconfig_DATA): ... this.

2008-09-28  Robert Millan  <rmh@aybabtu.com>

	* fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
	to `modified'.  Add the real `created' field.
	(grub_iso9660_uuid): Use `modified' rather than `created' for
	constructing the UUID.

2008-09-28  Felix Zielcke  <fzielcke@z-51.de>

	fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
	Based on code from Tomas Ebenlendr <ebik@ucw.cz>.

2008-09-28  Bean  <bean123ch@gmail.com>

	* fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
	Thanks to Christian Franke for finding this bug.

2008-09-25  Robert Millan  <rmh@aybabtu.com>

	* util/grub-mkdevicemap.c (make_device_map): Actually replace all
	instances of grub_util_get_disk_name() (see previous commit).

2008-09-25  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
	`util/i386/get_disk_name.c'.
	* conf/i386-efi.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
	`util/ieee1275/get_disk_name.c'.
	* include/grub/util/misc.h (grub_util_get_disk_name): Remove.
	* util/ieee1275/get_disk_name.c: Remove file.
	* util/i386/get_disk_name.c: Remove file.
	* util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
	"hd%d" for device.map entries, rather than using
	grub_util_get_disk_name().

2008-09-24  Carles Pina i Estany  <carles@pina.cat>

	* disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
	warning.
	* commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.

2008-09-24  Carles Pina i Estany  <carles@pina.cat>

	* include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
	Changed to 0x5100.
	(GRUB_TERM_PPAGE): Changed to 0x4900.

2008-09-24  Robert Millan  <rmh@aybabtu.com>

	* include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
	macros (they were i386-pc specific).
	* include/grub/sparc64/ieee1275/console.h: Likewise.
	* include/grub/efi/console.h: Likewise.

2008-09-22  Bean  <bean123ch@gmail.com>

	* fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
	resident and in attribute list.

	* include/grub/ntfs.h (BMP_LEN): Removed.

2008-09-22  Bean  <bean123ch@gmail.com>

	* disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
	scsi->name and scsi->luns, as they will be set in grub_scsi_open.

	* disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
	error occurs, as grub_disk_open will call grub_disk_close, which will
	call p->close (scsi).

2008-09-21  Felix Zielcke  <fzielcke@z-51.de>

	* configure.ac (AC_INIT): Quote `GRUB' string and version number.
	(AC_PREREQ): Bumped to 2.59.
	(AC_TRY_COMPILE): Replace obsolete macro with ...
	(AC_COMPILE_IFELSE): ... this.
	* aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
	(AC_LINK_IFELSE): ... this.

2008-09-21  Felix Zielcke  <fzielcke@z-51.de>

	* autogen.sh: Add a call to `gendistlist.sh'.

2008-09-19  Christian Franke  <franke@computer.org>

	* aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
	* configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
	* include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
	Export __enable_execute_stack() to modules.
	* kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
	New function.

2008-09-09  Felix Zielcke  <fzielcke@z-51.de>

	* Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
	Sort the list.

2008-09-09  Felix Zielcke  <fzielcke@z-51.de>

	* util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
	#include <grub/util/hostdisk.h>.

2008-09-08  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
	segments when their filesz is zero (grub_file_read() interprets
	zero-size as "read until EOF", which results in memory corruption).
	Use `lowest_segment' rather than 0 for calculating the current
	segment load address.

2008-09-08  Robert Millan  <rmh@aybabtu.com>

	* util/hostdisk.c (open_device): Replace a grub_util_info() call
	with grub_dprintf("hostdisk", ...), as it was so verbose that it
	clobbered useful information.

2008-09-08  Robert Millan  <rmh@aybabtu.com>

	* include/grub/util/biosdisk.h: Move to ...
	* include/grub/util/hostdisk.h: ... here.  Update all users.
	* util/biosdisk.c: Move to ...
	* util/hostdisk.c: ... here.  Update all users.

2008-09-07  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
	variables.
	(grub_multiboot): Move `mbi' allocation upwards, so that mmap address
	and length can be stored directly in the `mbi->mmap_addr' and
	`mbi->mmap_length' struct fields.

2008-09-07  Robert Millan  <rmh@aybabtu.com>

	* conf/i386.rmk: New file.  Provides declaration for building
	`cpuid.mod'.
	* conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
	(cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
	variables.
	Include `conf/i386.mk'.
	* conf/i386-efi.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.

2008-09-07  Vesa Jääskeläinen  <chaac@nic.fi>

	Based on patch created by Colin D Bennett <colin@gibibit.com>.
	Adds optimization support for BGR based modes.

	* include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
	(grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_index): Likewise.
	(grub_video_i386_vbeblit_replace_directN): Added.
	(grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
	(grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
	(grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
	(grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
	(grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.

	* include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
	(grub_video_i386_vbefill_R8G8B8): Likewise.
	(grub_video_i386_vbefill_index): Likewise.
	(grub_video_i386_vbefill_direct32): Added.
	(grub_video_i386_vbefill_direct24): Likewise.
	(grub_video_i386_vbefill_direct16): Likewise.
	(grub_video_i386_vbefill_direct8): Likewise.

	* include/grub/video.h (grub_video_blit_format): Removed
	GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
	(grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
	GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
	GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
	GRUB_VIDEO_BLIT_FORMAT_BGR_565.

	* video/video.c (grub_video_get_blit_format): Updated to use new
	blit formats.  Added handling for 16 bit color modes.

	* video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
	fillers.
	(common_blitter): Updated to use new blitters.

	* video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
	Removed.
	(grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_index): Likewise.
	(grub_video_i386_vbeblit_replace_directN): Added.
	(grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
	(grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
	(grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
	(grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
	(grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
	(grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
	(grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.

	* video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
	(grub_video_i386_vbefill_R8G8B8): Likewise.
	(grub_video_i386_vbefill_index): Likewise.
	(grub_video_i386_vbefill_direct32): Added.
	(grub_video_i386_vbefill_direct24): Likewise.
	(grub_video_i386_vbefill_direct16): Likewise.
	(grub_video_i386_vbefill_direct8): Likewise.

	* video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
	types.

	* video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
	types.

	* video/readers/png.c (grub_png_decode_image_header): Adapt to new
	blitter types.

	* video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
	types.

2008-09-06  Felix Zielcke  <fzielcke@z-51.de>

	* disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
	RAID level 1.

2008-09-06  Felix Zielcke  <fzielcke@z-51.de>

	* fs/iso9660.c (grub_iso9660_date): New structure.
	(grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
	(grub_iso9660_uuid): New function.

2008-09-05  Bean  <bean123ch@gmail.com>

	* fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.

	* fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
	insensitive bit for names in Win32 and Win32 & DOS namespace.

	* include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.

	* include/grub/types.h (LONG_MAX): Likewise.

2008-09-04  Felix Zielcke  <fzielcke@z-51.de>

	* util/getroot.c: Include <config.h>.
	(grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
	add support for /dev/md/N devices and handle LVM double dash escaping.

2008-09-04  Felix Zielcke  <fzielcke@z-51.de>

	* config.guess: Update to latest version from config git.
	* config.sub: Likewise.

2008-09-03  Robert Millan  <rmh@aybabtu.com>

	* disk/scsi.c (grub_scsi_open): Remove size limit when printing
	`disk->total_sectors'.

2008-09-01  Colin D Bennett  <colin@gibibit.com>

	* include/grub/normal.h: Fixed incorrect comment for
	GRUB_COMMAND_FLAG_NO_ARG_PARSE.

2008-09-01  Colin D Bennett  <colin@gibibit.com>

	* commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
	values with defines.

	* include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
	(GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
	(GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
	(GRUB_VBE_MODEATTR_COLOR): Likewise.
	(GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
	(GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
	(GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
	(GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
	(GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
	(GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
	(GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
	(GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
	(GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
	(GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
	(GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
	(GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
	(GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
	(GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
	(GRUB_VBE_MEMORY_MODEL_YUV): Likewise.

2008-08-31  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
	declaration.
	(grub_multiboot): Fix a few warnings.

2008-08-31  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c: Update comment not to say that
	boot_device support is unimplemented.

2008-08-31  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c: Update comment not to say that a.out
	or memory map support are unimplemented.

2008-08-31  Colin D Bennett  <colin@gibibit.com>

	* util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.

2008-08-31  Colin D Bennett  <colin@gibibit.com>

	* commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
	total video memory in 'vbeinfo' output; show color format details for
	each video mode.

2008-08-30  Pavel Roskin  <proski@gnu.org>

	* util/genmoddep.c: Remove for real this time.
	* DISTLIST: Remove util/genmoddep.c.

2008-08-30  Robert Millan  <rmh@aybabtu.com>

	* kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
	as required by Multiboot spec (it was already 4-byte aligned, but
	only by chance).

2008-08-29  Pavel Roskin  <proski@gnu.org>

	* kern/powerpc/ieee1275/crt0.S: Rename to ...
	* kern/powerpc/ieee1275/startup.S: ... this.
	* conf/powerpc-ieee1275.rmk: Adjust for the above.
	* DISTLIST: Likewise.

	* kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
	grub/cpu/kernel.h.  Add start label for consistency with other
	platforms.  Add grub_prefix immediately after start.  Add jump
	to the code after grub_prefix.
	* include/grub/powerpc/kernel.h: Provide valid values for
	GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.

2008-08-29  Bean  <bean123ch@gmail.com>

	* configure.ac: Change host_os to cygwin for mingw.
	(asprintf): New check for function.

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

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

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

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

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

	* util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
	(asprintf): New function if HAVE_ASPRINTF is not set.
	(sync): New function for mingw.
	(sleep): Likewise.
	(grub_util_get_disk_size): Likewise.

2008-08-28  Pavel Roskin  <proski@gnu.org>

	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
	kern/time.c.

2008-08-28  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (find_grub_drive): Declare missing `i' variable.

2008-08-28  Robert Millan  <rmh@aybabtu.com>

	Change find_grub_drive() syntax so it doesn't prevent it from
	detecting NULL names as errors.

	* util/biosdisk.c (find_grub_drive): Move free slot search code
	from here ...
	(find_free_slot): ... to here.
	(read_device_map): Use find_free_slot() to search for free slots.

2008-08-27  Marco Gerards  <marco@gnu.org>

	* conf/common.rmk (pkglib_MODULES): Add scsi.mod.
	(scsi_mod_SOURCES): New variable.
	(scsi_mod_CFLAGS): Likewise
	(scsi_mod_LDFLAGS): Likewise.

	* disk/scsi.c: New file.

	* include/grub/scsi.h: Likewise.

	* include/grub/scsicmd.h: Likewise.

	* disk/ata.c: Include <grub/scsi.h>.
	(grub_atapi_packet): Do not use grub_ata_cmd, use registers
	instead.
	(grub_ata_iterate): Skip ATAPI devices.
	(grub_ata_open): Only handle ATAPI devices.
	(struct grub_atapi_read): Removed.
	(grub_atapi_readsector): Likewise.
	(grub_ata_read): No longer handle ATAPI devices.
	(grub_ata_write): Likewise.
	(grub_atapi_iterate): New function.
	(grub_atapi_read): Likewise.
	(grub_atapi_write): Likewise.
	(grub_atapi_open): Likewise.
	(grub_atapi_close): Likewise.
	(grub_atapi_dev): New variable.
	(GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
	(GRUB_MOD_FINI(ata)): Unregister ATAPI.

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

2008-08-26  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (grub_util_biosdisk_open, open_device)
	(grub_util_biosdisk_get_grub_dev): Make error messages a bit more
	descriptive.

2008-08-23  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
	(grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
	disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
	(pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
	dm_nv.mod.
	(raid5rec_mod_SOURCES): New macro.
	(raid5rec_mod_CFLAGS): Likewise.
	(raid5rec_mod_LDFLAGS): Likewise.
	(raid6rec_mod_SOURCES): Likewise.
	(raid6rec_mod_CFLAGS): Likewise.
	(raid6rec_mod_LDFLAGS): Likewise.
	(mdraid_mod_SOURCES): Likewise.
	(mdraid_mod_CFLAGS): Likewise.
	(mdraid_mod_LDFLAGS): Likewise.
	(dm_nv_mod_SOURCES): Likewise.
	(dm_nv_mod_CFLAGS): Likewise.
	(dm_nv_mod_LDFLAGS): Likewise.

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

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

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

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

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

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

	* disk/raid5_recover.c: New file.

	* disk/raid6_recover.c: Likewise.

	* disk/mdraid_linux.c: Likewise.

	* disk/dmraid_nvidia.c: Likewise.

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

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

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

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

	* util/grub-probe.c (probe): Add mdraid to abstraction_name.

2008-08-23  Bean  <bean123ch@gmail.com>

	* normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.

	* genfslist.sh: Ignore kernel.mod.

	* genpartmaplist.sh: Likewise.

2008-08-23  Robert Millan  <rmh@aybabtu.com>

	* util/getroot.c (find_root_device): Skip anything that starts with
	a dot, not just directories.  This avoids things like /dev/.tmp.md0.

2008-08-22  Felix Zielcke  <fzielcke@z-51.de>

	* util/update-grub.in (GRUB_GFXMODE): Export variable.
	* util/grub.d/00_header.in: Allow the administrator to change default
	gfxmode via ${GRUB_GFXMODE}.

2008-08-21  Felix Zielcke  <fzielcke@z-51.de>

	* fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.

2008-08-21  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/linux.c: New file.  Implements generic 32-bit Linux
	loader.
	* conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
	`loader/i386/pc/linux.c' with `loader/i386/linux.c'.

2008-08-20  Carles Pina i Estany  <carles@pina.cat>

	* menu/normal.c (run_menu): Replace hardcoded numbers with macros
	(16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)

2008-08-19  Robert Millan  <rmh@aybabtu.com>

	* term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
	(struct grub_virtual_screen): Remove `cursor_color'.
	(grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
	initialization.
	(write_cursor): Use `virtual_screen.fg_color' to draw cursor.

2008-08-18  Robert Millan  <rmh@aybabtu.com>

	Unify (identical) linux_normal.c files.
	* loader/i386/efi/linux_normal.c: Move from here ...
	* loader/linux_normal.c: ... to here.  Update all users.
	* loader/i386/pc/linux_normal.c: Delete.  Update all users.
	* loader/i386/ieee1275/linux_normal.c: Likewise.

2008-08-18  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
	(LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
	(LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
	(LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
	(LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
	New macros.
	(GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
	* loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
	(GRUB_LINUX_CL_END_OFFSET): ... to here.
	* loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
	(GRUB_LINUX_CL_OFFSET): ... this.  Update all users.
	(GRUB_EFI_CL_END_OFFSET): Rename to ...
	(GRUB_LINUX_CL_END_OFFSET): ... this.  Update all users.
	(grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
	Initialize `params->video_cursor_x' and `params->video_cursor_y'
	portably using grub_getxy().
	Replace `-EFI' with `-bzImage' in boot message.

2008-08-17  Robert Millan  <rmh@aybabtu.com>

	* include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).

2008-08-17  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.

	* include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
	(GRUB_MACHINE_MEMORY_RESERVED): New macros.
	(grub_machine_mmap_iterate): New function declaration.
	* include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
	structure.
	(GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
	macros.

	* kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
	type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
	Move e820 parsing from here ...
	* kern/i386/pc/mmap.c: New file.
	(grub_machine_mmap_iterate): ... to here.

	* include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
	(GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
	(GRUB_MACHINE_MEMORY_AVAILABLE): ... this.  Update all users.
	(grub_available_iterate): Redeclare to return `void', and redeclare
	its hook to use grub_uint64_t as addr and size parameters, and rename
	to ...
	(grub_machine_mmap_iterate): ... this.  Update all users.

	* kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
	to make it more readable.  Rename to ...
	(grub_machine_mmap_iterate): ... this.

	* loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
	(grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
	(grub_multiboot): Allocate an extra region after the payload, and fill
	it with a Multiboot memory map.  Adjust a.out loader to calculate size
	with the extra space.
	(grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
	with the extra space.

2008-08-17  Carles Pina i Estany  <carles@pina.cat>

	* menu/normal.c (run_menu): Add Home and End keys in grub-menu.

2008-08-17  Felix Zielcke  <fzielcke@z-51.de>

	* gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
	mdate-sh to the list `find' searches for.
	* DISTLIST: Regenerated.

2008-08-16  Felix Zielcke  <fzielcke@z-51.de>

	* gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
	genkernsyms.sh.  Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
	genmoddep.awk, gensymlist.sh.in.
	(DISTDIRS): Add bus, docs, hook, lib.
	* DISTLIST: Regenerated.
	* NEWS: Add cygwin support and change the `os-prober' entry a bit.

2008-08-16  Robert Millan  <rmh@aybabtu.com>

	* disk/raid.c (grub_raid_init): Handle/report errors set by
	grub_device_iterate().
	* disk/lvm.c (grub_lvm_init): Likewise.

2008-08-15  Bean  <bean123ch@gmail.com>

	* conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
	and datehook.mod.
	(datetime_mod_SOURCES): New macro.
	(datetime_mod_CFLAGS): Likewise.
	(datetime_mod_LDFLAGS): Likewise.
	(date_mod_SOURCES): Likewise.
	(date_mod_CFLAGS): Likewise.
	(date_mod_LDFLAGS): Likewise.
	(datehook_mod_SOURCES): Likewise.
	(datehook_mod_CFLAGS): Likewise.
	(datehook_mod_LDFLAGS): Likewise.

	* conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
	and datehook.mod.
	(datetime_mod_SOURCES): New macro.
	(datetime_mod_CFLAGS): Likewise.
	(datetime_mod_LDFLAGS): Likewise.
	(date_mod_SOURCES): Likewise.
	(date_mod_CFLAGS): Likewise.
	(date_mod_LDFLAGS): Likewise.
	(datehook_mod_SOURCES): Likewise.
	(datehook_mod_CFLAGS): Likewise.
	(datehook_mod_LDFLAGS): Likewise.

	* conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
	and datehook.mod.
	(datetime_mod_SOURCES): New macro.
	(datetime_mod_CFLAGS): Likewise.
	(datetime_mod_LDFLAGS): Likewise.
	(date_mod_SOURCES): Likewise.
	(date_mod_CFLAGS): Likewise.
	(date_mod_LDFLAGS): Likewise.
	(datehook_mod_SOURCES): Likewise.
	(datehook_mod_CFLAGS): Likewise.
	(datehook_mod_LDFLAGS): Likewise.

	* conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
	and datehook.mod.
	(datetime_mod_SOURCES): New macro.
	(datetime_mod_CFLAGS): Likewise.
	(datetime_mod_LDFLAGS): Likewise.
	(date_mod_SOURCES): Likewise.
	(date_mod_CFLAGS): Likewise.
	(date_mod_LDFLAGS): Likewise.
	(datehook_mod_SOURCES): Likewise.
	(datehook_mod_CFLAGS): Likewise.
	(datehook_mod_LDFLAGS): Likewise.

	* conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
	and datehook.mod.
	(datetime_mod_SOURCES): New macro.
	(datetime_mod_CFLAGS): Likewise.
	(datetime_mod_LDFLAGS): Likewise.
	(date_mod_SOURCES): Likewise.
	(date_mod_CFLAGS): Likewise.
	(date_mod_LDFLAGS): Likewise.
	(datehook_mod_SOURCES): Likewise.
	(datehook_mod_CFLAGS): Likewise.
	(datehook_mod_LDFLAGS): Likewise.

	* kern/env.c (grub_env_insert): Fix a bug in prevp pointer.

	* commands/date.c: New file.

	* hook/datehook.c: Likewise.

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

	* include/grub/i386/cmos.h: Likewise.

	* lib/datetime.c: Likewise.

	* lib/i386/datetime.c: Likewise.

	* lib/efi/datetime.c: Likewise.

2008-08-14  Robert Millan  <rmh@aybabtu.com>

	* conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
	(grub_mkelfimage_SOURCES): New variable.
	(util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.

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

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

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

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

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

	* util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
	(add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
	GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
	and GRUB_KERNEL_CPU_PREFIX.

2008-08-14  Felix Zielcke  <fzielcke@z-51.de>

	* include/grub/err.h (grub_err_printf): New function prototype.
	* util/misc.c (grub_err_printf): New function.
	* kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
	grub_printf.
	* kern/err.c (grub_print_error): Use grub_err_printf.

2008-08-13  Robert Millan  <rmh@aybabtu.com>

	* docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.

2008-08-13  Robert Millan  <rmh@aybabtu.com>

	* docs/grub.cfg: Use the native device name for the example GNU/Hurd
	boot entry.

2008-08-12  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
	of the relocation code from here ...
	(grub_multiboot): ... to here.
	(forward_relocator, backward_relocator): Move from here ...
	* kern/i386/loader.S (grub_multiboot_forward_relocator)
	(grub_multiboot_backward_relocator): ... to here.
	(grub_multiboot_real_boot): Use %edx for entry offset.  Put Multiboot
	magic in %eax.  Use %ebp for jumping (so %edx is not trashed).
	* include/grub/i386/loader.h (grub_multiboot_forward_relocator)
	(grub_multiboot_forward_relocator_end)
	(grub_multiboot_backward_relocator)
	(grub_multiboot_backward_relocator_end): New variables.

2008-08-12  Bean  <bean123ch@gmail.com>

	* disk/raid.c (grub_raid_read): Fix a bug in raid0 code.

2008-08-11  Robert Millan  <rmh@aybabtu.com>

	* kern/i386/linuxbios/startup.S: Move from here ...
	* kern/i386/coreboot/startup.S: ... to here.

	* kern/i386/linuxbios/init.c: Move from here ...
	* kern/i386/coreboot/init.c: ... to here.

	* kern/i386/linuxbios/table.c: Move from here ...
	* kern/i386/coreboot/mmap.c: ... to here.

	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.

2008-08-11  Robert Millan  <rmh@aybabtu.com>

	* kern/device.c (grub_device_open): Do not handle grub_disk_open()
	errors.  Leave it to the upper layer to handle them.

2008-08-09  Christian Franke  <franke@computer.org>

	* Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
	* conf/common.rmk: Install `grub-pe2elf' only if requested.
	Install `grub.d/10_windows' only on Cygwin.
	* configure.ac: Add subst of `target_os'.
	Check `target_os' also before setting TARGET_OBJ2ELF.
	Add `--enable-grub-pe2elf'.

2008-08-08  Robert Millan  <rmh@aybabtu.com>

	* kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
	(grub_last_time): Change type to grub_uint64_t.
	(grub_disk_open): Migrate code from to using grub_get_time_ms().
	(grub_disk_close): Likewise.

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

	* util/misc.c (grub_get_time_ms): New function.

2008-08-08  Marco Gerards  <marco@gnu.org>

	* disk/ata.c (grub_ata_regget): Change return type to
	`grub_uint8_t'.
	(grub_ata_regget2): Likewise.
	(grub_ata_wait_status): New function.
	(grub_ata_wait_busy): Removed function, updated all users to use
	`grub_ata_wait_status'.
	(grub_ata_wait_drq): Likewise.
	(grub_ata_cmd): New function.
	(grub_ata_pio_read): Change return type to `grub_uint8_t'.  Add
	error handling.
	(grub_ata_pio_write): Add error handling.
	(grub_atapi_identify): Likewise.
	(grub_atapi_packet): Use `grub_ata_cmd' and improve error
	handling.
	(grub_ata_identify): Use `grub_ata_cmd' and improve error
	handling.  Actually use the detected registers.  Reorder the
	detection logic such that it is easier to read.
	(grub_ata_pciinit): Do not assign the same ID to each controller.
	(grub_ata_setaddress): Use `grub_ata_cmd' and improve error
	handling.
	(grub_atapi_readsector): Check the result of `grub_ata_pio_read'.

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

2008-08-08  Marco Gerards  <marco@gnu.org>

	* NEWS: Update.

2008-08-07  Bean  <bean123ch@gmail.com>

	* include/grub/x86_64/pci.h: New file.

2008-08-07  Christian Franke  <franke@computer.org>

	* kern/i386/pit.c (TIMER2_SPEAKER): New define.
	(TIMER2_GATE): Likewise.
	(grub_pit_wait): Add enable/disable of the timer2 gate
	bit of port 0x61.  This fixes a possible infinite loop.

2008-08-07  Bean  <bean123ch@gmail.com>

	* conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
	kern/i386/tsc.c and kern/i386/pit.c.

	* include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
	x86_64 platform.

	* kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
	<grub/i386/tsc.h>.

	* kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.

2008-08-07  Bean  <bean123ch@gmail.com>

	* conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.

	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,

	* include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
	multiple inclusion. Add #include <grub/types.h>.

2008-08-06  Christian Franke  <franke@computer.org>

	* conf/common.rmk: Build and install `10_windows'.
	* util/grub.d/10_windows.in: New script.

2008-08-06  Pavel Roskin  <proski@gnu.org>

	* kern/i386/pit.c: Include `<grub/i386/pit.h>'.

2008-08-06  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
	* kern/i386/tsc.c: Include `<grub/i386/pit.h>'.

2008-08-06  Bean  <bean123ch@gmail.com>

	* fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
	(grub_pxefs_fs_int): Remove dummy definition.
	(grub_pxefs_open): Use data->block_size to store the current block
	size setting.
	(grub_pxefs_read): Use block size stored in data->block_size. As the
	value of grub_pxe_blksize can be changed after the file is opened.

2008-08-06  Bean  <bean123ch@gmail.com>

	* fs/i386/pc/pxe.c (curr_file): new variable.
	(grub_pxefs_open): Simply the handling of pxe file system. Don't
	require the dummy internal file system anymore.
	(grub_pxefs_read): Removed.
	(grub_pxefs_close): Likewise.
	(grub_pxefs_fs_int): Likewise.
	(grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
	connection when we switch file.
	(grub_pxefs_close_int): Renamed to grub_pxefs_close.

2008-08-06  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
	`halt.mod'.
	(reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
	(halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.

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

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

	* term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
	(SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
	(KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
	(KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
	(KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
	(KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
	from here ...
	* include/grub/i386/at_keyboard.h: ... to here.

2008-08-05  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
	* conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
	`kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
	`kern/generic/millisleep.c'.

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

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

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

2008-08-05  Bean  <bean123ch@gmail.com>

	* boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.

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

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

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

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

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

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

2008-08-05  Bean  <bean123ch@gmail.com>

	* util/console.c (grub_console_cur_color): New variable.
	(grub_console_standard_color): Likewise.
	(grub_console_normal_color): Likewise.
	(grub_console_highlight_color): Likewise.
	(color_map): Likewise.
	(use_color): Likewise.
	(NUM_COLORS): New macro.
	(grub_ncurses_setcolorstate): Handle color properly.
	(grub_ncurses_setcolor): Don't change color here, just remember the
	settings, color will be set in grub_ncurses_setcolorstate.
	(grub_ncurses_getcolor): New function.
	(grub_ncurses_init): Initialize color pairs.
	(grub_ncurses_term): New member grub_ncurses_getcolor.

2008-08-05  Colin D Bennett  <colin@gibibit.com>

	High resolution timer support.  Implemented for x86 CPUs using TSC.
	Extracted generic grub_millisleep() so it's linked in only as needed.
	This requires a Pentium compatible CPU; if the RDTSC instruction is
	not supported, then it falls back on the generic grub_get_time_ms()
	implementation that uses the machine's RTC.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
	(grub_machine_init): Call grub_tsc_init().
	(grub_millisleep): Removed.

	* kern/ieee1275/init.c (grub_millisleep): Removed.
	(grub_machine_init): Install ieee1275_get_time_ms()
	implementation.
	(ieee1275_get_time_ms): New function.
	(grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
	real work.

2008-08-05  Marco Gerards  <marco@gnu.org>

	* disk/ata.c: Include <grub/pci.h>.
	(enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
	(grub_ata_initialize): Rewritten.
	(grub_ata_device_initialize): New function.

2008-08-04  Pavel Roskin  <proski@gnu.org>

	* kern/main.c: Include grub/mm.h.

2008-08-04  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
	(COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
	corruption problem).

2008-08-04  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
	warnings introduced in my last commit.

2008-08-03  Robert Millan  <rmh@aybabtu.com>

	Make PCI available on all i386 architectures.

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

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

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

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

	* conf/i386-ieee1275.rmk: Likewise.

2008-08-03  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
	(grub_console_setcursor): Make it possible to set cursor off.

2008-08-03  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/00_header.in: Be platform-agnostic.  Probe for existence
	of modules instead of assuming which platform provides what.
	* util/update-grub.in: Likewise.

2008-08-03  Robert Millan  <rmh@aybabtu.com>

	* kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
	instead of `grub_install_dos_part' to determine whether a drive needs
	to be prepended to prefix (`grub_install_dos_part' is not reliable,
	because it can be overridden when loading GRUB via Multiboot).

2008-08-02  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-install.in: Remove trailing slash from prefix.

2008-08-02  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
	of informational grub_dprintf() calls.

2008-08-02  Robert Millan  <rmh@aybabtu.com>

	* disk/memdisk.c (memdisk_size): Don't initialize.
	(GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().

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

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

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

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

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

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

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

	* conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
	(memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
	(memdisk_mod_LDFLAGS): New variables.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.

2008-08-02  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (playground, forward_relocator)
	(backward_relocator): New variables.  Used to allocate and relocate
	the payload, respectively.
	(grub_multiboot_load_elf32): Load into heap instead of requested
	address, install the appropriate relocator code in each bound of
	the payload, and set the entry point such that
	grub_multiboot_real_boot() will jump to one of them.

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

	* include/grub/i386/loader.h (grub_multiboot_payload_size)
	(grub_multiboot_payload_orig, grub_multiboot_payload_dest)
	(grub_multiboot_payload_entry_offset): Export.

2008-08-01  Bean  <bean123ch@gmail.com>

	* normal/menu_entry.c (editor_getline): Don't return the original
	string as result, as it will be released by lexer once it has done
	using it.

2008-08-01  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
	within menuentries, not before them.
	util/grub.d/10_hurd.in: Likewise.

2008-08-01  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (pkglib_MODULES): Add bufio.mod.
	(bufio_mod_SOURCES): New macro.
	(bufio_mod_CFLAGS): Likewise.
	(bufio_mod_LDFLAGS): Likewise.

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

	* io/bufio.c: Likewise.

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

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

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

	* font/manager.c: Include <grub/bufio.h>.
	(add_font): Use grub_buffile_open to open file.

2008-07-31  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
	ELF segments, use a macro for arbitrarily accessing any of them instead
	of preparing a pointer that allows access to one at a time.
	(grub_multiboot_load_elf64): Likewise.

2008-07-31  Bean  <bean123ch@gmail.com>

	* boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
	GRUB_KERNEL_MACHINE_DATA_END.

2008-07-30  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
	Increase from 0x50 to 0x60.
	* util/i386/pc/grub-install.in: Detect cross-disk installs, and
	use UUIDs to identify the root drive for them.  If that's not
	possible, abort.
	* util/i386/pc/grub-setup.c (setup): Do not special-case, or even
	check, for cross-disk installs.

2008-07-30  Robert Millan  <rmh@aybabtu.com>

	* kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
	is non-empty, use it to set the `prefix' environment variable instead
	of the usual approach.
	* kern/i386/linuxbios/init.c (make_install_device): Remove function.
	(grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
	environment variable instead of dummy make_install_device().

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

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

	* util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
	Overwrite grub_prefix with its contents, at the beginning of the
	first segment.
	(main): Understand -p|--prefix.

2008-07-30  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.

2008-07-30  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/vga_text.c (grub_console_cls): Use
	grub_console_gotoxy() to go back to beginning of the screen.
	Found by Patrick Georgi <patrick.georgi@coresystems.de>

2008-07-29  Christian Franke  <franke@computer.org>

	* util/update-grub_lib.in (make_system_path_relative_to_its_root):
	Add conversion of emulated mount points on Cygwin.

2008-07-29  Christian Franke  <franke@computer.org>

	* util/update-grub.in: Add a check for admin
	group on Cygwin.
	Remove old `grub.cfg.new' before creation.
	Add `-f' to `mv' to handle the different filesystem
	semantics of Windows.

2008-07-29  Bean  <bean123ch@gmail.com>

	* normal/main.c (get_line): Fix buffer overflow bug.

2008-07-28  Robert Millan  <rmh@aybabtu.com>

	* partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
	(struct grub_apple_header): New struct.  Describes the layout of
	the partmap header.
	(apple_partition_map_iterate): Check the header magic as well as the
	partition magic (which was already being checked).

2008-07-28  Pavel Roskin  <proski@gnu.org>

	* genmk.rb: Add a warning to the beginning of the output that
	it's a generated file and should not be edited.

2008-07-28  Robert Millan  <rmh@aybabtu.com>

	* disk/raid.c (grub_raid_scan_device): Do not abort when two disks
	with the same number are found, just use issue a warning with
	grub_dprintf(), as this error has been reported to be non-fatal.

2008-07-27  Robert Millan  <rmh@aybabtu.com>

	* disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
	information.

2008-07-27  Bean  <bean123ch@gmail.com>

	* fs/fat.c (GRUB_FAT_MAXFILE): New constant.
	(grub_fat_find_dir): Ignore case when comparing filename.

2008-07-27  Bean  <bean123ch@gmail.com>

	* fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
	smallino, as it's more descriptive, and i8count can be confused with
	the other field count.
	(grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
	inode type.

2008-07-27  Bean  <bean123ch@gmail.com>

	* commands/crc.c: New file.

	* lib/crc.c: Likewise.

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

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

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

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

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

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

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

	* util/grub-editenv.c: Likewise.

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

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

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

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

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

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

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

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

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

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

2008-07-27  Felix Zielcke  <fzielcke@z-51.de>

	* commands/help.c: Include <grub/term.h>.
	(TERM_WIDTH): Removed.  Updated all users.

2008-07-27  Pavel Roskin  <proski@gnu.org>

	* util/getroot.c (find_root_device): Rephrase a comment to avoid
	spurious warnings about a comment within a comment.

2008-07-25  Robert Millan  <rmh@aybabtu.com>

	* util/getroot.c (find_root_device): Skip devices that match
	/dev/dm-[0-9].  This lets the real device be found for any type of
	abstraction (LVM, EVMS, RAID..).
	(grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
	and /dev/evms (for EVMS) before traversing /dev.  If a /dev/dm-[0-9]
	device is found first, find_root_device() will now skip it.

2008-07-24  Pavel Roskin  <proski@gnu.org>

	* include/grub/types.h: Use __builtin_bswap32() and
	__builtin_bswap64() with gcc 4.3 and newer.

2008-07-24  Christian Franke  <franke@computer.org>

	* util/i386/pc/grub-install.in: If `--debug' is specified,
	pass `--verbose' to grub-setup.
	Abort script if make_system_path_relative_to_its_root() fails.

2008-07-24  Bean  <bean123ch@gmail.com>

	* configure.ac: Fixed a bug caused by the previous cygwin patch,
	variable `target_platform' should be `platform'.

2008-07-24  Bean  <bean123ch@gmail.com>

	* video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
	(grub_png_init_fixed_block): New function.
	(grub_png_decode_image_data): Handle fixed huffman code compression.

2008-07-24  Bean  <bean123ch@gmail.com>

	* common.rmk (bin_UTILITIES): Add grub-pe2elf.
	(grub_pe2elf_SOURCES): New macro.
	(CLEANFILES): Add grub-pe2elf.

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

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

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

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

	The following patches are from Christian Franke.

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

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

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

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

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

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

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

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

	* genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.

	* genmk.rb: Add EXEEXT to CLEANFILES.

2008-07-23  Robert Millan  <rmh@aybabtu.com>

	* Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
	define the codes for arrows and lines used for the menu).
	(ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
	as well.

	* util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
	fonts, because the latter are too slow.

2008-07-21  Bean  <bean123ch@gmail.com>

	* kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
	a20. Run keyboard test last, as it will cause macbook to halt.

2008-07-18  Pavel Roskin  <proski@gnu.org>

	* kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P.  We cannot
	load foreign architecture modules correctly anyway.  Keep
	support for loading host architecture modules, whether we
	compile them or not.

2008-07-17  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Use -m32 or -m64 regardless of whether we had to
	change target_cpu.  The compiler default can mismatch target_cpu
	in any case.

	* disk/efi/efidisk.c: Fix format warnings on x86_64.
	* kern/efi/efi.c: Likewise.

	* aclocal.m4 (grub_PROG_TARGET_CC): New macro.  Check if the
	target compiler is functional.
	* configure.ac: Call grub_PROG_TARGET_CC once all target flags
	are set up.

	* configure.ac: Default to efi platform for x86_64-apple.  Allow
	powerpc64 CPU, default to ieee1275 platform for it.  Split CPU
	adjustments from the rest, only do them if target is not
	explicitly given.  Merge other adjustments with the final sanity
	check.  Remove an extraneous check for supported CPU.  Be
	specific which CPU and which platform is not supported.

	* configure.ac: Default to pc platform for x86_64.

2008-07-17  Robert Millan  <rmh@aybabtu.com>

	Partial LinuxBIOS -> Coreboot rename.

	* conf/i386-linuxbios.rmk: Renamed to ...
	* conf/i386-coreboot.rmk: ... this.
	* Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
	* configure.ac: Accept "coreboot" as input platform (but maintain
	compatibility with "linuxbios").
	* include/grub/i386/linuxbios: Renamed to ...
	* include/grub/i386/coreboot: ... this.

2008-07-17  Bean  <bean123ch@gmail.com>

	* conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
	(appleldr_mod_SOURCE): New variable.
	(appleldr_mod_CFLAGS): Likewise.
	(appleldr_mod_LDFLAGS): Likewise.
	(pci_mod_SOURCES): Likewise.
	(pci_mod_CFLAGS): Likewise.
	(pci_mod_LDFLAGS): Likewise.
	(lspci_mod_SOURCES): Likewise.
	(lspci_mod_CFLAGS): Likewise.
	(lspci_mod_LDFLAGS): Likewise.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* loader/efi/appleloader.c: Likewise.

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

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

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

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

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

	* util/i386/efi/grub-mkimage.c: Add support for x86_64.

2008-07-16  Pavel Roskin  <proski@gnu.org>

	* loader/i386/efi/linux.c (allocate_pages): Fix warnings in
	format strings.

	* util/i386/efi/grub-mkimage.c (get_target_address): Return a
	pointer, not an integer.  This fixes a warning and prevents
	precision loss on 64-bit systems.
	(relocate_addresses): Remove unneeded cast.

2008-07-15  Pavel Roskin  <proski@gnu.org>

	* kern/i386/ieee1275/init.c: Include grub/cache.h.

	* term/ieee1275/ofconsole.c: Disable code unused on i386.

	* kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
	Fix comparison between signed and unsigned.

	* include/grub/i386/ieee1275/console.h: Declare
	grub_console_init() and grub_console_fini().

	* loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
	It's empty and unused.

	* fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
	beginning to avoid warnings with some compilers.

	* loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
	[__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.

2008-07-14  Pavel Roskin  <proski@gnu.org>

	* kern/env.c (grub_register_variable_hook): Don't copy empty
	string, it leaks memory.  Pass "" to grub_env_set(), it should
	handle constant strings.

	* commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
	* commands/cmp.c (grub_cmd_cmp): Likewise.
	* kern/dl.c (grub_dl_flush_cache): Likewise.
	(grub_dl_load_core): Likewise.
	* kern/elf.c (grub_elf32_load_phdrs): Likewise.
	(grub_elf64_load_phdrs): Likewise.

2008-07-13  Pavel Roskin  <proski@gnu.org>

	* lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
	between signed and unsigned.
	(LzmaEnc_Finish): Fix warning about an unused parameter.

2008-07-13  Bean  <bean123ch@gmail.com>

	* Makefile.in (enable_lzo): New rule.

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

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

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

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

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

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

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

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

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

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

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

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

	* lib/LzFind.c: Likewise.

	* lib/LzmaDec.c: Likewise.

	* lib/LzmaEnc.c: Likewise.

2008-07-13  Bean  <bean123ch@gmail.com>

	* fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
	(grub_ext4_extent_header): New structure.
	(grub_ext4_extent): Likewise.
	(grub_ext4_extent_idx): Likewise.
	(grub_ext4_find_leaf): New function.
	(grub_ext2_read_block): Handle extents.

2008-07-12  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.

2008-07-11  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/40_custom.in: New file. Example on how to add custom
	entries to /etc/grub.d.
	* conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
	40_custom (implicitly, by merging all the grub.d rules).

2008-07-11  Pavel Roskin  <proski@gnu.org>

	* commands/read.c (grub_getline): Fix invalid memory access.
	Don't add newline to the variable value.

	* term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
	[!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
	(serial_hw_get_port): Check validity of the port number.
	(grub_cmd_serial): Check return value of serial_hw_get_port().

2008-07-07  Pavel Roskin  <proski@gnu.org>

	* boot/i386/pc/diskboot.S (notification_string): Replace
	"Loading kernel" with just "loading".  This is shorter, less
	confusing and saves a few bytes for possible future changes.

2008-07-05  Pavel Roskin  <proski@gnu.org>

	* disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
	size for ATAPI devices, they are undefined.  Output sector
	number in decimal form.

	* disk/ata.c: Use named constants for status bits.

2008-07-04  Pavel Roskin  <proski@gnu.org>

	* kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
	grub_addr_t before casting it to the void pointer to fix a
	warning.  Non-addressable regions are discarded earlier.
	(grub_arch_modules_addr): Cast _end to grub_addr_t.
	* kern/i386/linuxbios/table.c: Include grub/misc.h.
	(check_signature): Don't shadow table_header.
	(grub_linuxbios_table_iterate): Cast numeric constants to
	grub_linuxbios_table_header_t.
	* include/grub/i386/linuxbios/init.h: Add noreturn attribute to
	grub_stop().

	* kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
	prevent warnings.

	* include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
	pointer, which can cause warnings.  Support 64-bit addresses.

	* util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
	of sizeof(long).  This fixes PowerPC image generation on x86_64.

2008-07-04  Robert Millan  <rmh@aybabtu.com>

	This fixes a performance issue when pc & gpt partmap iterators
	didn't abort iteration even after our hook found what it was
	looking for (often causing expensive probes of non-existent drives).

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

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

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

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

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

	* util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
	when grub_partition_iterate() returned with non-zero.

2008-07-03  Pavel Roskin  <proski@gnu.org>

	* disk/ata.c (grub_ata_pio_write): Check status before writing,
	like we do in grub_ata_pio_read().
	(grub_ata_readwrite): Always write individual sectors.  Fix the
	sector count for the remainder.
	(grub_ata_write): Enable writing to ATA devices.  Correctly
	report error for ATAPI devices.

2008-07-02  Pavel Roskin  <proski@gnu.org>

	* boot/i386/pc/cdboot.S: Add _start entry to fix a linker
	warning.

	* disk/ata.c (grub_ata_readwrite): Don't increment sector number
	for every read sector, we already increment it for the whole
	batch.  This fixes reading more than 256 sectors at once.

	* util/grub-editenv.c (cmd_info): Cast argument to long
	explicitly.  ptrdiff_t reduces to int on i386.

	* util/grub-editenv.c (main): Be specific which parameter is
	missing.

	* disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
	(memdisk): Make memdisk_orig_addr a pointer.

	* fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
	for file offsets, use grub_off_t instead.  Fix printf format
	warnings.

	* fs/reiserfs.c: Remove #warning, TODO list items don't belong
	there.  Real unexpected warnings should not drown in the noise
	about known problems.

	* commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
	grub_disk_addr_t for memory addresses.

	* loader/aout.c (grub_aout_load): Cast load_addr to pointer
	explicitly to fix a warning.

	* util/grub-editenv.c (cmd_info): Fix warning in printf format.

	* Makefile.in (MODULE_LDFLAGS): New variable.
	* aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro.  Check if
	the linker accepts --build-id=none.
	* configure.ac: Call grub_PROG_LD_BUILD_ID_NONE.  Substitute
	MODULE_LDFLAGS.
	* genmk.rb: Use MODULE_LDFLAGS when linking modules.

	* fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
	those in Linux XFS code.  Provide a way to access 64-bit parent
	inode.
	(grub_xfs_iterate_dir): Use the new names.  Avoid reading past
	the end of struct grub_xfs_dir_header.

2008-07-02  Bean  <bean123ch@gmail.com>

	* include/grub/ieee1275.h (grub_ieee1275_flag): New constant
	GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
	and GRUB_IEEE1275_FLAG_NO_ANSI.

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

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

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

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

	* util/elf/grub-mkimage.c (add_segments): Move ELF header to the
	beginning of file.

2008-07-02  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (bin_UTILITIES): Add grub-editenv.
	(grub_editenv_SOURCES): New variable.
	(pkglib_MODULES): Add loadenv.mod.
	(loadenv_mod_SOURCES): New variable.
	(loadenv_mod_CFLAGS): Likewise.
	(loadenv_mod_LDFLAGS): Likewise.

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

	* util/envblk.c: New file.

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

	* commands/loadenv.c: New file.

2008-07-01  Pavel Roskin  <proski@gnu.org>

	* include/multiboot2.h (struct multiboot_tag_module): Use char,
	not unsigned char.  This fixes warnings and is consistent with
	other tags.

	* disk/fs_uuid.c (search_fs_uuid): Correctly increment count.

	* normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.

	* term/tparm.c (analyze): Always set *popcount.

	* loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
	cast to fix a warning.

	* loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
	cast to suppress a warning.

	* fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
	grub_fshelp_read_file() expects.

	* fs/fat.c: Fix UUID calculation on big-endian systems.  We
	write uuid as a 32-bit value in CPU byte order, so declare and
	use it as such.

	* disk/raid.c: Cast grub_dprintf() arguments to unsigned long
	long if the format specifier expects it.
	* partmap/gpt.c (gpt_partition_map_iterate): Likewise.
	* partmap/pc.c (pc_partition_map_iterate): Likewise.
	* fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
	long to fix a warning.
	* fs/reiserfs.c (grub_reiserfs_read): Change casts in
	grub_dprintf() arguments to fix warnings.

2008-06-30  Pavel Roskin  <proski@gnu.org>

	* util/i386/pc/grub-setup.c (setup): Write install_dos_part and
	install_bsd_part immediately before core.img is embedded or
	modified on disk.  This fixes core.img verification if core.img
	cannot be embedded.

	* util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
	core_path to calculate the blocklist.
	Patch from Javier Martín <lordhabbit@gmail.com>

2008-06-29  Robert Millan  <rmh@aybabtu.com>

	* fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro.  Maps filesystem
	block to disk block.
	(grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
	Patch from Niels Böhm <bitbucket@arcor.de>

2008-06-29  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (font_path): Search for fonts in
	/boot/grub first, which is more likely to be readable (we aren't
	deciding where fonts live, just looking for them).

2008-06-26  Pavel Roskin  <proski@gnu.org>

	* util/biosdisk.c (read_device_map): Don't leave dead map
	entries for devices failing stat() check.

	* util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
	core_path_dev for the core.img path on the target device.

2008-06-26  Robert Millan  <rmh@aybabtu.com>

	* disk/fs_uuid.c: New file.
	* conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
	(fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
	(fs_uuid_mod_LDFLAGS): New variables.
	* include/grub/disk.h (grub_disk_dev_id): Add
	`GRUB_DISK_DEVICE_UUID_ID'.
	* kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
	implement iterate().

2008-06-26  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
	"/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
	Linux image includes no initrd.

2008-06-21  Javier Martín  <lordhabbit@gmail.com>

	* util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
	call to resolve the core image location that effectively appended the
	name twice.

2008-06-21  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
	call from here ...

	* util/grub.d/10_hurd.in: ... to here ...
	* util/grub.d/10_linux.in: ... and here.

2008-06-19  Robert Millan  <rmh@aybabtu.com>

	* kern/main.c (grub_main): Export `prefix' variable immediately
	after it has been set by grub_machine_set_prefix().

2008-06-19  Robert Millan  <rmh@aybabtu.com>

	* commands/search.c (search_label, search_fs_uuid, search_file): Print
	search result when not saving to variable, not the other way around.
	When saving to variable, abort iteration as soon as a match is found.

2008-06-19  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (prepare_grub_to_access_device): Remove
	check for partition that provides /boot/grub.  Its logic is flawed,
	as it prevents prepare_grub_to_access_device() from being called
	multiple times.

2008-06-19  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (prepare_grub_to_access_device): Issue
	"insmod" command directly when abstraction modules are needed,
	instead of relying on GRUB_PRELOAD_MODULES (which had no effect
	since it had already been processed).

2008-06-19  Pavel Roskin  <proski@gnu.org>

	* conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
	changed.  This is needed in case GRUB_LIBDIR changes.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-linuxbios.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.

2008-06-18  Pavel Roskin  <proski@gnu.org>

	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
	kernel_elf_symlist.c to symlist.c for consistency with other
	architectures.  Update all users.
	* conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.

2008-06-18  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
	it in prefix.

	* util/i386/pc/grub-setup.c (main): Don't handle prefix at all.  Set
	`must_embed' to 1 when root_dev is a RAID device.  When dest_dev is
	a RAID device, run setup() for all members independently on whether
	LVM abstraction is being used.
	(setup): Don't handle prefix at all; let grub-mkimage take care of it.
	If grub-mkimage has set `*install_dos_part == -2', don't override this
	value.
	Perform *install_dos_part adjustments independently on whether
	we're embedding or not.
	Clarify error message when image is too big for embedding.
	Remove duplicate *install_dos_part stanza.

2008-06-17  Robert Millan  <rmh@aybabtu.com>

	* term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
	(grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
	variables.
	(grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
	values in grub_ofconsole_normal_color and
	grub_ofconsole_highlight_color (they're not directly related to
	background and foreground).
	(grub_ofconsole_setcolorstate): Extract background and foreground
	from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.

2008-06-17  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (prepare_grub_to_access_device): Use
	/boot/grub for the check in last commit, not /boot (they could be
	different partitions).

2008-06-16  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (prepare_grub_to_access_device): If we were
	asked to setup access for the same partition that provides /boot,
	don't bother using UUIDs since our root already has the value we
	want.

2008-06-16  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (convert_system_partition_to_system_disk): Detect
	I2O devices.
	Patch from Sven Mueller <sven@debian.org>.

2008-06-16  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Check for $EUID instead of $UID.
	Reported by Vincent Zweije.

2008-06-16  Bean  <bean123ch@gmail.com>

	* fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
	(grub_ext2_read_block): Likewise.
	(grub_ext2_read_inode): Likewise.
	(grub_ext2_mount): Likewise.
	(grub_ext2_close): Likewise.
	(grub_ext3_get_journal): Removed.

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

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

	* include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
	(grub_fshelp_journal): Likewise.
	(grub_fshelp_read): Likewise.
	(grub_fshelp_map_block): Likewise.

2008-06-16  Pavel Roskin  <proski@gnu.org>

	* conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
	floating point anymore.
	* include/grub/powerpc/libgcc.h: Leave only necessary exports.

2008-06-15  Pavel Roskin  <proski@gnu.org>

	* commands/ls.c (grub_ls_list_files): Use integer calculations
	for human readable format, avoid floating point use.
	* kern/misc.c (grub_ftoa): Remove.
	(grub_vsprintf): Remove floating point support.

2008-06-15  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in: Use the underlying device for loop-AES
	devices.
	Reported by Max Vozeler.

2008-06-15  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
	in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
	skipped later.
	(main): If a memdisk was requested, add "(memdisk)" drive explicitly to
	the beginning of the prefix.

	* kern/i386/pc/init.c (make_install_device): Remove memdisk check.
	It is assumed that if we have a memdisk, grub-mkimage has set
	grub_prefix to include the "(memdisk)" drive in it.

2008-06-15  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
	Initialize keyboard controller after registering the terminal, so that
	grub_printf() can be called from grub_keyboard_controller_init().

2008-06-15  Robert Millan  <rmh@aybabtu.com>

	* fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
	extent-btree which is written as big endian on disk.
	Reported by Alain Greppin  <al@chilibi.org>.

2008-06-14  Robert Millan  <rmh@aybabtu.com>

	* util/i386/efi/grub-install.in (modules): Remove `_chain'.
	* util/i386/pc/grub-install.in (modules): Likewise.

2008-06-13  Pavel Roskin  <proski@gnu.org>

	* commands/ls.c (grub_ls_list_files): Fix format warnings.

2008-06-13  Bean  <bean123ch@gmail.com>

	* commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.

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

	* fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
	to indicate sparse block.

2008-06-12  Pavel Roskin  <proski@gnu.org>

	* fs/ext2.c (grub_ext2_read_inode): Don't normalize block
	number, grub_fshelp_read() does it for us.

	* fs/fshelp.c (grub_fshelp_read): New function.  Implement
	linear disk read with journal translation.
	* fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
	* include/grub/fshelp.h: Declare grub_fshelp_read().

2008-06-09  Pavel Roskin  <proski@gnu.org>

	* fs/minix.c (grub_minix_mount): Handle error reading
	superblock.

2008-06-08  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-setup.c (main): If install drive is an LVM,
	don't append the RAID prefix afterwards.
	Reported by Clint Adams.

2008-06-08  Robert Millan  <rmh@aybabtu.com>

	Based on description from Pavel:
	* kern/disk.c (grub_disk_check_range): Rename to ...
	(grub_disk_adjust_range): ... this.  Add a comment explaining the
	tasks performed by this function.

2008-06-08  Robert Millan  <rmh@aybabtu.com>

	* include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
	`num_serial' (for consistency with other variables).
	(struct grub_ntfs_data): Add `uuid' member.
	* fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
	(grub_ntfs_uuid): New function.
	(grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.

2008-06-07  Pavel Roskin  <proski@gnu.org>

	* util/biosdisk.c (open_device): Revert last change to the
	function, it broke installation.  The sector needs to be
	different dependent on which device is opened.

2008-06-06  Robert Millan  <rmh@aybabtu.com>

	Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
	rest of GRUB, and breakage doesn't happen if its value were modified.

	* include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
	Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
	a constant (same value).
	* kern/i386/pc/startup.S: Replace hardcoded `0x50' with
	`GRUB_KERNEL_MACHINE_DATA_END' (same value).

2008-06-06  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (open_device): Do not modify sector offset when
	accessing a partition.  kern/disk.c already handles this for us.

2008-06-06  Robert Millan  <rmh@aybabtu.com>

	* util/grub-emu.c (grub_machine_init): Move code in this function from
	here ...
	(main): ... to here (before grub_util_biosdisk_init() call, to prevent
	segfault in case grub_printf() is called).

	* util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
	grub_probe.  Update all users not to explicitly add it again.
	(grub_device): New variable; contains corresponding device for grubdir.
	(fs_module, partmap_module, devabstraction_module): Pass
	`--device ${grub_device}' to grub_probe to avoid traversing /dev
	every time.

2008-06-05  Robert Millan  <rmh@aybabtu.com>

	* normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
	is found, print it (same layout as with labels).

2008-06-04  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (get_drive): Rename to ...
	(find_grub_drive): ... this.  Update all users.

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

	(find_drive): Rename to ...
	(find_system_device): ... this.  Update all users.

2008-06-04  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (get_os_disk): Handle IDA devices.
	* util/grub-mkdevicemap.c (get_mmc_disk_name)
	(make_device_map): Likewise.

2008-06-01  Robert Millan  <rmh@aybabtu.com>

	*  util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
	before dereferencing it.

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

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

	* fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
	(grub_xfs_uuid): New function.
	(grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.

2008-06-01  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (prepare_grub_to_access_device): Generate
	code that is backward compatible with pre-uuid search command.

2008-05-31  Robert Millan  <rmh@aybabtu.com>

	* disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
	floppies after everything else, to ensure floppy drive isn't accessed
	unnecessarily (patch from Bean).

2008-05-31  Robert Millan  <rmh@aybabtu.com>

	* commands/search.c (search_label, search_fs_uuid, search_file): Do
	not print device names when we were asked to set a variable.

2008-05-31  Robert Millan  <rmh@aybabtu.com>

	* term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
	using "cursor-on" and "cursor-off" commands (understood at least by
	the Open Firmware flavour on OLPC).

2008-05-31  Michael Gorven  <michael@gorven.za.net>

	* term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
	on and off sequences.

2008-05-31  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
	* util/update-grub.in: Likewise.

2008-05-30  Pavel Roskin  <proski@gnu.org>

	* util/biosdisk.c (linux_find_partition): Simplify logic and
	make the code more universal.  Keep special processing for
	devfs, but use a simple rule for all other devices.  If the
	device ends with a number, append 'p' and the partition number.
	Otherwise, append only the partition number.

2008-05-30  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
	* util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
	GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
	the `root' parameter to Linux.

2008-05-30  Robert Millan  <rmh@aybabtu.com>

	* commands/search.c (options): Rename --fs_uuid to --fs-uuid.
	* util/update-grub_lib.in (prepare_grub_to_access_device): Replace
	--fs_uuid with --fs-uuid.
	* util/update-grub.in: Allow filesystem UUID probes to fail (since not
	all filesystems support them).

2008-05-30  Robert Millan  <rmh@aybabtu.com>

	* fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
	grub_printf() flags, since we're printing in units of 2 bytes.

2008-05-30  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/00_header.in: Remove obsolete comment referencing
	convert_system_path_to_grub_path().
	* util/update-grub.in: Likewise.
	* util/update-grub_lib.in (is_path_readable_by_grub): New function.
	(convert_system_path_to_grub_path): Add a warning message explaining
	that this function is deprecated.  Rely on is_path_readable_by_grub()
	for the readability checks.
	(font_path): Use is_path_readable_by_grub() for the readability
	check rather than convert_system_path_to_grub_path().

2008-05-30  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (prepare_grub_to_access_device): New function.
	* util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
	converting it first.
	* util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
	grub.cfg for access to font file, and afterwards call it again to set
	the root device.

2008-05-30  Robert Millan  <rmh@aybabtu.com>

	* commands/search.c (options): Add --fs_uuid option.
	(search_fs_uuid): New function.
	(grub_cmd_search): Fix --set argument passing.
	Use search_fs_uuid() when requested via --fs_uuid.
	(grub_search_init): Update help message.
	* fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
	and redeclare it as an array of 16-bit words.
	(grub_ext2_uuid): New function.
	(grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
	* include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
	* util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
	(GRUB_DEVICE_BOOT_UUID): New variables.
	(GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
	* util/grub.d/00_header.in: Set root using `search --fs_uuid' command
	whenever possible.
	* util/grub.d/10_hurd.in: Avoid explicit use of root drive.  Instead,
	just assume `root' variable has the right value.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub-probe.c (probe): Probe for filesystem UUID when requested
	via PRINT_FS_UUID.
	(main): Recognise `-t fs_uuid' argument.

2008-05-30  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (map): Redefine structure to hold information
	about GRUB drive name.
	(get_drive): Reimplement without assuming (and verifying) BIOS-like
	drive names.
	(call_hook): Remove.
	(grub_util_biosdisk_iterate): Access drive names via `.drive' struct
	member.  Assume drive has partitions.
	(grub_util_biosdisk_open): Access device names via `.device' struct
	member.
	(open_device): Likewise.
	(find_drive): Likewise.
	(read_device_map): Adjust map[] usage to match the new struct
	definition.  Don't check for duplicates (still possible, but not cheap
	anymore).
	(grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
	(make_device_name): Remove assumption of BIOS-like drive names.

2008-05-30  Pavel Roskin  <proski@gnu.org>

	* conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
	compiling execute.c doesn't need grub_script.tab.h anymore.
	(normal/command.c_DEPENDENCIES): Likewise.
	(normal/function.c_DEPENDENCIES): Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-linuxbios.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.

2008-05-29  Pavel Roskin  <proski@gnu.org>

	* disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
	when scanning metadata for volume group name.

	* include/grub/script.h: Don't include grub_script.tab.h.  It's
	a generated file, which may only be included from the files with
	DEPENDENCIES rules in the makefile.  Don't use typedef YYSTYPE,
	use union YYSTYPE, as the later allows forward declaration.
	* normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.

2008-05-29  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
	(OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
	[GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
	(grub_console_checkkey): Add grub_dprintf() call to report unknown
	scan codes.

2008-05-29  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
	control key combinations.

2008-05-29  Robert Millan  <rmh@aybabtu.com>

	* util/powerpc/ieee1275/grub-install.in: Move from here ...
	* util/ieee1275/grub-install.in: ... to here.
	* powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
	* i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
	(grub_install_SOURCES): Likewise.

2008-05-29  Robert Millan  <rmh@aybabtu.com>

	* fs/affs.c: Update copyright year.
	* fs/ext2.c: Likewise.
	* fs/fshelp.c: Likewise.
	* fs/hfsplus.c: Likewise.
	* fs/ntfs.c: Likewise.
	* fs/xfs.c: Likewise.
	* include/grub/fshelp.h: Likewise.
	* util/grub-mkdevicemap.c: Likewise.

2008-05-28  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Allow chmod call to fail, since /boot/grub/
	might need to be fatfs to support some firmware implementations
	(e.g. OFW or EFI).

2008-05-28  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
	devices.
	* util/grub-mkdevicemap.c (get_mmc_disk_name)
	(make_device_map): Likewise.

2008-05-20  Bean  <bean123ch@gmail.com>

	* fs/fshelp.c (grub_fshelp_map_block): New function.
	(grub_fshelp_find_file): Use 64-bit type for pos and block address.
	Use `>>' and `&' operator to avoid 64-bit divide and modulo.

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

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

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

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

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

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

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

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

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

2008-05-16  Christian Franke  <franke@computer.org>

	* commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
	to ensure that break with ESC will always work.
	* commands/sleep.c (grub_interruptible_millisleep): Likewise.
	Remove ESC from keyboard queue.

2008-05-16  Christian Franke  <franke@computer.org>

	* util/biosdisk.c: [__CYGWIN__] Add includes.
	(grub_util_biosdisk_open): Use Linux code also for Cygwin.
	(get_os_disk): Move variable declarations to OS specific
	parts to avoid warning.
	[__GNU__] (get_os_disk): Fix /dev/sdXsN case.
	[__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
	(grub_util_biosdisk_get_grub_dev): Use Linux code also for
	Cygwin.
	* util/getroot.c: [__CYGWIN__] Add includes.
	(strip_extra_slashes): Fix "/" case.
	[__CYGWIN__] (get_win32_path): New function.
	[__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
	[__CYGWIN__] (find_root_device): Disable.
	[__CYGWIN__] (get_bootsec_serial): New function.
	[__CYGWIN__] (find_cygwin_root_device): Likewise.
	[__linux__] (grub_guess_root_device): Add early returns to simplify
	structure.
	[__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
	[__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
	check for Linux only.

2008-05-15  Bean  <bean123ch@gmail.com>

	* kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
	keyboard hang problem in apple's intel mac.

2008-05-09  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
	devices.
	* util/grub-mkdevicemap.c (get_virtio_disk_name)
	(make_device_map): Likewise.
	Reported by Aurelien Jarno <aurel32@debian.org>

2008-05-07  Ian Campbell  <ijc@hellion.org.uk>

	* util/biosdisk.c (get_os_disk): Recognise xvd type disks.
	* util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
	(make_device_map): Output entries for xvd type disks.

2008-05-07  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
	devices.
	* util/grub-mkdevicemap.c (get_cciss_disk_name)
	(make_device_map): Likewise.
	Reported by Roland Dreier <rdreier@cisco.com>

2008-05-07  Robert Millan  <rmh@aybabtu.com>

	* disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
	grub_strstr() call.  Correct a few mistakes in failure path handling.

2008-05-06  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (make_system_path_relative_to_its_root):
	Do not print a trailing slash (therefore, the root directory is an
	empty string).
	(convert_system_path_to_grub_path): Do not remove trailing slash
	from make_system_path_relative_to_its_root() output.

	* util/i386/pc/grub-install.in: Add trailing slash to output from
	make_system_path_relative_to_its_root().

2008-05-06  Robert Millan  <rmh@aybabtu.com>

	* util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'.  This
	ensures that output lines aren't intermangled with those sent to
	stderr (via grub_util_info()).
	* util/grub-probe.c (grub_refresh): Likewise.
	* util/i386/pc/grub-setup.c (grub_refresh): Likewise.

2008-05-05  Christian Franke  <franke@computer.org>

	* util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
	Add Cygwin device names.
	(get_ide_disk_name) [__CYGWIN__]: Likewise.
	(get_scsi_disk_name) [__CYGWIN__]: Likewise.
	(check_device): Return error instead of success on empty name.
	(make_device_map): Move label inside linux specific code to
	prevent compiler warning.

2008-04-30  Robert Millan  <rmh@aybabtu.com>

	Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
	* util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
	first boot option.
	* util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.

2008-04-29  Robert Millan  <rmh@aybabtu.com>

	* docs/grub.cfg: New file (example GRUB configuration).

2008-04-26  Robert Millan  <rmh@aybabtu.com>

	* DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST).  Add
	`loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
	and `disk/ieee1275/nand.c'.

2008-04-25  Bean  <bean123ch@gmail.com>

	* Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
	i386-linuxbios.

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

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

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

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

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

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

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

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

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

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

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

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

	* disk/ieee1275/nand.c: New file.

2008-04-18  Thomas Schwinge  <tschwinge@gnu.org>

	* util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
	value.
	* util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.

2008-04-18  Robert Millan  <rmh@aybabtu.com>

	Restructures early code path on ieee1275 to unify grub_main() as
	the first C function that is executed in every platform.

	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
	* kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
	cmain().
	* kern/powerpc/ieee1275/crt0.S (_start): Likewise.
	* kern/ieee1275/cmain.c (cmain): Rename to ...
	* kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
	* kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
	at the beginning.

2008-04-18  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Fix syntax error when setting
	`GRUB_PRELOAD_MODULES'.
	Reported by Stephane Chazelas <stephane@artesyncp.com>

2008-04-17  Lubomir Kundrak  <lkundrak@redhat.com>

	* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
	section into account, newer toolchains generate unique build ids
	* configure.ac: remove the test for --build-id=none acceptance,
	we want build ids to be preserved
	* genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
	far from other sections don't cause the raw binary images grow
	size

2008-04-15  Robert Millan  <rmh@aybabtu.com>

	* disk/lvm.c: Update copyright year.
	* kern/misc.c: Likewise.

2008-04-14  Vesa Jaaskelainen  <chaac@nic.fi>

	* disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
	there is no memory left for physical volume name.

2008-04-14  Vesa Jaaskelainen  <chaac@nic.fi>

	* disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
	volume name mapping to support bigger than 9 character names properly.

2008-04-13  Robert Millan  <rmh@aybabtu.com>

	* disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
	as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm

2008-04-13  Christian Franke  <franke@computer.org>

	* util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
	to create a floppy emulation boot CD when non emulation mode
	does not work.
	Enable Joliet CD filesystem extension.

2008-04-13  Robert Millan  <rmh@aybabtu.com>

	* kern/misc.c (grub_strncat): Fix off-by-one error.
	Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>

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

	* kern/misc.c (grub_strcat): Minor speed optimization (same code size).

2008-04-13  Robert Millan  <rmh@aybabtu.com>

	Improve robustness when handling LVM.

	* disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
	(and leave `*p' unmodified).
	(grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
	through it.
	(grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
	iterating through it.
	(grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
	through it.
	(grub_lvm_scan_device): Check the return value (and fail gracefully
	when due) on each grub_lvm_getvalue() or grub_strstr() call.
	Don't assume `vg->pvs != NULL' when iterating through it.

2008-04-13  Robert Millan  <rmh@aybabtu.com>

	* gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
	* genmk.rb (partmap): New variable.
	(CLEANFILES, PARTMAPFILES): Add #{partmap}.
	(#{partmap}): New target rule.
	* genpartmaplist.sh: New file.
	* Makefile.in (pkglib_DATA): Add partmap.lst.
	(partmap.lst): New target rule.
	* util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
	modules (including all partition maps), instead of preloading them.

2007-04-13  Fabian Greffrath  <fabian.greffrath@web.de>

	* util/grub.d/30_os-prober.in: New script. Use `os-prober' and
	`linux-boot-prober' (if installed) to detect other operating
	systems which are installed on the computer and add them to
	the boot menu.
	* conf/common.rmk: Build and install 30_os-prober.

2008-04-12  Robert Millan  <rmh@aybabtu.com>

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

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

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

	* loader/powerpc/ieee1275/multiboot2.c: Move from here ...
	* loader/ieee1275/multiboot2.c: ... to here.  Update all users.

2008-04-10  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Always use "_cv_" in cache variables for
	compatibility with Autoconf 2.62.

2008-04-07  Robert Millan  <rmh@aybabtu.com>

	Revert grub/machine/init.h addition by Pavel (since it breaks on
	i386-ieee1275 and others):
	* util/i386/pc/misc.c: Remove grub/machine/init.h.
	* util/powerpc/ieee1275/misc.c: Likewise.

2008-04-07  Robert Millan  <rmh@aybabtu.com>

	* util/grub-probe.c (probe): Improve error message.

2008-04-07  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (read_device_map): Skip devices that don't exist
	(this prevents the presence of a bogus entry from ruining the whole
	thing).

2008-04-06  Pavel Roskin  <proski@gnu.org>

	* util/biosdisk.c: Include grub/util/biosdisk.h.
	* util/grub-fstest.c (execute_command): Make static.
	* util/grub-mkdevicemap.c (check_device): Likewise.
	* util/i386/pc/misc.c: Include grub/machine/init.h.
	* util/powerpc/ieee1275/misc.c: Likewise.
	* util/lvm.c: Include grub/util/lvm.h.
	* util/misc.c: Include grub/kernel.h, grub/misc.h and
	grub/cache.h.
	* util/raid.c: Include grub/util/raid.h.
	(grub_util_getdiskname): Make static.

	* util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
	grub_hostfs_fini(), as they are called from grub_init_all() and
	grub_fini_all() respectively.  This fixes an infinite loop in
	grub-fstest due to double registration of hostfs.
	Reported by Christian Franke <Christian.Franke@t-online.de>

2008-04-05  Pavel Roskin  <proski@gnu.org>

	* bus/pci.c (grub_pci_iterate): For multifunction devices, probe
	all 8 functions.  Otherwise, probe function 0 only.

2008-04-04  Pavel Roskin  <proski@gnu.org>

	* commands/lspci.c (grub_lspci_iter): Print the bus number
	correctly.

	* commands/lspci.c (grub_pci_classes): Fix typos.
	(grub_lspci_iter): Don't print func twice.  Print vendor ID
	before device ID, as it's normally done.

	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
	Fix signedness warnings.
	* kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
	Likewise.
	* util/ieee1275/get_disk_name.c: Include config.h so that
	_GNU_SOURCE is defined and getline() is declared.  Mark an
	unused argument as such.  Fix a signedness warning.

2008-04-02  Pavel Roskin  <proski@gnu.org>

	* genkernsyms.sh.in: Use more robust assignments for CC and
	srcdir.  Quote srcdir.
	* gensymlist.sh.in: Likewise.  Assert at the compile time that
	the symbol table is not empty.

	* disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
	* fs/cpio.c (grub_cpio_read): Likewise.

2008-04-01  Pavel Roskin  <proski@gnu.org>

	* disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
	* disk/host.c (grub_host_open): Likewise.
	* disk/loopback.c (grub_loopback_open): Likewise.
	* disk/memdisk.c (grub_memdisk_open): Use a string pointer for
	disk->id as in disk/host.c, not a multi-character constant.

	* util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek().  The
	later is obsolete, potentially dangerous and sets a bad example.
	* util/i386/efi/grub-mkimage.c (make_header): Likewise.
	* util/misc.c (grub_util_get_image_size): Likewise.

	* disk/loopback.c (options): Improve help for "--partitions".

	* normal/arg.c (grub_arg_show_help): Fix spacing of the long
	options to align them with the short options, e.g. "echo -e".

2008-03-31  Bean  <bean123ch@gmail.com>

	* video/reader/png.c (grub_png_data): New member is_16bit and
	image_data.
	(grub_png_decode_image_header): Detect 16 bit png image.
	(grub_png_convert_image): New function to convert 16 bit image to 8 bit.
	(grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
	(grub_video_reader_png): Release memory occupied by image_data.

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

	* include/grub/ntfs.h (MAX_SPC): Removed.

2008-03-31  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (pkgdata_MODULES): Add afs.mod.
	(grub_probe_SOURCES): Add fs/afs.c.
	(grub_fstest_SOURCES): Likewise.
	(afs_mod_SOURCES): New variable.
	(afs_mod_CFLAGS): Likewise.
	(afs_mod_LDFLAGS): Likewise.

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

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

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

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

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

	* fs/afs.c: New file.

2008-03-30  Pavel Roskin  <proski@gnu.org>

	* disk/host.c: Include grub/misc.h to fix a warning.
	* util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
	warnings about implicit declarations.

	* fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
	variable.
	* include/grub/i386/loader.h: Change declaration of
	grub_linux_boot() to match what grub_loader_set() expects.
	* util/getroot.c (grub_guess_root_device): Return const char* to
	fix a warning.
	* util/grub-probe.c (probe): Fix a warning about uninitialized
	abstraction_name variable.
	* util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
	second argument as unused to fix a warning.

	* loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
	missing grub_error() call.

	* util/update-grub_lib.in: Define datarootdir, since Autoconf
	2.60 and newer uses it to define datadir.

	* commands/sleep.c: Fix warning about implicit declaration.
	* disk/memdisk.c: Likewise.
	* loader/aout.c: Likewise.
	* loader/i386/bsd_normal.c: Likewise.
	* util/grub-probe.c: Likewise.

	* commands/i386/cpuid.c (has_longmode): Make static.
	* disk/i386/pc/biosdisk.c (cd_drive): Likewise.
	* include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.

	* kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
	GDT.  This is more robust, as %ds can change.
	(grub_biosdisk_rw_int13_extensions): Don't clear %ds before
	calling real_to_prot().
	(grub_biosdisk_get_diskinfo_int13_extensions): Likewise.

2008-03-28  Pavel Roskin  <proski@gnu.org>

	* kern/i386/pc/startup.S: Assert that uncompressed functions
	don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
	* kern/i386/pc/lzo1x.S: Remove all .align directives in the
	code, as they push parts of the code (error handlers) beyond
	GRUB_KERNEL_MACHINE_RAW_SIZE.  Speed is not as important in this
	code as correctness and size.

2008-03-28  Pavel Roskin  <proski@gnu.org>

	* kern/i386/pc/startup.S
	(grub_biosdisk_get_diskinfo_int13_extensions): When converting
	data block address to the real mode, keep offset minimal.  This
	works around a bug in AWARD BIOS on old Athlon systems, which
	makes CD detection hang.

2008-03-26  Pavel Roskin  <proski@gnu.org>

	* normal/color.c (grub_parse_color_name_pair): Make `name' a
	const.
	* include/grub/normal.h: Add grub_parse_color_name_pair()
	declaration.

2008-03-24  Bean  <bean123ch@gmail.com>

	* disk/i386/pc/biosdisk.c (cd_start): Removed.
	(cd_count): Removed.
	(cd_drive): New variable.
	(grub_biosdisk_get_drive): Don't check for (cdN) device.
	(grub_biosdisk_call_hook): Likewise.
	(grub_biosdisk_iterate): Change cdrom detection method.
	(grub_biosdisk_open): Replace cd_start with cd_drive.
	(GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
	detect cdrom device.

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

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

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

	* kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
	New function.

2008-03-20  Robert Millan  <rmh@aybabtu.com>

	Remove 2 TiB limit in ata.mod.
	* disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
	(grub_ata_dumpinfo): Print sector count with 0x%llx.
	(grub_ata_identify): Interpret `&info16[100]' as a pointer to
	grub_uint64_t instead of grub_uint32_t.

2008-03-05  Bean  <bean123ch@gmail.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
	(grub_multiboot): Set boot device.

	* boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.

2008-03-02  Bean  <bean123ch@gmail.com>

	* fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
	symlink_buffer.

2008-03-01  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
	texinfo.tex.

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

	* docs/fdl.texi: New file.

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

	* config.guess: Updated from gnulib.
	* install-sh: Likewise.

2008-02-28  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
	(aout_mod_SOURCES): New variable.
	(aout_mod_CFLAGS): Likewise.
	(aout_mod_LDFLAGS): Likewise.

	* conf/i386-ieee1275.rmk: Likewise.

2008-02-28  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Reorganise terminal validity check.  Accept
	`ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
	Based on suggestion by Franklin PIAT.

2008-02-28  Fabian Greffrath  <greffrath@leat.rub.de>

	* include/grub/util/getroot.h (grub_util_check_block_device): Export new
	function.
	* util/getroot.c (grub_util_check_block_device): New function that
	returns the given argument if it is a block device and returns NULL else.
	* util/grub-probe.c (argument_is_device): New variable.
	(probe): Promote device_name from a variable to an argument. Receive
	device_name from grub_util_check_block_device() if path is NULL and from
	grub_guess_root_device() else. Do not free() device_name anymore.
	(options): Introduce new parameter '-d, --device'.
	(main): Add description of the new parameter to the help screen.
	Rename path variable to argument. Set argument_is_device if the '-d'
	option is given. Pass argument to probe() depending on
	argument_is_device.

2008-02-24  Bean  <bean123ch@gmail.com>

	* fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
	(GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
	(GRUB_ISO9660_VOLDESC_SUPP): Likewise.
	(GRUB_ISO9660_VOLDESC_PART): Likewise.
	(GRUB_ISO9660_VOLDESC_END): Likewise.
	(grub_iso9660_primary_voldesc): New member escape.
	(grub_iso9660_data): New member joliet.
	(grub_iso9660_convert_string): New function.
	(grub_iso9660_mount): Detect joliet extension.
	(grub_iso9660_iterate_dir): Convert filename when joliet is detected.
	(grub_iso9660_iso9660_label): Likewise.

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

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

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

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

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

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

	* fs/udf.c: New file.

2008-02-24  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
	(normal/lexer.c_DEPENDENCIES): New variables.
	* conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
	(normal/lexer.c_DEPENDENCIES): Likewise.
	* conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
	(normal/lexer.c_DEPENDENCIES): Likewise.
	* conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
	(normal/lexer.c_DEPENDENCIES): Likewise.
	* conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
	(normal/lexer.c_DEPENDENCIES): Likewise.
	* conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
	(normal/lexer.c_DEPENDENCIES): Likewise.

2008-02-23  Robert Millan  <rmh@aybabtu.com>

	* partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
	since they were intended to be in hex.  This didn't break previously
	because of a bug in gpt_partition_map_iterate() (see below).

	(gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
	when checking the validity of GPT header.
	Remove `partno', since it always provides the same information as `i'.

2008-02-21  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/grub/efi/time.h: Fix a wrong comment.

2008-02-19  Pavel Roskin  <proski@gnu.org>

	* kern/rescue.c (grub_enter_rescue_mode): Improve initial
	message.

2008-02-19  Bean  <bean123ch@gmail.com>

	* conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
	(aout_mod_SOURCES): New variable.
	(aout_mod_CFLAGS): Likewise.
	(aout_mod_LDFLAGS): Likewise.
	(_bsd_mod_SOURCES): New variable.
	(_bsd_mod_CFLAGS): Likewise.
	(_bsd_mod_LDFLAGS): Likewise.
	(bsd_mod_SOURCES): New variable.
	(bsd_mod_CFLAGS): Likewise.
	(bsd_mod_LDFLAGS): Likewise.

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

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

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

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

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

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

	* loader/aout.c: New file.

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

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

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

	* loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
	can test other formats.

2008-02-19  Robert Millan  <rmh@aybabtu.com>

	* partmap/gpt.c: Include `<grub/gpt_partition.h>'.
	(grub_gpt_partition_type_empty): Redefine with macro from
	`<grub/gpt_partition.h>'.
	(gpt_partition_map_iterate): Adjust partition type comparison.

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

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

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

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

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

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

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

	In grub_util_info() message, replace "into after the MBR" with an
	indication of the specific sector our embed region starts at.

2008-02-19  Robert Millan  <rmh@aybabtu.com>

	* DISTLIST: Replace `commands/ieee1275/halt.c' and
	`commands/ieee1275/reboot.c' with `commands/halt.c' and
	`commands/reboot.c'.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
	(halt_mod_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
	(halt_mod_SOURCES): Likewise.

2008-02-17  Christian Franke  <franke@computer.org>

	* commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.

2008-02-17  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
	set `first_start' to 0 for non-PC/MSDOS partition maps.

2008-02-16  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
	do not assume partition map is PC/MSDOS before performing checks that
	are specific to that layout.

2008-02-13  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
	`commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
	* kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.

2008-02-13  Yoshinori K. Okuji  <okuji@enbug.org>

	* configure.ac: Only a cosmetic change on the handling of
	-fno-stack-protector.

2008-02-12  Alexandre Boeglin  <alex@boeglin.org>

	* conf/i386-efi.rmk (grub_emu_SOURCES): Replace
	commands/i386/pc/halt.c and reboot.c by commands/halt.c and
	reboot.c.
	(grub_install_SOURCES): Add halt.mod and reboot.mod.
	(halt_mod_SOURCES): New variable.
	(halt_mod_CFLAGS): Likewise.
	(halt_mod_LDFLAGS): Likewise.
	(reboot_mod_SOURCES): Likewise.
	(reboot_mod_CFLAGS): Likewise.
	(reboot_mod_LDFLAGS): Likewise.

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

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

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

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

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

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

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

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

	* kern/efi/efi.c (grub_reboot): New function.
	(grub_halt): Likewise.

2008-02-12  Robert Millan  <rmh@aybabtu.com>

	* util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
	/dev (like it is done for /dev/mapper).  This doesn't provide support
	for EVMS, but at least it is now easy to identify the problem when it
	arises.

2008-02-11  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
	(grub_util_biosdisk_get_grub_dev): Check open() exit status by
	comparing it with -1, not 0.

2008-02-10  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
	`disk/lvm.c'.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.

	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
	`disk/lvm.c' to the end of the list.
	* conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.

2008-02-10  Robert Millan  <rmh@aybabtu.com>

	* kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'.  Call
	grub_print_error() instead.  This will let user know why we're entering
	rescue mode.
	Based on suggestions from Sam Morris.

2008-02-10  Alexandre Boeglin  <alex@boeglin.org>

	* normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
	on remaining N args, instead of "--" arg N times.

2008-02-09  Vesa Jaaskelainen  <chaac@nic.fi>

	* font/manager.c (unknown_glyph): Added variable for unknown glyph.
	(fill_with_default_glyph): Changed to use unknown_glyph for fill
	pattern for unknown glyphs.

2008-02-09  Robert Millan  <rmh@aybabtu.com>

	* configure.ac: Probe for `help2man'.
	* Makefile.in (builddir): New variable.
	(HELP2MAN): Likewise.  Set to `true' when @HELP2MAN@ doesn't provide it,
	or otherwise add a few flags/options to it.
	(install-local): For every executable utility or script that is
	installed, invoke $(HELP2MAN) to install a manpage based on --help
	output.

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

	* util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
	with `bug-grub@gnu.org'.
	* util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
	* util/update-grub.in (usage): New function.
	Implement proper argument check, with support for --help and --version
	(as well as existing -y).

2008-02-09  Christian Franke  <franke@computer.org>

	* commands/cat.c (grub_cmd_cat): Print '\r' as hex to
	avoid overwriting previous output.
	* kern/rescue.c (grub_rescue_cmd_cat): Likewise.

2008-02-09  Robert Millan  <rmh@aybabtu.com>

	* normal/menu.c (run_menu): If timeout is set to zero, don't bother
	drawing the menu.

2008-02-09  Robert Millan  <rmh@aybabtu.com>

	* commands/sleep.c: New file.
	* conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
	(sleep_mod_SOURCES): New variable.
	(sleep_mod_CFLAGS): Likewise.
	(sleep_mod_LDFLAGS): Likewise.

2008-02-09  Robert Millan  <rmh@aybabtu.com>

	* disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
	situations in which we can deduce the RAID size and the superblock
	doesn't match it.

2008-02-09  Robert Millan  <rmh@aybabtu.com>

	* disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function.  Construct
	and return a grub_diskmemberlist_t composed of LVM physical volumes.
	[GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.

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

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

	* util/grub-probe.c (probe): Move partmap probing code from here ...
	(probe_partmap): ... to here.
	(probe): Use probe_partmap() once for the disk we're probing, and
	additionally, when such disk contains a memberlist() struct member,
	once for each disk that is contained in the structure returned by
	memberlist().

2008-02-09  Robert Millan  <rmh@aybabtu.com>

	* util/grub-probe.c (main): When `verbosity > 1', set `debug'
	environment variable to 'all' in order to obtain debug output from
	non-util/ code.
	* util/i386/pc/grub-setup.c (main): Likewise.

2008-02-08  Robert Millan  <rmh@aybabtu.com>

	* disk/raid.c (grub_raid_scan_device): Check for
	`array->device[sb.this_disk.number]' rather than for
	`array->device[sb.this_disk.number]->name', since the latter is not
	guaranteed to be accessible.

2008-02-08  Robert Millan  <rmh@aybabtu.com>

	* disk/raid.c: Update copyright.
	* fs/cpio.c: Likewise.
	* include/grub/raid.h: Likewise.
	* loader/i386/pc/multiboot.c: Likewise.
	* util/hostfs.c: Likewise.

2008-02-08  Robert Millan  <rmh@aybabtu.com>

	* include/grub/raid.h (struct grub_raid_array): Change type of `device'
	to a grub_disk_t array.
	* disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
	`device[x]'.
	(grub_raid_scan_device): Replace `device[x].name' accesses with
	`device[x]->name'.  Simplify initialization of `array->device[x]'.

2008-02-08  Robert Millan  <rmh@aybabtu.com>

	* disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
	grub_dprintf() calls.
	* kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
	error message.

2008-02-07  Christian Franke  <franke@computer.org>

	* util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
	instead of fseek and ftell to support large files.
	(grub_hostfs_read): Likewise.

2008-02-07  Robert Millan  <rmh@aybabtu.com>

	Patch from Jeroen Dekkers.
	* disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
	failure, since successfully reading all array members might not be
	required.

2008-02-06  Robert Millan  <rmh@aybabtu.com>

	* util/grub-probe.c (probe): Simplify partmap probing (with the
	assumption that the first word up to the underscore equals to
	the module name).

2008-02-06  Christian Franke  <franke@computer.org>

	* fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
	(and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
	last block of a cpio or tar stream.
	Check for "TRAILER!!!" instead of any empty data
	block to detect last block of a cpio stream.
	(grub_cpio_dir): Fix constness of variable np.
	(grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
	cpio or tar trailer is detected.  This fixes a crash
	on open of a non existing file.

2008-02-05  Bean  <bean123ch@gmail.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
	address of entry.
	(grub_multiboot_load_elf64): Likewise.
	(grub_multiboot): Initialize mbi structure.

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

	* conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
	of file.
	(grub_fstest_SOURCES): Likewise.

2008-02-05  Robert Millan  <rmh@aybabtu.com>

	* include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
	(GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
	(GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
	(GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.

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

	* term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
	(keyboard_map): Correct/add a few values, with macros provided
	by `<grub/term.h>'.
	(keyboard_map_shift): Zero values that don't differ from their
	`keyboard_map' equivalents.
	(grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
	Discard the second scan code that is always sent by Caps lock.
	Only use `keyboard_map_shift' when it provides a non-zero value,
	otherwise fallback to `keyboard_map'.

2008-02-04  Bean  <bean123ch@gmail.com>

	* Makefile.in (enable_grub_fstest): New variable.

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

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

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

2008-02-03  Yoshinori K. Okuji  <okuji@enbug.org>

	Make grub-setup handle a separate root device.

	* util/i386/pc/grub-setup.c (setup): Always open the root device,
	so that the root device can be compared with the destination
	device.
	When embedding the core image, if the root and destination devices
	are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
	0xFF.
	When not embedding, set ROOT_DRIVE to 0xFF.

2008-02-03  Yoshinori K. Okuji  <okuji@enbug.org>

	Add support for having a grub directory in a different drive. This
	is still only the data handling part.

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

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

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

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

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

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

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

	* boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
	longer.
	(root_drive): New variable.
	(real_start): Unconditionally set %dh to ROOT_DRIVE.
	(setup_sectors): Push %dx right after popping it, because %dh will
	be modified later.
	(copy_buffer): Restore %dx.

2008-02-03  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
	use `cdboot.img' for cdrom images.

2008-02-03  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/00_header.in: Issue scripting commands for GRUB to
	only setup gfxterm when `font' command has succeeded.

2008-02-03  Robert Millan  <rmh@aybabtu.com>

	* loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
	(grub_rescue_cmd_multiboot_loader)
	(grub_rescue_cmd_module_loader): Enable multiboot1 calls.

2008-02-03  Pavel Roskin  <proski@gnu.org>

	* kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
	%edx and %esi from stack only after grub_gate_a20() is called.
	grub_gate_a20() clobbers %edx.

2008-02-03  Yoshinori K. Okuji  <okuji@enbug.org>

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

	* DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
	commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
	include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
	video/readers/png.c.

2008-02-03  Bean  <bean123ch@gmail.com>

	* conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
	(cdboot_img_SOURCES): New variable.
	(cdboot_img_ASFLAGS): New variable.
	(cdboot_img_LDFLAGS): New variable.

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

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

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

	* kern/i386/pc/init.c (make_install_device): Check for cd device.

2008-02-02  Robert Millan  <rmh@aybabtu.com>

	* commands/read.c: New file.
	* conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
	(read_mod_SOURCES): New variable.
	(read_mod_CFLAGS): Likewise.
	(read_mod_LDFLAGS): Likewise.

2008-02-02  Robert Millan  <rmh@aybabtu.com>

	* normal/main.c (grub_normal_execute): Check for `menu->size' when
	determining whether menu has to be displayed.

2008-02-02  Marco Gerards  <marco@gnu.org>

	* bus/pci.c: New file.

	* include/grub/pci.h: Likewise.

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

	* commands/lspci.c: Likewise.

	* conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
	`lspci.mod'.
	(pci_mod_SOURCES): New variable.
	(pci_mod_CFLAGS): Likewise.
	(pci_mod_LDFLAGS): Likewise.
	(lspci_mod_SOURCES): Likewise.
	(lspci_mod_CFLAGS): Likewise.
	(lspci_mod_LDFLAGS): Likewise.

2008-02-02  Bean  <bean123ch@gmail.com>

	* fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
	(grub_ufs_get_file_block): Fix indirect block calculation problem.

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

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

	* aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
	__attribute__ ((__regparm__ (1))).

2008-02-01  Robert Millan  <rmh@aybabtu.com>

	Correct a mistake in previous commit.

	* conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
	top.
	(normal/command.c_DEPENDENCIES): New variable.

2008-02-01  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
	top.
	(normal/command.c_DEPENDENCIES): New variable.
	(grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-linuxbios.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	(grub_emu_SOURCES): Add `fs/fshelp.c'.

	* genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.

2008-02-01  Robert Millan  <rmh@aybabtu.com>

	* kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
	call at beginning of function.

2008-01-31  Pavel Roskin  <proski@gnu.org>

	* util/powerpc/ieee1275/grub-mkrescue.in: New file.
	* conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
	(grub_mkrescue_SOURCES): Likewise.
	* DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.

2008-01-30  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
	(util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
	* conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
	(grub_probe_SOURCES): ... to here.

	* conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
	(util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-linuxbios.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.

2008-01-30  Tristan Gingold  <gingold@free.fr>

	* kern/rescue.c: Silently accept empty lines.

2008-01-29  Bean  <bean123ch@gmail.com>

	* boot/i386/pc/lnxboot.S (data_start): Code cleanup.
	(real_code_2): Code cleanup and change comment style.
	(move_memory): Avoid using 32-bit address mode.

2008-01-29  Bean  <bean123ch@gmail.com>

	* conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
	(png_mod_SOURCES): New variable.
	(png_mod_CFLAGS): Likewise.
	(png_mod_LDFLAGS): Likewise.

	* video/readers/png.c: New file.

2008-01-28  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
	* kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
	`ifndef GRUB_MOD_GAP' hack.
	* util/elf/grub-mkimage.c (add_segments): Likewise.

2008-01-27  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
	`GRUB_MOD_GAP' for platforms in which it's not defined.
	* util/elf/grub-mkimage.c (add_segments): Likewise.

2008-01-27  Robert Millan  <rmh@aybabtu.com>

	Get grub-emu to build again (including parallel builds).

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

	* conf/i386-efi.rmk: Likewise.
	* conf/i386-linuxbios.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	(grub_emu_SOURCES): Remove duplicated `kern/file.c'.

2008-01-27  Robert Millan  <rmh@aybabtu.com>

	* NEWS: Add a few items.

2008-01-27  Robert Millan  <rmh@aybabtu.com>

	Fix parallel builds with grub-emu.  Based on earlier commit for
	grub-probe and grub-setup.

	* conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
	(util/grub-emu.c_DEPENDENCIES): ... this.
	* conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
	(util/grub-emu.c_DEPENDENCIES): ... this.
	* conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
	(util/grub-emu.c_DEPENDENCIES): ... this.
	* conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
	(util/grub-emu.c_DEPENDENCIES): ... this.
	* conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
	(util/grub-emu.c_DEPENDENCIES): ... this.

2008-01-27  Pavel Roskin  <proski@gnu.org>

	* include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
	to create a gap between _end and the modules added to the image
	with grub-mkrescue.  That fixes "CLAIM failed" on PowerMAC.
	* kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
	* util/elf/grub-mkimage.c (add_segments): Likewise.

2008-01-26  Pavel Roskin  <proski@gnu.org>

	* kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
	just return an error.

2008-01-26  Bean  <bean123ch@gmail.com>

	* fs/reiserfs.c (grub_fshelp_node): New member next_offset.
	(grub_reiserfs_get_item): Save offset of the next item.
	(grub_reiserfs_iterate_dir): Use next_offset to find next item.

2008-01-25  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
	make all filesystem sources appear together (possibly fixing omissions
	while at it).
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

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

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

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

	* include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
	(grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
	(grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
	(grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
	(grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
	: Remove function prototypes.

2008-01-25  Robert Millan  <rmh@aybabtu.com>

	Revert my previous commits (based on wrong assumption of how grub_errno
	works).

	* kern/disk.c (grub_disk_open): Stop resetting grub_errno.
	* kern/file.c (grub_file_open): Likewise.

2008-01-24  Pavel Roskin  <proski@gnu.org>

	* include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
	that hang if GRUB tries to setup colors.
	* term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
	colors for firmwares that don't support it.
	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
	Recognize Open Hack'Ware, set flags to work around its
	limitations.

2008-01-24  Robert Millan  <rmh@aybabtu.com>

	* kern/file.c (grub_file_open): Do not account previous failures of
	unrelated functions when grub_errno is checked for.
	Reported by Oleg Strikov.

2008-01-24  Bean  <bean123ch@gmail.com>

	* fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
	(grub_ufs_sblock): New member volume name.
	(grub_ufs_find_file): Fix string copy bug.
	(grub_ufs_label): Implement this function properly.

	* fs/hfs.c (grub_hfs_cnid_type): New enum.
	(grub_hfs_iterate_records): Use the correct file number for extents
	and catalog file. Fix problem in next index calculation.
	(grub_hfs_find_node): Replace recursive function call with loop.
	(grub_hfs_iterate_dir): Replace recursive function call with loop.

2008-01-23  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
	`<grub/symbol.h>' and `<grub/multiboot.h>'.
	(grub_multiboot2_real_boot): New function prototype.

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

	* kern/i386/ieee1275/init.c (grub_os_area_addr)
	(grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.

2008-01-23  Robert Millan  <rmh@aybabtu.com>

	* kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
	#ifdef'ed out grub_printf().

2008-01-23  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
	grub_dprintf calls, since they make "debug=all" mode unusable.
	(grub_console_checkkey): Likewise.

2008-01-23  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
	`term/i386/pc/at_keyboard.c'.
	(pkglib_MODULES): Add `serial.mod'.
	(serial_mod_SOURCES): New variable.
	(serial_mod_CFLAGS): Likewise.
	(serial_mod_LDFLAGS): Likewise.

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

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

	* term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
	grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.

2008-01-23  Robert Millan  <rmh@aybabtu.com>

	* kern/i386/pc/init.c (make_install_device): When memdisk image is
	present, "(memdisk)/boot/grub" becomes the default prefix.

	* util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
	a memdisk tarball with all the modules.  Add --overlay=DIR option that
	allows users to overlay additional files into the image.

2008-01-23  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
	and `machine/memory.h'.
	(pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
	(_multiboot_mod_SOURCES): New variable.
	(_multiboot_mod_CFLAGS): Likewise.
	(_multiboot_mod_LDFLAGS): Likewise.
	(multiboot_mod_SOURCES): Likewise.
	(multiboot_mod_CFLAGS): Likewise.
	(multiboot_mod_LDFLAGS): Likewise.

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

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

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

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

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

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

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

	* loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
	rely on grub_multiboot2_real_boot() for final boot.

2008-01-22  Robert Millan  <rmh@aybabtu.com>

	* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
	`GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
	device that doesn't look like an SD card.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
	`GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
	OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
	found.

2008-01-22  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
	avoid claiming over our own code.

2008-01-22  Bean  <bean123ch@gmail.com>

	* conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
	(jpeg_mod_SOURCES): New variable.
	(jpeg_mod_CFLAGS): Likewise.
	(jpeg_mod_LDFLAGS): Likewise.

	* video/readers/jpeg.c : New file.

2008-01-22  Bean  <bean123ch@gmail.com>

	* fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
	there are no more items.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	* kern/mm.c (grub_mm_init_region): Improve debug message.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
	(kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
	address.
	(grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
	a C macro.
	* include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
	Indicates start of upper memory.
	* util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
	(generate_image): Abort when image size is big enough to corrupt
	upper memory.

	* include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
	(GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
	* term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
	instead of hardcoding 0xA0000.
	* video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
	(grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
	instead of hardcoding 0xA0000.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	* disk/memdisk.c (memdisk_size): New variable.
	(grub_memdisk_open): Replace grub_arch_memdisk_size() call with
	`memdisk_size'.
	(grub_memdisk_init): Initialize `memdisk_size'.  Reallocate memdisk
	image to dynamic memory.
	(grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
	`memdisk_size'.  Free memdisk block.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	Fix detection of very small filesystems (like tar).

	* fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
	contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
	GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
	a problem with this disk).

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	* disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
	on grub_biosdisk_rw_standard() error.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	* include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
	recent changes.
	* kern/elf.c: Likewise.
	* kern/ieee1275/ieee1275.c: Likewise.
	* kern/powerpc/ieee1275/openfw.c: Likewise.
	* term/ieee1275/ofconsole.c: Likewise.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.

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

	* include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
	(grub_arch_memdisk_size): ... to here.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	Mostly based on bugfix from Bean.

	* kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
	attribute with hook() parameter.
	(grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
	declaration.
	(grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
	attribute with hook() parameter.
	(grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
	declaration.

2008-01-21  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
	(pkglib_MODULES): Add `memdisk.mod'.
	(memdisk_mod_SOURCES): New variable.
	(memdisk_mod_CFLAGS): Likewise.
	(memdisk_mod_LDFLAGS): Likewise.

	* disk/memdisk.c: New file.

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

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

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

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

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

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

	* util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
	(generate_image): Add `memdisk_path' parameter.  When `memdisk_path' is
	not NULL, append the contents of the file it refers to, at the end of
	the compressed kernel image.  Initialize `grub_memdisk_image_size'
	variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
	(options): Add "memdisk"|'m' option.
	(main): Parse --memdisk|-m option, and pass user-provided path as
	parameter to generate_image().

2008-01-20  Robert Millan  <rmh@aybabtu.com>

	* kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
	grub_dprintf() calls from here ...
	* kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.

2008-01-20  Robert Millan  <rmh@aybabtu.com>

	Fix detection of "real mode" when /options/real-mode? doesn't exist.

	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
	declaration.
	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
	(grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
	`GRUB_IEEE1275_FLAG_REAL_MODE'.
	(cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
	property).
	* kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
	`grub_ieee1275_mmu' rather than obtaining a handler on every call.

2008-01-19  Robert Millan  <rmh@aybabtu.com>

	Get rid of confusing function (superseded by
	`grub_ieee1275_get_integer_property')
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
	prototype.
	* kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
	function.
	* term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
	grub_ieee1275_decode_int_4(), by obtaining integer properties directly
	in native endianness from grub_ieee1275_get_integer_property().

2008-01-19  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
	command after "shut-down", since implementations differ on which
	the command for halt is.

2008-01-19  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/linuxbios/console.h: Add header protection.
	(grub_keyboard_controller_init): New function prototype.
	* term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
	(KEYBOARD_COMMAND_READ): Likewise.
	(KEYBOARD_COMMAND_WRITE): Likewise.
	(KEYBOARD_SCANCODE_SET1): Likewise.
	(grub_keyboard_controller_write): New function.
	(grub_keyboard_controller_read): Likewise.
	(grub_keyboard_controller_init): Likewise.

	* term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
	(grub_console_init): On coreboot/LinuxBIOS, call
	grub_keyboard_controller_init().

2008-01-19  Robert Millan  <rmh@aybabtu.com>

	PowerPC changes provided by Pavel Roskin.

	* kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
	* kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
	don't rely on cmain() doing it.
	* kern/i386/ieee1275/startup.S (_start): Store %eax in
	grub_ieee1275_entry_fn, don't rely on cmain() doing it.

2008-01-16  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/linuxbios/memory.h
	(GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
	* kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
	receive `table_header' as argument.  Instead, probe for it in the
	known memory ranges where it can be present.
	(grub_available_iterate): Do not pass a fixed `table_header' address
	to grub_linuxbios_table_iterate().

2008-01-15  Robert Millan  <rmh@aybabtu.com>

	* configure.ac: Add `i386-ieee1275' to the list of supported targets.
	* conf/i386-ieee1275.rmk: New file.
	* include/grub/i386/ieee1275/console.h: Likewise.
	* include/grub/i386/ieee1275/ieee1275.h: Likewise.
	* include/grub/i386/ieee1275/kernel.h: Likewise.
	* include/grub/i386/ieee1275/time.h: Likewise.
	* kern/i386/ieee1275/init.c: Likewise.
	* kern/i386/ieee1275/startup.S: Likewise.

2008-01-15  Robert Millan  <rmh@aybabtu.com>

	* kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
	when pointers are 32-bit (but still do set it to one when they are
	64-bit).

2008-01-15  Robert Millan  <rmh@aybabtu.com>

	* include/grub/ieee1275/ieee1275.h
	(grub_ieee1275_get_integer_property): New function prototype.

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

	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
	grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
	where appropriate.
	* kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
	(grub_map): Likewise.
	* kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.

2008-01-15  Bean  <bean123ch@gmail.com>

	* normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
	(grub_script_execute_cmdline): Reset grub_errno.

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

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

	* conf/common.rmk (pkgdata_MODULES): Add echo.mod.

2008-01-15  Robert Millan  <rmh@aybabtu.com>

	* normal/menu.c (run_menu): Move timeout message from here ...
	(print_timeout): ... to here.
	(run_menu): Use print_timeout() once during initial draw to print
	the whole message, and again in every clock tick to update only
	the number of seconds.

2008-01-15  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
	actual size of `available' from grub_ieee1275_get_property(), and
	restrict parsing to that bound.

2008-01-15  Christian Franke  <franke@computer.org>

	* util/grub-emu.c: Replace <argp.h> by <getopt.h>.
	(argp_program_version): Remove variable.
	(argp_program_bug_address): Likewise.
	(options): Convert from struct argp_option to struct option.
	(struct arguments): Remove.
	(parse_opt): Remove.
	(usage): New function.
	(main): Replace struct args members by simple variables.
	Replace argp_parse() by getopt_long().
	Add switch to evaluate options.
	Add missing "(...)" around root_dev in prefix string.

2008-01-14  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
	for grub_ieee1275_exit(), in order to improve portability.

2008-01-14  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in (prefix): Define.
	(exec_prefix): Likewise.  Both definitions are later used by `libdir'.

2008-01-13  Pavel Roskin  <proski@gnu.org>

	* disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
	grub_errno if no errors have been detected.

2008-01-12  Robert Millan  <rmh@aybabtu.com>

	* include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
	(grub_util_get_dev_abstraction): New function prototype.

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

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

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

	* util/update-grub_lib.in (font_path): Return system path without
	converting to GRUB path.
	* util/update-grub.in: Convert system path returned by font_path()
	to a GRUB path.  Use `grub-probe -t abstraction' to determine what
	abstraction module is needed for loading fonts (if any).  Export
	that as `GRUB_PRELOAD_MODULES'.
	* util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
	insmod commands).

2008-01-12  Yoshinori K. Okuji  <okuji@enbug.org>

	Remove some unused code from reiserfs.

	* fs/reiserfs.c (struct grub_reiserfs_key)
	[GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
	(struct grub_reiserfs_node_body): Removed.
	(grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
	Likewise.
	(grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
	Likewise.
	(grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
	Likewise.
	(grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
	Likewise.
	(grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
	Likewise.
	(grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
	Likewise.
	(grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
	(grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
	(grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.

2008-01-10  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (grub_file_is_not_garbage): New function.
	Determines if a file is garbage left by packaging systems, etc.
	* util/update-grub.in: Use grub_file_is_not_garbage() as a condition
	for processing /etc/grub.d scripts.
	* util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
	* util/grub.d/10_linux.in: Likewise.  Use grub_file_is_not_garbage()
	as a condition for processing Linux images.

2008-01-10  Pavel Roskin  <proski@gnu.org>

	* include/grub/powerpc/libgcc.h (__ucmpdi2): New export.  Needed
	to compile reiserfs.c on PowerPC.

2008-01-10  Robert Millan  <rmh@aybabtu.com>

	* kern/device.c (grub_device_iterate): Do not abort device iteration
	when one of the devices cannot be opened.
	* kern/disk.c (grub_disk_open): Do not account previous failures of
	unrelated functions when grub_errno is checked for.

2008-01-08  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
	`! grub_linux_is_bzimage', change order of address comparison to make
	it more intuitive, and improve "too big zImage" error message.

2008-01-08  Robert Millan  <rmh@aybabtu.com>

	* Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
	`$(update-grub_DATA)'.
	(distcheck): Fix race condition when invoking `$(MAKE)' on multiple
	targets.

2008-01-07  Robert Millan  <rmh@aybabtu.com>

	* boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
	which instruction is modified by grub-setup during installation
	(since it wasn't obvious by only looking at this file).

2008-01-07  Robert Millan  <rmh@aybabtu.com>

	* TODO: Rewrite.  Just refer to the wiki and the BTS instead of
	listing actual TODO items.

2008-01-06  Yoshinori K. Okuji  <okuji@enbug.org>

	* fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
	correctly.
	(grub_reiserfs_get_key_offset): Likewise.
	(grub_reiserfs_set_key_offset): Likewise.
	(grub_reiserfs_set_key_type): Likewise.
	(grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.

	(GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
	better to remove the bitfield version completely.

2008-01-06  Yoshinori K. Okuji  <okuji@enbug.org>

	* fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
	allocated from the heap, due to the fshelp implementation.
	(grub_reiserfs_dir): Free NODE, due to the same reason.

2008-01-06  Yoshinori K. Okuji  <okuji@enbug.org>

	Mostly from Vincent Pelletier:

	* fs/reiserfs.c: New file.

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

	* DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
	disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
	include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
	normal/color.c.

2008-01-06  Robert Millan  <rmh@aybabtu.com>

	* normal/color.c: Remove `<grub/env.h>'.

2008-01-05  Jeroen Dekkers  <jeroen@dekkers.cx>

	* include/grub/normal.h: Include <grub/env.h>.

2008-01-05  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
	usage example with `(hd0,1)'.
	Reported by Samuel Thibault.

2008-01-05  Robert Millan  <rmh@aybabtu.com>

	* kern/i386/loader.S (grub_linux_is_bzimage): New variable.
	(grub_linux_boot_zimage): Rename to ...
	(grub_linux_boot): ... this.
	(grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
	(grub_linux_boot_zimage): Conditionalize zImage copy.

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

	* loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
	(grub_linux_boot): Remove function.

2008-01-05  Robert Millan  <rmh@aybabtu.com>

	* include/grub/normal.h (grub_env_write_color_normal): New prototype.
	(grub_env_write_color_highlight): Likewise.
	(grub_wait_after_message): Likewise.

	* normal/color.c: New file.

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

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

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

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

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

	* normal/menu.c (grub_wait_after_message): New function.
	(grub_color_menu_normal): New variable.  Replaces ...
	(GRUB_COLOR_MENU_NORMAL): ... this macro.
	(grub_color_menu_highlight): New variable.  Replaces ...
	(GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
	(draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
	`GRUB_TERM_COLOR_STANDARD'.
	(print_message): Use `grub_setcolorstate' to reload colors.  Rename
	`normal_code' and `highlight_code' to `old_color_normal' and
	`old_color_highlight', respectively.
	(grub_menu_init_page): Update colors when drawing the menu, based on
	`menu_color_normal' and `menu_color_highlight' variables.
	(grub_menu_run): Rely on grub_wait_after_message() for waiting after
	a message is printed.

2008-01-05  Robert Millan  <rmh@aybabtu.com>

	* kern/env.c (grub_env_context_open): Propagate hooks for global
	variables to new context.

	* kern/main.c (grub_set_root_dev): Export `root' variable.

2008-01-05  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
	discs unconditionally, since udev and others have options to provide
	them.

2008-01-05  Robert Millan  <rmh@aybabtu.com>

	* normal/completion.c (iterate_dir): Skip `.' and `..' directories.

2008-01-04  Christian Franke  <franke@computer.org>

	* kern/i386/pc/init.c (grub_machine_init): Fix evaluation
	of eisa_mmap.

2008-01-03  Pavel Roskin  <proski@gnu.org>

	* kern/i386/linuxbios/init.c: Put "void" to all function
	declarations with no arguments.
	* kern/powerpc/ieee1275/init.c: Likewise.
	* term/i386/pc/at_keyboard.c: Likewise.
	* term/i386/pc/vga_text.c: Likewise.
	* util/grub-mkdevicemap.c: Likewise.

2008-01-02  Robert Millan  <rmh@aybabtu.com>

	* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
	message when loaded image is out of bounds.
	(grub_multiboot_load_elf64): Likewise.

2008-01-02  Pavel Roskin  <proski@gnu.org>

	* util/grub.d/10_linux.in: Try version without ".old" when
	looking for initrd.  It's better to use initrd from the newer
	kernel of the same version than no initrd at all.

2008-01-01  Robert Millan  <rmh@aybabtu.com>

	* util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.

2008-01-01  Vesa Jaaskelainen  <chaac@nic.fi>

	* include/grub/video.h: Added grub_video_unmap_color and
	grub_video_get_active_render_target.
	(grub_video_adapter): Added unmap_color and get_active_render_target.

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

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

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

	* term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
	(DEFAULT_NORMAL_COLOR): Likewise.
	(DEFAULT_HIGHLIGHT_COLOR) Likewise.
	(DEFAULT_FG_COLOR): Removed.
	(DEFAULT_BG_COLOR): Likewise.
	(DEFAULT_CURSOR_COLOR): Changed value.
	(grub_virtual_screen): Added standard_color_setting,
	normal_color_setting, highlight_color_setting and term_color.
	(grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
	(bitmap_width): Added.
	(bitmap_height): Likewise.
	(bitmap): Likewise.
	(set_term_color): Likewise.
	(grub_virtual_screen_setup): Changed to use new terminal coloring
	settings.
	(grub_gfxterm_init): Added init for bitmap.
	(grub_gfxterm_fini): Added destroy for bitmap.
	(redraw_screen_rect): Updated to use background bitmap and new
	terminal coloring.
	(scroll_up): Added optimization for case when there is no bitmap.
	(grub_gfxterm_cls): Fixed to use correct background color.
	(grub_virtual_screen_setcolorstate): Changed to use new terminal
	coloring.
	(grub_virtual_screen_setcolor): Likewise.
	(grub_virtual_screen_getcolor): Added.
	(grub_gfxterm_background_image_cmd): Likewise.
	(grub_video_term): Added setcolor and getcolor.
	(MOD_INIT): Added registration of background_image command.
	(MOD_TERM): Added unregistration for background_image command.

2007-12-30  Pavel Roskin  <proski@gnu.org>

	* loader/multiboot_loader.c: Fix multiboot command
	unregistration.  Fix all typos in the word "multiboot".

2007-12-29  Pavel Roskin  <proski@gnu.org>

	* util/grub.d/10_linux.in: Refactor search for initrd.  Add
	support for initrd names used in Fedora.

2007-12-26  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
	(cpio_mod_SOURCES): New variable.
	(cpio_mod_CFLAGS): Likewise.
	(cpio_mod_LDFLAGS): Likewise.

	* fs/cpio.c: New file.

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

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

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

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

2007-12-25  Robert Millan  <rmh@aybabtu.com>

	* include/grub/term.h (struct grub_term): Add `getcolor' function.
	(grub_getcolor): New function.

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

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

	* term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.
	* term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.
	* term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.
	* term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
	(struct grub_console_term.setcolor): Remove variable.

2007-12-25  Robert Millan  <rmh@aybabtu.com>

	* configure.ac: Search for possible unifont.hex locations, and
	define UNIFONT_HEX if found.

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

	* util/update-grub_lib.in (font_path): Search for *.pff files in
	a few more locations, including `${pkgdata}'.

2007-12-23  Robert Millan  <rmh@aybabtu.com>

	Patch from Bean  <bean123ch@gmail.com>:
	* disk/loopback.c (grub_loopback_read): Add missing bit shift to
	`size'.

2007-12-21  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
	(ntfscomp_mod_SOURCES): New variable.
	(ntfscomp_mod_CFLAGS): Likewise.
	(ntfscomp_mod_LDFLAGS): Likewise.

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

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

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

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

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

	* fs/ntfscomp.c: New file.

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

2007-12-16  Robert Millan  <rmh@aybabtu.com>

	* util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
	IDE disk check, since Linux is known to support 20 IDE disks.
	Reported by Colin Watson.

2007-12-15  Bean  <bean123ch@gmail.com>

	* conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
	(lnxboot_img_SOURCES): New variable.
	(lnxboot_img_ASFLAGS): Likewise.
	(lnxboot_img_LDFLAGS): Likewise.

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

2007-11-24  Pavel Roskin  <proski@gnu.org>

	* configure.ac: Test if '--build-id=none' is supported by the
	linker.  If yes, add it to TARGET_LDFLAGS.  Build ID causes
	objcopy to generate incorrect binary files (binutils
	2.17.50.0.18-1 as shipped by Fedora 8).
	* aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
	linking, so that build ID doesn't break the test.

2007-11-24  Pavel Roskin  <proski@gnu.org>

	* include/grub/i386/time.h: use "void" in the argument list
	of grub_cpu_idle().
	* include/grub/powerpc/time.h: Likewise.
	* include/grub/sparc64/time.h: Likewise.

2007-11-18  Christian Franke  <franke@computer.org>

	* util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
	now return control chars instead of GRUB_CONSOLE_KEY_* constants.
	This fixes the problem that function keys did not work in grub-emu.

2007-11-18  Christian Franke  <franke@computer.org>

	* disk/host.c (grub_host_open): Remove attribute unused from
	name parameter. Add check for "host". This fixes the problem
	that grub-emu does not find partitions.

2007-11-18  Christian Franke  <franke@computer.org>

	* util/hostfs.c (is_dir): New function.
	(grub_hostfs_dir):  Handle missing dirent.d_type case.
	(grub_hostfs_read): Add missing fseek().
	(grub_hostfs_label): Clear label pointer.  This fixes a crash
	of grub-emu on "ls (host)".

2007-11-18  Christian Franke  <franke@computer.org>

	* include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
	Add attribute packed, gcc 3.4.4 on Cygwin aligns this
	to 64 bit boundary by default.

2007-11-18  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
	(hexdump_mod_SOURCES): New variable.
	(hexdump_mod_CFLAGS): Likewise.
	(hexdump_mod_LDFLAGS): Likewise.

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

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

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

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

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

	* commands/hexdump.c: New file.

2007-11-10  Robert Millan  <rmh@aybabtu.com>

	* commands/i386/pc/play.c (beep_off): Switch order of arguments
	in grub_outb() calls.
	(beep_on): Likewise.

2007-11-10  Christian Franke  <franke@computer.org>

	* normal/menu.c (run_menu): Check for empty menu to avoid crash.
	(grub_menu_run): Likewise.

2007-11-10  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/efi/machine.h: New file.
	* include/grub/i386/linuxbios/machine.h: Likewise.
	* include/grub/i386/pc/machine.h: Likewise.
	* include/grub/powerpc/ieee1275/machine.h: Likewise.
	* include/grub/sparc64/ieee1275/machine.h: Likewise.

	* term/i386/pc/serial.c: Include <grub/machine/machine.h>.
	(serial_hw_io_addr): New variable.
	(serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
	instead of `(unsigned short *) 0x400'.

2007-11-10  Bean  <bean123ch@gmail.com>

	* fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.

2007-11-10  Vesa Jaaskelainen  <chaac@nic.fi>

	* conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
	(vga_mod_SOURCES): Added.
	(vga_mod_CFLAGS): Likewise.
	(vga_mod_LDFLAGS): Likewise.

	* term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
	grub_outb() calls.
	(set_map_mask): Likewise.
	(set_read_map): Likewise.
	(set_read_address): Likewise.
	(vga_font): Removed variable.
	(get_vga_glyph): Removed function.
	(invalidate_char): Likewise.
	(write_char): Changed to use grub_font_get_glyph() for font
	information.
	(grub_vga_putchar): Likewise.
	(grub_vga_getcharwidth): Likewise.

2007-11-10  Vesa Jaaskelainen  <chaac@nic.fi>

	* conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
	flags.
	(pxeboot_img_LDFLAGS): Likewise.
	(diskboot_img_LDFLAGS): Likewise.
	(kernel_img_LDFLAGS): Likewise.

2007-11-06  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
	in grub_outb() calls.
	(serial_hw_init): Likewise.

2007-11-05  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Allow files in ${update_grub_dir} to contain
	spaces.  Skip non-regular files.

2007-11-05  Robert Millan  <rmh@aybabtu.com>

	* kern/disk.c (grub_disk_firmware_fini)
	(grub_disk_firmware_is_tainted): New variables.

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

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

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

	* conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
	(ata_mod_SOURCES): New variable.
	(ata_mod_CFLAGS): Likewise.
	(ata_mod_LDFLAGS): Likewise.

2007-11-05  Robert Millan  <rmh@aybabtu.com>

	* disk/ata.c: Remove `<grub/machine/time.h>'.  Include `<grub/time.h>'.
	(grub_ata_wait): Reimplement using grub_millisleep().

	* include/grub/misc.h (grub_div_roundup): Fix parenthesization.
	* include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.

2007-11-03  Marco Gerards  <marco@gnu.org>

	* term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
	(CRTC_ADDR_PORT): New macro.
	(CRTC_DATA_PORT): Likewise.
	(CRTC_CURSOR): Likewise.
	(CRTC_CURSOR_ADDR_HIGH): Likewise.
	(CRTC_CURSOR_ADDR_LOW): Likewise.
	(update_cursor): New function.
	(grub_console_real_putchar): Call `update_cursor'.
	(grub_console_gotoxy): Likewise.
	(grub_console_cls): Set the default color when clearing the
	screen.
	(grub_console_setcursor): Implemented.

2007-11-03  Marco Gerards  <marco@gnu.org>

	* disk/ata.c (grub_ata_pio_read): Don't wait for the command to
	become activate.
	(grub_ata_pio_write): Likewise.

	(grub_atapi_identify): Wait after issuing an ATA command.
	(grub_atapi_packet): Likewise.
	(grub_ata_identify): Likewise.
	(grub_ata_readwrite): Likewise.

2007-11-03  Marco Gerards  <marco@gnu.org>

	* disk/ata.c (grub_ata_pio_read): Detect and return the error code.
	(grub_ata_pio_write): Likewise.
	(grub_ata_readwrite): Use `grub_error', instead of
	returning `grub_errno'.

2007-11-03  Marco Gerards  <marco@gnu.org>

	* disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
	grub_ata_pio_write once for every single sector, instead of for
	multiple sectors.

2007-10-31  Robert Millan  <rmh@aybabtu.com>

	* configure.ac: Add `i386-linuxbios' to the list of supported targets.

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

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

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

	* kern/i386/linuxbios/init.c: Likewise.
	* kern/i386/linuxbios/startup.S: Likewise.
	* kern/i386/linuxbios/table.c: Likewise.

2007-10-31  Marco Gerards  <marco@gnu.org>

	* conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
	(ata_mod_SOURCES): New variable.
	(ata_mod_CFLAGS): Likewise.
	(ata_mod_LDFLAGS): Likewise.

	* disk/ata.c: New file.

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

2007-10-31  Robert Millan  <rmh@aybabtu.com>

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

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

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

	* loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.

2007-10-27  Robert Millan  <rmh@aybabtu.com>

	* include/grub/types.h (ULONG_MAX): Define macro.

2007-10-22  Robert Millan  <rmh@aybabtu.com>

	* kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'.  Include
	`"../realmode.S"'.
	Remove `"kern/i386/loader.S"'.  Include `"../loader.S"'.

2007-10-22  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
	(pkgdata_MODULES): Add `biosdisk.mod'.
	(biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
	variables.

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

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

	* util/i386/pc/grub-install.in (modules): Add `biosdisk'.

2007-10-22  Robert Millan  <rmh@aybabtu.com>

	* include/grub/time.h: New file.
	* include/grub/i386/time.h: Likewise.
	* include/grub/powerpc/time.h: Likewise.
	* include/grub/sparc64/time.h: Likewise.

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

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

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

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

	* conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
	Add `time.h'.
	* conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
	Add `time.h'.
	* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
	`machine/time.h'.  Add `time.h'.
	* conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.

2007-10-21  Robert Millan  <rmh@aybabtu.com>

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

2007-10-21  Robert Millan  <rmh@aybabtu.com>

	* util/misc.c (grub_util_info): Call fflush() before returning.

2007-10-20  Robert Millan  <rmh@aybabtu.com>

	* genmk.rb (Image): Copy `extra_flags' from here ...
	(PModule): ... to here.  Use it in `#{obj}: #{src}' rule.

	* commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
	to `argc' and `args' arguments.

2007-10-17  Robert Millan  <rmh@aybabtu.com>

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

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

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

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

	* kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
	`kern/i386/realmode.S'.

2007-10-17  Robert Millan  <rmh@aybabtu.com>

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

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

	* include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.

2007-10-15  Robert Millan  <rmh@aybabtu.com>

	* normal/misc.c (grub_normal_print_device_info): Do not probe for
	filesystem when dev->disk is unset.
	Do probe for filesystem even when dev->disk->has_partitions is set.
	In case a filesystem is found, always report it.
	In case it isn't, if dev->disk->has_partitions is set, report that
	a partition table was found instead of reporting that no filesystem
	could be identified.

2007-10-12  Robert Millan  <rmh@aybabtu.com>

	* conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
	to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.

	* include/grub/types.h (grub_host_to_target16): New macro.
	(grub_host_to_target32): Likewise.
	(grub_host_to_target64): Likewise.
	(grub_target_to_host16): Likewise.
	(grub_target_to_host32): Likewise.
	(grub_target_to_host64): Likewise.

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

	* util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
	grub_host_to_target32.
	Replace grub_be_to_cpu32 with grub_target_to_host32.
	(load_modules): Likewise.
	(add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
	Replace grub_be_to_cpu32 with grub_target_to_host32.
	Replace grub_cpu_to_be16 with grub_host_to_target16.
	Replace grub_cpu_to_be32 grub_host_to_target32.

2007-10-12  Robert Millan  <rmh@aybabtu.com>

	* util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
	* util/elf/grub-mkimage.c: ... here.

	* DISTLIST: Add `util/elf/grub-mkimage.c'.  Remove
	`util/powerpc/ieee1275/grub-mkimage.c'.

2007-10-07  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
	and make it easier to figure out.
	Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
	(grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
	Do not avoid claiming a region above HEAP_MAX_ADDR if that would
	leave us with less than HEAP_MIN_SIZE total heap.
	Avoid our total amount of heap to surpass HEAP_MAX_SIZE.

2007-10-03  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/io.h: New file.
	* commands/i386/pc/play.c (inb): Removed.
	(outb): Removed.
	Include grub/cpu/io.h.  Replace inb() with grub_inb() and outb()
	with grub_outb().
	* term/i386/pc/serial.c  (inb): Removed.
	(outb): Removed.
	Include grub/cpu/io.h.  Replace inb() with grub_inb() and outb()
	with grub_outb().
	* term/i386/pc/vga.c  (inb): Removed.
	(outb): Removed.
	Include grub/cpu/io.h.  Replace inb() with grub_inb() and outb()
	with grub_outb().

2007-10-02  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	Reported by Marcin Kurek.

2007-09-07  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
	SmartFirmware version updates (as released by Sven Luther), and avoid
	setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
	GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
	known broken.

2007-09-03  Yoshinori K. Okuji  <okuji@enbug.org>

	From Hitoshi Ozeki:
	* kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
	when merging two regions.

2007-09-03  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
	* normal/completion.c (grub_normal_do_completion): Likewise.
	Reported by Hitoshi Ozeki.

2007-09-03  Yoshinori K. Okuji  <okuji@enbug.org>

	Do not use devices at boot in chainloading.

	* loader/i386/pc/chainloader.c (boot_drive): New variable.
	(boot_part_addr): Likewise.
	(grub_chainloader_boot): Simply call grub_chainloader_real_boot
	with BOOT_DRIVE and BOOT_PART_ADDR.
	(grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
	Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.

2007-08-29  Robert Millan  <rmh@aybabtu.com>

	Patch from Simon Peter <dn.tlp@gmx.net>:
	* genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
	* conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
	util/grub-probe.c_DEPENDENCIES.  Replace grub-setup_DEPENDENCIES with
	util/i386/pc/grub-setup.c_DEPENDENCIES.
	* conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
	util/grub-probe.c_DEPENDENCIES.
	* conf/powerpc-ieee1275.rmk: Likewise.

2007-08-28  Robert Millan  <rmh@aybabtu.com>

	* util/i386/get_disk_name.c: New.  Implement grub_util_get_disk_name()
	to tell grub-mkdevicemap how to name devices.
	* util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
	feature).

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

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

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

	* util/grub-mkdevicemap.c: Replace device naming logic with
	grub_util_get_disk_name() calls.

2007-08-20  Robert Millan  <rmh@aybabtu.com>

	* normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
	(so that it works for both plural and singular quantities).

2007-08-05  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
	so that [xz] isn't taken into account when determining order.

2007-08-02  Marco Gerards  <marco@gnu.org>

	* DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
	`include/multiboot2.h', `include/grub/elfload.h',
	`include/multiboot.h', `include/grub/multiboot.h',
	`include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
	`include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
	`kern/elf.c', `loader/multiboot_loader.c',
	`loader/multiboot_loader_normal.c', `loader/multiboot2.c',
	`loader/i386/pc/multiboot2.c',
	`loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
	`util/i386/pc/grub-mkrescue.in'.  Remove
	`include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
	`include/grub/i386/pc/util/biosdisk.h' and
	`include/grub/powerpc/ieee1275/multiboot.h'.

2007-08-02  Bean  <bean123ch@gmail.com>

	* conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
	(ntfs_mod_SOURCES): New variable.
	(ntfs_mod_CFLAGS): Likewise.
	(ntfs_mod_LDFLAGS): Likewise.

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

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

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

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

	* fs/ntfs.c: New file.

2007-08-02  Bean  <bean123ch@gmail.com>

	* disk.h (grub_disk): Use NESTED_FUNC_ATTR.

	* file.h (grub_file): Likewise.

	* fshelp.h (grub_fshelp_read_file): Likewise.

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

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

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

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

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

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

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

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

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

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

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

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

	* command/blocklist.c (read_blocklist): Likewise.
	(print_blocklist): Likewise.

2007-08-02  Marco Gerards  <marco@gnu.org>

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
	`util/hostfs.c'.

	* disk/host.c: New file.

	* util/hostfs.c: Likewise.

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

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

	* util/grub-emu.c (main): Initialize and de-initialize hostfs.

2007-07-24  Jerone Young  <jerone@gmail.com>

	* conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
	modules for compilation.
	* conf/powerpc-ieee1275.rmk: Likewise.

	* include/multiboot.h: Move multiboot definitions to one file. Rename
	many definitions to not get grub specific.
	* include/multiboot2.h: Create header with multiboot 2 definitions.
	* include/grub/multiboot.h: Header for grub specific function
	prototypes and definitions.
	* include/grub/multiboot2.h: Likewise.
	* include/grub/multiboot_loader.h: Likewise.
	* include/grub/i386/pc/multiboot.h: Removed.
	* include/grub/powerpc/ieee1275/multiboot.h: Removed.

	* loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
	and 2 to allow for one multiboot and module commands.
	* loader/multiboot2.c: Add multiboot2 functionality.
	* loader/i386/pc/multiboot.c: Modify for new multiboot header location
	and definition names.
	* loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
	2 functions.
	* loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
	ieee1275 specific multiboot2 code.

	* kern/i386/pc/startup.S: Change headers and definition names for
	multiboot. Add function grub_multiboot2_real_boot for multiboot 2.

2007-07-22  Robert Millan  <rmh@aybabtu.com>

	* geninitheader.sh: Process file specified in first parameter rather
	than hardcoding grub_modules_init.lst.
	* geninit.sh: Likewise.  Also, construct header name dynamically rather
	than hardcoding grub_modules_init.h.

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

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

	* util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
	* util/grub-probe.c: Include grub_probe_init.h.  Use grub_init_all()
	to initialize modules rather than a list of hardcoded functions.
	* util/i386/pc/grub-setup.c: Include grub_setup_init.h.  Use
	grub_init_all() to initialize modules rather than a list of hardcoded
	functions.

2007-07-22  Robert Millan  <rmh@aybabtu.com>

	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.

2007-07-22  Robert Millan  <rmh@aybabtu.com>

	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
	GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
	flag when running on SmartFirmware.
	* term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
	"output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
	was set.

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

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

	* util/powerpc/ieee1275/grub-install.in: Improve error message shown
	when nvsetenv failed.

2007-07-22  Yoshinori K. Okuji  <okuji@enbug.org>

	* conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
	because this rule is automatically generated.
	(grub-mkrescue): Removed for the same reason as above.

2007-07-22  Yoshinori K. Okuji  <okuji@enbug.org>

	Migrate to GNU General Public License Version 3.

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

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

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

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

2007-07-02  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-efi.rmk: Replace obsolete reference to
	util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
	with util/getroot.c.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.

	* util/grub-emu.c (main): Fix unchecked pointer handling.

2007-07-02  Robert Millan  <rmh@aybabtu.com>

	* util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
	invocation to fail, in order to support partition-less media.

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

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

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

	Print the same informational message that the other scripts do, before
	exiting.

2007-06-23  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (font_path): New function.  Determine whether
	a font file can be found and, if so, echo the GRUB path to it.

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

	* util/grub.d/00_header.in: Handle multiple terminals, based on
	environment setup by update-grub.

2007-06-23  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.

2007-06-21  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
	indicate end of data section in kernel image.
	* include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
	GRUB_KERNEL_MACHINE_DATA_END.

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

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

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

	* util/i386/pc/grub-install.in: Use newly provided
	make_system_path_relative_to_its_root() to convert ${grubdir}, then
	pass the result to grub-install --prefix.

2007-06-13  Robert Millan  <rmh@aybabtu.com>

	* include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
	DEFAULT_DEVICE_MAP.
	* util/grub-emu.c: Use above definitions from misc.h instead of
	defining them.
	* util/grub-mkdevicemap.c: Likewise.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/grub-probe.c: Likewise.
	(probe): Abort with grub_util_error() when either
	grub_guess_root_device or grub_util_get_grub_dev fails.

2007-06-12  Robert Millan  <rmh@aybabtu.com>

	* normal/command.c (grub_command_execute): Use NULL rather than 0 for
	"pager" assignment.
	* util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
	"pcdata".
	* util/grub-probe.c (probe): Likewise for "drive_name".

2007-06-11  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
	not just the cdrom one.

2007-06-11  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-mkrescue.in: Add "set -e".
	Add --pkglibdir=DIR option to override pkglibdir.
	Mention --image-type=TYPE in help output.
	Fix --grub-mkimage (it was a no-op).
	Abort gracefully when no parameter is given.

2007-06-11  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-mkrescue.in: New file.
	* conf/i386-pc.rmk: Add its build declarations.  Put it in bin_SCRIPTS.
	* Makefile.in: Handle bin_SCRIPTS.

2007-06-10  Vesa Jaaskelainen  <chaac@nic.fi>

	* term/gfxterm.c (grub_gfxterm_init): Added support for specifying
	list of video modes.

2007-06-06  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
	file doesn't exist, or if it is in a filesystem grub can't read.

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

	* util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
	could be identified by update-grub.  Remove redundant check for
	unifont.pff existence (since convert_system_path_to_grub_path now
	handles that).

2007-06-04  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.

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

	* conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.

2007-06-04  Robert Millan  <rmh@aybabtu.com>

	* conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.

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

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

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

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

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

	* util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
	and grub_apple_partition_map_fini() after that.

2007-06-01  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Export GRUB_CMDLINE_LINUX.

	* util/grub.d/00_header.in: Only enable gfxterm when
	convert_system_path_to_grub_path() succeeds.

2007-05-20  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub_lib.in: New file.
	* DISTLIST: Add update-grub_lib.in.
	* conf/common.rmk: Generate update-grub_lib and install it in
	$(lib_DATA).
	* Makefile.in: Add install routine for $(lib_DATA).

	* util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
	function provided by update-grub_lib to support arbitrary paths of
	unifont.pff.
	* util/update-grub.in: Use convert_system_path_to_grub_path() to
	initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.

2007-05-19  Robert Millan  <rmh@aybabtu.com>

	* commands/i386/cpuid.c: New module.
	* DISTLIST: Add it.
	* conf/i386-efi.rmk: Enable cpuid.mod.
	* conf/i386-pc.rmk: Likewise.

2007-05-18  Jeroen Dekkers  <jeroen@dekkers.cx>

	* kern/disk.c (grub_disk_read): Check return value of
	grub_realloc().

2007-05-18  Jeroen Dekkers  <jeroen@dekkers.cx>

	* util/getroot.c (grub_util_get_grub_dev): Support partitionable
	arrays.
	* disk/raid.c (grub_raid_open): Likewise.

2007-05-17  Jeroen Dekkers  <jeroen@dekkers.cx>

	* util/biosdisk.c (linux_find_partition): Allocate real_dev on the
	stack instead of on the heap.

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

	* configure.ac: Only use -fno-stack-protector for the target
	environment.

2007-05-17  Jeroen Dekkers  <jeroen@dekkers.cx>

	* video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
	__attribute_ ((unused)) to mode_type argument.

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

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

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

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

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

	* font/manager.c (find_glyph): Make table a const.
	(grub_font_get_glyph): Remove bitmap from if statement.

2007-05-16  Jeroen Dekkers  <jeroen@dekkers.cx>

	* util/getroot.c (grub_guess_root_device): Remove RAID and LVM
	code, first search for device in /dev/mapper, then in /dev.
	(grub_util_get_grub_dev): New function.
	* include/grub/util/getroot.h (grub_util_get_grub_dev): Add
	prototype.
	* util/grub-probe.c (probe): Remove check for RAID, call
	grub_util_get_grub_dev() instead of
	grub_util_biosdisk_get_grub_dev().
	* util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
	grub_util_biosdisk_get_grub_dev().
	* util/i386/pc/grub-setup.c (main): Likewise.

2007-05-16  Robert Millan  <rmh@aybabtu.com>

	* DISTLIST: Update for the latest changes.
	* conf/i386-pc.rmk: Use the new paths for util/getroot.c,
	util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
	* util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
	grub/util/biosdisk.h.
	* util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
	grub/util/biosdisk.h.

2007-05-16  Robert Millan  <rmh@aybabtu.com>

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

2007-05-16  Robert Millan  <rmh@aybabtu.com>

	* util/i386/efi/grub-install.in: New.
	* conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
	newly added grub-install.
	* util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
	include.
	* util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
	grub/util/biosdisk.h.
	* util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
	grub/util/biosdisk.h.

2007-05-16  Robert Millan  <rmh@aybabtu.com>

	* include/grub/i386/pc/util/biosdisk.h: Moved to ...
	* include/grub/util/biosdisk.h: ... here.
	* util/i386/pc/biosdisk.c: Moved to ...
	* util/biosdisk.c: ... here.
	* util/i386/pc/getroot.c: Moved to ...
	* util/getroot.c: ... here.
	* util/i386/pc/grub-mkdevicemap.c: Moved to ...
	* util/grub-mkdevicemap.c: ... here.
	* util/i386/pc/grub-probe.c: Moved to ...
	* util/grub-probe.c: ... here.

2007-05-15  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Remove duplicated line in grub.cfg header
	message.

2007-05-13  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Fix a few assumptions about the devices holding
	/, /boot and /boot/grub being the same.
	* util/grub.d/00_header.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.

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

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

	* util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
	the grub.cfg header message.

2007-05-11  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Create device.map if it doesn't already exist,
	before attempting to run grub-probe.
	Check for grub-probe and grub-mkdevicemap with the same code
	grub-install is using.
	Remove test mode.

2007-05-09  Jeroen Dekkers  <jeroen@dekkers.cx>

	* Makefile.in: Add the datarootdir autoconf variable.

2007-05-09  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-probe.c (probe): When detecting partition map,
	fail gracefully if dev->disk->partition == NULL.

2007-05-07  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
	determine partition map module.
	* util/i386/pc/grub-install.in: Use this feature to decide which
	partition module to load, instead of hardcoding pc and gpt.

2007-05-07  Robert Millan  <rmh@aybabtu.com>

	* Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
	source directory differs from build directory.

2007-05-05  Robert Millan  <rmh@aybabtu.com>

	* util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
	initialisation.

2007-05-05  Robert Millan  <rmh@aybabtu.com>

	* util/update-grub.in: Create ${grub_prefix} if it doesn't exist.

2007-05-05  Robert Millan  <rmh@aybabtu.com>

	* util/grub.d/10_linux.in: Allow the administrator to insert Linux
	command-line arguments via ${GRUB_CMDLINE_LINUX}.

2007-05-05  Robert Millan  <rmh@aybabtu.com>

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
	(grub_probe_SOURCES): Likewise.
	* util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
	GPT and initialize dos_part and bsd_part accordingly.
	* util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
	install_bsd_part.
	(main): Activate gpt module for use during partition identification,
	and deactivate it afterwards.
	* util/i386/pc/grub-install.in: Add gpt module to core.img.
	* util/i386/pc/grub-probe.c (main): Activate gpt module for use during
	partition identification, and deactivate it afterwards.

2007-05-05  Robert Millan  <rmh@aybabtu.com>

	* term/i386/pc/console.c (grub_console_fini): Call
	grub_term_set_current() before grub_term_unregister().

2007-05-04  Robert Millan  <rmh@aybabtu.com>

	* DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
	util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
	* Makefile.in: Build update-grub_SCRIPTS.  Install update-grub_SCRIPTS
	and update-grub_DATA.
	* conf/common.rmk: Build and install update-grub components.
	* conf/common.mk: Regenerate.
	* util/update-grub.in: New.  Core of update-grub.
	* util/grub.d/00_header.in: New.  Generates grub.cfg header.
	* util/grub.d/10_hurd.in: New.  Generates boot entries for the Hurd.
	* util/grub.d/10_linux.in: New.  Generates boot entries for Linux.
	* util/grub.d/README: New.  Document grub.d directory layout.

2007-05-01  Robert Millan  <rmh@aybabtu.com>

	* util/grub-emu.c: Move initialization functions
	grub_util_biosdisk_init() and grub_init_all() before
	grub_util_biosdisk_get_grub_dev(), which relies on them.

2007-04-19  Robert Millan  <rmh@aybabtu.com>

	* util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
	it is used later.

2007-04-18  Jerone Young  <jerone@gmail.com>

	* kernel/elf.c: Add missing parenthesis for conditional statement
	stanza.

2007-04-10  Jerone Young  <jerone@gmail.com>

	* util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
	continue on and look for device node with real device name.

2007-04-10  Jerone Young  <jerone@gmail.com>

	* configure.ac: Add argument for autoconf to use transformation
	ability.
	* Makefile.in: Add autoconf package transformation code.
	* util/i386/pc/grub-install.in: Likewise.
	* util/powerpc/ieee1275/grub-install.in: Likewise.

2007-03-19  Yoshinori K. Okuji  <okuji@enbug.org>

	* fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
	(EXT2_GOOD_OLD_INODE_SIZE): Likewise.
	(EXT2_REVISION): Likewise.
	(EXT2_INODE_SIZE): Likewise.
	(struct grub_ext2_block_group): Added a missing member
	"used_dirs".
	(grub_ext2_read_inode): Divide by the inode size in a superblock
	instead of 128 to obtain INODES_PER_BLOCK.
	Use the macro EXT2_INODE_SIZE instead of directly using
	SBLOCK->INODE_SIZE.

2007-03-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
	superblock instead of the structure size to compute an
	offset. This fixes the problem that GRUB could not read a
	filesystem when inode size is different from 128-byte.

2007-03-05  Marco Gerards  <marco@gnu.org>

	* normal/main.c (read_config_file): When "menu" is not set, create
	an initial context.

2007-02-21  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
	(HEAP_LIMIT): New macro.
	(grub_claim_heap): Claim memory up to `heaplimit'.

2007-02-21  Hollis Blanchard  <hollis@penguinppc.org>

	* conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
	* kern/powerpc/ieee1275/init.c (_end): Add declaration.
	(_start): Likewise.
	(grub_arch_modules_addr): Return address after `_end'.
	* util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
	(load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
	(add_segments): Calculate `_end' from phdr size and location.
	(ALIGN_UP): Moved to ...
	* include/grub/misc.h: here.
	* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
	New macro.
	(GRUB_IEEE1275_MODULE_BASE): Removed.

2007-02-20  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
	loop boundary.

2007-02-20  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
	All users updated.
	(grub_elf64_load_hook_t): Likewise.
	* kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
	debug output.

2007-02-20  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/mm.c: Update copyright.
	(grub_mm_debug): Correct syntax error.
	(grub_mm_dump_free): New function.
	(grub_debug_free): Call `grub_free'.
	* include/grub/mm.h: Update copyright.
	(grub_mm_dump_free): Add declaration.

2007-02-12  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/ieee1275/ieee1275.h: Update copyright.
	* kern/powerpc/ieee1275/init.c: Likewise.
	* kern/powerpc/ieee1275/openfw.c: Likewise.

	* loader/powerpc/ieee1275/linux.c: Likewise.
	* include/grub/elfload.h: Likewise.
	* kern/elf.c: Likewise.
	(grub_elf32_load): Pass `base' and `size' parameters.  Update all
	callers.
	(grub_elf64_load): Likewise.
	(grub_elf32_load_segment): Move to a nested function.
	(grub_elf64_load_segment): Likewise.

2007-02-12  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
	prototype.
	* kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
	(grub_heap_len): Likewise.
	(HEAP_SIZE): New macro.
	(grub_claim_heap): New function.
	(grub_machine_init): Don't claim heap directly.  Call
	`grub_claim_heap'.
	* kern/powerpc/ieee1275/openfw.c: Include alloca.h.
	(grub_available_iterate): New function.

2007-02-03  Thomas Schwinge  <tschwinge@gnu.org>

	* aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
	* configure.ac: Use it for testing the HOST and TARGET compilers.

2006-12-13  Thomas Schwinge  <tschwinge@gnu.org>

	* Makefile.in (enable_grub_emu): New variable.
	* configure.ac (--enable-grub-emu): New option.
	Do the checks for (n)curses only if `--enable-grub-emu' is requested.
	* conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.

2006-12-12  Marco Gerards  <marco@gnu.org>

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

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

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

	* util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
	leak.

2006-12-11  Marco Gerards  <marco@gnu.org>

	* normal/menu_entry.c (run): Fix off by one bug so the last line
	is executed.  Move the loader check to outside the loop.

2006-12-08  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.

2006-11-25  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
	the number of sectors.	Reported by Andrey Shuvikov
	<mr_hyro@yahoo.com>.

2006-11-11  Jeroen Dekkers  <jeroen@dekkers.cx>

	* kern/disk.c (grub_disk_read): When there is a read error, always
	try to read only the necessary data.

	* conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
	disk/raid.c.
	* include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
	prototype.
	[GRUB_UTIL] (grub_raid_fini): Likewise.
	[GRUB_UTIL] (grub_lvm_init): Likewise.
	[GRUB_UTIL] (grub_lvm_fini): Likewise.
	* util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
	RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
	(main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
	and grub_raid_fini().

2006-11-09  Jeroen Dekkers  <jeroen@dekkers.cx>

	* include/grub/types.h (__unused): Rename to UNUSED.
	* kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
	(grub_elf64_size): Likewise.

2006-11-03  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/elf.c (grub_elf_file): Call grub_file_seek. Call
	grub_error_push and grub_error_pop in the error-handling path.
	(grub_elf32_load_segment): Only call grub_file_read with non-zero
	length.

2006-11-03  Hollis Blanchard  <hollis@penguinppc.org>

	* conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	(kernel_elf_SOURCES): Likewise.
	* conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
	* conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
	* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
	* conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
	* conf/common.rmk (pkgdata_MODULES): Add elf.mod.
	(elf_mod_SOURCES): New variable.
	(elf_mod_CFLAGS): Likewise.
	(elf_mod_LDFLAGS): Likewise.
	* include/grub/types.h (__unused): New macro.
	* include/grub/elfload.h: New file.
	* kern/elf.c: Likewise.
	* loader/powerpc/ieee1275/linux.c: Include elfload.h.
	(ELF32_LOADMASK): New macro.
	(ELF64_LOADMASK): Likewise.
	(vmlinux): Removed.
	(grub_linux_load32): New function.
	(grub_linux_load64): Likewise.
	(grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
	Use grub_elf_t instead of grub_file_t.

2006-11-02  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
	`catch_result' to struct set_color_args.

2006-10-28  Yoshinori K. Okuji  <okuji@enbug.org>

	* normal/menu.c: Include grub/script.h.
	* normal/menu_entry.c: Likewise.
	* include/grub/normal.h: Do not include grub/script.h.

2006-10-27  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/disk.c (grub_disk_read): Correct debug printf formatting.

2006-10-27  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/disk.c (grub_disk_open): Print debug messages when opening a
	disk.
	(grub_disk_close): Print debug messages when closing a disk.
	(grub_disk_read): Print debug messages when disk read fails.
	* kern/fs.c (grub_fs_probe): Print debug messages when detecting
	filesystem type.
	* kern/partition.c: Include misc.h.
	(grub_partition_iterate): Print debug messages when detecting
	partition type.

2006-10-27  Hollis Blanchard  <hollis@penguinppc.org>

	* disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
	is negative.
	* kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.

2006-10-26  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
	Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.

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

	* disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
	instead of sizeof(lv). Patch by Michael Guntsche.

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

	* disk/lvm.c: Rename VGS to VG_LIST.
	(grub_lvm_iterate): Change VGS->LV to VG-LV.
	(grub_lvm_open): Likewise.
	Thanks to Michael Guntsche for finding this bug.

2006-10-15  Yoshinori K. Okuji  <okuji@enbug.org>

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

2006-10-14  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
	with "/dev/.static/dev/md".

2006-10-14  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
	DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
	DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
	DRIVE_NAME are always freed.

	* util/i386/pc/biosdisk.c (make_device_name): Add one into
	DOS_PART, as a DOS partition is counted from one instead of zero
	now. Reported by Robert Millan.

2006-10-14  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/getroot.c (grub_guess_root_device): Stop using
	grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
	* util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
	string returned by grub_guess_root_device.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/i386/pc/grub-probefs.c: Likewise.

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

	* util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
	choose which information we want to print.

2006-10-14  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
	include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
	include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
	include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
	video/readers/tga.c and video/i386/pc/vbeutil.c.

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

	Added support for RAID and LVM.

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

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

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

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

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

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

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

2006-10-10  Tristan Gingold  <tristan.gingold@bull.net>

	* include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.

2006-10-05  Tristan Gingold  <tristan.gingold@bull.net>

	* kern/misc.c (grub_strtoull): Guess the base only if not
	specified.

2006-10-01  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
	PowerMac support.

2006-10-01  Hollis Blanchard  <hollis@penguinppc.org>

	* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.

	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
	Remove `flags' argument.  All callers changed.
	* kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
	(IEEE1275_IHANDLE_INVALID): New variable.
	(IEEE1275_CELL_INVALID): New variable.
	(grub_ieee1275_finddevice, grub_ieee1275_get_property,
	grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
	grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
	grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
	grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
	codes from Open Firmware.  All callers updated.
	(grub_ieee1275_next_property): Directly return Open Firmware return
	code.
	* kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
	Standardize error checking from `grub_ieee1275_get_property'.
	* kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
	`devalias' to `aliases'.  Correct comments.  Consolidate error paths.

2006-10-01  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
	`instance_to_package_args' to `instance_to_path_args'.

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

	* term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
	`grub_ieee1275_interpret'.

2006-09-25  Hollis Blanchard  <hollis@penguinppc.org>

	* util/powerpc/ieee1275/grub-mkimage.c: Include config.h.

2006-09-25  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
	(__cmpdi): Likewise.

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

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

	* loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
	to type `grub_ssize_t'.
	(grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.

2006-09-22  Marco Gerards  <marco@gnu.org>

	* normal/script.c (grub_script_create_cmdmenu): Skip leading
	newlines.

2006-09-22  Marco Gerards  <marco@gnu.org>

	* commands/echo.c: New file.

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

	* conf/common.rmk (echo_mod_SOURCES): New variable.
	(echo_mod_CFLAGS): Likewise.
	(echo_mod_LDFLAGS): Likewise.

2006-09-22  Marco Gerards  <marco@gnu.org>

	* normal/main.c (get_line): Malloc memory instead of using
	preallocated memory.  Removed the arguments `cmdline' and
	`max_len'.  Updated all callers.

2006-09-22  Marco Gerards  <marco@gnu.org>

	* conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
	(normal_mod_DEPENDENCIES): Likewise.

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

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

2006-09-22  Johan Rydberg  <jrydberg@gnu.org>

	* genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
	programs.
	* conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
	(normal_mod_DEPENDENCIES): Likewise.
	* conf/i386-pc.mk: Regenerate.
	* conf/i386-efi.mk: Likewise
	* conf/common.mk: Likewise.
	* conf/powerpc-ieee1275.mk: Likewise.
	* conf/sparc64-ieee1275.mk: Likewise.

2006-09-22  Robert Millan  <rmh@aybabtu.com>

	Sync with i386 version.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
	* conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.

2006-09-21  Robert Millan  <rmh@aybabtu.com>

	Import from GRUB Legacy (lib/device.c):
	* util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
	(init_device_map) [__linux__]: Add support for I2O devices.

2006-09-14  Marco Gerards  <marco@gnu.org>

	* conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
	`-melf_i386'.

2006-09-14  Robert Millan  <rmh@aybabtu.com>

	* util/i386/pc/grub-install.in: Skip menu.lst when removing
	/boot/grub/*.lst.

	* util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").

	* util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
	before adding it to device.map.

2006-08-15  Johan Rydberg  <jrydberg@gnu.org>

	* genmk.rb: Let GCC generate dependencies the first time it
	compiles a file; using the -MD option.
	* conf/common.mk: Regenerate.
	* conf/i386-pc.mk: Likewise.
	* conf/i386-efi.mk: Likewise.
	* conf/powerpc-ieee1275.mk: Likewise.
	* conf/sparc64-ieee1275.mk: Likewise.

2006-08-04  Yoshinori K. Okuji  <okuji@enbug.org>

	Move the prototypes of grub_setjmp and grub_longjmp to
	cpu/setjmp.h, so that each architecture may specify different
	attributes.

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

	* include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
	[!GRUB_UTIL] (grub_longjmp): Removed.

2006-08-01  Pelletier Vincent  <subdino2004@yahoo.fr>

	* kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
	"color!" method does not return any value.

2006-07-29  Vesa Jaaskelainen  <chaac@nic.fi>

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

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

	* video/bitmap.c: Likewise.

	* video/readers/tga.c: Likewise.

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

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

	* term/gfxterm.c: Likewise.

	* video/video.c: Likewise.

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

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

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

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

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

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

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

	* video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
	grub_video_i386_vbeblit_info.
	(grub_video_vbe_unmap_color): Likewise.
	(grub_video_vbe_blit_glyph): Likewise.
	(grub_video_vbe_scroll): Likewise.
	(grub_video_vbe_draw_pixel): Removed function.
	(grub_video_vbe_get_pixel): Likewise.
	(grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
	updated code to use it.
	(common_blitter): Added common blitter for render target and bitmap.
	(grub_video_vbe_blit_bitmap): Updated to use common_blitter.
	(grub_video_vbe_blit_render_target): Likewise.

2006-07-30  Johan Rydberg  <jrydberg@gnu.org>

	* kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
	is in text mode if there is no console control protocol instance
	available.

2006-07-29  Vesa Jaaskelainen  <chaac@nic.fi>

	* include/grub/video.h: Code cleanup.

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

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

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

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

	* video/video.c: Likewise.  Also added more comments.

2006-07-29  Vesa Jaaskelainen  <chaac@nic.fi>

	* disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
	(struct grub_biosdisk_dap): Likewise.

	* include/grub/i386/pc/biosdisk.h: ... to here.  Also corrected
	linkage settings for all functions.

2006-07-12  Marco Gerards  <marco@gnu.org>

	* configure.ac (--enable-mm-debug): Fix typo.

	* genkernsyms.sh.in: Use proper quoting for `CC'.

2006-07-02  Jeroen Dekkers  <jeroen@dekkers.cx>

	* conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
	(normal_mod_ASFLAGS): Remove "-m32".

2006-06-14  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/misc.c: Include config.h.
	[!HAVE_MEMALIGN]: Do not include malloc.h.
	(grub_memalign): Use posix_memalign, if present. Then, use
	memalign, if present. Otherwise, emit an error.

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

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

	* configure.ac (AC_GNU_SOURCE): Added.
	(AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
	type.

2006-06-09  Yoshinori K. Okuji  <okuji@enbug.org>

	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
	ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.

2006-06-07  Jeroen Dekkers  <jeroen@dekkers.cx>

	* include/grub/types.h (grub_host_addr_t): Rename to
	grub_target_addr_t.
	(grub_host_off_t): Rename to grub_target_off_t.
	(grub_host_size_t): Rename to grub_target_size_t.
	(grub_host_ssize_t): Rename to grub_target_ssize_t.
	Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.

	* include/grub/kernel.h (struct grub_module_header): Change type
	of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
	(grub_module_info): Likewise.

2006-06-05  Yoshinori K. Okuji  <okuji@enbug.org>

	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
	of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
	Velazquez <jesus.velazquez@gmail.com>.

2006-06-05  Yoshinori K. Okuji  <okuji@enbug.org>

	Count partitions from 1 instead of 0 in the string representation
	of partitions. Still use 0-based internally.

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

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

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

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

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

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

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

	* fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
	conditional.

2006-06-04  Yoshinori K. Okuji  <okuji@enbug.org>

	Clean up the code to support 64-bit addressing in disks and
	files. This change is not enough for filesystems yet.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* boot/i386/pc/boot.S (force_lba): Removed.
	(boot_drive): Moved to under KERNEL_SECTOR.
	(kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
	space.
	(real_start): Set %si earlier. Remove code for FORCE_LBA, since it
	is useless.
	(lba_mode): Refactored to support a 64-bit address. More size
	optimization.
	(setup_sectors): Likewise.

2006-06-04  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added include/grub/i386/linux.h. Removed
	include/grub/i386/pc/linux.h

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

	* config.guess: Updated from gnulib.
	* config.sub: Likewise.
	* install-sh: Likewise.
	* mkinstalldirs: Likewise.

2006-06-02  Yoshinori K. Okuji  <okuji@enbug.org>

	* conf/common.rmk (grub_modules_init.lst): Depended on
	grub_emu_SOURCES, excluding grub_emu_init.c, instead of
	MODSRCFILES.

	* genmk.rb (PModule::rule): Reverted the previous change.

2006-06-02  Yoshinori K. Okuji  <okuji@enbug.org>

	* conf/common.rmk (grub_modules_init.lst): Depends on
	$(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
	that the target does not exist before producing.
	(grub_modules_init.h): Remove the target before generating.
	(grub_emu_init.c): Likewise.

	* genmk.rb (PModule::rule): Add source files into MODSRCFILES.

2006-05-31  Jeroen Dekkers  <jeroen@dekkers.cx>

	* configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
	for the target-specific tests. Make sure that we also have the
	up-to-date target variables for those tests.

2006-05-31  Yoshinori K. Okuji  <okuji@enbug.org>

	* genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
	(PModule::rule): Likewise.

2006-05-31  Yoshinori K. Okuji  <okuji@enbug.org>

	* genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
	TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
	target-specific flags should be prefixed.
	(PModule::rule): Likewise.

2006-05-30  Yoshinori K. Okuji  <okuji@enbug.org>

	* configure.ac (CMP): Check if cmp is available explicitly.

2006-05-29  Yoshinori K. Okuji  <okuji@enbug.org>

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

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

	* util/genmoddep.c: Removed.

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

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

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

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

	* genmoddep.awk: New file.

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

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

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

	* DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.

2006-05-29  Vesa Jaaskelainen  <chaac@nic.fi>

	* include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
	'exec_to_evaluate'.  Renamed field 'true' to 'exec_on_true'.  Renamed
	field 'false' to 'exec_on_false'.
	(grub_script_create_cmdif): Renamed argument names to reflect above
	changes.

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

	* normal/script.c (grub_script_create_cmdif): Likewise.

2006-05-28  Yoshinori K. Okuji  <okuji@enbug.org>

	* fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
	top.
	(grub_hfsplus_btree_recptr): Likewise.
	(grub_hfsplus_find_block): Do not take RETRY any longer. Use
	FILEBLOCK both to pass a block number and store next block
	number.
	(grub_hfsplus_read_block): Rewritten heavily to support an extent
	overflow file correctly. Specify errors appropriately, because
	fshelp expects that GRUB_ERRNO is set when fails. Reuse
	grub_hfsplus_btree_recptr to get the pointer to a found key.
	(grub_hfsplus_btree_search): Return 1 instead of 0 when no match
	is found.

	* conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
	linux.mod.
	(_linux_mod_SOURCES): New variable.
	(_linux_mod_CFLAGS): Likewise.
	(_linux_mod_LDFLAGS): Likewise.
	(linux_mod_SOURCES): Likewise.
	(linux_mod_CFLAGS): Likewise.
	(linux_mod_LDFLAGS): Likewise.

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

	* loader/i386/efi/linux.c: New file.
	* loader/i386/efi/linux_normal.c: Likewise.
	* include/grub/i386/efi/loader.h: Likewise.

2006-05-27  Yoshinori K. Okuji  <okuji@enbug.org>

	* commands/blocklist.c: New file.

	* DISTLIST: Added commands/blocklist.c.

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

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

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

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

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

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

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

	* conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
	(blocklist_mod_SOURCES): New variable.
	(blocklist_mod_CFLAGS): Likewise.
	(blocklist_mod_LDFLAGS): Likewise.

2006-05-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
	duplication.
	(lba_mode): Use %eax more intensively to reduce the code size.

2006-05-20  Marco Gerards  <marco@gnu.org>

	* normal/lexer.c (grub_script_yylex): Don't filter out newlines.

	* normal/parser.y (commandblock): Defined as <cmd>.  A subroutine
	for `menuentry'.
	(script): Accept leading newlines.
	(newlines): New rule to describe 0 or more newlines.
	(commands): Accept `command' with trailing newline.  Fixed the
	order in which arguments were passed to `grub_script_add_cmd'.
	Accept commands separated by newlines.
	(function): Changed to accept newlines.
	(menuentry) Rewritten.

	* normal/script.c (grub_script_create_cmdmenu): Add new entries in
	front of the list, instead of to the end.

2006-05-19  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-install.in (bindir): New variable.
	(grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
	Shaver <lbgwjl@gmail.com>.

2006-05-14  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
	grub/machine/linux.h
	* loader/i386/pc/linux.c: Likewise.

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

	* include/grub/i386/linux.h (struct linux_kernel_params): New
	struct.

2006-05-09  Vesa Jaaskelainen  <chaac@nic.fi>

	* video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
	checking.
	(grub_video_vbe_blit_glyph): Likewise.
	(grub_video_vbe_blit_bitmap): Likewise.
	(grub_video_vbe_blit_render_target): Likewise.

2006-05-09  Yoshinori K. Okuji  <okuji@enbug.org>

	* configure.ac (--with-platform): Properly quote the square
	brackets.

2006-05-08  Marco Gerards  <marco@gnu.org>

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

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

	* util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
	`kernel.elf' instead of `grubof'.

2006-05-08  Yoshinori K. Okuji  <okuji@enbug.org>

	Add --with-platform to configure. Use pkglibdir instead of
	pkgdatadir. This is reported by Roger Leigh.

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

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

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

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

	* Makefile.in: Include a makefile based on PLATFORM instead of
	HOST_VENDOR.
	(pkgdatadir): Not appended by the machine type.
	(pkglibdir): Appended by the machine type.
	(host_vendor): Removed.
	(platform): New variable.
	(BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
	(install-local): Use PKGLIBDIR instead of PKGDATADIR.
	(uninstall): Likewise.

2006-05-07  Yoshinori K. Okuji  <okuji@enbug.org>

	Use the environment context in the menu. Remove the commands
	"default" and "timeout", and use variables instead.

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

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

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

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

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

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

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

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

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

	* commands/default.c: Removed.
	* commands/timeout.c: Likewise.
	* normal/context.c: Likewise.

2006-05-07  Vesa Jaaskelainen  <chaac@nic.fi>

	* kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.

2006-05-02  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/env.c (struct grub_env_context): Removed "sorted". Renamed
	"next" to "prev" for readability.
	(struct grub_env_sorted_var): New struct.
	(grub_env_context): Renamed to ...
	(initial_context): ... this.
	(grub_env_var_context): Renamed to ...
	(current_context): ... this.
	(grub_env_find): Look only at CURRENT_CONTEXT.
	(grub_env_context_open): Rewritten to copy exported variables from
	previous context.
	(grub_env_context_close): Rewritten according to the new
	scheme. Also, add an assertion to prevent the initial context from
	removed.
	(grub_env_insert): Removed the code for the sorted list.
	(grub_env_remove): Likewise.
	(grub_env_export): Simply mark the variable with
	GRUB_ENV_VAR_GLOBAL.
	(grub_env_set): A cosmetic change for naming consistency.
	(grub_env_get): Likewise.
	(grub_env_unset): Likewise.
	(grub_env_iterate): Rewritten to sort variables within this
	function.
	(grub_register_variable_hook): Fixed for naming consistency. Call
	grub_env_find again, only if NAME is not found at the first time.
	(mangle_data_slot_name): New function.
	(grub_env_set_data_slot): Likewise.
	(grub_env_get_data_slot): Likewise.
	(grub_env_unset_data_slot): Likewise.

	* include/grub/env.h (grub_env_var_type): New enum.
	(GRUB_ENV_VAR_LOCAL): New constant.
	(GRUB_ENV_VAR_GLOBAL): Likewise.
	(GRUB_ENV_VAR_DATA): Likewise.
	(struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
	"type".
	(grub_env_set): Replace VAR with NAME for consistency.
	(grub_register_variable_hook): Likewise.
	(grub_env_export): Specify the name of the argument.
	(grub_env_set_data_slot): New prototype.
	(grub_env_get_data_slot): Likewise.
	(grub_env_unset_data_slot): Likewise.

2006-04-30  Yoshinori K. Okuji  <okuji@enbug.org>

	Extend the loader so that GRUB can accept a loader which comes
	back to GRUB when a loaded image exits. Also, this change adds
	support for a chainloader on EFI.

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

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

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

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

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

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

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

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

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

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

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

	* include/grub/efi/chainloader.h: New file.
	* loader/efi/chainloader.c: Likewise.
	* loader/efi/chainloader_normal.c: Likewise.

2006-04-30  Marco Gerards  <marco@gnu.org>

	* commands/configfile.c (grub_cmd_source): New function.
	(GRUB_MOD_INIT): Register the commands `source' and `.'.
	(GRUB_MOD_FINI): De-register the commands `source' and `.'.

2006-04-30  Marco Gerards  <marco@gnu.org>

	* normal/execute.c (grub_script_execute_cmd): Change the return
	type to `grub_err_t'.  Correctly return the error.
	(grub_script_execute_cmdline): In case a command line is not a
	command or a function, try to interpret it as an assignment.

2006-04-30  Yoshinori K. Okuji  <okuji@enbug.org>

	* fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
	(grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
	skip a node whose name is obviously invalid as UTF-16,
	i.e. contains a NUL character. Stop the iteration when the last
	directory entry is found. Instead of using the return value of
	grub_hfsplus_btree_iterate_node, store the value in RET and use
	it, because the iterator can be stopped by the last directory
	entry.

2006-04-30  Marco Gerards  <marco@gnu.org>

	* include/grub/env.h (grub_env_export): New prototype.  Reported
	by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.

2006-04-30  Marco Gerards  <marco@gnu.org>

	* fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
	size of the extents in a catalog file record.

2006-04-29  Marco Gerards  <marco@gnu.org>

	* commands/configfile.c (grub_cmd_configfile): Execute the
	configfile within its own context.

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

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

	* normal/command.c (export_command): New function.
	(grub_command_init): Register the `export' function.

2006-04-26  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
	explicitly to suppress gcc's warnings.
	* fs/fat.c (grub_fat_find_dir): Likewise.
	(grub_fat_label): Likewise.
	* fs/xfs.c (grub_xfs_read_inode): Likewise.
	(grub_xfs_mount): Likewise.
	(grub_xfs_label): Likewise.
	* fs/affs.c (grub_affs_mount): Likewise.
	(grub_affs_label): Likewise.
	(grub_affs_iterate_dir): Likewise.
	* fs/sfs.c (grub_sfs_mount): Likewise.
	(grub_sfs_iterate_dir): Likewise.
	* fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
	* fs/hfs.c (grub_hfs_mount): Likewise.
	(grub_hfs_cmp_catkeys): Likewise.
	(grub_hfs_find_dir): Likewise.
	(grub_hfs_dir): Likewise.
	(grub_hfs_label): Likewise.
	* fs/jfs.c (grub_jfs_mount): Likewise.
	(grub_jfs_opendir): Likewise.
	(grub_jfs_getent): Likewise.
	(grub_jfs_lookup_symlink): Likewise.
	(grub_jfs_label): Likewise.
	* fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
	(grub_hfsplus_iterate_dir): Likewise.
	(grub_hfsplus_btree_iterate_node): Made static.

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

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

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

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

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

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

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

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

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

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

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

	* genkernsyms.sh.in: New file.
	* gensymlist.sh.in: Likewise.

2006-04-25  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
	clobber "prefix", since we may have already set it manually.

2006-04-25  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/misc.c (abort): New alias for grub_abort.

2006-04-25  Yoshinori K. Okuji  <okuji@enbug.org>

	A new machine-specific function "grub_machine_set_prefix" is
	defined. This is called after loading modules, so that a prefix
	initialization can use modules. Also, this change adds an
	intensive debugging feature for the memory manager via the
	configure option "--enable-mm-debug".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* configure.ac (--enable-mm-debug): New option to enable the
	memory manager debugging feature. This makes the binary much
	bigger, so is disabled by default.

2006-04-23  Yoshinori K. Okuji  <okuji@enbug.org>

	Use grub_abort instead of grub_stop, and grub_exit must be
	define in each architecture now. Also, this change adds support
	for EFI disks.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* conf/i386-efi.rmk (kernel_mod_SOURCES): Added
	disk/efi/efidisk.c.
	(kernel_syms.lst): Remove the target if an error occurs.

2006-04-22  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
	as it was simply too buggy.

2006-04-21  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/misc.c (grub_lltoa): New function.
	(grub_vsprintf): Added support for the long long suffix,
	i.e. "ll".

2006-04-20  Hollis Blanchard  <hollis@penguinppc.org>

	* Makefile.in (LDFLAGS): Add variable.
	(LD): Remove variable.
	* configure.ac: Add -m32 to LDFLAGS.
	* genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
	* conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
	(grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
	(_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
	suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
	variables.
	* conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
	* conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
	* conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.

2006-04-20  Vesa Jaaskelainen  <chaac@nic.fi>

	* term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
	length for unknown glyph.

2006-04-20  Yoshinori K. Okuji  <okuji@enbug.org>

	Add support for pre-loaded modules into the EFI port.

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

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

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

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

	* include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
	(struct grub_efi_loaded_image): New structure.
	(grub_efi_loaded_image_t): New type.

2006-04-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
	size with GRUB_OS_AREA_SIZE as grub_size_t instead of
	grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.

2006-04-19  Roger Leigh  <rleigh@whinlatter.ukfsn.org>

	* DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.

2006-04-19  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added include/grub/efi/console.h,
	include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
	kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.

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

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

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

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

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

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

	* conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
	kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
	(kernel_mod_HEADERS): Added efi/time.h.

2006-04-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
	include/grub/efi/api.h, include/grub/efi/console_control.h,
	include/grub/efi/efi.h, include/grub/efi/pe32.h,
	include/grub/i386/efi/time.h, kern/efi/efi.c,
	kern/i386/efi/init.c, kern/i386/efi/startup.S,
	and util/i386/efi/grub-mkimage.c.

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

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

	* conf/i386-efi.mk: New file.
	* conf/i386-efi.rmk: Likewise.
	* include/grub/efi/api.h: Likewise.
	* include/grub/efi/console_control.h: Likewise.
	* include/grub/efi/efi.h: Likewise.
	* include/grub/efi/pe32.h: Likewise.
	* include/grub/i386/efi/time.h: Likewise.
	* kern/efi/efi.c: Likewise.
	* kern/i386/efi/init.c: Likewise.
	* kern/i386/efi/startup.S: Likewise.
	* util/i386/efi/grub-mkimage.c: Likewise.

2006-04-17  Marco Gerards  <marco@gnu.org>

	* include/grub/script.h: Include <grub/parser.h> and
	"grub_script.tab.h".
	(struct grub_lexer_param): New struct.
	(struct grub_parser_param): Likewise.
	(grub_script_create_arglist): Pass the state in an argument.
	(grub_script_add_arglist): Likewise.
	(grub_script_create_cmdline): Likewise.
	(grub_script_create_cmdblock): Likewise.
	(grub_script_create_cmdif): Likewise.
	(grub_script_create_cmdmenu): Likewise.
	(grub_script_add_cmd): Likewise.
	(grub_script_arg_add): Likewise.
	(grub_script_lexer_ref): Likewise.
	(grub_script_lexer_deref): Likewise.
	(grub_script_lexer_record_start): Likewise.
	(grub_script_lexer_record_stop): Likewise.
	(grub_script_mem_record): Likewise.
	(grub_script_mem_record_stop): Likewise.
	(grub_script_malloc): Likewise.
	(grub_script_yylex): Likewise.
	(grub_script_yyparse): Likewise.
	(grub_script_yyerror): Likewise.
	(grub_script_yylex): Likewise.
	(grub_script_lexer_init): Return the state.

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

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

	* normal/script.c (grub_script_memused): Removed variable.
	(grub_script_parsed): Likewise.
	(grub_script_malloc): Added a state argument.  Use that instead of
	global variables.
	(grub_script_mem_record): Likewise.
	(grub_script_mem_record_stop): Likewise.
	(grub_script_arg_add): Likewise.
	(grub_script_add_arglist): Likewise.
	(grub_script_create_cmdline): Likewise.
	(grub_script_create_cmdif): Likewise.
	(grub_script_create_cmdmenu): Likewise.
	(grub_script_add_cmd): Likewise.
	(grub_script_parse): Setup the state before calling the parser.

2006-04-16  Marco Gerards  <marco@gnu.org>

	* normal/command.c (grub_command_init): Remove the title command.

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

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

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

	* normal/script.c (grub_script_create_cmdline): If
	`grub_script_parsed' is 0, assume the parser encountered an error.

2006-04-02  Yoshinori K. Okuji  <okuji@enbug.org>

	* configure.ac: Add support for EFI. Fix the typo
	BUILD_LDDFLAGS. Restore the LDFLAGS after testing.

2006-04-01  Vesa Jaaskelainen  <chaac@nic.fi>

	* util/unifont2pff.rb: Removed unnecessary byte ordering.  Now
	foreign multibyte characters should be shown correctly.

2006-04-01  Vesa Jaaskelainen  <chaac@nic.fi>

	* normal/main.c (grub_normal_menu_addentry): Fixed menu size
	calculation.
	(read_config_file): Made it to close file before returning.

2006-03-31  Vesa Jaaskelainen  <chaac@nic.fi>

	* DISTLIST: Added include/grub/i386/pc/vbeblit.h,
	include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
	video/i386/pc/vbefill.c.

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

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

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

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

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

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

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

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

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

2006-03-30  Vesa Jaaskelainen  <chaac@nic.fi>

	* font/manager.c (grub_font_get_glyph): Removed font fixup from
	here...

	* util/unifont2pff.rb: ... and moved it to here.  Improved argument
	parsing to support both hex and dec ranges.  If filename was missing
	show usage information.

2006-03-14  Vesa Jaaskelainen  <chaac@nic.fi>

	* DISTLIST: Added include/grub/video.h, term/gfxterm.c,
	video/video.c, commands/videotest.c.  Removed term/i386/pc/vesafb.c.

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

	* commands/videotest.c: New file.

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

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

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

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

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

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

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

	* term/gfxterm.c: New file.

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

	* video/video.c: New file.

	* video/i386/pc/vbe.c (real2pm): Added new function.
	(grub_video_vbe_draw_pixel): Likewise.
	(grub_video_vbe_get_video_ptr): Likewise.
	(grub_video_vbe_get_pixel): Likewise
	(grub_video_vbe_init): Likewise.
	(grub_video_vbe_fini): Likewise.
	(grub_video_vbe_setup): Likewise.
	(grub_video_vbe_get_info): Likewise.
	(grub_video_vbe_set_palette): Likewise.
	(grub_video_vbe_get_palette): Likewise.
	(grub_video_vbe_set_viewport): Likewise.
	(grub_video_vbe_get_viewport): Likewise.
	(grub_video_vbe_map_color): Likewise.
	(grub_video_vbe_map_rgb): Likewise.
	(grub_video_vbe_map_rgba): Likewise.
	(grub_video_vbe_unmap_color): Likewise.
	(grub_video_vbe_fill_rect): Likewise.
	(grub_video_vbe_blit_glyph): Likewise.
	(grub_video_vbe_blit_bitmap): Likewise.
	(grub_video_vbe_blit_render_target): Likewise.
	(grub_video_vbe_scroll): Likewise.
	(grub_video_vbe_swap_buffers): Likewise.
	(grub_video_vbe_create_render_target): Likewise.
	(grub_video_vbe_delete_render_target): Likewise.
	(grub_video_vbe_set_active_render_target): Likewise.
	(grub_vbe_set_pixel_rgb): Remove function.
	(grub_vbe_set_pixel_index): Likewise.
	(index_color_mode): Remove static variable.
	(active_mode): Likewise.
	(framebuffer): Likewise.
	(bytes_per_scan_line): Likewise.
	(grub_video_vbe_adapter): Added new static variable.
	(framebuffer): Likewise.
	(render_target): Likewise.
	(initial_mode): Likewise.
	(mode_in_use): Likewise.
	(mode_list): Likewise.

2006-03-10  Marco Gerards  <marco@gnu.org>

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

	* DISTLIST: Added `include/grub/hfs.h'.

2006-02-01  Yoshinori K. Okuji  <okuji@enbug.org>

	* boot/i386/pc/boot.S (general_error): Before looping, try INT
	18H, which might help the BIOS falling back to next boot media.

2006-01-25  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-install.in: Escape a backslash. Reported by
	Poe Chen <poe.poechen@gmail.com>.

2006-01-17  Marco Gerards  <marco@gnu.org>

	* include/grub/normal.h: Include <grub/script.h>.
	(grub_command_list): Removed struct.
	(grub_command_list_t): Removed type.
	(grub_menu_entry): Remove members `num' and `command_list'.  Add
	members `commands' and `sourcecode'.
	* include/grub/script.h: Add inclusion guards.
	(grub_script_cmd_menuentry): New struct.
	(grub_script_execute_menuentry): New prototype.
	(grub_script_lexer_record_start): Likewise.
	(grub_script_lexer_record_stop): Likewise.
	* normal/execute.c (grub_script_execute_menuentry): New function.
	* normal/lexer.c (record, recording, recordpos, recordlen): New
	variables.
	(grub_script_lexer_record_start): New function.
	(grub_script_lexer_record_stop): Likewise.
	(recordchar): Likewise.
	(nextchar): Likewise.
	(grub_script_yylex): Use `nextchar' to fetch new characters.  Use
	2048 as the buffer size.  Add the tokens `menuentry' and `@'.
	* normal/main.c: Include <grub/parser.h> and <grub/script.h>
	(current_menu): New variable.
	(free_menu): Mainly rewritten.
	(grub_normal_menu_addentry): New function.
	(read_config_file): Rewritten.
	* normal/menu.c (run_menu_entry): Mainly rewritten.
	* normal/menu_entry.c (make_screen): Rewritten the code to insert
	the menu entry.
	(run): Mainly rewritten.
	* normal/parser.y (menu_entry): New variable.
	(GRUB_PARSER_TOKEN_MENUENTRY): New token.
	(menuentry): New rule.
	(command): Add `menuentry'.
	(if_statement): Allow additional returns before `fi'.
	* normal/script.c (grub_script_create_cmdmenu): New function.

2006-01-03  Marco Gerards  <marco@gnu.org>

	* INSTALL: GNU Bison is required.
	* configure.ac: Rewritten the test to detect Bison.
	* Makefile.in (YACC): New variable.  Reported by Xun Sun
	<xun.sun.cn@gmail.com>.

2006-01-03  Marco Gerards  <marco@gnu.org>

	* fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
	the HFS+ filesystem to filesystem blocks.
	(grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
	GCC warning is silenced.

2006-01-03  Marco Gerards  <marco@gnu.org>

	* partmap/apple.c (apple_partition_map_iterate): Convert the data
	read from disk from big	endian to host byte order.

2006-01-03  Hollis Blanchard  <hollis@penguinppc.org>

	* fs/hfs.c: Include <grub/hfs.h>.  Added reference to the official
	documentation.
	(GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
	(grub_hfs_mount): Grammar fix in error. Make sure this is not an
	embedded HFS+ filesystem.
	(GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
	(grub_hfs_sblock): Move from here...
	* include/grub/hfs.h: To here...  New file.
	* fs/hfsplus.c: Include <grub/hfs.h>.  Added reference to the official
	documentation.
	(GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
	New macros.
	(grub_hfsplus_volheader): Change type of member `magic' to
	`grub_uint16_t'.
	(grub_hfsplus_data): Add new member `embedded_offset'.
	(grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
	returned block.
	(grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
	Calculate the offset.

2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
	Removed.
	(GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.

2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/env.c (grub_env_set): Check if ENV->VALUE instead of
	ENV->NAME is NULL after	allocating ENV->VALUE.

2005-12-25  Marco Gerards  <marco@gnu.org>

	* kern/env.c (grub_env_set): Rewritten the error handling code.

2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>

	* geninit.sh: Made more robust, and more portable.

2005-12-25  Marco Gerards  <marco@gnu.org>

	Add support for Apple HFS+ filesystems.

	* fs/hfsplus.c: New file.

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

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

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

	* include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.

2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
	commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
	include/grub/parser.h, include/grub/script.h, kern/parser.c,
	kern/sparc64/cache.S, normal/execute.c, normal/function.c,
	normal/lexer.c, normal/parser.y, normal/script.c, and
	partmap/gpt.c.
	Removed kern/sparc64/cache.c.

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

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

2005-12-24  Vesa Jaaskelainen  <chaac@nic.fi>

	* kern/err.c (grub_error_push): Added new function to support error
	stacks.
	(grub_error_pop): Likewise.
	(grub_error_stack_items): New local variable to support error stacks.
	(grub_error_stack_pos): Likewise.
	(grub_error_stack_assert): Likewise.
	(GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
	stack depth.
	(grub_print_error): Added support to print errors from error stack.

	* include/grub/err.h (grub_error_push): Added function prototype.
	(grub_error_pop): Likewise.

2005-12-09  Hollis Blanchard  <hollis@penguinppc.org>

	* configure.ac: Accept `powerpc64' as host_cpu.
	(amd64): Rename to `biarch32'.

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

	* kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
	(grub_dl_flush_cache): Likewise.  Only call `grub_arch_sync_caches'
	if `size' is non-zero.

2005-12-03  Marco Gerards  <mgerards@xs4all.nl>

	* conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
	and `cd' to make sure the filename is not prefixed with a
	directory name.
	(pkgdata_MODULES): Add `gpt.mod'.
	(gpt_mod_SOURCES): New variable.
	(gpt_mod_CFLAGS): Likewise.
	(gpt_mod_LDFLAGS): Likewise.

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

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

	* partmap/gpt.c: New file.

	* partmap/pc.c (pc_partition_map_iterate): Don't continue when a
	GPT partition map is detected.

2005-12-03  Vincent Pelletier  <subdino2004@yahoo.fr>

	* commands/i386/pc/play.c: New file.
	* conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
	(play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
	macros.

2005-11-27  Marco Gerards  <mgerards@xs4all.nl>

	* include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
	((unused))' to silence gcc warning.

2005-11-26  Hollis Blanchard  <hollis@penguinppc.org>

	* configure.ac: Correct `AC_PROG_YACC' test.

2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>

	* util/powerpc/ieee1275/grub-install.in: Run the mount point
	check before installing files.

2005-11-22  Mike Small  <smallm@panix.com>

	* util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
	number regex so multidigit numbers are recognized correctly.

2005-11-22  Mike Small  <smallm@panix.com>

	* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
	debugging message before attempting to claim memory.
	(grub_rescue_cmd_initrd): Add a claim debugging message and try
	multiple addresses in case of failure.

2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>

	* term/tparm.c (get_space): Remove empty `if' statement.

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

	* kern/parser.c (check_varstate): Rename `state' to 's'.

2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>

	* partmap/acorn.c: Change `unsigned' to `unsigned int'.  Move all
	variable definitions to the beginning of each function.  Sort stack
	variables by size.
	(find): Rename to `acorn_partition_map_find'.  Cast `grub_disk_read'
	`buf' argument to `char *'.

2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>

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

	* conf/common.mk (grub_modules_init.lst): Use `find' instead of
	`grep --include'.
	(pkgdata_MODULES): Add test.mod.

2005-11-18  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>

	* genmk.rb: Fixed list rules moved to Makefile.in.  Recognise
	appending to variables with "+=".
	(PModule): Use full pathname to generate *.lst filenames.

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

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

	* conf/common.mk: New file.

2005-11-18  Yoshinori K. Okuji  <okuji@enbug.org>

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

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

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

	* normal/command.c (grub_command_find): Fixed a memory leak of
	MODULE_NAME. Reported by Mike Small <smallm@panix.com>.

2005-11-13  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>

	* include/grub/symbol.h: (FUNCTION): Use double quotes instead of
	"@" which marks the start of a comment on ARM.
	(VARIABLE): Likewise.

2005-11-13  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>

	Add support for Linux/ADFS partition tables.

	* partmap/acorn.c: New file.

	* include/grub/acorn_filecore.h: Likewise.

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

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

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

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

	* include/types.h (grub_disk_addr_t): New typedef.

2005-11-13  Marco Gerards  <mgerards@xs4all.nl>

	* geninit.sh: New file.

	* geninitheader.sh: Likewise.

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

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

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

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

	* include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
	Generate a function to initialize the module in utilities.
	Updated all callers.
	(GRUB_MOD_FINI): Add argument `name'.  Generate a function to
	initialize the module in utilities.  Updated all callers.

2005-11-09  Hollis Blanchard  <hollis@penguinppc.org>

	* term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
	escape sequence and a literal ^L to clear the screen.

	* commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
	when returning from Open Firmware.

2005-11-09  Hollis Blanchard  <hollis@penguinppc.org>

	* term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
	(grub_ofconsole_height): Likewise.
	(grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
	manually insert a '\n'.
	(grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
	`grub_ofconsole_height'.  Return early if these are already set.

2005-11-07  Vincent Pelletier  <subdino2004@yahoo.fr>

	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
	`commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
	`normal/execute.c', `normal/lexer.c', `io/gzio.c',
	`kern/parser.c', `grub_script.tab.c', `normal/function.c'
	and `normal/script.c'.
	(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
	`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
	(test_mod_SOURCES): New	variable.
	(test_mod_CFLAGS): Likewise.
	(test_mod_LDFLAGS): Likewise.
	(pkgdata_MODULES): Add `test.mod'.
	(grub_script.tab.c): New rule.
	(grub_script.tab.h): Likewise.

2005-11-07  Marco Gerards  <mgerards@xs4all.nl>

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

2005-11-06  Marco Gerards  <mgerards@xs4all.nl>

	Add initial scripting support.

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

	* configure.ac: Add `AC_PROG_YACC' test.

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

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

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

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

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

2005-11-03  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
	to 0.
	* term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
	there are no pending characters.

2005-11-03  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
	`grub_strndup' to drop device arguments. Replace unnecessary
	`grub_strndup' with `grub_strdup'.

2005-11-03  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
	`debug' environment variable has been set.

2005-11-02  Hollis Blanchard  <hollis@penguinppc.org>

	* Makefile.in (install-local): Use $(DATA).
	(uninstall): Likewise.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
	(sbin_UTILITIES): ... to here.
	(sbin_SCRIPTS): New variable.
	(grub_install_SOURCES): New variable.
	* util/powerpc/ieee1275/grub-install.in: New file.
	* util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
	variable.
	(add_segments): Call `grub_util_get_path'.

2005-10-28  Yoshinori K. Okuji  <okuji@enbug.org>

	From Timothy Baldwin:
	* commands/ls.c (grub_ls_list_files): Close FILE with
	grub_file_close.
	* kern/misc.c (grub_vsprintf): Terminate the string S with NUL.

2005-10-24  Marco Gerards  <mgerards@xs4all.nl>

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

	* kern/parser.c: Likewise.

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

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

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

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

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

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

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

	* normal/completion.c: Include <grub/parser.h>.
	(cmdline_state): New variable.
	(iterate_dir): End the filename with a quote depending on the
	command line state.
	(get_state): new function.
	(grub_normal_do_completion): Use `grub_parser_split_cmdline' to
	split the arguments and determine the current argument.  When the
	argument string is not quoted, escape all spaces.

2005-10-23  Vincent Pelletier  <subdino2004@yahoo.fr>

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

2005-10-23  Vincent Pelletier  <subdino2004@yahoo.fr>

	* include/grub/sparc64/libgcc.h: New file.
	* conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
	(normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
	normal/sparc64/setjmp.c.

2005-10-23  Vincent Pelletier  <subdino2004@yahoo.fr>

	* kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
	* kern/sparc64/cache.S: New file.
	* kern/sparc64/cache.c: Removed.
	* conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
	(COMMON_CFLAGS): Add -mno-app-regs.  Remove -mcpu=v9 and
	-mtune=ultrasparc.
	(COMMON_LDFLAGS): Add -melf64_sparc.
	(grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
	(grubof_SOURCES): Use cache.S instead of cache.c.
	(grubof_LDFLAGS): Add -mno-app-regs.  Replace "-Xlinker
	--oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
	(pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
	commented though.
	(normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
	(_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
	(linux_mod_CFLAGS): Commented out.
	(_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
	out because module isn't built.
	(fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
	(ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
	(jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
	(hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
	(ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
	(font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
	(pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
	(suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
	(help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
	(configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
	(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
	(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
	(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
	(gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.

2005-10-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
	grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
	longer, because HFS should not be used on PC.

2005-10-20  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>

	* io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
	consistently within the loop.

2005-10-15  Marco Gerards  <mgerards@xs4all.nl>

	* fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
	directory can not be read.

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

	* configure.ac (AC_INIT): Increase the version number to 1.91.

	* DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
	include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
	term/i386/pc/serial.c.

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

	* kern/file.c (grub_file_seek): Seeking to an offset equal to a
	file size must be permitted.

	* kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
	between %ah and %al.

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

	* fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
	grub_uint64_t.
	Call the hook with a NUL-terminated filename.
	(grub_xfs_mount): Use grub_be_to_cpu32 instead of
	grub_cpu_to_be32.

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

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

	* io/gzio.c (test_header): Align BUF for accessing it as 32-bit
	integers on ARM. Reported by Timothy Baldwin
	<T.E.Baldwin99@members.leeds.ac.uk>.

2005-10-11  Marco Gerards  <mgerards@xs4all.nl>

	* fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
	allocated.
	(grub_sfs_dir): Likewise.

2005-10-09  Marco Gerards  <mgerards@xs4all.nl>

	Add support for the SFS filesystem.

	* fs/sfs.c: New file.

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

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

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

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

	* include/grub/fs.h (grub_sfs_init): New prototype.
	(grub_sfs_fini): Likewise.

2005-10-07  Marco Gerards  <mgerards@xs4all.nl>

	Add support for the AFFS filesystem.

	* fs/affs.c: New file.

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

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

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

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

	* include/grub/fs.h (grub_affs_init): New prototype.
	(grub_affs_fini): Likewise.

2005-10-01  Marco Gerards  <mgerards@xs4all.nl>

	* fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.

2005-10-01  Marco Gerards  <mgerards@xs4all.nl>

	* configure.ac: Accept `x86_64' as host_cpu.  In that case add
	`-m32' to CFLAGS.

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

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

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

	* include/grub/kernel.h (struct grub_module_header): Type of
	member offset changed to `grub_host_off_t'.  Type of member size
	changed to `grub_host_size_t'.
	(struct grub_module_info): Type of member offset changed to
	`grub_host_off_t'.  Type of member size changed to
	`grub_host_size_t'.

2005-09-29  Yoshinori K. Okuji  <okuji@enbug.org>

	Make GRUB's kernel compliant to Multiboot Specification.

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

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

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

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

2005-09-28  Marco Gerards  <mgerards@xs4all.nl>

	Adds support for the XFS filesystem.  Btrees are not supported
	yet.

	* fs/xfs.c: New file.

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

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

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

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

	* include/grub/fs.h (grub_xfs_init): New prototype.
	(grub_xfs_fini): Likewise.


2005-09-18  Vesa Jaaskelainen  <chaac@nic.fi>

	* video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
	color modes, allow greater than 16 colors to be configured as
	a default palette.

2005-09-03  Yoshinori K. Okuji  <okuji@enbug.org>

	* normal/completion.c (complete_arguments): Add the qualifier
	const into OPTIONS.

	From Omniflux <omniflux+lists@omniflux.com>:
	* include/grub/terminfo.h: New file.
	* include/grub/tparm.h: Likewise.
	* include/grub/i386/pc/serial.h: Likewise.
	* term/terminfo.c: Likewise.
	* term/tparm.c: Likewise.
	* term/i386/pc/serial.c: Likewise.
	* conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
	serial.mod.
	(terminfo_mod_SOURCES): New variable.
	(terminfo_mod_CFLAGS): Likewise.
	(serial_mod_SOURCES): Likewise.
	(serial_mod_CFLAGS): Likewise.

2005-08-31  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
	boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
	and kern/powerpc/ieee1275/cmain.c, respectively.

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

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

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

	* boot/i386/pc/boot.S (lba_mode): Do not store the total number of
	sectors. It was not used anyway.

2005-08-30  Hollis Blanchard  <hollis@penguinppc.org>

	* term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
	`unused parameter' warning.

2005-08-30  Hollis Blanchard  <hollis@penguinppc.org>

	* term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
	function.
	(grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
	getcharwidth.

2005-08-28  Marco Gerards  <metgerards@student.han.nl>

	* include/grub/normal.h (enum grub_completion_type): Added
	`GRUB_COMPLETION_TYPE_ARGUMENT'.

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

	* normal/completion.c (complete_arguments): New function.
	(grub_normal_do_completion): Call `complete_arguments' when the
	current words start with a dash.

2005-08-27  Marco Gerards  <metgerards@student.han.nl>

	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
	`gzio.mod' instead of `io.mod').

2005-08-22  Yoshinori K. Okuji  <okuji@enbug.org>

	* gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
	(DISTDIRS): Added io and video.
	Rewrite the search routine to make an output consistently.

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

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

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

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

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

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

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

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

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

	* loader/i386/pc/multiboot.c: Include grub/gzio.h.
	(grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
	grub_file_open.
	(grub_rescue_cmd_module): Likewise.

2005-08-21  Vincent Pelletier  <subdino2004@yahoo.fr>

	* conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
	kern/sparc64/ieee1275/init.c because it contains _start.
	* conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.

2005-08-21  Vincent Pelletier  <subdino2004@yahoo.fr>

	* configure.ac: Add support for sparc64 host with ieee1275
	firmware.
	* configure: Generated from configure.ac.
	* disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
	instead of int.
	(grub_ofdisk_read): Likewise.
	(grub_ofdisk_open): Use %p to print pointer values, and cast the
	pointers as (void *) to remove a warning.
	(grub_ofdisk_close): Likewise.
	(grub_ofdisk_read): Likewise.
	* kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
	returns, so make it return void to remove a warning.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
	Corresponding prototype change.
	* kern/mm.c (grub_mm_init_region): Use %p to print pointer
	values, and cast the pointers as (void *) to remove a warning.
	(grub_mm_dump): Likewise.
	* conf/sparc64-ieee1275.mk: New file.
	* conf/sparc64-ieee1275.rmk: Likewise.
	* include/grub/sparc64/setjmp.h: Likewise.
	* include/grub/sparc64/types.h: Likewise.
	* include/grub/sparc64/ieee1275/console.h: Likewise.
	* include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
	* include/grub/sparc64/ieee1275/kernel.h: Likewise.
	* include/grub/sparc64/ieee1275/time.h: Likewise.
	* kern/sparc64/cache.c: Likewise.
	* kern/sparc64/dl.c: Likewise.
	* kern/sparc64/ieee1275/init.c: Likewise.
	* kern/sparc64/ieee1275/openfw.c: Likewise.

2005-08-21  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/console.c (grub_ncurses_putchar): If C is greater than
	0x7f, set C to a question mark.
	(grub_ncurses_getcharwidth): New function.
	(grub_ncurses_term): Specify grub_ncurses_getcharwidth as
	getcharwidth.

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

	* include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
	const to SRC.
	* kern/misc.c (grub_utf16_to_utf8): Likewise.

2005-08-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
	the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
	grub_strcat.

	* loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
	file by the option BOOT_IMAGE. Use grub_stpcpy instead of
	grub_strcpy and grub_strlen. Take it into account that a space
	character is inserted as a delimiter.

2005-08-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* partmap/pc.c (pc_partition_map_iterate): Include the value of an
	invalid magic in the error.

	* commands/search.c: New file.

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

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

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

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

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

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

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

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

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

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

	* DISTLIST: Added commands/search.c.

2005-08-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
	conversion.
	(grub_getcharwidth): New function.

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

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

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

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

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

	* term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
	GRUB_ERRNO.
	(grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
	on grub_strtoul completely.
	(write_char): Declare local variables in the beginning of the
	function.
	(grub_vesafb_getcharwidth): New function.
	(grub_vesafb_term): Specified grub_vesafb_getcharwidth as
	getcharwidth.

2005-08-19  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
	commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
	commands/i386/pc/vbetest.c.

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

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

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

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

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

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

	* conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
	vbe_list_modes with vbetest.mod and vbeinfo.mod.
	(vbe_list_modes_mod_SOURCES): Removed.
	(vbe_list_modes_mod_CFLAGS): Likewise.
	(vbe_test_mod_SOURCES): Likewise.
	(vbe_test_mod_CFLAGS): Likewise.
	(vbeinfo_mod_SOURCES): New variable.
	(vbeinfo_mod_CFLAGS): Likewise.
	(vbetest_mod_SOURCES): Likewise.
	(vbetest_mod_CFLAGS): Likewise.

2005-08-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* normal/misc.c: New file.

	* DISTLIST: Added normal/misc.c.

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

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

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

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

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

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

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

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

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

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

	* commands/ls.c (grub_ls_list_disks): Use
	grub_normal_print_device_info instead of grub_print_partinfo. Free
	PNAME.
	(grub_ls_list_files): Use grub_normal_print_device_info instead of
	duplicating the code.

2005-08-16  Vesa Jaaskelainen  <chaac@nic.fi>

	* commands/i386/pc/vbe_list_modes.c: Update source formatting to
	follow GCS more precisely.
	* commands/i386/pc/vbe_test.c: Likewise.
	* include/grub/i386/pc/vbe.h: Likewise.
	* term/i386/pc/vesafb.c: Likewise.
	* video/i386/pc/vbe.c: Likewise.

2005-08-16  Vesa Jaaskelainen  <chaac@nic.fi>

	* DISTLIST: Added term/i386/pc/vesafb.c
	DISTLIST: Added video/i386/pc/vbe.c
	DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
	DISTLIST: Added commands/i386/pc/vbe_test.c.
	* commands/i386/pc/vbe_list_modes.c: New file.
	* commands/i386/pc/vbe_test.c: Likewise.
	* term/i386/pc/vesafb.c: Likewise.
	* video/i386/pc/vbe.c: Likewise.
	* include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
	(grub_vbe_probe) Added prototype.
	(grub_vbe_set_video_mode) Likewise.
	(grub_vbe_get_video_mode) Likewise.
	(grub_vbe_get_video_mode_info) Likewise.
	(grub_vbe_set_pixel_rgb) Likewise.
	(grub_vbe_set_pixel_index) Likewise.
	* conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
	(pkgdata_MODULES): Added vesafb.mod.
	(pkgdata_MODULES): Added vbe_list_modes.mod.
	(pkgdata_MODULES): Added vbe_test.mod.
	(vbe_mod_SOURCES): Added.
	(vbe_mod_CFLAGS): Likewise.
	(vesafb_mod_SOURCES): Likewise.
	(vesafb_mod_CFLAGS): Likewise.
	(vbe_list_modes_mod_SOURCES): Likewise.
	(vbe_list_modes_mod_CFLAGS): Likewise.
	(vbe_test_mod_SOURCES): Likewise.
	(vbe_test_mod_CFLAGS): Likewise.

2005-08-14  Yoshinori K. Okuji  <okuji@enbug.org>

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

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

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

	* include/grub/normal.h (grub_command_execute): Add an argument
	INTERACTIVE.

2005-08-14  Vesa Jaaskelainen  <chaac@nic.fi>

	* DISTLIST: Added include/grub/i386/pc/vbe.h.

2005-08-13  Yoshinori K. Okuji  <okuji@enbug.org>

	* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
	program with another one, because the old one didn't detect a bug
	in gcc-3.4. Always use regparm 2, because the new test is still
	not enough for gcc-4.0. Someone must investigate a simple test
	case which detects a bug in gcc-4.0.

2005-08-12  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added normal/completion.c.

	* normal/completion.c: New file.

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

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

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

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

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

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

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

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

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

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

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

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

	* normal/command.c (grub_iterate_commands): If ITERATE returns
	non-zero, return one immediately.

2005-08-09  Vesa Jaaskelainen  <chaac@nic.fi>

	* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
	* kern/i386/pc/startup.S: Updated Global Descriptor table's
	descriptions.
	(grub_vbe_get_controller_info): New function.
	(grub_vbe_get_mode_info): Likewise.
	(grub_vbe_set_mode): Likewise.
	(grub_vbe_get_mode): Likewise.
	(grub_vbe_set_memory_window): Likewise.
	(grub_vbe_get_memory_window): Likewise.
	(grub_vbe_set_scanline_length): Likewise.
	(grub_vbe_get_scanline_length): Likewise.
	(grub_vbe_set_display_start): Likewise.
	(grub_vbe_get_display_start): Likewise.
	(grub_vbe_set_palette_data): Likewise.
	* include/grub/i386/pc/vbe.h: New file.

2005-08-08  Hollis Blanchard  <hollis@penguinppc.org>

	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
	kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
	* DISTLIST: Likewise.
	* kern/ieee1275/of.c: Moved to ...
	* kern/ieee1275/ieee1275.c: ... here.

2005-08-08  Hollis Blanchard  <hollis@penguinppc.org>

	* term/ieee1275/ofconsole.c: Include <grub/mm.h>.
	(grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
	Pass 0 as `end' parameter to grub_strtoul().

2005-08-08  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/powerpc/ieee1275/console.h: Do not include
	<grub/types.h>.  Do not include <grub/symbol.h>.  Remove ASM_FILE
	ifdef.
	(grub_console_cur_color): Remove i386-specific prototype.
	(grub_console_real_putchar): Likewise.
	(grub_console_checkkey): Likewise.
	(grub_console_getkey): Likewise.
	(grub_console_getxy): Likewise.
	(grub_console_gotoxy): Likewise.
	(grub_console_cls): Likewise.
	(grub_console_setcursor): Likewise.
	* kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
	Include <grub/machine/console.h>.
	* term/ieee1275/ofconsole.c: Likewise.

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

	* Makefile.in (LIBLZO): New variable.

	* configure.ac: Check for LZO version 2.

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

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

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

	* partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
	copying the data from PARTITION to P.

2005-08-07  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
	negative, unload the module.

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

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

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

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

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

	* Makefile.in (LIBCURSES): New variable.

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

	* util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
	name of the PC partition map is "pc_partition_map" but not "pc".

2005-08-07  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-install.in (grub_probefs): New variable.
	(modules): Likewise.
	(usage): Added descriptions for --modules and --grub-probefs.
	Handle --modules and --grub-probefs. Save the arguments in MODULES
	and GRUB_PROBEFS, respectively.
	Auto-detect a filesystem module against GRUBDIR. If the result is
	empty and modules are not specified explicitly, abort the
	installation. Add the result to MODULES.

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

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

	* COPYING: Upgraded to the latest version. Only the address of the
	FSF office has changed.

2005-08-07  Yoshinori K. Okuji  <okuji@enbug.org>

	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
	kern/ieee1275.c with kern/ieee1275/of.c.

	* kern/ieee1275.c: Moved to ...
	* kern/ieee1275/of.c: ... here.

2005-08-06  Yoshinori K. Okuji  <okuji@enbug.org>

	* conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
	readability.

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

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

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

	* util/console.c: Include grub/machine/console.h instead of
	grub/console.h.
	* util/grub-emu.c: Likewise.

2005-08-04  Marco Gerards  <metgerards@student.han.nl>

	* kern/term.c (grub_putcode): Use `grub_getwh' instead of
	hardcoded value.

	From Vincent Pelletier  <subdino2004@yahoo.fr>
	* include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
	Redefined to use grub_getwh.
	(grub_term): New member named getwh.
	(grub_getwh): New prototype.
	* kern/term.c (grub_getwh): New function.
	* term/i386/pc/console.c (grub_console_getwh): New function.
	(grub_console_term): New member `getwh'.
	* term/i386/pc/vga.c (grub_vga_getwh): New function.
	(grub_vga_term): New member `getwh'.
	* term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
	grub_ssize_t.
	(grub_ofconsole_getw): New function.
	(grub_ofconsole_init): Use grub_ssize_t and unsigned char.
	(grub_ofconsole_term): New field named getwh and new initial
	value.

2005-08-03  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/powerpc/ieee1275/ieee1275.h: Move ...
	* include/grub/ieee1275/ieee1275.h: ... to here.  All users updated.
	Move `abort', `grub_reboot', and `grub_halt' prototypes ...
	* include/grub/powerpc/ieee1275/kernel.h: ... to here.
	* commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
	of <grub/machine/ieee1275.h>.
	* commands/ieee1275/reboot.c: Likewise.
	* boot/powerpc/ieee1275/ieee1275.c: Move ...
	* kern/ieee1275.c: ... to here.  All users updated.  Change all
	parameter structs to use new type `grub_ieee1275_cell_t'.
	* term/powerpc/ieee1275/ofconsole.c: Move ...
	* term/ieee1275/ofconsole.c: ... to here.  All users updated.
	* disk/powerpc/ieee1275/ofdisk.c: Move ...
	* disk/ieee1275/ofdisk.c: ... to here.  All users updated.
	* boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
	to return int.
	* include/grub/i386/pc/console.h: Move to include/grub/console.h.
	Remove unused prototypes.  All users updated.
	* include/grub/powerpc/ieee1275/console.h: Removed.
	* include/grub/powerpc/ieee1275/ieee1275.h: Define
	`grub_ieee1275_cell_t'.
	* kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
	Cast comparisons with -1 to the correct type.
	* loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
	type to match `grub_ieee1275_entry_fn'.

2005-08-01  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added util/i386/pc/grub-probefs.c.

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

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

	* util/i386/pc/grub-setup.c (main): Call
	grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
	grub_hfs_init and grub_jfs_init to initialize the system. Call
	grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
	grub_pc_partition_map_fini to finish the system.

2005-07-31  Yoshinori K. Okuji  <okuji@enbug.org>

	* loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
	function.
	(grub_multiboot_load_elf32): Likewise.
	(grub_multiboot_is_elf64): Likewise.
	(grub_multiboot_load_elf64): Likewise.
	(grub_multiboot_load_elf): Likewise.
	(grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
	an ELF32 or ELF64 file.
	This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.

	From Serbinenko Vladimir <serbinenko.vova@list.ru>:
	* kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
	NULL before calling FS->LABEL.
	* fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
	* commands/ls.c (grub_ls_list_files): Show labels, if possible.
	(grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
	before calling FS->LABEL.

2005-07-26  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/grub-install.in (datadir): New variable.
	(libdir): Removed.
	(pkgdatadir): New variable.
	(pkglibdir): Removed.

2005-07-24  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: Added util/i386/pc/grub-install.in.

	* util/i386/pc/grub-install.in: New file.

	* conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
	(grub_install_SOURCES): Likewise.

	* genmk.rb: Added support for scripts.
	(Script): New class.
	(scripts): New variable.

	* Makefile.in (install-local): Install sbin_SCRIPTS by
	INSTALL_SCRIPT.
	(uninstall): Remove sbin_SCRIPTS.

	* util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
	device, try to get a GRUB device by
	grub_util_biosdisk_get_grub_dev.
	Free DEST_DEV.

	* util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
	description for --device-map.

2005-07-20  Yoshinori K. Okuji  <okuji@enbug.org>

	Change the semantics of variable hooks. They now return	strings
	instead of error values.

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

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

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

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

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

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

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

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

	* commands/ls.c (grub_ls_list_files): Remove the qualifier const
	from DIRNAME.
	Use the qualifier auto for print_files and print_files_long.
	If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
	as a regular file.
	Put a newline only if there is no error.
	(grub_cmd_ls): Remove grub_ls_print_files, because this is not
	used.

2005-07-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/partition.c (grub_partition_probe): Initialize PART to
	NULL. Otherwise, when no partition map is registered, this returns
	a garbage.

2005-07-19  Yoshinori K. Okuji  <okuji@enbug.org>

	* partmap/apple.c (apple_partition_map_iterate): Check if POS
	equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
	valid.

2005-07-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* commands/ls.c (grub_ls_list_disks): Print the filesystem
	information on each device, if it does not have partitions. Print
	"Device" instead of "Disk", because this function is not specific
	to disk devices.

	* normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
	static to ensure that it is put on the memory rather than a
	register.

2005-07-17  Yoshinori Okuji  <okuji@enbug.org>

	* commands/cat.c (GRUB_MOD_INIT): Use better documentation.
	(grub_cat_init): Likewise.
	* loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
	(options): Likewise.
	* commands/configfile.c (GRUB_MOD_INIT): Likewise.
	(grub_configfile_init): Likewise.
	* font/manager.c (GRUB_MOD_INIT): Likewise.
	* commands/help.c (GRUB_MOD_INIT): Likewise.
	(grub_help_init): Likewise.
	* normal/command.c (grub_command_init): Likewise.
	* loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
	* disk/loopback.c (grub_loop_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	* commands/ls.c (grub_ls_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	(options): Likewise.
	* commands/boot.c (grub_boot_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	* loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
	* commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
	(GRUB_MOD_INIT): Likewise.
	* commands/cmp.c (grub_cmp_init): Likewise.
	(GRUB_MOD_INIT): Likewise.

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

	* include/grub/arg.h (struct grub_arg_option): Add the qualifier
	const into "longarg". Change the type of "shortarg" to int.

2005-07-17  Yoshinori Okuji  <okuji@enbug.org>

	* boot/i386/pc/boot.S (boot_drive_check): New label.

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

	* util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
	which do not pass a boot drive correctly. Copied from GRUB Legacy.

2005-07-17  Yoshinori Okuji  <okuji@enbug.org>

	* kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
	When turning off Gate A20, skip the check and return immediately,
	because this is not fatal usually.

2005-07-17  Yoshinori Okuji  <okuji@enbug.org>

	* conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
	be 0x7C00 instead of 0x8000.

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

	* kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
	EXT_C.
	(gate_a20_check_state): Read a byte from 0x108000. Invert the
	result.

2005-07-16  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
	robustness. This routine now supports a BIOS call and System
	Control Port A to modify the gate A20.

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

2005-07-12  Hollis Blanchard  <hollis@penguinppc.org>

	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
	device path and resulting ihandle.
	(grub_ofdisk_close): dprintf the ihandle being closed.
	(grub_ofdisk_read): dprintf function parameters.
	* kern/mm.c (grub_mm_init_region): Likewise.
	* loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
	(grub_linux_boot): dprintf the Linux entry point, initrd address and
	size, and boot arguments.
	(grub_rescue_cmd_linux): dprintf each ELF segment's address and size
	before loading into memory.
	(grub_rescue_cmd_initrd): dprintf the initrd's address and size
	before loading into memory.

2005-07-12  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/mm.c: Added much documentation.
	(GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
	8, set to 5 instead of 8.

2005-07-10  Yoshinori Okuji  <okuji@enbug.org>

	* DISTLIST: Added util/i386/pc/grub-mkimage.c.

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

	* util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
	lib/device.c of GRUB Legacy.

2005-07-10  Yoshinori Okuji  <okuji@enbug.org>

	* commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
	instead of PATH is NULL.

2005-07-09  Vincent Pelletier  <subdino2004@yahoo.fr>

	* commands/cmp.c (BUFFER_SIZE): New macro.
	(grub_cmd_cmp): Close the right file at the right time.  Compare
	only data just read.  Don't report files of different  size as
	identical.  Dynamically allocate buffers.  Move variable
	declarations at the beginning of function.

2005-07-09  Yoshinori Okuji  <okuji@enbug.org>

	* aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
	reverse.

2004-07-04  Vincent Pelletier  <subdino2004@yahoo.fr>

	* normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
	when backspace is pressed at beginning of line.

2005-07-03  Yoshinori Okuji  <okuji@enbug.org>

	* DISTLIST: Added genfslist.sh.

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

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

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

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

	* genfslist.sh: New file.

	* genmk.rb: Added a rule to generate a filesystem list.

2005-06-30  Marco Gerards  <metgerards@student.han.nl>

	* configure.ac: Fix the test for cross-compiling.

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

	* util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
	so this function works on other systems than just big endian.
	(load_modules): Likewise.
	(add_segments): Likewise.

2005-06-23  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/misc.c (grub_vsprintf): Add `longfmt'.  If format string
	contains `l' modifier, get a long from va_arg().

2005-06-23  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/mm.c (grub_free): If the next free block which is being
	merged is the first free block, set the first block to the block
	being freed.
	Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.

2005-05-08  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/cmain.c (cmain): Initialize
	`grub_ieee1275_chosen'.

2005-05-08  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/cmain.c	(module_info): Remove definition.
	(grub_ieee1275_chosen): New variable.
	(cmain): Initialize and use `grub_ieee1275_chosen' instead of
	`chosen'.
	* boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
	Rename first argument to `phandle' for consistency.
	(grub_ieee1275_get_property_length): Likewise.
	(grub_ieee1275_next_property): Likewise.  Change type of first argument
	to grub_ieee1275_phandle_t.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
	Move export next to declaration.
	(grub_ieee1275_chosen): New variable.
	* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
	Correct cosmetic typo.
	* kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
	`grub_ieee1275_chosen'.
	* kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
	* loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
	(grub_rescue_cmd_linux): Set `initrd_addr' to 0.
	* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
	`grub_ieee1275_chosen'.

2005-05-10  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
	/chosen/bootargs.
	* kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
	/chosen/bootargs as "variable=value" pairs.

2005-05-08  Vincent Pelletier  <subdino2004@yahoo.fr>

	* include/grub/misc.h (grub_dprintf): New macro.
	(grub_real_dprintf): New prototype.
	(grub_strword): Likewise.
	(grub_iswordseparator): Likewise.
	* kern/misc.c (grub_real_dprintf): New function.
	(grub_strword): Likewise.
	(grub_iswordseparator): Likewise.

2005-04-30  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
	(roundup): Remove macro.
	(grub_ieee1275_flags): Make static.
	(grub_ieee1275_realmode): Remove.
	(grub_ieee1275_test_flag): New function.
	(grub_ieee1275_set_flag): Likewise.
	(find_options): Rename to `grub_ieee1275_find_options'; update
	callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
	GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
	(cmain): New prototype.
	(cmain): Use `grub_ieee1275_set_flag' instead of accessing
	`grub_ieee1275_flags' directly.
	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
	machine/biosdisk.h.
	* disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
	Don't include grub/machine/init.h.
	(grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
	Remove prototype.
	(grub_ieee1275_realmode): Likewise.
	(grub_ieee1275_flag): New enum.
	(grub_ieee1275_test_flag): New prototype.
	(grub_ieee1275_set_flag): New prototype.
	* include/grub/powerpc/ieee1275/init.h: Remove file.
	* include/grub/powerpc/ieee1275/ofdisk.h: New file.
	* kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
	Include grub/machine/console.h.  Include grub/machine/ofdisk.h.
	(grub_machine_fini): Don't call `grub_ieee1275_release'.  Remove
	comment.
	* kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
	`grub_ieee1275_test_flag'.
	(grub_ieee1275_encode_devname): Likewise.

2005-04-21  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_encode_devname): New prototype.
	(grub_ieee1275_get_filename): Likewise.
	* kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
	function.
	(grub_set_prefix): Likewise.
	(grub_machine_init): Call grub_set_prefix.
	* kern/powerpc/ieee1275/openfw.c: Fix typos.
	(grub_parse_type): New enum.
	(grub_ieee1275_get_devargs): New function.
	(grub_ieee1275_get_devname): Likewise.
	(grub_ieee1275_parse_args): Likewise.
	(grub_ieee1275_get_filename): Likewise.
	(grub_ieee1275_encode_devname): Likewise.

2005-03-30  Marco Gerards  <metgerards@student.han.nl>

	* kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
	`grub_loader_unset'.

2005-03-26  Hollis Blanchard  <hollis@penguinppc.org>

	* commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
	instead of grub_ieee1275_interpret.
	(grub_halt_init): New function.
	(grub_halt_fini): Likewise.
	(GRUB_MOD_INIT): Correct message grammar.
	* commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
	instead of grub_ieee1275_interpret.
	(grub_reboot_init): New function.
	(grub_reboot_fini): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
	commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
	util/i386/pc/misc.c with commands/ieee1275/halt.c,
	commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
	function.
	* include/grub/powerpc/ieee1275/console.h (grub_console_fini):
	Add prototype.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
	prototype.
	(grub_halt): Likewise.
	* include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
	(cmain): Remove __attribute__((unused)).
	* kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
	(grub_heap_len): Likewise.
	(grub_machine_fini): New function.
	* kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
	(grub_halt): Likewise.
	* term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
	function.
	* util/powerpc/ieee1275/misc.c: New file.

2005-03-19  Yoshinori K. Okuji  <okuji@enbug.org>

	* DISTLIST: New file.
	* gendistlist.sh: Likewise.

	* Makefile.in (COMMON_DISTFILES): Removed.
	(BOOT_DISTFILES): Likewise.
	(CONF_DISTFILES): Likewise.
	(DISK_DISTFILES): Likewise.
	(FS_DISTFILES): Likewise.
	(INCLUDE_DISTFILES): Likewise.
	(KERN_DISTFILES): Likewise.
	(LOADER_DISTFILES): Likewise.
	(TERM_DISTFILES): Likewise.
	(UTIL_DISTFILES): Likewise.
	(DISTFILES): Likewise.
	(uninstall): Uninstall files in $(pkgdata_DATA).
	(DISTLIST): New target.
	(distdir): Use the contents of the file DISTLIST to get a list of
	distributed files.

2005-03-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
	descriptor. This is ported from GRUB Legacy.

	* gencmdlist.sh: Added an extra semicolon to make it work with
	old sed versions. Reported by Robert Bihlmeyer
	<robbe@orcus.priv.at>.

2005-03-08  Yoshinori Okuji  <okuji@enbug.org>

	Automatic loading of commands is supported.

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

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

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

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

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

	* genmk.rb (PModule::rule): Specify a module name without the
	suffix ".mod" to gencmdlist.sh.

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

	* gencmdlist.sh: New file.

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

	* Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
	(DATA): Added $(pkgdata_DATA).
	(install-local): Install files in $(pkgdata_DATA).

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

	* term/i386/pc/vga.c (debug_command): Removed.
	(GRUB_MOD_INIT): Do not register the command "debug".

	From Hollis Blanchard:
	* commands/configfile.c: New file.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Added
	commands/configfile.c.
	(pkgdata_MODULES): Added configfile.mod.
	(configfile_mod_SOURCES): New variable.
	(configfile_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
	commands/configfile.c.
	(pkgdata_MODULES): Added configfile.mod.
	(configfile_mod_SOURCES): New variable.
	(configfile_mod_CFLAGS): Likewise.
	* util/grub-emu.c (main): Call grub_configfile_init and
	grub_configfile_fini.
	* include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
	prototype.
	[GRUB_UTIL] (grub_configfile_fini): Likewise.

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

	* normal/arg.c (grub_arg_show_help): Do not show the bug report
	address.

	* commands/help.c (grub_cmd_help): Do not print newlines after
	the last command in print_command_help.

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

	* commands/default.h: New file.
	* commands/timeout.h: Likewise.
	* normal/context.c: Likewise.

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

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

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

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

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

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

	* include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
	include	time.h.
	[GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
	without GRUB_UTIL.
	* include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
	time.h.
	[GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
	without GRUB_UTIL.

	* include/grub/normal.h (struct grub_menu_list): New struct.
	(grub_menu_list_t): New type.
	(struct grub_context): New struct.
	(grub_context_t): New type.
	(grub_register_command): Got rid of EXPORT_FUNC.
	(grub_unregister_command): Likewise.
	(grub_context_get): New prototype.
	(grub_context_get_current_menu): Likewise.
	(grub_context_push_menu): Likewise.
	(grub_context_pop_menu): Likewise.
	[GRUB_UTIL] (grub_default_init): Likewise.
	[GRUB_UTIL] (grub_default_fini): Likewise.
	[GRUB_UTIL] (grub_timeout_init): Likewise.
	[GRUB_UTIL] (grub_timeout_fini): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
	commands/timeout.c and normal/context.c.
	(pkgdata_MODULES): Added default.mod and timeout.mod.
	(normal_mod_SOURCES): Added normal/context.c.
	(default_mod_SOURCES): New variable.
	(default_mod_CFLAGS): Likewise.
	(timeout_mod_SOURCES): Likewise.
	(timeout_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
	conf/i386-pc.rmk.
	(pkgdata_MODULES): Added default.mod and timeout.mod.
	(normal_mod_SOURCES): Added normal/context.c.
	(default_mod_SOURCES): New variable.
	(default_mod_CFLAGS): Likewise.
	(timeout_mod_SOURCES): Likewise.
	(timeout_mod_CFLAGS): Likewise.

	* Makefile.in (all-local): Added $(MKFILES).

2005-02-21  Vincent Pelletier  <subdino2004@yahoo.fr>

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `sun.mod'.
	(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`partmap/sun.c'.
	(pkgdata_MODULES): Add `sun.mod'.
	(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
	* include/grub/partition.h (grub_sun_partition_map_init): New
	prototype.
	(grub_sun_partition_map_fini): Likewise.
	* partmap/sun.c: New file.
	* util/grub-emu.c (main): Initialize and de-initialize the sun
	partitionmap support.

2005-02-19  Yoshinori K. Okuji  <okuji@enbug.org>

	This implements an Emacs-like menu entry editor.

	* normal/menu_entry.c: New file.

	* util/console.c (grub_ncurses_putchar): Translate some Unicode
	characters to ASCII.
	(saved_char): New variable.
	(grub_ncurses_checkkey): Rewritten completely.
	(grub_ncurses_getkey): Likewise.
	(grub_ncurses_init): Call raw instead of cbreak.

	* normal/menu.c (print_entry): Do not put a space.
	(init_page): Renamed to ...
	(grub_menu_init_page): ... this. All callers changed.
	(edit_menu_entry): Removed.
	(run_menu): Call grub_menu_entry_run instead of edit_menu_entry.

	* normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.

	* kern/misc.c (grub_vprintf): Call grub_refresh.

	* normal/menu.c (DISP_LEFT): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
	* normal/menu.c (DISP_UP): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
	* normal/menu.c (DISP_RIGHT): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
	* normal/menu.c (DISP_DOWN): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
	* normal/menu.c (DISP_HLINE): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
	* normal/menu.c (DISP_VLINE): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
	* normal/menu.c (DISP_UL): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
	* normal/menu.c (DISP_UR): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
	* normal/menu.c (DISP_LL): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
	* normal/menu.c (DISP_LR): Renamed to ...
	* include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
	* normal/menu.c (TERM_WIDTH): Renamed to ...
	* include/grub/term.h (GRUB_TERM_WIDTH): ... this.
	* normal/menu.c (TERM_HEIGHT): Renamed to ...
	* include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
	* normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
	* include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
	* normal/menu.c (TERM_MARGIN): Renamed to ...
	* include/grub/term.h (GRUB_TERM_MARGIN): ... this.
	* normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
	* include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
	* normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
	* include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
	* normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
	* include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
	* normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
	* include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
	* normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
	* include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
	* normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
	* include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
	* normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
	* include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
	* normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
	* include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
	* normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
	* include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
	* normal/menu.c (TERM_CURSOR_X): Renamed to ...
	* include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
	All callers changed.

	* include/grub/normal.h: New prototype.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Added
	normal/menu_entry.c.
	(normal_mod_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	(normal_mod_SOURCES): Likewise.

2005-02-15  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/grub/normal.h (grub_halt_init): New prototype.
	(grub_halt_fini): Likewise.
	(grub_reboot_init): Likewise.
	(grub_reboot_fini): Likewise.

	* util/grub-emu.c: Include signal.h.
	(main_env): New global variable.
	(grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
	catch C-c.
	(grub_machine_fini): New function.
	(main): Call grub_halt_init and grub_reboot_init before
	grub_main, and grub_reboot_fini and grub_halt_fini after it.
	Call setjmp with MAIN_ENV to go back afterwards.
	Call grub_machine_fini right before return.

	* include/grub/util/misc.h: Include setjmp.h.
	(main_env): New prototype.

	* include/grub/kernel.h (grub_machine_fini): New prototype.
	* include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
	* include/grub/i386/pc/console.h (grub_console_fini): Likewise.

	* disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
	* kern/i386/pc/init.c (grub_machine_fini): Likewise.
	* term/i386/pc/console.c (grub_console_fini): Likewise.

	* util/i386/pc/misc.c: New file.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Added
	util/i386/pc/misc.c, commands/i386/pc/halt.c and
	commands/i386/pc/reboot.c.

2005-02-14  Guillem Jover  <guillem@hadrons.org>

	* include/grub/dl.h (grub_dl_check_header): New prototype.
	(grub_arch_dl_check_header): Change return type to grub_err_t,
	remove size parameter and export function.  Update all callers.
	* kern/dl.c (grub_dl_check_header): New function.
	(grub_dl_load_core): Use `grub_dl_check_header' instead of
	`grub_arch_dl_check_header'.  Check ELF type.  Check if sections
	are inside the core.
	* kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
	independent ELF header checks.
	* kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
	* loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
	`grub_dl_check_header' instead of explicit checks.  Check for the
	ELF type.
	* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
	`grub_dl_check_header' instead of explicit checks.  Remove arch
	specific ELF header checks.

	* util/grub-emu.c (grub_arch_dl_check_header): Remove the
	argument SIZE.

2005-02-13  Hollis Blanchard  <hollis@penguinppc.org>

	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
	* include/grub/powerpc/libgcc.h (__mulsf3): New prototype.

2005-02-12  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/partition.c (grub_partition_probe): Clear `grub_errno' and
	return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
	(part_map_iterate): Clear `grub_errno' and return 0 if
	`partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
	* partmap/amiga.c (amiga_partition_map_iterate): Return
	GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
	* partmap/apple.c (apple_partition_map_iterate): Likewise.

2005-02-01  Guillem Jover  <guillem@hadrons.org>

	* loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
	help info.

2005-01-31  Marco Gerards  <metgerards@student.han.nl>

	* include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
	Removed prototype.
	(grub_rescue_cmd_linux): New prototype.
	(grub_rescue_cmd_initrd): Likewise.
	* powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
	`bi_rec'.
	(grub_linux_release_mem): Release the memory for the initrd.
	(grub_load_linux): Renamed from this...
	(grub_rescue_cmd_linux): ...To this.  Changed all callers.
	Changed `entry' not to be static.  Loop over memory regions to
	find another one when the default fails.
	(grub_rescue_cmd_initrd): New function.
	(grub_linux_init): Remove function.
	(grub_linux_fini): Likewise.
	(GRUB_MOD_INIT): Register `initrd'.
	(GRUB_MOD_FINI): Unregister `initrd'.
	* powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
	Function removed.
	(grub_linux_normal_fini): Likewise.
	(GRUB_MOD_INIT): Register `initrd'.
	(GRUB_MOD_FINI): Unregister `initrd'.

2005-01-31  Marco Gerards  <metgerards@student.han.nl>

	* commands/help.c: New file.
	* normal/arg.c (show_help): Renamed to...
	(grub_arg_show_help): ... this.
	* commands/i386/pc/halt.c: New file.
	* commands/i386/pc/reboot.c: Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
	(pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
	(help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
	(reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
	variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`commands/help.c'.
	(pkgdata_MODULES): Add `help.mod'.
	(help_mod_SOURCES, help_mod_CFLAGS): New variables.
	* grub/i386/pc/init.h (grub_reboot): New prototype.
	(grub_halt): Likewise.
	* include/grub/normal.h (grub_arg_show_help): New prototype.
	(grub_help_init): Likewise.
	(grub_help_fini): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize the help
	command.

	* normal/cmdline.c (grub_cmdline_get): Doc fix.

	* normal/command.c (grub_command_init): Fixed the description of
	the `set' and `unset' commands.

2005-01-31  Marco Gerards  <metgerards@student.han.nl>

	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
	function.
	* commands/ieee1275/halt.c: New file.
	* commands/ieee1275/reboot.c: Likewise.
	* commands/ieee1275/suspend.c (grub_cmd_suspend): Use
	`__attribute__ ((unused))'.  Some GCS related fixed.
	(grub_suspend_init) [GRUB_UTIL]: Function removed.
	(grub_suspend_fini): Likewise.
	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
	and `halt.mod'.
	(reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
	(halt_mod_CFLAGS): New variables.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_interpret): New prototype.

2005-01-29  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/grub/misc.h (memmove): New prototype.
	(memcpy): Likewise.

2005-01-22  Hollis Blanchard  <hollis@penguinppc.org>

	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
	`devpath' to 0.  Use `name' instead of `devpath' with `grub_strndup'.

2005-01-22  Marco Gerards  <metgerards@student.han.nl>

	* kern/misc.c (grub_strndup): Function rewritten.

2005-01-22  Vincent Pelletier  <subdino2004@yahoo.fr>

	* normal/menu.c (TERM_WIDTH): Macro redefined.
	(TERM_TOP_BORDER_Y): Likewise.
	(draw_border): Replaced while-loop by a for-loop.  Make the number
	of lines consistent with the number of lines displayed in
	print_entries.  Added a margin below the rectangle.
	(print_entry): Make the entry fit in the rectangle.
	(print_entries): Display the scroll arrows next to the right
	border.

2005-01-21  Marco Gerards  <metgerards@student.han.nl>

	* fs/minix.c (grub_minix_find_file): Reserve more space for
	`fpath' so the \0 can be stored.  Use `grub_strcpy' instead of
	`grub_strncpy' to copy `path' into it.

2005-01-21  Marco Gerards  <metgerards@student.han.nl>

	Add the loopback device, a device via which files can be accessed
	as devices.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
	(pkgdata_MODULES): Add loopback.mod.
	(loopback_mod_SOURCES): New variable.
	(loopback_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`disk/loopback.c'.
	(pkgdata_MODULES): Add loopback.mod.
	(loopback_mod_SOURCES): New variable.
	(loopback_mod_CFLAGS): Likewise.
	* disk/loopback.c: new file.
	* include/grub/normal.h (grub_loop_init): New prototype.
	(grub_loop_fini): New prototype.
	* util/grub-emu.c (main): Initialize and de-initialize loopback
	support.
	* include/grub/disk.h (grub_disk_dev_id): Add
	`GRUB_DISK_DEVICE_LOOPBACK_ID'.

2005-01-20  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
	function.
	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
	(suspend_mod_SOURCES): New variable.
	(suspend_mod_CFLAGS): Likewise.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
	New prototype.
	* commands/ieee1275/suspend.c: New file.

2005-01-20  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>

	* include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
	((unused))' to `__attribute__ ((used))'.
	(GRUB_MOD_FINI): Likewise.
	* kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
	* genmk.rb (PModule): Assign space to common symbols when linking
	modules.

2005-01-20  Marco Gerards  <metgerards@student.han.nl>

	* include/grub/mm.h (grub_mm_init_region): Change the type of the
	`unsigned' arguments to `grub_size_t'.
	(grub_malloc): Likewise.
	(grub_realloc): Likewise.
	(grub_memalign): Likewise.
	* kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
	* kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
	* util/misc.c (grub_malloc): Likewise.
	(grub_realloc): Likewise.
	* kern/mm.c (get_header_from_pointer): Change the casts to
	`unsigned' into a cast to `grub_size_t'.

	* fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
	point to `currnode' when `currnode' is changed.

	* util/grub-emu.c (main): Initialize `progname'.  Reported by Nico
	Schottelius <nico-linux@schottelius.org>.

2005-01-09  Hollis Blanchard  <hollis@penguinppc.org>

	* util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
	(note_path): Remove variable.
	(GRUB_IEEE1275_NOTE_NAME): New macro.
	(GRUB_IEEE1275_NOTE_TYPE): Likewise.
	(grub_ieee1275_note_hdr): New structure.
	(grub_ieee1275_note_desc): Likewise.
	(grub_ieee1275_note): Likewise.
	(load_note): Remove `dir' argument.  All callers updated.  Remove
	`note_img' and `path'.  Do not load a file from `note_path'.
	Initialize a struct grub_ieee1275_note and write that to `out'.
	Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.

2005-01-05  Marco Gerards  <metgerards@student.han.nl>

	* util/misc.c (grub_util_read_image): Revert last change.  It
	called `grub_util_read_at', which seeks from the beginning of the
	file.

2005-01-04  Hollis Blanchard  <hollis@penguinppc.org>

	* TODO: Add note about endianness in grub-mkimage.
	* boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
	section.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
	(grub_mkimage_SOURCES): New target.
	* include/grub/kernel.h (grub_start_addr): Remove variable.
	(grub_end_addr): Likewise.
	(grub_total_module_size): Likewise.
	(grub_kernel_image_size): Likewise.
	(GRUB_MODULE_MAGIC): New constant.
	(grub_module_info): New structure.
	(grub_arch_modules_addr): New prototype.
	(grub_get_end_addr): Remove prototype.
	* include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
	* include/grub/powerpc/ieee1275/kernel.h: New file.
	* include/grub/util/misc.h (grub_util_get_fp_size): New
	prototype.
	(grub_util_read_at): Likewise.
	(grub_util_write_image_at): Likewise.
	* kern/main.c (grub_get_end_addr): Remove function.
	(grub_load_modules): Call grub_arch_modules_addr instead of using
	grub_end_addr.  Look for a grub_module_info struct in memory.  Use
	the grub_module_info fields instead of calling grub_get_end_addr
	as loop conditions.  Move grub_add_unused_region code here.
	(grub_add_unused_region): Remove function.
	* kern/i386/pc/init.c: Include grub/cache.h.
	(grub_machine_init): Remove call to grub_get_end_addr.  Remove
	one call to add_mem_region.
	(grub_arch_modules_addr): New function.
	* kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
	(grub_total_module_size): Likewise.
	Include grub/machine/kernel.h.
	(grub_arch_modules_addr): New function.
	* util/grub-emu.c (grub_end_addr): Remove variable.
	(grub_total_module_size): Likewise.
	(grub_arch_modules_addr): New function.
	* util/misc.c: Include unistd.h.
	(grub_util_get_fp_size): New function.
	(grub_util_read_at): Likewise.
	(grub_util_write_image_at): Likewise.
	(grub_util_read_image): Call grub_util_read_at.
	(grub_util_write_image): Call grub_util_write_image_at.
	* util/i386/pc/grub-mkimage.c (generate_image): Allocate
	additional memory in kernel_img for a struct grub_module_info.
	Fill in that grub_module_info.
	* util/powerpc/ieee1275/grub-mkimage.c: New file.

2005-01-03  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
	New function.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_milliseconds): New prototype.
	* include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
	Change to 1000.
	* kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
	grub_ieee1275_milliseconds.

2005-01-03  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
	variable.
	(find_options): New function.
	(cmain): Call find_options.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_realmode): New extern variable.
	* kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
	grub_map if grub_ieee1275_realmode is false.

2004-12-29  Marco Gerards  <metgerards@student.han.nl>

	* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
	lines are inserted and make it work like readline.  Reported by
	Vincent Pelletier <subdino2004@yahoo.fr>.

2004-12-28  Marco Gerards  <metgerards@student.han.nl>

	* boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
	`kern/powerpc/cache.S'.

2004-12-27  Marco Gerards  <metgerards@student.han.nl>

	* genmk.rb: Handle the `Program' class in the main loop.  Written
	by Johan Rydberg <jrydberg@gnu.org>.
	(Program): New class.
	(programs): New variable.
	* boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
	instead of "grub/machine/ieee1275.h".  Include <grub/kernel.h>
	instead of "grub/kernel.h".  Include <grub/machine/init.h>.
	(help_arch): Function removed.
	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
	`powerpc/libgcc.h' and `loader.h'.
	(pkgdata_PROGRAMS): New variable.
	(sbin_UTILITIES): Variable removed.
	(grub_emu_SOURCES): Added kern/powerpc/cache.S.
	(grubof_SOURCES): Variable re-defined so it only includes the
	core functionality.
	(grubof_CFLAGS): Remove `-DGRUBOF'.
	(pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
	(fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
	(ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
	(minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
	(hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
	(iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
	(_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
	(normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
	(hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
	(boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
	(ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
	(cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
	(font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
	(apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
	(pc_mod_CFLAGS): New variables.
	* disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
	(grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
	* include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
	* include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
	Moved from here...
	* include/grub/i386/pc/init.h (grub_os_area_addr)
	(rub_os_area_size): ... to here.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_entry_fn): Export symbol.
	* include/grub/powerpc/ieee1275/init.h: New file.
	* include/grub/powerpc/libgcc.h: Likewise.
	* include/grub/cache.h: Likewise.
	* kern/powerpc/cache.S: Likewise.  Written by Hollis Blanchard
	<hollis@penguinppc.org>.
	* kern/dl.c: Include <grub/cache.h>.
	(grub_dl_flush_cache): New function.
	(grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
	for this module.
	* kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
	(grub_console_init): Removed prototypes.
	(grub_machine_init): Don't initialize the modules anymore.
	* kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
	static.
	* include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
	Macro undef removed.
	(GRUB_HOST_WORDS_BIGENDIAN): New macro.
	* kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
	relocation `R_PPC_REL32'.  Return an error when the relocation is
	unknown.
	* Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
	* kern/i386/pc/init.c (grub_arch_sync_caches): New function.
	* util/misc.c (grub_arch_sync_caches): Likewise.

2004-12-19  Marco Gerards  <metgerards@student.han.nl>

	* conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
	`symlist.c', add `grubof_symlist.c'.
	(symlist.c): Variable removed.
	(grubof_HEADERS): Variable added.
	(grubof_symlist.c): New target.
	(kernel_syms.lst): Use `grubof_HEADERS' instead of
	`kernel_img_HEADERS'.
	(grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
	* kern/powerpc/dl.c: New file.
	* kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
	Function removed.
	(grub_arch_dl_relocate_symbols): Likewise.
	(grub_register_exported_symbols): Likewise.

2004-12-13  Marco Gerards  <metgerards@student.han.nl>

	* fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
	(grub_ext2_dir): Likewise.  Don't return in case of an error, jump
	to fail instead.  Reported by Vincent Pelletier
	<subdino2004@yahoo.fr>.

	* fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
	it is not allocated.  Reported by Vincent Pelletier
	<subdino2004@yahoo.fr>.

	* normal/cmdline.c (grub_tab_complete): Add a blank line to the
	output so the output looks better.

2004-12-04  Marco Gerards  <metgerards@student.han.nl>

	Modulize the partition map support and add support for the amiga
	partition map.

	* commands/ls.c: Include <grub/partition.h> instead of
	<grub/machine/partition.h>.
	* kern/disk.c: Likewise.
	* kern/rescue.c: Likewise.
	* loader/i386/pc/chainloader.c: Likewise.
	* normal/cmdline.c: Likewise.
	* kern/powerpc/ieee1275/init.c: Likewise.
	(grub_machine_init): Call `grub_pc_partition_map_init',
	`grub_amiga_partition_map_init' and
	`grub_apple_partition_map_init'.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Remove
	`disk/i386/pc/partition.c'.  Add `kern/partition.c'.
	(kernel_img_HEADERS): Remove `machine/partition.h'.  Add
	`partition.h' and `pc_partition.h'.
	(grub_setup_SOURCES): Remove
	`disk/i386/pc/partition.c'.  Add `kern/partition.c',
	`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
	(amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
	(apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
	`disk/powerpc/ieee1275/partition.c'.  Add `kern/partition.c',
	`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
	(grubof_SOURCES): Likewise.
	* disk/i386/pc/partition.c: File removed.
	* disk/powerpc/ieee1275/partition.c: Likewise.
	* include/grub/powerpc/ieee1275/partition.h: Likewise.
	* include/grub/i386/pc/partition.h: Likewise.
	* kern/partition.c: New file.
	* partmap/amiga.c: Likewise.
	* partmap/apple.c: Likewise.
	* partmap/pc.c: Likewise.
	* include/grub/partition.h: Likewise..
	* include/grub/pc_partition.h: Likewise.
	* util/grub-emu.c: Include <grub/partition.h> instead of
	<grub/machine/partition.h>.
	(main): Call `grub_pc_partition_map_init',
	`grub_amiga_partition_map_init' and
	`grub_apple_partition_map_init' and deinitialize afterwards.
	* util/i386/pc/biosdisk.c: Include `#include
	<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
	`<grub/machine/partition.h>'.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/i386/pc/biosdisk.c: Likewise.
	(grub_util_biosdisk_get_grub_dev): Only access the PC specific
	partition information in case of a PC partition.
	* util/i386/pc/grub-setup.c: Include `#include
	<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
	`<grub/machine/partition.h>'.
	(setup): Only access the PC specific partition information in case
	of a PC partition.

2004-11-17  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
	(grub_longjmp): Likewise.
	* include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
	20.
	* normal/powerpc/setjmp.S: New file.
	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
	`normal/powerpc/setjmp.S'.
	(grubof_CFLAGS): Add `-DGRUBOF'.
	* include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
	[GRUB_UTIL && !GRUBOF].

2004-11-16  Marco Gerards  <metgerards@student.han.nl>

	* kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
	property named `name'.  Correctly handle the error returned by
	`grub_ieee1275_finddevice' if a device can not be opened.

2004-11-02  Hollis Blanchard  <hollis@penguinppc.org>

	* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
	`actual' for negativity.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
	kern/fshelp.c.

2004-11-01  Marco Gerards  <metgerards@student.han.nl>

	* term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
	(PAGE_OFFSET): New macro.
	(CRTC_ADDR_PORT): Likewise.
	(CRTC_DATA_PORT): Likewise.
	(START_ADDR_HIGH_REGISTER): Likewise.
	(START_ADDR_LOW_REGISTER): Likewise.
	(GRAPHICS_ADDR_PORT): Likewise.
	(GRAPHICS_DATA_PORT): Likewise.
	(READ_MAP_REGISTER): Likewise.
	(INPUT_STATUS1_REGISTER): Likewise.
	(INPUT_STATUS1_VERTR_BIT): Likewise.
	(page): New variable.
	(wait_vretrace): New function.
	(set_read_map): Likewise.
	(set_start_address): Likewise.
	(grub_vga_init): Use mode 0x10 instead of mode 0x12.  Switch to
	the right page.
	(check_vga_mem): Take the page into account.
	(write_char): Likewise.
	(write_cursor): Likewise.
	(scroll_up): Likewise.  Copy the page to the page that is not
	shown and switch between both pages.
	(grub_vga_putchar): Fix off by one error.
	(grub_vga_cls): Wait for the vertical retrace.  Take the page into
	account.

2004-11-01  Marco Gerards  <metgerards@student.han.nl>

	Add support for iso9660 (including rockridge).

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
	(iso9660_mod_SOURCES): New variable.
	(iso9660_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
	* include/grub/fs.h (grub_iso9660_init): New prototype.
	* util/grub-emu.c (main): Call `grub_iso9660_init'.
	* fs/iso9660.c: New file.

	* include/grub/misc.h (grub_strncat): New prototype.
	* kern/misc.c (grub_strncat): New function.

	* fs/hfs.c (grub_hfs_mount): Translate the error
	`GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
	* fs/jfs.c (grub_jfs_mount): Likewise.
	* fs/ufs.c (grub_ufs_mount): Likewise.

2004-10-28  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
	which initialized BAT registers.
	* boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
	grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
	Move from here...
	* include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
	grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
	... to here.
	* kern/powerpc/ieee1275/openfw.c (grub_map): New function.
	(grub_mapclaim): Likewise.
	* loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
	grub_mapclaim instead of grub_ieee1275_claim.  Assign linux_addr by
	hand.

2004-10-19  Hollis Blanchard  <hollis@penguinppc.org>

	* conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
	(COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
	-ffreestanding and -msoft-float.

2004-10-15  Hollis Blanchard  <hollis@penguinppc.org>

	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
	append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
	set in grub_ieee1275_flags.

2004-10-14  Hollis Blanchard  <hollis@penguinppc.org>

	* include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
	prototype.
	* kern/powerpc/ieee1275/init.c (grub_machine_init): Call
	grub_console_init first.
	Change the memory range used for grub_ieee1275_claim and
	grub_mm_init_region.
	Print an error message if the claim fails.
	Include <grub/misc.h>.

2004-10-13  Hollis Blanchard  <hollis@penguinppc.org>

	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
	Call grub_children_iterate for device nodes of type `scsi',
	`ide', or `ata'.
	(grub_ofdisk_open): Remove manual device alias resolution.
	Fix memory leak when device cannot be opened.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_children_iterate): New prototype.
	* kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
	New function.
	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
	Return -1 if args.size was -1.

2004-10-11  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
	(cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
	World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
	Open Firmware's memory for it; claim memory from _start to _end.
	* boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
	(_end): New extern.
	(_start): Zero BSS from __bss_start to _end.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
	New extern.
	(GRUB_IEEE1275_NO_PARTITION_0): New #define.

2004-10-11  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
	-1 if args.base was -1.

2004-10-08  Hollis Blanchard  <hollis@penguinppc.org>

	* term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
	escape sequence instead of a literal ^L. Also call
	grub_ofconsole_gotoxy.

2004-10-03  Hollis Blanchard  <hollis@penguinppc.org>

	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
	void *	arguments to grub_addr_t.  All callers updated.  Also make
	the `result' argument optional.
	(grub_ieee1275_release): change void * arguments to grub_addr_t.
	All callers updated.

2004-09-22  Hollis Blanchard  <hollis@penguinppc.org>

	* commands/ls.c (grub_ls_list_files): Use the string following the
	initial ')', if present, as the filesystem path.
	* kern/rescue.c (grub_rescue_cmd_ls): Likewise.

	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.

2004-09-18  Yoshinori K. Okuji  <okuji@enbug.org>

	Make the source code of the menu interface more readable.

	* normal/menu.c: Include grub/mm.h.
	(TERM_WIDTH): New macro.
	(TERM_HEIGHT): Likewise.
	(TERM_INFO_HEIGHT): Likewise.
	(TERM_MARGIN): Likewise.
	(TERM_SCROLL_WIDTH): Likewise.
	(TERM_TOP_BORDER_Y): Likewise.
	(TERM_LEFT_BORDER_X): Likewise.
	(TERM_BORDER_WIDTH): Likewise.
	(TERM_MESSAGE_HEIGHT): Likewise.
	(TERM_BORDER_HEIGHT): Likewise.
	(TERM_NUM_ENTRIES): Likewise.
	(TERM_FIRST_ENTRY_Y): Likewise.
	(TERM_ENTRY_WIDTH): Likewise.
	(TERM_CURSOR_X): Likewise.
	(draw_border): Use macros instead of magic numbers.
	(print_entry): Likewise.
	(print_entries): Likewise.
	(run_menu): Likewise. Also, handle the key 'e'.
	(run_menu_entry): Ignore empty command lines.
	(print_message): Added a new argument EDIT. If EDIT is true,
	print a different message.
	(init_page): Likewise.
	(edit_menu_entry): New function. Not implemented yet.

2004-09-17  Marco Gerards  <metgerards@student.han.nl>

	Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
	can be loaded from normal mode.

	* conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
	`multiboot.mod'.
	(linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
	(multiboot_mod_CFLAGS): New variables.
	* loader/i386/pc/linux_normal.c: New file.
	* loader/i386/pc/multiboot_normal.c: Likewise.

	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
	attribute `unused'.

	* fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type.  Use
	`fdiro' to read the mode information from instead of `diro'.

	* fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
	looking up a symlink.

	* include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
	macro.
	* normal/command.c (grub_command_execute): Don't parse the
	arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
	flags of the command.

	* normal/menu.c (grub_menu_run): Fix typo.

2004-09-14  Hollis Blanchard  <hollis@penguinppc.org>

	* kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.

	* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
	`y + 1' instead of `y - 1'.

	* conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.

2004-09-14  Yoshinori K. Okuji  <okuji@enbug.org>

	From Hollis Blanchard <hollis@penguinppc.org>:
	* kern/misc.c (memmove): New alias for grub_memmove.
	(memcmp): New alias for grub_memcmp.
	(memset): New alias for grub_memset.
	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
	Change "int handle" to "grub_ieee1275_phandle_t handle".
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_get_property): Likewise.

2004-09-12  Tomas Ebenlendr  <ebik@ucw.cz>

	Added normal mode command `chainloader' as module chain.mod, which
	depends on normal.mod and _chain.mod.

	* conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
	(chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
	* include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
	Deleted prototype.
	* loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
	but arguments parsing moved to ...
	(grub_chainloader_cmd): ... here.  New function.
	* include/grub/i386/pc/chainloader.h: New file.
	* loader/i386/pc/chainloader_normal.c: Likewise.

2004-09-11  Marco Gerards  <metgerards@student.han.nl>

	* conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
	(grub_mkimage_LDFLAGS): Likewise.
	(grub_emu_SOURCES): Likewise.
	(kernel_img_HEADERS): Added fshelp.h.
	* fs/ext2.c: Include <grub/fshelp.h>.
	(FILETYPE_REG): New macro.
	(FILETYPE_INO_REG): Likewise.
	(grub_ext_sblock): Renamed to `grub_ext2_sblock'.
	Changed all users.
	(ext2_block_group): Renamed to `grub_ext2_block_group'.  Changed
	all users.
	(grub_fshelp_node): New struct.
	(grub_ext2_data): Added member `diropen'.  Changed member `inode'
	to a pointer.
	(grub_ext2_get_file_block): Removed function.
	(grub_ext2_read_block): New function.
	(grub_ext2_read_file): Replaced parameter `data' by `node'.
	This function was written.
	(grub_ext2_mount): Read the root inode.  Create a diropen struct.
	(grub_ext2_find_file): Removed function.
	(grub_ext2_read_symlink): New function.
	(grub_ext2_iterate_dir): Likewise.
	(grub_ext2_open): Rewritten.
	(grub_ext2_dir): Rewritten.
	* include/grub/fshelp.h: New file.
	* fs/fshelp.c: Likewise.

2004-09-10  Yoshinori K. Okuji  <okuji@enbug.org>

	* normal/menu.c: Include grub/loader.h and grub/machine/time.h.
	(print_message): Add a missing newline.
	(run_menu): Added timeout support.
	(run_menu_entry): New local function.
	(grub_menu_run): Added support for booting.

	* kern/loader.c (grub_loader_is_loaded): New function.

	* include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
	(grub_get_rtc): Exported.

	* include/grub/i386/pc/time.h: Include grub/symbol.h.
	(grub_get_rtc): Exported.

	* include/grub/normal.h (struct grub_command_list): Remove
	constant from the member `command'.

	* include/grub/loader.h (grub_loader_is_loaded): Declared.

	* include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.

	* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.

2004-08-28  Marco Gerards  <metgerards@student.han.nl>

	Add support for the JFS filesystem.

	* fs/jfs.c: New file.
	* include/grub/fs.h (grub_jfs_init): New prototype.
	(grub_jfs_fini): New prototype.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add jfs.mod.
	(jfs_mod_SOURCES): New variable.
	(jfs_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
	(grubof_SOURCES): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize JFS support.

	* fs/fat.c (grub_fat_find_dir): Convert the filename little
	endian to the host endian.
	(grub_fat_utf16_to_utf8): Move function from there...
	* kern/misc.c (grub_utf16_to_utf8): ...to here.  Do not convert
	the endianness of the source string anymore.
	* include/grub/misc.h (grub_utf16_to_utf8): New prototype.

2004-08-24  Marco Gerards  <metgerards@student.han.nl>

	* commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
	(grub_boot_fini) [GRUB_UTIL]: Likewise.
	(GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
	(GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.

	* fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
	(grub_hfs_iterate_dir): Make the function static.  Add prototypes
	for `node_found' and `it_dir'.
	(grub_hfs_dir): Add prototype for `dir_hook'.

	* fs/minix.c (grub_minix_get_file_block): Add prototype for
	`grub_get_indir'.  Rename `indir' in two blocks to `indir16'
	and `indir32' to silence a gcc warning.

	* include/grub/fs.h (grub_hfs_init): New prototype.
	(grub_hfs_fini): Likewise.


2004-08-21  Yoshinori K. Okuji  <okuji@enbug.org>

	Each disk device has its own id now. This is useful to make use
	of multiple disk devices.

	* include/grub/disk.h (grub_disk_dev_id): New enum.
	(GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
	(GRUB_DISK_DEVICE_OFDISK_ID): Likewise.

	* disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
	GRUB_DISK_DEVICE_BIOSDISK_ID as an id.

	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
	GRUB_DISK_DEVICE_OFDISK_ID as an id.

	* util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
	GRUB_DISK_DEVICE_BIOSDISK_ID as an id.

	* include/grub/disk.h (struct grub_disk_dev): Added a new member
	"id" which is used by the cache manager.

	* normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
	of just "GRUB".

2004-08-18  Marco Gerards  <metgerards@student.han.nl>

	* fs/hfs.c: New file.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add hfs.mod.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
	(grubof_SOURCES): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize HFS support.

	* include/grub/misc.h (grub_strncasecmp): Add prototype.
	* kern/misc.c (grub_strncasecmp): Add function.

2004-08-14  Marco Gerards  <metgerards@student.han.nl>

	* include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
	with parentheses.

	* fs/ext2.c (FILETYPE_UNKNOWN): New macro.
	(grub_ext2_dir): In case the directory entry type is unknown, read
	it from the inode.

2004-08-02  Peter Bruin  <pjbruin@dds.nl>

	* loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
	grub_load_linux instead of grub_rescue_cmd_linux as second
	argument of grub_rescue_register_command.

	* Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.

2004-07-27  Marco Gerards  <metgerards@student.han.nl>

	* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
	function.
	* commands/boot.c: Remove the check for `GRUB_UTIL'.
	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
	`loader/powerpc/ieee1275/linux.c',
	`loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_release): New prototype.
	* include/grub/powerpc/ieee1275/loader.h: Rewritten.
	* kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
	normal, boot, linux and linux_normal.
	* loader/powerpc/ieee1275/linux.c: New file.
	* loader/powerpc/ieee1275/linux_normal.c: Likewise.

2004-07-12  Marco Gerards  <metgerards@student.han.nl>

	* normal/arg.c (grub_arg_parse): Correct error handling after
	reallocating the argumentlist (check if `argl' is not null instead
	of checking if `args' is not null).
	* kern/mm.c (grub_realloc): Return the same pointer when using the
	same region, instead of returning the header address.

2004-07-11  Marco Gerards  <metgerards@student.han.nl>

	* disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
	one block instead of two when looking for the initial partition.
	(grub_partition_probe): Initialize the local variable `p' with 0.
	Use base 10 for the grub_strtoul call.
	* kern/misc.c (grub_strncpy): Fix off by one bug.  Eliminated the
	need for one local variable.
	(grub_strtoul): Don't add the new value to `num', instead of that
	just assign it.

2004-07-11  Marco Gerards  <metgerards@student.han.nl>

	* conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
	(pxeboot_img_SOURCES): New variable.
	(pxeboot_img_ASFLAGS): Likewise.
	(pxeboot_img_LDFLAGS): Likewise.
	* boot/i386/pc/pxeboot.S: New file.  Based on pxeloader.S from
	GRUB Legacy and boot.S.  Adopted for GRUB 2 by lode leroy
	<lode_leroy@hotmail.com>.

2004-06-27  Tomas Ebenlendr  <ebik@ucw.cz>

	* kern/rescue.c (grub_enter_rescue_mode): Don't continue when
	there was no input.

2004-06-27  Tomas Ebenlendr  <ebik@ucw.cz>

	* normal/cmdline.c (grub_set_history): Fix off by one bug.  Fixed
	the history buffer logic.

2004-06-27  Tomas Ebenlendr  <ebik@ucw.cz>

	* fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
	(FILETYPE_INO_SYMLINK): New macros.
	(grub_ext2_find_file): Check if the node is a directory using the
	inode stat information instead of using the filetype in the
	dirent.  Exclude the first character of an absolute symlink.
	(grub_ext2_dir): Mask out the filetype part of the mode member of
	the inode.

2004-05-24  Marco Gerards  <metgerards@student.han.nl>

	Add support for UFS version 1 and 2.  Add support for the minix
	filesystem version 1 and 2, both the variants with 14 and 30 long
	filenames.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
	fs/minix.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add ufs.mod and minix.mod.
	(ufs_mod_SOURCES): New variable.
	(ufs_mod_CFLAGS): Likewise.
	(minix_mod_SOURCES): Likewise.
	(minix_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
	fs/minix.c.
	(grubof_SOURCES): Likewise.
	* fs/ufs.c: New file.
	* fs/minix.c: New file.
	* include/grub/fs.h (grub_ufs_init): New prototype.
	(grub_ufs_fini): Likewise.
	(grub_minix_init): Likewise.
	(grub_minix_fini): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize UFS and
	minix fs.

2004-04-30  Jeroen Dekkers  <jeroen@dekkers.cx>

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
	commands/ls.c, commands/terminal.c, commands/boot.c,
	commands/cmp.c and commands/cat.c.
	(grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.

	* kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
	"env.h"

2004-04-04  Yoshinori K. Okuji  <okuji@enbug.org>

	All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
	and grub_, respectively. Because the conversion is trivial and
	mechanical, I omit the details here. Please refer to the CVS
	if you need more information.

2004-04-04  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/pupa: Renamed to ...
	* include/grub: ... this.
	* util/i386/pc/pupa-mkimage.c: Renamed to ...
	* util/i386/pc/grub-mkimage.c: ... this.
	* util/i386/pc/pupa-setup.c: Renamed to ...
	* util/i386/pc/grub-setup.c: ... this.
	* util/pupa-emu.c: Renamed to ...
	* util/grub-emu.c: ... this.

2004-03-29  Marco Gerards  <metgerards@student.han.nl>

	Add support for the newworld apple macintosh (PPC).  This has been
	tested on the powerbook 2000 only.  It only adds support for
	generic ieee1275 functions, console and disk support.  This should
	be easy to port to other architectures with support for Open
	Firmware.

	* configure.ac: Accept the powerpc as host_cpu.  In the case of
	the powerpc cpu set the host_vendor to ieee1275.  Make sure the i386
	specific tests are only executed while building for the i386.
	Inverse test for crosscompile.
	* genmk.rb (Utility): Allow assembler files.
	* normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
	* conf/powerpc-ieee1275.rmk: New file.
	* disk/powerpc/ieee1275/ofdisk.c: Likewise.
	* disk/powerpc/ieee1275/partition.c: Likewise.
	* include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
	* include/pupa/powerpc/ieee1275/console.h: Likewise.
	* include/pupa/powerpc/ieee1275/partition.h: Likewise.
	* include/pupa/powerpc/ieee1275/time.h: Likewise.
	* include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
	* include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
	* include/pupa/powerpc/ieee1275/loader.h
	* include/pupa/powerpc/setjmp.h: Likewise.
	* include/pupa/powerpc/types.h: Likewise.
	* kern/powerpc/ieee1275/init.c: Likewise.
	* kern/powerpc/ieee1275/openfw.c: Likewise.
	* term/powerpc/ieee1275/ofconsole.c: Likewise.

	These files were written by Johan Rydberg
	(jrydberg@night.trouble.net) and I only modified them slightly.

	* boot/powerpc/ieee1275/cmain.c: New file.
	* boot/powerpc/ieee1275/crt0.S: Likewise.
	* boot/powerpc/ieee1275/ieee1275.c: Likewise.
	* include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.

2004-03-14  Jeroen Dekkers  <jeroen@dekkers.cx>

	* Makefile.in: Update copyright.
	* genmodsrc.sh: Likewise.
	* gensymlist.sh: Likewise.
	* term/i386/pc/vga.c: Indent correctly.

	* util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
	bugreporting address.
	* util/i386/pc/pupa-setup.c (usage): Likewise,
	(main): Call pupa_ext2_init and pupa_ext2_fini.

	* fs/fat.c (log2): Renamed to ...
	(fat_log2): ... this.
	All callers changed.
	* kern/misc.c (memcpy): Alias to pupa_memmove.
	* loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
	lvalue cast.
	* util/console.c (pupa_ncurses_fini): Return 0.

	* util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
	Move fail label here.
	[__GNU__]: Don't warn when using stat.
	(open_device)[!__linux__]: Check if FD < 0 instead of !FD.
	(pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
	long int. Use strtol instead of strtoul.

2004-03-14  Marco Gerards  <metgerards@student.han.nl>

	* commands/boot.c: New file.
	* commands/cat.c: Likewise.
	* commands/cmp.c: Likewise.
	* commands/ls.c: Likewise.
	* commands/terminal.c: Likewise.
	* normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
	(pupa_register_command): Changed interface to match the new
	argument parser.
	(pupa_command_execute): Changed (almost rewritten) so it uses
	pupa_split_command.  Added support for setting variables using the
	syntax `foo=bar'.
	(rescue_command): Changed to work with the new argument parser.
	(terminal_command): Moved from here to commands/terminal.c.
	(set_command): New function.
	(unset_command): New function.
	(insmod_command): New function.
	(rmmod_command): New function.
	(lsmod_command): New function.
	(pupa_command_init): Don't initialize the command terminal
	anymore.  Initialize the commands set, unset, insmod, rmmod and
	lsmod.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
	(kernel_img_HEADERS): Add arg.h and env.h.
	(pupa_mkimage_LDFLAGS): Add kern/env.c.
	(pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
	commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
	normal/arg.c.
	(pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
	terminal.mod.
	(normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
	(boot_mod_SOURCES): New variable.
	(terminal_mod_SOURCES): Likewise.
	(ls_mod_SOURCES): Likewise.
	(cmp_mod_SOURCES): Likewise.
	(cat_mod_SOURCES): Likewise.

	* normal/arg.c: New file.
	* kern/env.c: Likewise.
	* include/pupa/arg.h: Likewise.
	* include/pupa/env.h: Likewise.
	* font/manager.c (font_command): Changed to match argument parsing
	interface changes.
	(PUPA_MOD_INIT): Likewise.
	* hello/hello.c (pupa_cmd_hello): Likewise.
	(PUPA_MOD_INIT): Likewise.
	* include/pupa/disk.h: Include <pupa/device.h>.
	(pupa_print_partinfo): New prototype.
	* include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
	(pupa_dl_get_prefix): Likewise.
	* include/pupa/misc.h: Include <pupa/err.h>.
	(pupa_isgraph): New prototype.
	(pupa_isdigit): Likewise.
	(pupa_split_cmdline): Likewise.
	* include/pupa/normal.h: Include <pupa/arg.h>.
	(pupa_command): Changed the prototype of the member `func' to
	match the argument parsing interface.  Added member `options'.
	(pupa_register_command): Updated to match function.
	(pupa_arg_parse): New prototype.
	(pupa_hello_init) [PUPA_UTIL]: New prototype.
	(pupa_hello_fini) [PUPA_UTIL]: Likewise.
	(pupa_ls_init) [PUPA_UTIL]: Likewise.
	(pupa_ls_fini) [PUPA_UTIL]: Likewise.
	(pupa_cat_init) [PUPA_UTIL]: Likewise.
	(pupa_cat_fini) [PUPA_UTIL]: Likewise.
	(pupa_boot_init) [PUPA_UTIL]: Likewise.
	(pupa_boot_fini) [PUPA_UTIL]: Likewise.
	(pupa_cmp_init) [PUPA_UTIL]: Likewise.
	(pupa_cmp_fini) [PUPA_UTIL]: Likewise.
	(pupa_terminal_init) [PUPA_UTIL]: Likewise.
	(pupa_terminal_fini) [PUPA_UTIL]: Likewise.
	* kern/disk.c: Include <pupa/file.h>.
	(pupa_print_partinfo): New function.
	* kern/dl.c: Include <pupa/env.h>.
	(pupa_dl_dir): Variable removed.
	(pupa_dl_load): Use the environment variable `prefix' instead of
	the variable pupa_dl_dir.
	(pupa_dl_set_prefix): Function removed.
	(pupa_dl_get_prefix): Likewise.
	* kern/i386/pc/init.c: Include <pupa/env.h>.
	(pupa_machine_init): Use the environment variable `prefix' instead of
	using pupa_dl_set_prefix to set the prefix.
	* kern/main.c: Include <pupa/env.h>.
	(pupa_set_root_dev): Use the environment variable `prefix' instead of
	using pupa_dl_get_prefix to get the prefix.
	* kern/misc.c: Include <pupa/env.h>.
	(pupa_isdigit): New function.
	(pupa_isgraph): Likewise.
	(pupa_ftoa): Likewise.
	(pupa_vsprintf): Added support for printing values of the type
	`double'.  Make it possible to format variable output when using
	formatting like `%1.2%f'.
	(pupa_split_cmdline): New function.
	* kern/rescue.c: Include <pupa/env.h>.
	(next_word): Removed function.
	(pupa_rescue_cmd_prefix): Likewise.
	(pupa_rescue_cmd_set): New function.
	(pupa_rescue_cmd_unset): New function.
	(pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
	split the command line instead of splitting it here.  Added
	support for setting variables using the syntax `foo=bar'.  Don't
	initialize the prefix command anymore.  Initialized the set and
	unset commands.
	* normal/cmdline.c: Include <pupa/env.h>.
	(pupa_tab_complete): Added prototypes for print_simple_completion,
	print_partition_completion, add_completion, iterate_commands,
	iterate_dev, iterate_part and iterate_dir. Moved code to print
	partition information from here to kern/disk.c.
	(pupa_cmdline_run): Don't check if the function exists anymore.
	* normal/main.c: Include <pupa/env.h>.
	(pupa_rescue_cmd_normal): Use the environment variable `prefix'
	instead of using pupa_dl_get_prefix to get the prefix.
	* term/i386/pc/vga.c: Include <pupa/arg.h>.
	(check_vga_mem): Cast pointers to `void *' to silence a gcc
	warning.
	(pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
	(pupa_vga_setcolor): Declare unused variables with `__attribute__
	((unused))' to silence a gcc warning.
	(pupa_vga_setcolor): Likewise.
	(debug_command): Changed to match argument parsing
	interface changes.
	* util/pupa-emu.c: Include <pupa/env.h>.
	(options): Added 0's for unused fields to silence a gcc warning.
	(argp): Likewise.
	(main): Use the environment variable `prefix' instead of using
	pupa_dl_set_prefix to set the prefix.  Initialize the commands ls,
	boot, cmp, cat and terminal.  Finish the commands boot, cmp, cat
	and terminal.

	* util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
	* util/misc.c: Include <malloc.h>.
	(pupa_malloc): Rewritten so errors are correctly reported.
	(pupa_realloc): Likewise.
	(pupa_memalign): Likewise.
	(pupa_mm_init_region): Declare unused variables with
	`__attribute__ ((unused))' to silence a gcc warning.
	* normal/i386/setjmp.S: Remove tab at the end of the file to
	silence a gcc warning.
	* loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
	variables with `__attribute__ ((unused))' to silence a gcc
	warning.
	* loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
	local variable i unsigned to silence a gcc warning.

	* kern/term.c: Include <pupa/misc.h>.
	(pupa_more_lines): New variable.
	(pupa_more): Likewise.
	(pupa_putcode): When the pager is active pause at the end of every
	screen.
	(pupa_set_more): New function.
	* include/pupa/term.h (pupa_set_more): New prototype.


2004-03-07  Yoshinori K. Okuji  <okuji@enbug.org>

	Now this project is GRUB 2 rather than PUPA. The location of
	the CVS repository was moved to GRUB's.

	* configure.ac: Use bug-grub as the reporting address.
	Use GRUB instead of PUPA.
	Change the version number to 1.90.

2004-02-24  Yoshinori K. Okuji  <okuji@enbug.org>

	* genkernsyms.sh: Updated copyright information.
	* genmk.rb: Likewise.
	* genmodsrc.sh: Likewise.
	* gensymlist.sh: Likewise.
	* boot/i386/pc/boot.S: Likewise.
	* boot/i386/pc/diskboot.S: Likewise.
	* disk/i386/pc/biosdisk.c: Likewise.
	* disk/i386/pc/partition.c: Likewise.
	* font/manager.c: Likewise.
	* fs/ext2.c: Likewise.
	* fs/fat.c: Likewise.
	* include/pupa/boot.h: Likewise.
	* include/pupa/device.h: Likewise.
	* include/pupa/disk.h: Likewise.
	* include/pupa/dl.h: Likewise.
	* include/pupa/elf.h: Likewise.
	* include/pupa/err.h: Likewise.
	* include/pupa/file.h: Likewise.
	* include/pupa/font.h: Likewise.
	* include/pupa/fs.h: Likewise.
	* include/pupa/kernel.h: Likewise.
	* include/pupa/loader.h: Likewise.
	* include/pupa/misc.h: Likewise.
	* include/pupa/mm.h: Likewise.
	* include/pupa/net.h: Likewise.
	* include/pupa/normal.h: Likewise.
	* include/pupa/rescue.h: Likewise.
	* include/pupa/setjmp.h: Likewise.
	* include/pupa/symbol.h: Likewise.
	* include/pupa/term.h: Likewise.
	* include/pupa/types.h: Likewise.
	* include/pupa/i386/setjmp.h: Likewise.
	* include/pupa/i386/types.h: Likewise.
	* include/pupa/i386/pc/biosdisk.h: Likewise.
	* include/pupa/i386/pc/boot.h: Likewise.
	* include/pupa/i386/pc/console.h: Likewise.
	* include/pupa/i386/pc/init.h: Likewise.
	* include/pupa/i386/pc/kernel.h: Likewise.
	* include/pupa/i386/pc/linux.h: Likewise.
	* include/pupa/i386/pc/loader.h: Likewise.
	* include/pupa/i386/pc/memory.h: Likewise.
	* include/pupa/i386/pc/multiboot.h: Likewise.
	* include/pupa/i386/pc/partition.h: Likewise.
	* include/pupa/i386/pc/time.h: Likewise.
	* include/pupa/i386/pc/vga.h: Likewise.
	* include/pupa/i386/pc/util/biosdisk.h: Likewise.
	* include/pupa/util/getroot.h: Likewise.
	* include/pupa/util/misc.h: Likewise.
	* include/pupa/util/resolve.h: Likewise.
	* kern/device.c: Likewise.
	* kern/disk.c: Likewise.
	* kern/dl.c: Likewise.
	* kern/err.c: Likewise.
	* kern/file.c: Likewise.
	* kern/fs.c: Likewise.
	* kern/loader.c: Likewise.
	* kern/main.c: Likewise.
	* kern/misc.c: Likewise.
	* kern/mm.c: Likewise.
	* kern/rescue.c: Likewise.
	* kern/term.c: Likewise.
	* kern/i386/dl.c: Likewise.
	* kern/i386/pc/init.c: Likewise.
	* kern/i386/pc/lzo1x.S: Likewise.
	* kern/i386/pc/startup.S: Likewise.
	* loader/i386/pc/chainloader.c: Likewise.
	* loader/i386/pc/linux.c: Likewise.
	* loader/i386/pc/multiboot.c: Likewise.
	* normal/cmdline.c: Likewise.
	* normal/command.c: Likewise.
	* normal/main.c: Likewise.
	* normal/menu.c: Likewise.
	* normal/i386/setjmp.S: Likewise.
	* term/i386/pc/console.c: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* util/console.c: Likewise.
	* util/genmoddep.c: Likewise.
	* util/misc.c: Likewise.
	* util/pupa-emu.c: Likewise.
	* util/resolve.c: Likewise.
	* util/unifont2pff.rb: Likewise.
	* util/i386/pc/biosdisk.c: Likewise.
	* util/i386/pc/getroot.c: Likewise.
	* util/i386/pc/pupa-mkimage.c: Likewise.
	* util/i386/pc/pupa-setup.c: Likewise.

2004-02-15  Jeroen Dekkers  <jeroen@dekkers.cx>

	* fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
	when it is EXT2_BLOCK_SIZE (data).  New argument READ_HOOK, all
	callers changed.  Set DATA->DISK->READ_HOOK to READ_HOOK before
	reading and reset it after reading.
	(pupa_ext2_close): Return PUPA_ERR_NONE.

	* include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
	Correct value.
	(struct linux_kernel_header): Add kernel_version and
	initrd_addr_max.
	* loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
	pupa_file_read succeeds.
	(pupa_rescue_cmd_initrd): Implement.

2003-12-03  Marco Gerards  <metgerards@student.han.nl>

	* fs/ext2.c (pupa_ext2_label): New function.
	(pupa_ext2_fs): Added label.
	* fs/fat.c (pupa_fat_label): New function.
	(pupa_fat_fs): Added label.
	* include/pupa/fs.h (struct pupa_fs): Added prototype label.

	* kern/misc.c (pupa_strndup): New function.
	* include/pupa/misc.h (pupa_strndup): New prototype.

	* include/pupa/normal.h: Include <pupa/err.h>.
	(pupa_set_history): New prototype.
	(pupa_iterate_commands): New prototype.
	* normal/cmdline.c: Include <pupa/machine/partition.h>,
	<pupa/disk.h>, <pupa/file.h>.
	(hist_size): New variable.
	(hist_lines): Likewise.
	(hist_end): Likewise.
	(hist_used): Likewise.
	(pupa_set_history): New function.
	(pupa_history_get): Likewise.
	(pupa_history_add): Likewise.
	(pupa_history_replace): Likewise.
	(pupa_tab_complete): Likewise.
	(pupa_cmdline_run): Added tab completion and history buffer.  Tab
	completion shows partitionnames while completing partitions, this
	feature was suggested by Jeff Bailey.
	* normal/command.c (pupa_iterate_commands): New function.
	* normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
	(pupa_normal_init): Initialize history buffer.
	(PUPA_MOD_INIT): Likewise.
	(pupa_normal_fini): Free the history buffer.
	(PUPA_MOD_FINI): Likewise.

	* util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
	key.

	* aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
	* configure.ac [i386]: Check for regparam bug.
	(NESTED_FUNC_ATTR) [! i386]: Defined.

2003-11-17  Marco Gerards  <metgerards@student.han.nl>

	* conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
	(pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
	(pupa_emu_SOURCES): New variable.
	(pupa_emu_LDFLAGS): Likewise.
	* include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
	(pupa_ext2_fini) [PUPA_UTIL]: Likewise.
	* include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
	(pupa_normal_fini) [PUPA_UTIL]: Likewise.
	* include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
	(pupa_jmp_buf): New typedef.
	(pupa_setjmp) [PUPA_UTIL]: New macro.
	(pupa_longjmp) [PUPA_UTIL]: Likewise.
	* include/pupa/term.h (struct pupa_term): New member `refresh'.
	(pupa_refresh): New prototype.
	* include/pupa/util/getroot.h: New file.
	* kern/misc.c (pupa_vsprintf): Refresh the screen after updating
	it.
	* kern/rescue.c (pupa_rescue_get_command_line): Likewise.
	(pupa_rescue_cmd_cat): Likewise.
	(pupa_rescue_cmd_ls): Likewise.
	(pupa_rescue_cmd_testload): Likewise.
	(pupa_rescue_cmd_lsmod): Likewise.
	* normal/cmdline.c (pupa_cmdline_get): Likewise.
	* normal/menu.c (run_menu): Likewise.
	* kern/term.c (pupa_cls): Likewise.
	(pupa_refresh): New function.
	* normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
	(pupa_normal_fini) [PUPA_UTIL]: Likewise.
	* util/console.c: New file.

	* util/i386/pc/getroot.c: New file.
	* util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
	(pupa_putchar): New function.
	(pupa_refresh): Likewise.
	(xgetcwd): Function moved to ...
	(strip_extra_slashes): Likewise.
	(get_prefix): Likewise.
	* util/i386/pc/getroot.c: ... here.
	(find_root_device): Function moved and renamed to...
	* util/i386/pc/getroot.c (pupa_find_root_device): ... here.
	Changed all callers.
	* util/i386/pc/pupa-setup.c (guess_root_device): Function moved
	and renamed to...
	* util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
	Changed all callers.
	* util/misc.c (pupa_memalign): New function.
	(pupa_mm_init_region): Likewise.
	(pupa_register_exported_symbols): Likewise.
	(pupa_putchar): Function removed.
	* util/pupa-emu.c: New file.

2003-11-16  Jeroen Dekkers  <jeroen@dekkers.cx>

	* conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
	(_multiboot_mod_SOURCES): New variable.
	(_multiboot_mod_CFLAGS): Likewise.
	* loader/i386/pc/multiboot.c: New file.
	* include/pupa/i386/pc/multiboot.h: Likewise.
	* kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
	(pupa_multiboot_real_boot): New function.
	* include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
	(pupa_multiboot_real_boot): New prototype.
	(pupa_rescue_cmd_multiboot): Likewise
	(pupa_rescue_cmd_module): Likewise.

	* kern/loader.c (pupa_loader_set): Continue when
	pupa_loader_unload_func() fails.
	(pupa_loader_unset): New function.
	* include/pupa/loader.h (pupa_loader_unset): New prototype.

	* kern/misc.c (pupa_stpcpy): New function.
	* include/pupa/misc.h (pupa_stpcpy): New prototype.

2003-11-12  Marco Gerards  <metgerards@student.han.nl>

	* disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
	for available extensions.

	* include/pupa/i386/pc/time.h: New file.
	* kern/disk.c: Include <pupa/machine/time.h>.
	(PUPA_CACHE_TIMEOUT): New macro.
	(pupa_last_time): New variable.
	(pupa_disk_open): Flush the cache when there was a timeout.
	(pupa_disk_close): Reset the timer.
	* kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
	pupa_currticks.
	* util/misc.c: Include <sys/times.h>
	(pupa_get_rtc): New function.

2003-11-09  Jeroen Dekkers  <jeroen@dekkers.cx>

	* fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
	as blocks.
	(pupa_ext2_get_file_block): Use blocks member.

	* fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
	first block. Return -1 instead of pupa_errno on error.

2003-10-27  Marco Gerards  <metgerards@student.han.nl>

	* README: In the pupa-mkimage example use _chain instead of chain
	and ext2 instead of fat.
	* TODO: Replace ext2fs with jfs as an example.  Add an item for
	adding journal playback for ext2fs.
	* conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
	(pkgdata_MODULES): Added ext2.mod.
	(ext2_mod_SOURCES): New variable.
	(ext2_mod_CFLAGS): Likewise.
	* include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
	* include/pupa/misc.h (pupa_strncpy): New prototype.
	(pupa_strcat): Likewise.
	(pupa_strncmp): Likewise.
	* kern/misc.c (pupa_strcat): Enable function.
	(pupa_strncpy): New function.
	(pupa_strncmp): Likewise.
	* fs/ext2.c: New file.

	* kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
	when the read failed before retrying.
	* util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
	(_FILE_OFFSET_BITS): Likewise.
	* configure.ac: Added AC_SYS_LARGEFILE.

2003-09-25  Yoshinori K. Okuji  <okuji@enbug.org>

	* genmk.rb (PModule#rule): Make sure to get only symbol names
	from the output of nm.
	Reported by Robert Millan <zeratul2@wanadoo.es>.

2003-09-25  Yoshinori K. Okuji  <okuji@enbug.org>

	I forgot to check in these changes for a long time. This adds
	incomplete support for VGA console, and this is still very
	buggy. Also, a lot of consideration is required for I18N,
	UNICODE, and VGA font issues. Therefore, assume that this is
	such that "better than nothing".

	* font/manager.c: New file.
	* include/pupa/font.h: Likewise.
	* include/pupa/i386/pc/vga.h: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* util/unifont2pff.rb: Likewise.

	* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
	(pkgdata_MODULES): Added vga.mod and font.mod.
	(vga_mod_SOURCES): New variables.
	(vga_mod_CFLAGS): Likewise.
	(font_mod_SOURCES): Likewise.
	(font_mod_CFLAGS): Likewise.

	* include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.

	* include/pupa/term.h: Include pupa/err.h.
	(struct pupa_term): Added init and fini.
	Changed the argument of putchar to pupa_uint32_t.

	* include/pupa/i386/pc/console.h: Include pupa/symbol.h.
	(pupa_console_real_putchar): New prototype.
	(pupa_console_putchar): Removed.
	(pupa_console_checkkey): Exported.
	(pupa_console_getkey): Likewise.

	* kern/misc.c (pupa_vsprintf): Add support for UNICODE
	characters.

	* kern/term.c (pupa_term_set_current): Rewritten.
	(pupa_putchar): Likewise.
	(pupa_putcode): New function.

	* kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
	(pupa_console_real_putchar): ... this.
	(pupa_vga_set_mode): New function.
	(pupa_vga_get_font): Likewise.

	* normal/command.c: Include pupa/term.h.
	(terminal_command): New function.
	(pupa_command_init): Register the command "terminal".

	* normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
	(DISP_UP): Likewise.
	(DISP_RIGHT): Likewise.
	(DISP_DOWN): Likewise.
	(DISP_HLINE): Likewise.
	(DISP_VLINE): Likewise.
	(DISP_UL): Likewise.
	(DISP_UR): Likewise.
	(DISP_LL): Likewise.
	(DISP_LR): Likewise.

	* term/i386/pc/console.c (pupa_console_putchar): New function.

2003-02-08  NIIBE Yutaka  <gniibe@m17n.org>

	* util/resolve.c (pupa_util_resolve_dependencies): BUG
	FIX. Reverse the path_list.

	* include/pupa/normal.h: Export pupa_register_command and
	pupa_unregister_command.

	* hello/hello.c (pupa_cmd_hello): New module.
	* conf/i386-pc.rmk: Added hello.mod.

2003-01-31  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/i386/pc/lzo1x.S: New file.

	* util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
	(compress_kernel): New variable.
	(generate_image): Heavily modified to support compressing a
	large part of the core image.

	* util/misc.c (pupa_util_read_image): Fix a file descriptor
	leak.
	(pupa_util_load_image): New function.

	* kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
	(pupa_compressed_size): New variable.
	(codestart): Enable Gate A20 here.
	Decompress the compressed part of the core image.
	Rearrange the code to put functions and variables which are
	required for initialization in the non-compressed part.
	Include lzo1x.S.

	* kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
	here.

	* include/pupa/util/misc.h (pupa_util_write_image): Declared.

	* include/pupa/i386/pc/kernel.h
	(PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
	(PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
	(PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
	(PUPA_KERNEL_MACHINE_PREFIX): Likewise.
	(PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.

	* conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.

	* genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
	(Utility#rule): Likewise.

	* configure.ac: Check if LZO is available.

2003-01-20  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/pupa/normal.h: New file.
	* include/pupa/setjmp.h: Likewise.
	* include/pupa/i386/setjmp.h: Likewise.
	* normal/cmdline.c: Likewise.
	* normal/command.c: Likewise.
	* normal/main.c: Likewise.
	* normal/menu.c: Likewise.
	* normal/i386/setjmp.S: Likewise.

	* loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
	(pupa_rescue_cmd_initrd): Likewise.

	* loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
	Likewise.

	* kern/i386/pc/startup.S (translation_table): New variable.
	(translate_keycode): New function.
	(pupa_console_getkey): Call translate_keycode.

	* kern/rescue.c (attempt_normal_mode): New function.
	(pupa_enter_rescue_mode): Attempt to execute the normal mode. If
	it failed, print a message.

	* kern/mm.c (pupa_real_malloc): Print more information when a
	free magic is broken.
	(pupa_free): If the first free header is not free actually, set
	it to P.

	* kern/main.c (pupa_load_normal_mode): Just load the module
	"normal".
	(pupa_main): Don't print the message
	"Entering into rescue mode..." here.

	* include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
	Declared.
	(pupa_rescue_cmd_initrd): Likewise.
	(pupa_rescue_cmd_initrd): Likewise.

	* include/pupa/symbol.h (FUNCTION): Specify the type.
	(VARIABLE): Likewise.

	* include/pupa/err.h (pupa_err_t): Added
	PUPA_ERR_UNKNOWN_COMMAND.

	* include/pupa/dl.h (pupa_dl_set_prefix): Exported.
	(pupa_dl_get_prefix): Likewise.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
	Added _chain.mod and _linux.mod instead of chain.mod and
	linux.mod.
	(chain_mod_SOURCES): Renamed to ...
	(_chain_mod_SOURCES): ... this.
	(chain_mod_CFLAGS): Renamed to ...
	(_chain_mod_CFLAGS): ... this.
	(linux_mod_SOURCES): Renamed to ...
	(_linux_mod_SOURCES): ... this.
	(linux_mod_CFLAGS): Renamed to ...
	(_linux_mod_CFLAGS): ... this.
	(normal_mod_SOURCES): New variable.
	(normal_mod_CFLAGS): Likewise.
	(normal_mod_ASFLAGS): Likewise.

2003-01-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
	possible.

	* kern/dl.c (pupa_dl_ref): Refer depending modules
	recursively.
	(pupa_dl_unref): Unrefer depending modules recursively.
	Don't call pupa_dl_unload implicitly, because PUPA can crash if
	a module is unloaded before one depending on that module is
	unloaded.
	(pupa_dl_unload): Unload depending modules explicitly,
	if possible.

2003-01-17  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/pupa/i386/pc/linux.h: New file.
	* loader/i386/pc/linux.c: Likewise.

	* loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
	Removed.
	(pupa_chainloader_unload): Return PUPA_ERR_NONE.
	(pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
	of PUPA_CHAINLOADER_BOOT_SECTOR.

	* kern/i386/pc/startup.S: Include pupa/machine/linux.h.
	(pupa_linux_prot_size): New variable.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): New function.
	(pupa_linux_boot_bzimage): Likewise.

	* kern/i386/pc/init.c (struct mem_region): New structure.
	(MAX_REGIONS): New macro.
	(mem_regions): New variable.
	(num_regions): Likewise.
	(pupa_os_area_addr): Likewise.
	(pupa_os_area_size): Likewise.
	(pupa_lower_mem): Likewise.
	(pupa_upper_mem): Likewise.
	(add_mem_region): New function.
	(compact_mem_regions): Likewise.
	(pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
	the size of the conventional memory and that of so-called upper
	memory (before the first memory hole).
	Instead of adding each found region to free memory, use
	add_mem_region and add them after removing overlaps.
	Also, add only 1/4 of the upper memory to free memory. The rest
	is used for loading OS images. Maybe this is ad hoc, but this
	makes it much easier to relocate OS images when booting.

	* kern/rescue.c (pupa_rescue_cmd_module): Removed.
	(pupa_enter_rescue_mode): Don't register initrd and module.

	* kern/mm.c: Include pupa/dl.h.

	* kern/main.c: Include pupa/file.h and pupa/device.h.

	* kern/loader.c (pupa_loader_load_module_func): Removed.
	(pupa_loader_load_module): Likewise.

	* kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
	``.o''.

	* include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): Likewise.
	(pupa_linux_boot_bzimage): Likewise.

	* include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
	(pupa_upper_mem): Likewise.
	(pupa_gate_a20): Don't export, because turning off Gate A20 in a
	module is too dangerous.

	* include/pupa/loader.h (pupa_os_area_addr): Declared.
	(pupa_os_area_size): Likewise.
	(pupa_loader_set): Remove the first argument. Loader doesn't
	manage modules or initrd any longer.
	(pupa_loader_load_module): Removed.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
	(linux_mod_SOURCES): New variable.
	(linux_mod_CFLAGS): Likewise.

2003-01-07  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/pupa-setup.c (setup): Convert the endianness of
	the length of a blocklist correctly.

	* util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
	Use ioctl only if the OS file is a block device.
	(pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
	not very useful for normal files.

	* kern/main.c (pupa_set_root_dev): New function.
	(pupa_load_normal_mode): Likewise.
	(pupa_main): Call those above.

	* include/pupa/types.h (pupa_swap_bytes16): Cast the result to
	pupa_uint16_t.

	* include/pupa/kernel.h (pupa_enter_normal_mode): Removed.

2003-01-06  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
	(setup): Configure the installed partition information and the
	dl prefix.

	* loader/i386/pc/chainloader.c (my_mod): New variable.
	(pupa_chainloader_unload): New function.
	(pupa_rescue_cmd_chainloader): Refer itself.
	(PUPA_MOD_INIT): Save its own module in MY_MOD.

	* kern/i386/pc/startup.S (install_partition): Removed.
	(version_string): Likewise.
	(config_file): Likewise.
	(pupa_install_dos_part): New variable.
	(pupa_install_bsd_part): Likewise.
	(pupa_prefix): Likewise.
	(pupa_chainloader_real_boot): Call pupa_dl_unload_all.

	* kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
	and pupa/misc.h.
	(make_install_device): New function.
	(pupa_machine_init): Set the dl prefix.

	* kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
	(buf): Renamed to ...
	(linebuf): ... this.
	(pupa_rescue_cmd_prefix): New function.
	(pupa_rescue_cmd_insmod): Likewise.
	(pupa_rescue_cmd_rmmod): Likewise.
	(pupa_rescue_cmd_lsmod): Likewise.
	(pupa_enter_rescue_mode): Register new commands: prefix, insmod,
	rmmod and lsmod.

	* kern/mm.c (pupa_memalign): If failed even after invalidating
	disk caches, unload unneeded modules and retry.

	* kern/misc.c (pupa_memmove): New function.
	(pupa_memcpy): Removed.
	(pupa_strcpy): New function.
	(pupa_itoa): Made static.

	* kern/dl.c (pupa_dl_iterate): New function.
	(pupa_dl_ref): Likewise.
	(pupa_dl_unref): Likewise.
	(pupa_dl_unload): Return if succeeded or not.
	(pupa_dl_unload_unneeded): New function.
	(pupa_dl_unload_all): Likewise.
	(pupa_dl_init): Renamed to ...
	(pupa_dl_set_prefix): ... this.
	(pupa_dl_get_prefix): New function.

	* include/pupa/i386/pc/kernel.h: Include pupa/types.h.
	(PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
	(PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
	(PUPA_KERNEL_MACHINE_PREFIX): Likewise.
	(pupa_install_dos_part): Declared.
	(pupa_install_bsd_part): Likewise.
	(pupa_prefix): Likewise.
	(pupa_boot_drive): Likewise.

	* include/pupa/types.h: Fix a typo.

	* include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
	pupa_memmove.
	(pupa_memmove): Declared.
	(pupa_strcpy): Likewise.

	* include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
	pupa_mod_init takes one argument, its own module.
	(pupa_dl_unload_unneeded): Declared.
	(pupa_dl_unload_all): Likewise.
	(pupa_dl_ref): Likewise.
	(pupa_dl_unref): Likewise.
	(pupa_dl_iterate): Likewise.
	(pupa_dl_init): Renamed to ...
	(pupa_dl_set_prefix): ... this.
	(pupa_dl_get_prefix): Declared.

	* fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
	(pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
	unloaded.
	(pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
	(pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.

	* configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
	-Wmissing-prototypes, -Wundef and -Wstrict-prototypes.

2003-01-03  Yoshinori K. Okuji  <okuji@enbug.org>

	* util/i386/pc/pupa-setup.c (setup): Define the internal
	function find_first_partition_start at the top level, because GCC
	3.0.x cannot compile internal functions in deeper scopes
	correctly.
	(find_root_device): Use lstat instead of stat.
	Don't follow symbolic links.
	Fix the path-constructing code.

	* util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
	(pupa_util_biosdisk_open) [__linux__]: Get the size of a device
	by a BLKGETSIZE ioctl first, because block devices don't fill
	the member st_mode of the structure stat on Linux.
	[__linux__] (linux_find_partition): Use a temporary buffer
	REAL_DEV for the working space. Copy it to DEV before returning.
	(open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
	buffer cache consistent.
	(get_os_disk) [__linux__]: Use the length 5 instead of 4 for
	strncmp. The previous value was merely wrong.
	(pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.

	* fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
	FAT size is 12. The previous value was merely wrong.

	* kern/main.c (pupa_main): Don't split the starting message from
	newlines.

	* kern/term.c (pupa_putchar): Put CR after LF instead of before
	LF, because BIOS goes crazy about character attributes in this
	case.

2003-01-03  Yoshinori K. Okuji  <okuji@enbug.org>

	* include/i386/pc/util/biosdisk.h: New file.
	* util/i386/pc/biosdisk.c: Likewise.
	* util/i386/pc/pupa-setup.c: Likewise.

	* Makefile.in (INCLUDE_DISTFILES): Added
	include/pupa/i386/pc/util/biosdisk.h.
	(UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
	directory util/i386/pc.
	(install-local): Added a rule for sbin_UTILITIES.
	(uninstall): Likewise.

	* util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.

	* util/misc.c (xrealloc): New function.
	(pupa_malloc): Likewise.
	(pupa_free): Likewise.
	(pupa_realloc): Likewise.
	(pupa_stop): Likewise.
	(pupa_putchar): Likewise.

	* kern/disk.c (pupa_disk_read): Prevent L from underflowing.

	* include/pupa/util/misc.h (xrealloc): Declared.

	* include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
	macro.
	(PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
	(PUPA_BOOT_MACHINE_BPB_END): ... this.

	* include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
	way should be implemented.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
	the size of NAME for safety.
	(pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
	0x88.

	* conf/i386-pc.rmk (sbin_UTILITIES): New variable.
	(pupa_setup_SOURCES): Likewise.

	* genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.

2002-12-28  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
	bunch of pushl's from pusha, because this destroys the return
	value.

2002-12-28  Yoshinori K. Okuji  <okuji@enbug.org>

	Use -mrtd and -mregparm=3 to reduce the generated code sizes.
	This means that any missing prototypes could be fatal. Also, you
	must take care when writing assembly code. See the comments at
	the beginning of startup.S, for more details.

	* kern/i386/pc/startup.S (pupa_halt): Modified for the new
	compilation mechanism.
	(pupa_chainloader_real_boot): Likewise.
	(pupa_biosdisk_rw_int13_extensions): Likewise.
	(pupa_biosdisk_rw_standard): Likewise.
	(pupa_biosdisk_check_int13_extensions): Likewise.
	(pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
	(pupa_biosdisk_get_diskinfo_standard): Likewise.
	(pupa_get_memsize): Likewise.
	(pupa_get_mmap_entry): Likewise.
	(pupa_console_putchar): Likewise.
	(pupa_console_setcursor): Likewise.
	(pupa_getrtsecs): Use pushl instead of push.

	* kern/i386/pc/init.c (pupa_machine_init): Use the scratch
	memory instead of the stack for a mmap entry, because some
	BIOSes may ignore the maximum size and overflow.

	* conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.

	* genmk.rb (PModule#rule): Compile automatically generated
	sources with module-specific CFLAGS as well as other sources.

2002-12-27  Yoshinori K. Okuji  <okuji@enbug.org>

	* configure.ac: Check ld.
	Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
	respectively, before checking endianness and sizes.

	* Makefile.in (LD): New variable.

2002-12-27  Yoshinori K. Okuji  <okuji@enbug.org>

	* Makefile.in (BUILD_CC): CC -> BUILD_CC.

2002-12-27  Yoshinori K. Okuji  <okuji@enbug.org>

	* Changelog: New file.

