1 2009-11-24 Felix Zielcke <fzielcke@z-51.de>
3 * util/getroot.c (grub_util_get_dev_abstraction): Properly use
6 2009-11-24 Felix Zielcke <fzielcke@z-51.de>
8 * util/getroot.c (grub_util_is_dmraid): New function.
9 (grub_util_get_dev_abstraction): Treat dmraid and multipath
10 devices as normal ones, not as LVM.
12 2009-11-23 Robert Millan <rmh.grub@aybabtu.com>
17 2009-11-23 Carles Pina i Estany <carles@pina.cat>
19 * conf/common.rmk: Add grub-gettext_lib target and updates
20 lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS,
22 * gettext/gettext.c: New file. (Reads mo files).
23 * include/grub/file.h (grub_file_pread): New prototype.
24 * include/grub/i18n.h (_): New prototype.
25 * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New
27 * kern/misc.c (grub_gettext_dummy): New function.
28 * normal/menu_text.c: Include <grub/i18n.h>.
29 * normal/menu_text.c (print_timeout): Gettexttize string.
30 * normal/menu_text.c (print_message): Gettexttize string.
31 * po/POTFILES: Add `normal/menu_text.c'.
32 * po/ca.po: Add new translations.
33 * util/grub.d/00_header.in: Define locale_dir and lang. insmod
34 gettext module and defines locale_dir and lang in grub.cfg.
35 * NEWS: Add gettext support.
37 2009-11-23 Robert Millan <rmh.grub@aybabtu.com>
39 * util/hostdisk.c: Include `<grub/i18n.h>'.
40 (find_grub_drive): Use ARRAY_SIZE for map size calculation.
41 (make_device_name): Rewrite using asprintf.
42 (convert_system_partition_to_system_disk): Replace 0 with NULL.
43 (find_system_device): If a device is not found, generate one just
44 by reusing the OS path name.
45 (read_device_map): Make it permissible for device.map not to exist.
47 2009-11-23 Robert Millan <rmh.grub@aybabtu.com>
49 * script/sh/execute.c: Move from here ...
50 * script/execute.c: ... to here. Update all users.
51 * script/sh/function.c: Move from here ...
52 * script/function.c: ... to here. Update all users.
53 * script/sh/lexer.c: Move from here ...
54 * script/lexer.c: ... to here. Update all users.
55 * script/sh/main.c: Move from here ...
56 * script/main.c: ... to here. Update all users.
57 * script/sh/parser.y: Move from here ...
58 * script/parser.y: ... to here. Update all users.
59 * script/sh/script.c: Move from here ...
60 * script/script.c: ... to here. Update all users.
62 2009-11-23 Robert Millan <rmh.grub@aybabtu.com>
64 * configure.ac: Detect all `emu' platforms. Define
65 GRUB_MACHINE_* macros in TARGET_CFLAGS. Remove
66 --enable-grub-emu logic. Disable include/grub/machine
67 symlink on `emu' platforms.
69 * genkernsyms.sh.in: Use @TARGET_CFLAGS@ during symbol generation.
70 * gensymlist.sh.in: Likewise.
72 * include/grub/i386/coreboot/machine.h: Remove file.
73 * include/grub/i386/efi/machine.h: Likewise.
74 * include/grub/i386/ieee1275/machine.h: Likewise.
75 * include/grub/i386/pc/machine.h: Likewise.
76 * include/grub/i386/qemu/machine.h: Likewise.
77 * include/grub/powerpc/ieee1275/machine.h: Likewise.
78 * include/grub/sparc64/ieee1275/machine.h: Likewise.
79 * include/grub/x86_64/efi/machine.h: Likewise.
81 * commands/acpi.c: Remove `<grub/machine/machine.h>'.
82 * commands/halt.c: Likewise.
83 * commands/reboot.c: Likewise.
84 * include/grub/autoefi.h: Likewise.
85 * include/grub/i386/at_keyboard.h: Likewise.
86 * include/grub/i386/kernel.h: Likewise.
87 * include/grub/i386/loader.h: Likewise.
88 * include/grub/i386/pc/memory.h: Likewise.
89 * kern/dl.c: Likewise.
90 * kern/i386/coreboot/init.c: Likewise.
91 * loader/i386/bsd.c: Likewise.
92 * loader/i386/linux.c: Likewise.
93 * loader/multiboot_loader.c: Likewise.
94 * term/i386/pc/serial.c: Likewise.
95 * term/usb_keyboard.c: Likewise.
97 * include/grub/time.h [!GRUB_MACHINE_EMU]: Remove
98 `<grub/machine/machine.h>'
99 [!GRUB_MACHINE_EMU] (GRUB_TICKS_PER_SECOND): New macro.
100 * util/misc.c: Remove `<grub/machine/machine.h>' and
101 `<grub/machine/time.h>'.
103 * Makefile.in (enable_grub_emu): Remove variable.
104 Include $(srcdir)/conf/any-emu.mk for the `emu' platform.
106 * conf/any-emu.rmk: New file.
107 * conf/common.rmk (grub_emu_init.lst, grub_emu_init.h)
108 (grub_emu_init.c): Move from here ...
109 * conf/any-emu.rmk: ... to here.
111 * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-emu'.
112 (grub_emu_SOURCES, grub_emu_LDFLAGS): Move from here ...
113 * conf/any-emu.rmk: ... to here.
115 2009-11-23 Robert Millan <rmh.grub@aybabtu.com>
117 * include/grub/parser.h (grub_parser_register): Document need
119 * normal/main.c (grub_normal_read_line): Simplify prompt string.
120 * script/sh/main.c (grub_sh_parser, GRUB_MOD_INIT(sh)): Rename
123 2009-11-23 Robert Millan <rmh.grub@aybabtu.com>
125 * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass --keyword=N_ to
127 * include/grub/i18n.h (N_): New macro.
128 * util/mkisofs/mkisofs.h: Likewise.
129 * util/mkisofs/mkisofs.c (ld_options): Wrap all translatable strings
131 (usage): Use gettext() to translate help strings when printing them.
133 2009-11-23 Robert Millan <rmh.grub@aybabtu.com>
135 Based on patch from Bean
136 (http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00384.html)
138 * video/efi_fb.c: New file.
139 * conf/i386-efi.rmk (pkglib_MODULES): Add `efi_fb.mod'.
140 (efi_fb_mod_SOURCES, efi_fb_mod_CFLAGS, efi_fb_mod_LDFLAGS): New
142 * conf/x86_64-efi.rmk: Likewise.
144 2009-11-22 Robert Millan <rmh.grub@aybabtu.com>
146 * util/i386/pc/grub-mkimage.c: Ungettextize grub_util_info() strings.
147 * util/i386/pc/grub-setup.c: Likewise.
149 2009-11-21 Samuel Thibault <samuel.thibault@ens-lyon.org>
151 * util/getroot.c [__GNU__]: Include <hurd.h>, <hurd/lookup.h>, and
153 [__GNU__] (grub_guess_root_device): Call file_name_lookup and
154 file_get_storage_info to implement grub_guess_root_device.
156 2009-11-21 Felix Zielcke <fzielcke@z-51.de>
158 * Makefile.in (target): Use make's builtin $(shell) function
159 instead of calling directly $(SHELL) to create the locale directories,
160 inside the $(foreach) function.
162 2009-11-21 Felix Zielcke <fzielcke@z-51.de>
164 * util/grub-mkrescue.in: Print an error and usage if output option
167 2009-11-21 Felix Zielcke <fzielcke@z-51.de>
169 Patch from Loïc Minier <loic.minier@ubuntu.com>.
170 * util/grub.d/30_os-prober.in: Cope with Linux entries where
171 root and /boot are on different devices.
173 2009-11-21 Robert Millan <rmh.grub@aybabtu.com>
175 Fix build for srcdir != objdir.
177 * Makefile.in (po/$(PACKAGE).pot): Rename to ...
178 ($(srcdir)/po/$(PACKAGE).pot): ... this. Run $(XGETTEXT) from
180 ($(foreach lang, $(LINGUAS), po/$(lang).po)): Rename to ...
181 ($(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po): ... this. Use $^
184 2009-11-21 Robert Millan <rmh.grub@aybabtu.com>
186 * util/grub-mkrescue.in: Use source directory direcly (without copiing
187 or hardlinking it). Remove -J option, Joliet is not compatible with
188 multiple source directories.
190 2009-11-21 Carles Pina i Estany <carles@pina.cat>
191 2009-11-21 Robert Millan <rmh.grub@aybabtu.com>
193 * util/grub-mkrescue.in: Recognize `--override-directory' option.
194 (process_input_dir): New function. Process an arbitrary input
196 Misc adjustments to support both "override mode" and system-wide mode.
198 2009-11-20 Felix Zielcke <fzielcke@z-51.de>
200 * configure.ac (UNIFONT_BDF): Rename to ...
201 (FONT_SOURCE): ... this. Update all users.
203 2009-11-20 Felix Zielcke <fzielcke@z-51.de>
205 * configure.ac: Add `/usr/share/fonts/X11/misc/unifont.pcf.gz'
206 to the list of unifont files to look for.
208 2009-11-19 Robert Millan <rmh.grub@aybabtu.com>
210 Patch from Joe Auricchio <jauricchio@gmail.com>
211 * commands/minicmd.c (grub_mini_cmd_clear): New function.
212 (GRUB_MOD_INIT(minicmd)): Register grub_mini_cmd_clear().
213 (GRUB_MOD_FINI(minicmd)): Unregister grub_mini_cmd_clear().
215 2009-11-19 Felix Zielcke <fzielcke@z-51.de>
217 * Makefile.in (install-local): Add a missing backslash.
219 2009-11-19 Felix Zielcke <fzielcke@z-51.de>
221 * include/grub/x86_64/io.h: New file.
223 2009-11-19 Robert Millan <rmh.grub@aybabtu.com>
225 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `gnulib/progname.c'.
226 * util/i386/pc/grub-setup.c: Include `<grub/i18n.h>'.
227 Include `"progname.h"'.
228 (main): Initialize gettext.
229 * util/i386/pc/grub-setup.c: Gettexttize.
230 * util/i386/pc/grub-mkimage.c: Likewise.
232 * Makefile.in (po/*.po): Redefine as ...
233 ($(foreach lang, $(LINGUAS), po/$(lang).po)): ... this.
235 * po/POTFILES: Add `util/i386/pc/grub-setup.c'.
237 2009-11-19 Robert Millan <rmh.grub@aybabtu.com>
239 * conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/progname.c'.
240 * util/mkisofs/mkisofs.c: Include `"progname.h"'.
241 (program_name): Remove.
242 (main): Initialize gettext support.
243 * util/mkisofs/mkisofs.h: Include `<locale.h>'.
244 Include `<libintl.h>'.
247 * util/mkisofs/eltorito.c: Gettexttize.
248 * util/mkisofs/joliet.c: Likewise.
249 * util/mkisofs/mkisofs.c: Likewise.
250 * util/mkisofs/multi.c: Likewise.
251 * util/mkisofs/rock.c: Likewise.
252 * util/mkisofs/tree.c: Likewise.
253 * util/mkisofs/write.c: Likewise.
255 * po/POTFILES: Update with new files.
257 2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
259 * util/mkisofs/eltorito.c: Fix minor mistake in license text.
260 * util/mkisofs/iso9660.h: Likewise.
261 * util/mkisofs/joliet.c: Likewise.
262 * util/mkisofs/mkisofs.c: Likewise.
263 * util/mkisofs/mkisofs.h: Likewise.
264 * util/mkisofs/rock.c: Likewise.
265 * util/mkisofs/tree.c: Likewise.
266 * util/mkisofs/write.c: Likewise.
268 * util/mkisofs/eltorito.c (rcsid): Remove.
269 * util/mkisofs/hash.c: Likewise.
270 * util/mkisofs/joliet.c: Likewise.
271 * util/mkisofs/name.c: Likewise.
272 * util/mkisofs/rock.c: Likewise.
273 * util/mkisofs/tree.c: Likewise.
274 * util/mkisofs/write.c: Likewise.
276 2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
278 * util/mkisofs/match.c: Rewrite from scratch, using a linked list
279 instead of static allocation.
280 * util/mkisofs/match.h: Likewise.
282 2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
284 * po/POTFILES-shell: New file. List `util/grub.d/10_kfreebsd.in'
285 and `util/grub.d/10_linux.in'.
286 * Makefile.in (po/$(PACKAGE).pot): Process `po/POTFILES-shell' for
287 translatable Shell files.
289 2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
291 * Makefile.in ($(srcdir)/aclocal.m4): New target.
293 2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
295 * INSTALL: Document Automake is needed for bootstrap.
296 * po/ca.po: Fix PO-Revision-Date and Language-Team fields.
297 * util/grub.d/10_kfreebsd.in (bindir): New variable.
298 Add gettext initialization.
299 (kfreebsd_entry): Make menuentry output translatable.
301 2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
303 * Makefile.in (XGETTEXT, MSGMERGE, MSGFMT): New variables.
304 (po/$(PACKAGE).pot): Replace `xgettext' with `$(XGETTEXT)'.
305 (po/*.po): Replace `msgmerge' with `$(MSGMERGE)'.
306 (po/%.mo): Replace `msgfmt' with `$(MSGFMT)'.
307 (LINGUAS): Auto-generate using `po/LINGUAS'.
308 * po/LINGUAS: New file.
310 2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
312 * configure.ac: Call AM_GNU_GETTEXT() (defines localedir, among
314 * Makefile.in (CPPFLAGS): Add `-DLOCALEDIR=\"$(localedir)\"'.
315 * util/i386/pc/grub-mkimage.c (main): Issue setlocale() and
316 bindtextdomain() calls for gettext initialization.
318 2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
320 * gnulib/progname.c: New file (imported from Gnulib).
321 * gnulib/progname.h: Likewise.
322 * conf/i386-pc.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'.
323 * util/i386/pc/grub-mkimage.c: Include `"progname.h"'.
324 (usage): Replace `progname' with `program_name'.
325 (main): Use set_program_name() for program name initialization.
327 2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
329 * conf/common.rmk (grub_mkisofs_CFLAGS): Move `-I$(srcdir)/gnulib'
331 * Makefile.in (CPPFLAGS): ... to here.
333 2009-11-16 Robert Millan <rmh.grub@aybabtu.com>
335 * aclocal.m4: Move from here ...
336 * acinclude.m4: ... to here.
337 * autogen.sh: Add call to `aclocal'.
338 * configure.ac: Add AM_INIT_AUTOMAKE() after AC_INIT() call.
340 2009-11-16 Robert Millan <rmh.grub@aybabtu.com>
342 * Makefile.in (CLEANFILES): Add `po/*.mo'.
343 (LINGUAS): New variable.
344 (all-local): Add `$(foreach lang, $(LINGUAS), po/$(lang).mo)'.
345 (install-local): Install MO files.
346 (po/$(PACKAGE).pot, po/*.po, po/%.mo): New rules.
347 * include/grub/i18n.h: New file.
348 * po/POTFILES: New file.
349 * po/ca.po: New file.
350 * util/grub.d/10_linux.in (bindir): New variable.
351 Add gettext initialization.
352 (linux_entry): Make menuentry output translatable.
353 * util/i386/pc/grub-mkimage.c: Include `<grub/i18n.h>'.
354 (usage): Make --help output translatable.
355 (main): Initialize gettext.
357 2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
359 * import_gcry.py: New file (written by Vladimir with minor
361 * autogen.sh: Use import_gcry.py to auto-generate GRUB-ified
363 * INSTALL: Document that Python is required for bootstrap.
365 2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
367 Import ciphers from libgcrypt 1.4.4.
369 * lib/libgcrypt/cipher/ChangeLog
370 * lib/libgcrypt/cipher/ac.c
371 * lib/libgcrypt/cipher/arcfour.c
372 * lib/libgcrypt/cipher/bithelp.h
373 * lib/libgcrypt/cipher/blowfish.c
374 * lib/libgcrypt/cipher/camellia-glue.c
375 * lib/libgcrypt/cipher/camellia.c
376 * lib/libgcrypt/cipher/camellia.h
377 * lib/libgcrypt/cipher/cast5.c
378 * lib/libgcrypt/cipher/cipher.c
379 * lib/libgcrypt/cipher/crc.c
380 * lib/libgcrypt/cipher/des.c
381 * lib/libgcrypt/cipher/dsa.c
382 * lib/libgcrypt/cipher/ecc.c
383 * lib/libgcrypt/cipher/elgamal.c
384 * lib/libgcrypt/cipher/hash-common.c
385 * lib/libgcrypt/cipher/hash-common.h
386 * lib/libgcrypt/cipher/hmac-tests.c
387 * lib/libgcrypt/cipher/md.c
388 * lib/libgcrypt/cipher/md4.c
389 * lib/libgcrypt/cipher/md5.c
390 * lib/libgcrypt/cipher/primegen.c
391 * lib/libgcrypt/cipher/pubkey.c
392 * lib/libgcrypt/cipher/rfc2268.c
393 * lib/libgcrypt/cipher/rijndael-tables.h
394 * lib/libgcrypt/cipher/rijndael.c
395 * lib/libgcrypt/cipher/rmd.h
396 * lib/libgcrypt/cipher/rmd160.c
397 * lib/libgcrypt/cipher/rsa.c
398 * lib/libgcrypt/cipher/seed.c
399 * lib/libgcrypt/cipher/serpent.c
400 * lib/libgcrypt/cipher/sha1.c
401 * lib/libgcrypt/cipher/sha256.c
402 * lib/libgcrypt/cipher/sha512.c
403 * lib/libgcrypt/cipher/tiger.c
404 * lib/libgcrypt/cipher/twofish.c
405 * lib/libgcrypt/cipher/whirlpool.c
407 2009-11-16 Robert Millan <rmh.grub@aybabtu.com>
409 Fix build for systems without error().
411 * gnulib/error.c: New file (imported from Gnulib).
412 * gnulib/error.h: Likewise.
413 * conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/error.c'.
414 * util/mkisofs/mkisofs.c (program_name): Remove `static' qualifier
415 (this variable is now used by error()).
417 2009-11-16 Felix Zielcke <fzielcke@z-51.de>
419 * util/mkisofs/name.c (iso9660_file_length): Use isascii macro
420 instead of relying that char is signed.
422 2009-11-16 Vladimir Serbinenko <phcoder@gmail.com>
424 * fs/i386/pc/pxe.c (grub_pxefs_open): Correctly handle PXE choosing
425 blocksize different from specified.
426 (grub_pxefs_read): Likewise.
428 2009-11-16 Felix Zielcke <fzielcke@z-51.de>
430 Enable ata.mod on x86_64-efi, i386-efi and i386-ieee1275.
432 * disk/ata.c (grub_ata_dumpinfo): Add a cast.
433 (grub_ata_readwrite): Likewise. Update 2 format strings.
434 (grub_atapi_read): Likewise.
436 * conf/i386-coreboot.rmk (pkglib_MODULES): Move `ata.mod' from here ...
437 * conf/i386.rmk (pkglib_MODULES): ... to here ...
438 * conf/x86_64-efi.rmk (pkglib_MODULES): ... and here.
439 * conf/i386-coreboot.rmk (ata_mod_SOURCES, ata_mod_CFLAGS)
440 (ata_mod_LDFLAGS): Move from here ...
441 * conf/i386.rmk: ... to here ...
442 * conf/x86_64-efi.rmk: ... and here.
443 * conf/i386-pc.rmk (pkglib_MODULES): Remove `ata.mod'
444 (ata_mod_SOURCES, ata_mod_CFLAGS, ata_mod_LDFLAGS): Remove.
446 2009-11-16 Robert Millan <rmh.grub@aybabtu.com>
448 Relicense multiboot.h, with RMS' blessing.
450 * include/multiboot.h: Change to X11 license.
452 2009-11-15 Robert Millan <rmh.grub@aybabtu.com>
454 Support --version in grub-mkisofs.
456 * util/mkisofs/mkisofs.c (rcsid): Remove variable.
457 (OPTION_VERSION): New macro.
458 (ld_options): Recognize --version.
459 (usage): Move `program_name' from here ...
460 (program_name): ... to here. Add `static' qualifier.
461 (main): Recognize `OPTION_VERSION'.
463 2009-11-15 Felix Zielcke <fzielcke@z-51.de>
465 * Makefile.in (TARGET_CPPFLAGS): Replace `-isystem=$(srcdir)/include'
466 with `-nostdinc -isystem $(shell $(TARGET_CC) -print-file-name=include)'.
468 2009-11-14 Robert Millan <rmh.grub@aybabtu.com>
470 Fix help2man generation for mkisofs.
472 * util/mkisofs/mkisofs.c (ld_options): Recognize --help.
473 (usage): Send output to stdout (rather than stderr).
475 2009-11-14 Robert Millan <rmh.grub@aybabtu.com>
477 * conf/i386-coreboot.rmk (grub_mkrescue_SOURCES): Replace
478 `util/i386/coreboot/grub-mkrescue.in' with `util/grub-mkrescue.in'.
479 * conf/i386-pc.rmk (grub_mkrescue_SOURCES): Replace
480 `util/i386/pc/grub-mkrescue.in' with `util/grub-mkrescue.in'.
481 (bin_SCRIPTS): Add `grub-mkfloppy'.
482 (grub_mkfloppy_SOURCES): New variable.
484 * util/grub-mkrescue.in: New file.
485 * util/i386/pc/grub-mkfloppy.in: New file.
487 * util/i386/coreboot/grub-mkrescue.in: Remove.
488 * util/i386/pc/grub-mkrescue.in: Remove.
490 2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
492 * include/grub/multiboot.h (struct grub_multiboot_header): Move
494 * include/multiboot.h (struct multiboot_header): ... to here. Update
496 * include/grub/multiboot.h (struct grub_multiboot_info): Move
498 * include/multiboot.h (struct multiboot_info): ... to here. Update
500 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): Move
502 * include/multiboot.h (struct multiboot_mmap_entry): ... to here.
504 * include/grub/multiboot.h (struct grub_mod_list): Move
506 * include/multiboot.h (struct multiboot_mod_list): ... to here.
509 2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
511 * include/multiboot2.h (multiboot_word): Rename from this ...
512 (multiboot2_word): ... to this. Update all users.
513 (multiboot_header): Rename from this ...
514 (multiboot2_header): ... to this. Update all users.
515 (multiboot_tag_header): Rename from this ...
516 (multiboot2_tag_header): ... to this. Update all users.
517 (multiboot_tag_start): Rename from this ...
518 (multiboot2_tag_start): ... to this. Update all users.
519 (multiboot_tag_name): Rename from this ...
520 (multiboot2_tag_name): ... to this. Update all users.
521 (multiboot_tag_module): Rename from this ...
522 (multiboot2_tag_module): ... to this. Update all users.
523 (multiboot_tag_memory): Rename from this ...
524 (multiboot2_tag_memory): ... to this. Update all users.
525 (multiboot_tag_unused): Rename from this ...
526 (multiboot2_tag_unused): ... to this. Update all users.
527 (multiboot_tag_end): Rename from this ...
528 (multiboot2_tag_end): ... to this. Update all users.
530 2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
532 Disable Multiboot2 in i386-ieee1275. It didn't actually work, and on
533 this platform we should support Multiboot1 first.
535 * conf/i386-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'.
536 (multiboot_mod_SOURCES, multiboot_mod_CFLAGS)
537 (multiboot_mod_LDFLAGS, multiboot_mod_ASFLAGS): Remove.
539 2009-11-12 Robert Millan <rmh.grub@aybabtu.com>
541 * util/mkisofs/eltorito.c (init_boot_catalog): Handle return code
542 of write calls (converting them to fwrite() if they aren't already).
543 (get_torito_desc): Likewise.
544 * util/mkisofs/rock.c (generate_rock_ridge_attributes): Likewise.
546 2009-11-12 Robert Millan <rmh.grub@aybabtu.com>
548 * util/i386/pc/grub-install.in: Move from here ...
549 * util/grub-install.in: ... to here. Update all users.
551 2009-11-11 Colin Watson <cjwatson@ubuntu.com>
553 * util/powerpc/ieee1275/grub-mkrescue.in: Fix --version output.
555 2009-11-11 Robert Millan <rmh.grub@aybabtu.com>
557 Support for El Torito without floppy emulation.
559 * util/mkisofs/eltorito.c: Include `<errno.h>'.
560 (init_boot_catalog): Improve error handling.
561 (get_torito_desc): Don't use floppy emulation unless requested by
562 user. Patch boot information table when requested via
564 * util/mkisofs/iso9660.h (struct eltorito_boot_info): New struct.
565 * util/mkisofs/mkisofs.c (use_eltorito_emul_floppy)
566 (use_boot_info_table): New variables.
567 (OPTION_BOOT_INFO_TABLE, OPTION_NO_EMUL_BOOT)
568 (OPTION_ELTORITO_EMUL_FLOPPY): New macros.
569 (ld_options): Handle `-boot-info-table', `-no-emul-boot' and
570 `--eltorito-emul-floppy'.
571 (main): Handle `OPTION_BOOT_INFO_TABLE', `OPTION_NO_EMUL_BOOT'
572 and `OPTION_ELTORITO_EMUL_FLOPPY'.
573 * util/mkisofs/mkisofs.h (use_eltorito_emul_floppy)
574 (use_boot_info_table, get_731): New prototypes.
575 * util/mkisofs/write.c (get_731): New function.
577 2009-11-11 Felix Zielcke <fzielcke@z-51.de>
579 Fix the generation of the man page.
581 * util/pc/i386/grub-install.in: Source
582 `${libdir}/grub/grub-mkconfig_lib' after options have been parsed.
584 2009-11-11 Robert Millan <rmh.grub@aybabtu.com>
586 Large file support for grub-mkisofs.
588 * conf/common.rmk (grub_mkisofs_CFLAGS): Add `-D_FILE_OFFSET_BITS=64'.
589 * util/mkisofs/mkisofs.c (next_extent, last_extent)
590 (session_start): Upgrade type to `uint64_t'. Update all users.
591 * util/mkisofs/mkisofs.h: Include `<stdint.h>'.
592 (struct directory_entry): Upgrade type of `starting_block' and
593 `size' to `uint64_t'. Update all users.
594 (struct deferred): Remove unused structure.
595 (xfwrite): Upgrade type of `count' and `size' to `uint64_t'.
597 * util/mkisofs/tree.c (stat_filter, lstat_filter): Return -1 when
598 file is larger than `UINT32_MAX'.
599 * util/mkisofs/write.c (xfwrite): Upgrade type of `count' and
600 `size' to `uint64_t'. Update all users. Fix handling of fwrite()
602 (struct deferred_write): Upgrade type of `extent' and `size' to
603 `uint64_t'. Update all users.
604 (last_extent_written): Upgrade type to `uint64_t'. Update all
606 (write_one_file): Upgrade type of `count' and `size' to `uint64_t'.
607 Update all users. Upgrade type of `remain' to `int64_t' and
608 `use' to `size_t'. Use error() to handle fread() errors.
609 (write_files): Rely on write_one_file() rather than calling
612 2009-11-09 Felix Zielcke <fzielcke@z-51.de>
614 * util/mkisofs/mkisofs.c (ld_options): Fix a spelling mistake.
616 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
618 * util/mkisofs/fnmatch.c: Remove.
619 * util/mkisofs/getopt1.c: Likewise.
620 * util/mkisofs/getopt.c: Likewise.
621 * conf/common.rmk (grub_mkisofs_SOURCES): Replace
622 `util/mkisofs/fnmatch.c', `util/mkisofs/getopt1.c' and
623 `util/mkisofs/getopt.c' with `gnulib/fnmatch.c',
624 `gnulib/getopt1.c' and `gnulib/getopt.c'.
625 (grub_mkisofs_CFLAGS): Add `-I$(srcdir)/gnulib'.
627 * configure.ac: Detect `mingw32msvc' host_os.
628 Check for lstat(), getuid() and getgid().
630 * util/mkisofs/joliet.c: Include `<stdint.h>'. Replace all
631 instances of `u_char' with `uint8_t'.
633 * util/mkisofs/mkisofs.h: Include `<sys/stat.h>'.
634 [!HAVE_GETUID] (getuid): New function (stub).
635 [!HAVE_GETGID] (getgid): Likewise.
636 [!HAVE_LSTAT] (lstat): Likewise.
637 [!S_IROTH] (S_IROTH): New macro (dummy).
638 [!S_IRGRP] (S_IRGRP): Likewise.
640 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
642 * gnulib/fnmatch_loop.c (EXT): Fix warning (signed and unsigned type in
643 conditional expression).
645 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
649 * gnulib/fnmatch.c: New file.
650 * gnulib/fnmatch.h: Likewise.
651 * gnulib/fnmatch_loop.c: Likewise.
652 * gnulib/getopt.c: Likewise.
653 * gnulib/getopt.h: Likewise.
654 * gnulib/getopt1.c: Likewise.
655 * gnulib/getopt_int.h: Likewise.
656 * gnulib/gettext.h: Likewise.
658 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
660 * normal/dyncmd.c (read_command_list): Replace `0' with `NULL'.
661 * normal/handler.c (read_handler_list): Likewise.
663 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
667 * kern/command.c (grub_register_command_prio): Use
668 grub_zalloc() instead of explicitly zeroing data.
669 * kern/list.c: Include `<grub/mm.h>'.
670 (grub_named_list_find): Replace `0' with `NULL'.
671 * normal/autofs.c (struct grub_fs_module_list): Remove ad-hoc type.
672 (fs_module_list): Change type to `grub_named_list_t'. Update all
674 * normal/dyncmd.c (read_command_list): Add space between function
675 call and parenthesis.
676 * normal/handler.c (read_handler_list): Likewise.
678 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
680 * normal/auth.c (punishment_delay): Moved from here ...
681 (grub_auth_strcmp): ... to here (inside function).
683 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
685 * include/grub/list.h (struct grub_named_list): Remove `const'
686 qualifier from `name'.
687 (struct grub_prio_list): Likewise.
689 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
691 * normal/auth.c: Include `<grub/time.h>'.
692 (grub_auth_strcmp): Replace `strcmp' with `grub_strcmp'.
694 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
696 * normal/auth.c (punishment_delay): New variable.
697 (grub_auth_strcmp): Rewrite using grub_get_time_ms ().
698 (grub_auth_check_authentication): Punish failed login attempts with
699 an incremental (2^N) delay.
701 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
703 * conf/common.rmk (grub_mkisofs_CFLAGS): Prefix include
706 2009-11-09 Vladimir Serbinenko <phcoder@gmail.com>
708 * normal/auth.c (grub_auth_strcmp): Fixed incorrect variable usage.
710 2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
712 * util/i386/coreboot/grub-mkrescue.in: New file.
713 * conf/i386-coreboot.rmk (bin_SCRIPTS, grub_mkrescue_SOURCES): New
716 * conf/common.rmk (bin_UTILITIES): Add `grub-mkisofs'.
717 (grub_mkisofs_SOURCES, grub_mkisofs_CFLAGS): New variables.
718 * configure.ac: Add header and function checks to satisfy grub-mkisofs
720 * util/mkisofs/defaults.h: New file.
721 * util/mkisofs/eltorito.c: Likewise.
722 * util/mkisofs/exclude.h: Likewise.
723 * util/mkisofs/fnmatch.c: Likewise.
724 * util/mkisofs/getopt.c: Likewise.
725 * util/mkisofs/getopt1.c: Likewise.
726 * util/mkisofs/hash.c: Likewise.
727 * util/mkisofs/include/fctldefs.h: Likewise.
728 * util/mkisofs/include/mconfig.h: Likewise.
729 * util/mkisofs/include/prototyp.h: Likewise.
730 * util/mkisofs/include/statdefs.h: Likewise.
731 * util/mkisofs/iso9660.h: Likewise.
732 * util/mkisofs/joliet.c: Likewise.
733 * util/mkisofs/match.c: Likewise.
734 * util/mkisofs/match.h: Likewise.
735 * util/mkisofs/mkisofs.c: Likewise.
736 * util/mkisofs/mkisofs.h: Likewise.
737 * util/mkisofs/multi.c: Likewise.
738 * util/mkisofs/name.c: Likewise.
739 * util/mkisofs/rock.c: Likewise.
740 * util/mkisofs/tree.c: Likewise.
741 * util/mkisofs/write.c: Likewise.
743 2009-11-09 Vladimir Serbinenko <phcoder@gmail.com>
745 * normal/auth.c (grub_auth_strcmp): Fix bug which resulted in function
748 2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
750 * util/i386/pc/grub-mkrescue.in: Fix miss-identification as
751 `grub-mkimage' (and use $0 when possible).
753 2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
755 * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve
756 error message for excessively large memory map.
758 2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
760 * autogen.sh: Use `sh gendistlist.sh' to avoid reliing on
763 2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
765 * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve error
766 message for coreboot users.
768 2009-11-07 Robert Millan <rmh.grub@aybabtu.com>
770 Fix build with GNU gold.
772 * conf/i386-pc.rmk (boot_img_LDFLAGS, pxeboot_img_LDFLAGS)
773 (diskboot_img_LDFLAGS, lnxboot_img_LDFLAGS)
774 (cdboot_img_LDFLAGS): Prepend `0x' qualifier to hexadecimal
776 * aclocal.m4: Likewise.
778 2009-11-04 Felix Zielcke <fzielcke@z-51.de>
780 * configure.ac (AC_PREREQ): Bump to 2.59d.
781 * INSTALL: Make it more clear when Autoconf and Ruby are
782 needed and when to run `./autogen.sh'.
784 2009-11-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
786 * util/grub.d/30_os-prober.in: Restore default behavior for unsupported
789 2009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
791 * util/grub.d/30_os-prober.in: Add GNU/Hurd support
793 2009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
795 * util/grub.d/10_hurd.in: Drop /dev/ prefix from root device path before
796 giving it to GNU Mach.
798 2009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
800 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Subtract 1 from
801 GNU partition number to get internal GRUB partition number.
803 2009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
805 * util/grub.d/10_hurd.in: Call prepare_grub_to_access_device
806 ${GRUB_DEVICE_BOOT} before loading /boot kernel.
808 2009-11-01 Robert Millan <rmh.grub@aybabtu.com>
810 Based on patch from BVK Chaitanya <bvk.groups@gmail.com>
811 * kern/misc.c (grub_strchr, grub_strrchr): Fix to handle c == '\0'
814 2009-11-01 Felix Zielcke <fzielcke@z-51.de>
816 * Makefile.in (TARGET_CPPFLAGS): Add `-I$(srcdir)/include'.
818 2009-10-30 Robert Millan <rmh.grub@aybabtu.com>
822 * Makefile.in (TARGET_CPPFLAGS): Replace `-nostdinc' with
823 `-isystem=$(srcdir)/include'.
825 2009-10-30 Robert Millan <rmh.grub@aybabtu.com>
827 * util/i386/pc/grub-install.in: Remove hint that device.map should be
828 checked (grub-install doesn't currently rely on it).
830 2009-10-29 Robert Millan <rmh.grub@aybabtu.com>
834 * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): Moved from here ...
835 * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here.
836 * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): ... and here.
837 * conf/i386-ieee1275.rmk: Likewise.
838 * conf/i386-pc.rmk: Likewise.
839 * conf/powerpc-ieee1275.rmk: Likewise.
840 * conf/sparc64-ieee1275.rmk: Likewise.
841 * conf/x86_64-efi.rmk: Likewise.
843 2009-10-28 Robert Millan <rmh.grub@aybabtu.com>
845 * Makefile.in (TARGET_CPPFLAGS): Add `-nostdinc'.
847 2009-10-28 Robert Millan <rmh.grub@aybabtu.com>
849 * include/grub/misc.h: Stop checking for APPLE_CC.
851 2009-10-28 Robert Millan <rmh.grub@aybabtu.com>
853 * kern/i386/coreboot/init.c (grub_exit): Reimplement in a way that
854 doesn't cause an infinite call loop.
856 2009-10-28 Felix Zielcke <fzielcke@z-51.de>
858 * commands/acpi.c (grub_cmd_acpi): Fix the out of memory error
861 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
863 * autogen.sh: Support addition of external modules via `GRUB_CONTRIB'
865 * Makefile.in: Likewise.
867 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
869 * gendistlist.sh: Simplify .svn check. Skip .bzr as well.
871 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
873 * Makefile.in (RMKFILES): Rewrite using $(wildcard).
875 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
877 * disk/scsi.c: Remove `<grub/machine/kernel.h>' (not needed).
879 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
881 * gensymlist.sh.in (COMPILE_TIME_ASSERT): Copy macro declaration
883 * include/grub/misc.h (COMPILE_TIME_ASSERT): ... to here.
885 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
887 * Makefile.in (docs/grub.info): Use make syntax to ignore errors
888 in $(MAKEINFO) invocation. This makes it clear in output that
889 errors are being ignored.
891 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
893 * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): Moved
895 * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here.
896 * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): Remove.
897 * conf/i386-ieee1275.rmk: Likewise.
898 * conf/i386-pc.rmk: Likewise.
899 * conf/powerpc-ieee1275.rmk: Likewise.
900 * conf/sparc64-ieee1275.rmk: Likewise.
901 * conf/x86_64-efi.rmk: Likewise.
903 2009-10-26 Colin Watson <cjwatson@ubuntu.com>
905 * util/grub-editenv.c (main): If only a command is given, use
906 DEFAULT_DIRECTORY "/" GRUB_ENVBLK_DEFCFG as a default file name.
907 (usage): FILENAME is now optional and has a default.
909 2009-10-26 Colin Watson <cjwatson@ubuntu.com>
911 Improve grub-mkconfig performance when there are several menu
912 entries on a single filesystem.
914 * util/grub.d/10_linux.in (linux_entry): Cache the output of
915 prepare_grub_to_access_device.
916 * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
917 * util/grub.d/30_os-prober.in: Likewise.
919 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
921 * util/grub.d/10_freebsd.in: Remove.
922 * util/grub.d/10_kfreebsd.in: New file (based on 10_linux.in).
923 * configure.ac: Set host_kernel=kfreebsd for FreeBSD and GNU/kFreeBSD.
925 2009-10-26 Robert Millan <rmh.grub@aybabtu.com>
927 * docs/grub.cfg: Fix example usage of *BSD loaders.
929 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
931 * util/i386/pc/grub-setup.c (setup): Add missing parameter to
932 grub_util_error() call.
934 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
936 * include/grub/fs.h [GRUB_UTIL] (struct grub_fs): Add
937 `reserved_first_sector' member.
938 * fs/ext2.c [GRUB_UTIL] (grub_ext2_fs): Initialize
939 `reserved_first_sector' to 1.
940 * fs/fat.c [GRUB_UTIL] (grub_fat_fs): Likewise.
941 * fs/ntfs.c [GRUB_UTIL] (grub_ntfs_fs): Likewise.
942 * fs/hfsplus.c [GRUB_UTIL] (grub_hfsplus_fs): Likewise.
943 * util/i386/pc/grub-setup.c (setup): Add safety check that probes for
944 filesystems which begin at first sector.
945 (options): New option --skip-fs-probe.
946 (main): Handle --skip-fs-probe and pass it to setup().
948 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
950 * include/grub/misc.h: Fix wrong evaluation of APPLE_CC.
951 (memset): Fix function prototype.
953 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
954 2009-10-25 Vasily Averin <vvs@parallels.com>
956 * fs/ext2.c (grub_ext2_iterate_dir): Avoid infinite loop when
957 `dirent.direntlen == 0'.
959 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
961 * fs/cpio.c [MODE_USTAR]: Initialize `tar' module instead of
963 [! MODE_USTAR]: Initialize `cpio' module instead of `tar'.
965 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
967 * configure.ac: Check for `__ashldi3', `__ashrdi3', `__lshrdi3',
968 `__trampoline_setup' and `__ucmpdi2'.
969 * include/grub/powerpc/libgcc.h: Only export symbols for functions
970 that libgcc provides.
972 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
974 * include/grub/powerpc/libgcc.h (memset): Remove function prototype.
975 * include/grub/sparc64/libgcc.h (memset): Likewise.
976 * include/grub/misc.h (memset, memcmp): New function prototypes.
978 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
980 * fs/cpio.c [MODE_USTAR]: Finish `tar' module instead of
982 [! MODE_USTAR]: Finish `cpio' module instead of `tar'.
984 2009-10-25 Robert Millan <rmh.grub@aybabtu.com>
986 Patch from Samuel Thibault <samuel.thibault@ens-lyon.org>
987 * docs/grub.cfg: Compensate for recent change in multiboot
988 loader (since 2009-08-14 it won't pass filename to payload).
989 * util/grub.d/10_hurd.in: Likewise.
991 2009-10-21 Felix Zielcke <fzielcke@z-51.de>
993 * config.guess: Update to latest version from config git
995 * config.sub: Likewise.
997 2009-10-20 Robert Millan <rmh.grub@aybabtu.com>
999 Fix build on sparc64.
1001 * configure.ac: Perform checks for libgcc symbols before
1002 adding `-nostdlib' to LDFLAGS.
1004 2009-10-16 Vladimir Serbinenko <phcoder@gmail.com>
1006 Let user specify OpenBSD root device.
1008 * loader/i386/bsd.c (openbsd_root): New variable.
1009 (openbsd_opts): New option 'root'.
1010 (OPENBSD_ROOT_ARG): New macro.
1011 (grub_openbsd_boot): Use 'openbsd_root'.
1012 (grub_cmd_openbsd): Fill 'openbsd_root'.
1014 2009-10-16 Robert Millan <rmh.grub@aybabtu.com>
1016 * NEWS: Misc adjustments.
1018 2009-10-16 Vladimir Serbinenko <phcoder@gmail.com>
1020 * NEWS: Mentioned XNU, ACPI, gptsync, password and parttool.
1022 2009-10-16 Robert Millan <rmh.grub@aybabtu.com>
1024 * configure.ac: Bump version to 1.97.
1026 2009-10-16 Colin Watson <cjwatson@ubuntu.com>
1028 * configure.ac (TARGET_CFLAGS): Add -mno-mmx -mno-sse -mno-sse2
1029 -mno-3dnow on x86 architectures. Some toolchains enable these
1030 features by default, but they rely on registers that aren't enabled
1031 in GRUB. Thanks to Vladimir Serbinenko for the suggestion.
1033 2009-10-15 Robert Millan <rmh.grub@aybabtu.com>
1035 Make entry text a bit more readable.
1037 * util/grub.d/10_linux.in: Add `with' before `Linux'.
1039 2009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
1041 * loader/i386/pc/xnu.c (grub_xnu_set_video): Fix loading splash image.
1043 2009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
1045 * commands/xnu_uuid.c (grub_cmd_xnu_uuid): Remove duplicated bitwise
1048 2009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
1050 * configure.ac: Add missing dollar.
1052 2009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
1054 Revert 2009-06-10 Pavel Roskin <proski@gnu.org>
1056 * configure.ac: Put checks for __bswapsi2 and __bswapdi2.
1057 * include/grub/powerpc/libgcc.h: Don't use weak attribute for all
1059 * include/grub/sparc64/libgcc.h: Likewise. Use
1060 preprocessor conditionals.
1062 2009-10-14 Robert Millan <rmh.grub@aybabtu.com>
1064 * conf/common.rmk (grub-dumpbios): Remove rule.
1065 (sbin_SCRIPTS, CLEANFILES): Remove `grub-dumpbios'.
1066 * util/grub-dumpbios.in: Remove file.
1068 2009-10-14 Robert Millan <rmh.grub@aybabtu.com>
1070 Refer to kernel of FreeBSD "kFreeBSD" to avoid confusion between
1071 the Operating System (FreeBSD) and its kernel (kernel of FreeBSD).
1073 * loader/i386/bsd.c (grub_freebsd_boot): Read kernel environment
1074 from "kFreeBSD" namespace (rather than "FreeBSD"). Update all
1077 (GRUB_MOD_INIT (bsd)): Rename "freebsd" command to "kfreebsd",
1078 "openbsd" to "kopenbsd", "netbsd" to "knetbsd", "freebsd_loadenv"
1079 to "kfreebsd_loadenv", "freebsd_module" to "kfreebsd_module",
1080 and "freebsd_module_elf" to "kfreebsd_module_elf". Update all
1083 2009-10-12 Robert Millan <rmh.grub@aybabtu.com>
1085 * term/tparm.c: Switch to GPLv3.
1087 2009-10-09 Robert Millan <rmh.grub@aybabtu.com>
1089 * include/grub/i386/cpuid.h: Add header protection.
1091 2009-10-09 Robert Millan <rmh.grub@aybabtu.com>
1093 Fail gracefuly when attempting to load 64-bit kFreeBSD on IA32 CPU.
1095 * include/grub/i386/cpuid.h: New file.
1096 * commands/i386/cpuid.c: Include `<grub/i386/cpuid.h>'.
1097 (has_longmode): Rename to ...
1098 (grub_cpuid_has_longmode): ... this. Update all users. Remove
1100 * loader/i386/bsd.c: Include `<grub/i386/cpuid.h>'.
1101 (grub_bsd_load_elf): Fail if load of 64-bit kernel was requested
1102 on a CPU that doesn't implement AMD64 instruction set.
1104 2009-10-06 Colin Watson <cjwatson@ubuntu.com>
1106 * Makefile.in (docs/stamp-vti): Depend on configure.ac as well, so
1107 that version.texi is rebuilt on version number changes.
1109 2009-10-06 Colin Watson <cjwatson@ubuntu.com>
1111 * Makefile.in: Don't set info_INFOS unless makeinfo was found.
1114 2009-10-06 Colin Watson <cjwatson@ubuntu.com>
1116 * util/i386/pc/grub-install.in: Source
1117 ${libdir}/grub/grub-mkconfig_lib before option processing, in order
1118 that the --grub-probe option will work.
1119 * util/sparc64/ieee1275/grub-install.in: Likewise.
1121 2009-10-05 Robert Millan <rmh.grub@aybabtu.com>
1123 * configure.ac: Bump version to 1.97~beta4.
1125 2009-10-03 Robert Millan <rmh.grub@aybabtu.com>
1127 Resync grub-mkdevicemap in x86_64-efi.
1129 * conf/x86_64-efi.rmk (sbin_UTILITIES): Enable `grub-mkdevicemap'.
1130 (grub_mkdevicemap_SOURCES): Add missing `util/deviceiter.c' and
1133 2009-10-01 Colin Watson <cjwatson@ubuntu.com>
1135 * util/grub-editenv.c (create_envblk_file): Write new block with a
1136 .new suffix and then rename it into place, to ensure atomic
1139 2009-09-28 Robert Millan <rmh.grub@aybabtu.com>
1141 Do not automatically install headers.
1143 * Makefile.in (include_DATA): Remove. Update all users.
1145 2009-09-26 Robert Millan <rmh.grub@aybabtu.com>
1147 * conf/common.rmk (pkglib_MODULES): Remove `lua.mod'.
1148 (lua_mod_SOURCES, lua_mod_CFLAGS, lua_mod_LDFLAGS): Remove.
1150 * util/osdetect.lua: Remove.
1151 * script/lua/lauxlib.c: Likewise.
1152 * script/lua/ldebug.c: Likewise.
1153 * script/lua/grub_main.c: Likewise.
1154 * script/lua/lauxlib.h: Likewise.
1155 * script/lua/ldebug.h: Likewise.
1156 * script/lua/ltablib.c: Likewise.
1157 * script/lua/liolib.c: Likewise.
1158 * script/lua/lstrlib.c: Likewise.
1159 * script/lua/lualib.h: Likewise.
1160 * script/lua/ldo.c: Likewise.
1161 * script/lua/ldump.c: Likewise.
1162 * script/lua/ldo.h: Likewise.
1163 * script/lua/loslib.c: Likewise.
1164 * script/lua/lundump.c: Likewise.
1165 * script/lua/grub_lib.c: Likewise.
1166 * script/lua/ldblib.c: Likewise.
1167 * script/lua/lundump.h: Likewise.
1168 * script/lua/lmem.c: Likewise.
1169 * script/lua/grub_lib.h: Likewise.
1170 * script/lua/lmathlib.c: Likewise.
1171 * script/lua/lstate.c: Likewise.
1172 * script/lua/ltm.c: Likewise.
1173 * script/lua/lvm.c: Likewise.
1174 * script/lua/lmem.h: Likewise.
1175 * script/lua/lstate.h: Likewise.
1176 * script/lua/ltm.h: Likewise.
1177 * script/lua/ltable.c: Likewise.
1178 * script/lua/lvm.h: Likewise.
1179 * script/lua/llex.c: Likewise.
1180 * script/lua/lgc.c: Likewise.
1181 * script/lua/grub_lua.h: Likewise.
1182 * script/lua/loadlib.c: Likewise.
1183 * script/lua/lfunc.c: Likewise.
1184 * script/lua/lopcodes.c: Likewise.
1185 * script/lua/lparser.c: Likewise.
1186 * script/lua/ltable.h: Likewise.
1187 * script/lua/llex.h: Likewise.
1188 * script/lua/lgc.h: Likewise.
1189 * script/lua/lfunc.h: Likewise.
1190 * script/lua/lbaselib.c: Likewise.
1191 * script/lua/lopcodes.h: Likewise.
1192 * script/lua/lparser.h: Likewise.
1193 * script/lua/lzio.c: Likewise.
1194 * script/lua/linit.c: Likewise.
1195 * script/lua/lobject.c: Likewise.
1196 * script/lua/llimits.h: Likewise.
1197 * script/lua/lstring.c: Likewise.
1198 * script/lua/lzio.h: Likewise.
1199 * script/lua/lapi.c: Likewise.
1200 * script/lua/lcode.c: Likewise.
1201 * script/lua/lua.h: Likewise.
1202 * script/lua/lobject.h: Likewise.
1203 * script/lua/lstring.h: Likewise.
1204 * script/lua/lapi.h: Likewise.
1205 * script/lua/lcode.h: Likewise.
1206 * script/lua/luaconf.h: Likewise.
1208 2009-09-26 Colin Watson <cjwatson@ubuntu.com>
1210 * docs/grub.texi (Command-line and menu entry commands): Document
1211 date and echo commands.
1213 2009-09-24 Pavel Roskin <proski@gnu.org>
1215 * include/grub/kernel.h (struct grub_module_header): Remove
1216 `grub_module_header_types'. Make `type' unsigned. Make `size'
1217 32-bit on all platforms.
1218 * util/elf/grub-mkimage.c (load_modules): Treat `type' as an
1219 8-bit field. Use grub_host_to_target32() for `size'.
1220 * util/i386/efi/grub-mkimage.c (make_mods_section): Likewise.
1221 * util/i386/pc/grub-mkimage.c (generate_image): Likewise.
1222 * util/sparc64/ieee1275/grub-mkimage.c (generate_image): Likewise.
1224 2009-09-24 Robert Millan <rmh.grub@aybabtu.com>
1226 Fix "lost keypress" bug in at_keyboard.
1228 * term/i386/pc/at_keyboard.c (grub_at_keyboard_checkkey): New function.
1229 Checks for readyness of input buffer (without flushing it).
1230 (grub_at_keyboard_term): Use grub_at_keyboard_checkkey() rather
1231 than grub_at_keyboard_getkey_noblock() for `checkkey' struct member.
1233 2009-09-24 Robert Millan <rmh.grub@aybabtu.com>
1235 * util/i386/pc/grub-mkimage.c (generate_image): Enclose BIOS-specific
1236 size check within GRUB_MACHINE_PCBIOS section.
1238 2009-09-24 Robert Millan <rmh.grub@aybabtu.com>
1240 * include/grub/i386/at_keyboard.h (KEYBOARD_ISREADY): Negate
1242 * term/i386/pc/at_keyboard.c (grub_keyboard_getkey): Negate
1243 KEYBOARD_ISREADY check.
1244 (grub_at_keyboard_checkkey): Rename to ...
1245 (grub_at_keyboard_getkey_noblock): ... this. Update all users.
1246 Remove gratuitous cast.
1248 2009-09-23 Colin Watson <cjwatson@ubuntu.com>
1250 * configure.ac: Call AC_PROG_MKDIR_P.
1251 * Makefile.in (docs/stamp-vti): Create docs directory. Create
1252 version.texi in $(builddir) rather than $(srcdir).
1253 (docs/grub.info): Create docs directory. Prepend $(builddir)/docs
1254 to makeinfo's @include search path.
1256 2009-09-23 Felix Zielcke <fzielcke@z-51.de>
1258 * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Cope with `*.dpkg-*'
1260 2009-09-23 Felix Zielcke <fzielcke@z-51.de>
1262 * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Add support
1265 2009-09-21 Colin Watson <cjwatson@ubuntu.com>
1267 Build info documentation. Some code borrowed from Automake.
1269 * configure.ac: Check for makeinfo.
1270 * Makefile.in (MAKEINFO, INFOS, info_INFOS): New variables.
1271 (MAINTAINER_CLEANFILES): Add $(INFOS), docs/stamp-vti, and
1273 (MOSTLYCLEANFILES): Add vti.tmp.
1274 (docs/version.texi, docs/stamp-vti): Update automatically.
1275 (docs/grub.info): Build info documentation. Use --force and ignore
1277 (all-local): Add $(INFOS).
1278 (install-local): Install info files.
1279 (uninstall): Uninstall info files.
1280 * docs/version.texi: Remove from revision control. This file is
1281 automatically generated on build now.
1282 * gendistlist.sh: Add `*.info'.
1284 2009-09-21 Felix Zielcke <fzielcke@z-51.de>
1286 * kern/term.c: Fix indentation.
1288 2009-09-21 Felix Zielcke <fzielcke@z-51.de>
1290 * util/hostdisk.c: Fix a comment.
1292 2009-09-20 Robert Millan <rmh.grub@aybabtu.com>
1294 Fix regression introduced in r2539.
1296 * term/usb_keyboard.c (USB_HID_DEVICE_TO_HOST): Change from 0x61
1299 2009-09-19 Colin Watson <cjwatson@ubuntu.com>
1301 * util/grub.d/30_os-prober.in: Don't throw away stderr from
1302 os-prober. Under normal operation, it does not print anything to
1303 stderr; if it does, we need to debug it, and throwing away stderr
1304 makes that excessively difficult.
1306 2009-09-16 Vladimir Serbinenko <phcoder@gmail.com>
1308 * mmap/mmap.c (grub_cmd_badram): Fix off-by-one error.
1310 2009-09-16 Robert Millan <rmh.grub@aybabtu.com>
1312 * aclocal.m4 (AC_LANG_PROGRAM): New macro. Overrides stock
1313 AC_LANG_PROGRAM from autoconf.
1314 (grub_ASM_USCORE, grub_PROG_OBJCOPY_ABSOLUTE): Add missing
1315 prototypes (fixes warning).
1317 * configure.ac: Add `-Werror' to TARGET_CFLAGS unless
1318 `--disable-werror' was used.
1320 2009-09-16 Robert Millan <rmh.grub@aybabtu.com>
1322 * partmap/msdos.c (pc_partition_map_iterate): Fix possible use of
1323 uninitialized `lastaddr'.
1325 2009-09-15 Vladimir Serbinenko <phcoder@gmail.com>
1327 * partmap/msdos.c (pc_partition_map_iterate): Detect and break loops.
1329 2009-09-14 Colin Watson <cjwatson@ubuntu.com>
1331 * commands/test.c (get_fileinfo): Return immediately if
1332 grub_fs_probe fails.
1334 2009-09-14 José Martínez <xosemp@gmail.com>
1336 * commands/acpi.c (grub_cmd_acpi): Fix loading ACPI tables from file.
1338 2009-09-14 Colin Watson <cjwatson@ubuntu.com>
1340 * util/grub.d/30_os-prober.in: Cope with Windows 7 in os-prober
1343 2009-09-13 Robert Millan <rmh.grub@aybabtu.com>
1345 * configure.ac: Remove --enable-grub-pe2elf. Only build
1346 grub-pe2elf when needed by the build system itself.
1347 * conf/common.rmk: Remove $(enable_grub_pe2elf) check.
1349 2009-09-12 Robert Millan <rmh.grub@aybabtu.com>
1351 * configure.ac: Bump version to 1.97~beta3.
1352 * docs/version.texi: Likewise.
1354 2009-09-12 Robert Millan <rmh.grub@aybabtu.com>
1356 * video/i386/pc/vbe.c (grub_vbe_get_video_mode_info): Move packed
1357 mode special handling (grub_vbe_bios_set_dac_palette_width() call)
1359 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS]
1360 (grub_linux_setup_video): ... to here (with some adjustments).
1362 2009-09-12 Robert Millan <rmh.grub@aybabtu.com>
1364 Fix memory corruption issue (spotted by Colin Watson).
1366 * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette): Fix bug
1367 causing returned size to be stored in an incorrect memory location.
1368 Fix use of uninitialized value when storing the returned size.
1370 2009-09-12 Yves Blusseau <blusseau@zetam.org>
1372 Change clean rules to properly remove files
1374 * genmk.rb: add new clean rules
1375 * Makefile.in (clean): add the new targets
1376 (mostlyclean): likewise
1378 2009-09-11 Colin Watson <cjwatson@ubuntu.com>
1380 * include/grub/ntfs.h (struct grub_fshelp_node): Change `size'
1382 * fs/ntfs.c (init_file): Understand 64-bit sizes for
1385 2009-09-11 Colin Watson <cjwatson@ubuntu.com>
1387 * configure.ac: Don't look for help2man when cross-compiling. Fixes
1390 2009-09-10 Felix Zielcke <fzielcke@z-51.de>
1392 * util/grub-mkconfig.in: Make the created config mode 400 and
1393 print a warning if it fails.
1395 2009-09-10 Robert Millan <rmh.grub@aybabtu.com>
1397 * util/grub.d/40_custom.in: Ask user to type custom entries below
1398 comment, rather than below 'exec tail' line.
1400 2009-09-10 Colin Watson <cjwatson@ubuntu.com>
1402 * util/grub.d/40_custom.in: Make sure that the explanatory text is
1403 visible in grub.cfg.
1405 2009-09-10 Colin Watson <cjwatson@ubuntu.com>
1407 * util/grub.d/40_custom.in: Make it a little clearer how to use this
1410 2009-09-10 Felix Zielcke <fzielcke@z-51.de>
1412 * docs/grub.cfg: Add an example menu entry for memtest86+.
1414 2009-09-09 Felix Zielcke <fzielcke@z-51.de>
1416 * config.guess: Update to latest version from config git.
1417 * config.sub: Likewise.
1419 2009-09-08 Colin Watson <cjwatson@ubuntu.com>
1421 * script/sh/execute.c (grub_script_execute_cmdline): Set "?" in
1422 unknown-command case. Fixes bug #27320.
1424 2009-09-08 Felix Zielcke <fzielcke@z-51.de>
1426 * kern/rescue_parser.c (grub_rescue_parse_line): Only suggest to try
1427 `help' if the command exists.
1429 2009-09-06 Robert Millan <rmh.grub@aybabtu.com>
1431 * INSTALL: Require GCC 4.1.3 or later.
1433 2009-09-06 Yves Blusseau <blusseau@zetam.org>
1435 * Makefile.in (RMKFILES): add i386-qemu.rmk
1436 (MAINTAINER_CLEANFILES): add $(srcdir)/DISTLIST $(srcdir)/config.h.in
1437 $(srcdir)/stamp-h.in
1439 2009-09-05 Robert Millan <rmh.grub@aybabtu.com>
1441 * util/grub-probe.c (probe): Comment out buggy codepath, which
1442 was unexpectedly enabled by Colin Watson's 2009-09-02 fix. This
1443 should be re-enabled after 1.97.
1445 2009-09-05 Felix Zielcke <fzielcke@z-51.de>
1447 * gendistlist.sh: Add `grub-dumpdevtree' and `*.lua' to the list
1450 2009-09-04 Vladimir Serbinenko <phcoder@gmail.com>
1452 * loader/i386/xnu.c (grub_cpu_xnu_fill_devicetree): Remove
1453 unnecessary calls to grub_error.
1455 2009-09-04 Colin Watson <cjwatson@ubuntu.com>
1457 * NEWS: Mention `keystatus' and Unicode fonts.
1459 2009-09-04 Robert Millan <rmh.grub@aybabtu.com>
1461 * configure.ac: Bump version to 1.97~beta2.
1462 * docs/version.texi: Likewise.
1464 2009-09-03 Colin Watson <cjwatson@ubuntu.com>
1466 * configure.ac: By default, GCC 4.4 generates .eh_frame sections
1467 containing unwind information in some cases where it previously did
1468 not. Use -fno-dwarf2-cfi-asm if available to restore the old
1469 behaviour. See http://patchwork.kernel.org/patch/8555/ for related
1472 2009-09-02 Yves BLUSSEAU <blusseau@zetam.org>
1474 Embedding loadenv module into grub-emu
1476 * conf/i386-pc.rmk (grub_emu_SOURCES): add lib/envblk.c and
1478 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise
1479 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise
1480 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise
1481 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise
1482 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise
1483 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise
1485 2009-09-03 Magnus Granberg <zorry@ume.nu>
1487 * aclocal.m4: Add grub_CHECK_PIE. It check if the compiler
1488 include -fPIE in the default specs.
1489 * configure.ac: Check if pie_possible is yes and add -fno-PIE
1492 2009-09-03 Felix Zielcke <fzielcke@z-51.de>
1494 * INSTALL: Note that GNU Bison 2.3 or later is required.
1496 2009-09-03 Colin Watson <cjwatson@ubuntu.com>
1498 * kern/i386/pc/startup.S: Fix typo.
1500 2009-09-02 Vladimir Serbinenko <phcoder@gmail.com>
1502 * efiemu/loadcore.c (SUFFIX (grub_efiemu_loadcore_load)): Fix style
1505 2009-09-02 Colin Watson <cjwatson@ubuntu.com>
1507 * docs/grub.texi (Naming convention): Describe one-based partition
1509 (Device syntax): Likewise.
1510 (File name syntax): Likewise.
1511 (Block list syntax): Likewise.
1512 (Making a GRUB bootable CD-ROM): Talk about grub.cfg rather than
1514 (File name syntax): Likewise.
1515 (Command-line and menu entry commands): Document acpi, blocklist,
1516 crc, export, insmod, keystatus, ls, set, and unset commands.
1518 2009-09-02 Colin Watson <cjwatson@ubuntu.com>
1520 * commands/keystatus.c (GRUB_MOD_INIT (keystatus)): Adjust summary
1521 to avoid implying that only one of --shift, --ctrl, or --alt may be
1524 2009-09-02 Colin Watson <cjwatson@ubuntu.com>
1526 * util/grub-probe.c (probe): Test st.st_mode using S_ISREG macro
1527 rather than comparing against S_IFREG, which will almost never work.
1529 2009-09-01 Vladimir Serbinenko <phcoder@gmail.com>
1531 * commands/loadenv.c (check_blocklists): Fix off-by-one error.
1532 (write_blocklists): Likewise.
1534 2009-09-01 Colin Watson <cjwatson@ubuntu.com>
1536 * script/lua/grub_lua.h (fputs): Supply a format string as the first
1537 argument to grub_printf.
1539 2009-09-01 Felix Zielcke <fzielcke@z-51.de>
1541 * genmk.rb: Add quotes around $(TARGET_OBJ2ELF) to cope with
1544 2009-08-30 Vladimir Serbinenko <phcoder@gmail.com>
1546 * kern/file.c (grub_file_read): Spelling fix
1548 2009-08-30 Vladimir Serbinenko <phcoder@gmail.com>
1550 * loader/i386/bsdXX.c (SUFFIX (grub_freebsd_load_elfmodule)): Fix
1551 loading of headers in some cases.
1553 2009-08-30 Robert Millan <rmh.grub@aybabtu.com>
1555 * configure.ac: Bump version to 1.97~beta1.
1556 * docs/version.texi: Likewise.
1558 2009-08-29 Vladimir Serbinenko <phcoder@gmail.com>
1560 * include/grub/i386/xnu.h: Add license header.
1561 include grub/err.h explicitly.
1563 2009-08-29 Robert Millan <rmh.grub@aybabtu.com>
1565 * util/grub.d/10_freebsd.in: Detect `ufs1' and `ufs2' and map them
1566 to `ufs' in the vfs.root.mountfrom kernel parameter.
1568 2009-08-29 Robert Millan <rmh.grub@aybabtu.com>
1570 * term/i386/pc/serial.c: Include `<grub/machine/memory.h>'.
1572 [GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Macroify initialization
1573 value (0x0400 -> GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR).
1575 [! GRUB_MACHINE_PCBIOS] (GRUB_SERIAL_PORT_NUM): Calculate using
1578 2009-08-28 Vladimir Serbinenko <phcoder@gmail.com>
1580 * kern/file.c (grub_file_read): Check offset.
1581 * fs/hfs.c (grub_hfs_read_file): Remove unnecessary offset check.
1582 * fs/jfs.c (grub_jfs_read_file): Likewise.
1583 * fs/ntfs.c (grub_ntfs_read): Likewise.
1584 * fs/reiserfs.c (grub_reiserfs_read): Likewise.
1585 * fs/minix.c (grub_minix_read_file): Correct offset check.
1586 * fs/ufs.c (grub_ufs_read_file): Likewise.
1588 2009-08-28 Colin Watson <cjwatson@ubuntu.com>
1590 * term/i386/pc/console.c (bios_data_area): Cast
1591 GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR explicitly.
1593 2009-08-28 Vladimir Serbinenko <phcoder@gmail.com>
1595 1-bit optimised blitters.
1597 * include/grub/fbblit.h (grub_video_fbblit_replace_32bit_1bit): New
1599 (grub_video_fbblit_replace_24bit_1bit): Likewise.
1600 (grub_video_fbblit_replace_16bit_1bit): Likewise.
1601 (grub_video_fbblit_replace_8bit_1bit): Likewise.
1602 (grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
1603 (grub_video_fbblit_blend_XXX888_1bit): Likewise.
1604 (grub_video_fbblit_blend_XXX565_1bit): Likewise.
1605 * video/fb/fbblit.c (grub_video_fbblit_replace_32bit_1bit): New
1607 (grub_video_fbblit_replace_24bit_1bit): Likewise.
1608 (grub_video_fbblit_replace_16bit_1bit): Likewise.
1609 (grub_video_fbblit_replace_8bit_1bit): Likewise.
1610 (grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
1611 (grub_video_fbblit_blend_XXX888_1bit): Likewise.
1612 (grub_video_fbblit_blend_XXX565_1bit): Likewise.
1613 * video/fb/video_fb.c (common_blitter): Use 1-bit optimised blitters
1615 * video/video.c (grub_video_get_blit_format): Return
1616 GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED if bpp = 1.
1618 2009-08-28 Colin Watson <cjwatson@ubuntu.com>
1620 * normal/cmdline.c (grub_cmdline_get): Supply a format string as
1621 the first argument to grub_printf.
1623 2009-08-28 Colin Watson <cjwatson@ubuntu.com>
1624 2009-08-28 Robert Millan <rmh.grub@aybabtu.com>
1626 Add `getkeystatus' terminal method. Add a new `keystatus' command
1629 * include/grub/term.h (GRUB_TERM_STATUS_SHIFT,
1630 GRUB_TERM_STATUS_CTRL, GRUB_TERM_STATUS_ALT): Definitions for
1631 modifier key bitmasks.
1632 (struct grub_term_input): Add `getkeystatus' member.
1633 (grub_getkeystatus): Add prototype.
1634 * kern/term.c (grub_getkeystatus): New function.
1636 * include/grub/i386/pc/memory.h
1637 (GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR): New macro.
1638 (struct grub_machine_bios_data_area): Define necessary parts of BIOS
1640 * term/i386/pc/console.c (grub_console_getkeystatus): New function.
1641 (grub_console_term_input): Set `getkeystatus' member.
1642 * term/usb_keyboard.c (grub_usb_hid): Macroify HID protocol
1644 (grub_usb_keyboard_getreport): Likewise.
1645 (grub_usb_keyboard_checkkey): Likewise.
1646 (grub_usb_keyboard_getkeystatus): New function.
1647 (grub_usb_keyboard_term): Set `getkeystatus' member.
1649 * commands/keystatus.c: New file.
1650 * conf/common.rmk (pkglib_MODULES): Add keystatus.mod.
1651 (keystatus_mod_SOURCES): New variable.
1652 (keystatus_mod_CFLAGS): Likewise.
1653 (keystatus_mod_LDFLAGS): Likewise.
1654 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add
1655 commands/keystatus.c.
1656 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1657 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1658 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1659 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1660 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1661 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1663 2009-08-28 Vladimir Serbinenko <phcoder@gmail.com>
1665 Split befs.mod and afs.mod into *_be.mod and *.mod
1667 * conf/common.rmk (grub_probe_SOURCES): Add afs_be.c and befs_be.c.
1668 (grub_fstest_SOURCES): Likewise.
1669 (pkglib_MODULES): Add afs_be.mod and befs_be.mod.
1670 (afs_be_mod_SOURCES): New variable.
1671 (afs_be_mod_CFLAGS): Likewise.
1672 (afs_be_mod_LDFLAGS): Likewise.
1673 (befs_be_mod_SOURCES): Likewise.
1674 (befs_be_mod_CFLAGS): Likewise.
1675 (befs_be_mod_LDFLAGS): Likewise.
1676 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add afs_be.c and befs_be.c.
1677 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1678 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1679 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
1680 (grub_emu_SOURCES): Likewise.
1681 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1682 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1683 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1684 * fs/afs_be.c: New file.
1685 * fs/befs_be.c: New file.
1686 * fs/afs.c (GRUB_AFS_FSNAME_SUFFIX): New definition.
1687 (GRUB_AFS_FSNAME): Use GRUB_AFS_FSNAME_SUFFIX.
1688 (U16): Replaced with ...
1689 (grub_afs_to_cpu16): ...this. All users updated.
1690 (U32): Replaced with ...
1691 (grub_afs_to_cpu32): ...this. All users updated.
1692 (U64): Replaced with ...
1693 (grub_afs_to_cpu64): ...this. All users updated.
1694 (GRUB_AFS_BO_LITTLE_ENDIAN): Remove.
1695 (GRUB_AFS_BO_BIG_ENDIAN): Likewise.
1696 (grub_afs_validate_sblock): Check only one endianness.
1697 (GRUB_MOD_INIT (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
1698 (GRUB_MOD_INIT (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
1699 (GRUB_MOD_INIT (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
1700 (GRUB_MOD_INIT (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.
1701 (GRUB_MOD_FINI (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
1702 (GRUB_MOD_FINI (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
1703 (GRUB_MOD_FINI (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
1704 (GRUB_MOD_FINI (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.
1706 2009-08-26 Bean <bean123ch@gmail.com>
1708 * fs/xfs.c (GRUB_XFS_INO_INOINAG): Replace 1L with 1LL to support
1710 (GRUB_XFS_FSB_TO_BLOCK): Likewise.
1711 (grub_xfs_inode_block): Change return type to grub_uint64_t.
1712 (grub_xfs_read_inode): Change type of block to grub_uint64_t.
1714 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1716 NetBSD memory map support.
1718 * include/grub/i386/bsd.h (NETBSD_BTINFO_MEMMAP): New definition.
1719 (grub_netbsd_btinfo_mmap_header): New structure.
1720 (grub_netbsd_btinfo_mmap_entry): Likewise.
1721 * loader/i386/bsd.c (grub_netbsd_boot): Pass memory map.
1723 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1725 Enable bsd.mod on coreboot.
1727 * conf/i386-coreboot.rmk (pkglib_MODULES): Add bsd.mod.
1728 (bsd_mod_SOURCES): New variable.
1729 (bsd_mod_CFLAGS): Likewise.
1730 (bsd_mod_LDFLAGS): Likewise.
1731 (bsd_mod_ASFLAGS): Likewise.
1732 * loader/i386/bsd.c [!GRUB_MACHINE_PCBIOS]: Fix includes.
1733 (grub_bsd_get_device) [!GRUB_MACHINE_PCBIOS]: Set *biosdev to 0xff.
1735 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1737 Cleanup NetBSD root support.
1739 * loader/i386/bsd.c (grub_netbsd_boot): Remove call to
1740 grub_bsd_get_device.
1743 2009-08-25 Felix Zielcke <fzielcke@z-51.de>
1745 * util/grub.d/00_header.in: Move check for the video backend of
1746 gfxterm from here ...
1747 * util/grub-mkconfig.in: ... to here. Enable gfxterm if there's
1748 a suitable video backend.
1750 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1752 Fix breakage in grub-setup.
1754 * util/i386/pc/grub-setup.c (setup): Use "part_msdos" instead of
1755 "msdos_partition_map".
1757 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1759 Fix breakage in normal/auth.c.
1761 * normal/auth.c (grub_iswordseparator): New function.
1763 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1765 Authentication support.
1767 * commands/password.c: New file.
1768 * conf/common.rmk (pkglib_MODULES): Add password.mod.
1769 (password_mod_SOURCES): New variable.
1770 (password_mod_CFLAGS): Likewise.
1771 (password_mod_LDFLAGS): Likewise.
1772 (normal_mod_SOURCES): Add normal/auth.c.
1773 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add commands/password.c and
1775 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1776 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1777 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1778 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1779 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1780 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1781 * include/grub/auth.h: New file.
1782 * include/grub/err.h (grub_err_t): New enum value
1783 GRUB_ERR_ACCESS_DENIED.
1784 * include/grub/menu.h (grub_menu_entry): New fields 'restricted' and
1786 * include/grub/normal.h (grub_cmdline_get): New argument 'history'.
1787 * normal/cmdline.c (grub_cmdline_get): New argument 'history'. All
1789 * normal/auth.c: New file.
1790 * normal/main.c (grub_normal_add_menu_entry): Handle --users option.
1791 (grub_cmdline_run): Don't allow to go to command line without
1793 * normal/menu.c (grub_menu_execute_entry): Handle restricted entries.
1794 * normal/menu_entry.c (grub_menu_entry_run): Don't allow editing
1795 menuentry without superuser rights.
1796 * normal/menu_viewer.c (grub_menu_viewer_show_menu): Don't exit if
1797 user isn't a superuser.
1799 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1801 Save space by inlining misc.c functions.
1803 * kern/misc.c (grub_iswordseparator): Made static.
1804 * kern/misc.c (grub_strcat): Moved from here ...
1805 * include/grub/misc.h (grub_strcat): ... here. Inlined.
1806 * kern/misc.c (grub_strncat): Moved from here ...
1807 * include/grub/misc.h (grub_strncat): ... here. Inlined.
1808 * kern/misc.c (grub_strcasecmp): Moved from here ...
1809 * include/grub/misc.h (grub_strcasecmp): ... here. Inlined.
1810 * kern/misc.c (grub_strncasecmp): Moved from here ...
1811 * include/grub/misc.h (grub_strncasecmp): ... here. Inlined.
1812 * kern/misc.c (grub_isalpha): Moved from here ...
1813 * include/grub/misc.h (grub_isalpha): ... here. Inlined.
1814 * kern/misc.c (grub_isdigit): Moved from here ...
1815 * include/grub/misc.h (grub_isdigit): ... here. Inlined.
1816 * kern/misc.c (grub_isgraph): Moved from here ...
1817 * include/grub/misc.h (grub_isgraph): ... here. Inlined.
1818 * kern/misc.c (grub_tolower): Moved from here ...
1819 * include/grub/misc.h (grub_tolower): ... here. Inlined.
1821 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1823 * script/sh/function.c (grub_script_function_find): Cut error message
1824 not to flood terminal.
1825 * script/sh/lexer.c (grub_script_yylex): Remove command line length
1827 * script/sh/script.c (grub_script_arg_add): Duplicate string.
1829 2009-08-24 Colin Watson <cjwatson@ubuntu.com>
1831 * term/usb_keyboard.c (grub_usb_keyboard_getreport): Make
1832 `report' grub_uint8_t *.
1833 (grub_usb_keyboard_checkkey): Make `data' elements grub_uint8_t.
1834 Use a 50-millisecond timeout rather than just repeating
1835 grub_usb_keyboard_getreport 50 times.
1836 (grub_usb_keyboard_getkey): Make `data' elements grub_uint8_t.
1838 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1840 Rename *_partition_map to part_*
1842 * partmap/acorn.c (grub_acorn_partition_map): Set name to 'part_acorn'.
1843 * partmap/amiga.c (grub_amiga_partition_map): Set name to 'part_amiga'.
1844 * partmap/apple.c (grub_apple_partition_map): Set name to 'part_apple'.
1845 * partmap/gpt.c (grub_gpt_partition_map): Set name to 'part_gpt'.
1847 * partmap/msdos.c (grub_msdos_partition_map): Set name to 'part_msdos'.
1849 * partmap/sun.c (grub_sun_partition_map): Set name to 'part_sun'.
1850 * util/grub-probe.c (probe_partmap): Don't transform partition name
1853 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1855 Fix OpenBSD and NetBSD support.
1857 * include/grub/i386/bsd.h (GRUB_BSD_TEMP_BUFFER): Change to resolve
1858 memory address conflict.
1859 (OPENBSD_MMAP_ACPI): New definition.
1860 (OPENBSD_MMAP_NVS): Likewise.
1861 * loader/i386/bsd.c (grub_openbsd_boot): Support OPENBSD_MMAP_ACPI
1862 and OPENBSD_MMAP_NVS.
1863 Add memory map terminator
1864 Explicit cast when calling grub_unix_real_boot.
1865 (grub_netbsd_boot): Explicit cast when calling grub_unix_real_boot.
1867 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1869 Let user specify NetBSD root device.
1871 * loader/i386/bsd.c (netbsd_root): New variable.
1872 (netbsd_opts): New option 'root'.
1873 (NETBSD_ROOT_ARG): New macro.
1874 (grub_netbsd_boot): Use 'netbsd_root'.
1875 (grub_bsd_unload): Free 'netbsd_root'.
1876 (grub_cmd_netbsd): Fill 'netbsd_root'.
1878 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1880 Support for 64-bit NetBSD.
1882 * loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry
1883 point when booting non-FreeBSD.
1885 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1887 Support --no-smp and --no-acpi for NetBSD.
1889 * include/grub/i386/bsd.h (NETBSD_AB_NOSMP): New definition.
1890 (NETBSD_AB_NOACPI): Likewise.
1891 * loader/i386/bsd.c (netbsd_opts): New entries no-smp and no-acpi.
1892 (netbsd_flags): Add NETBSD_AB_NOSMP, NETBSD_AB_NOACPI.
1894 2009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
1896 * fs/hfsplus.c (grub_hfsplus_mount): Don't ignore grub_hfsplus_read_file
1898 (grub_hfsplus_btree_iterate_node): Don't ignore grub_hfsplus_read_file
1899 errors. Call grub_error when needed.
1901 2009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
1903 * commands/search.c (search_fs): Try searching without autoload first.
1904 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
1905 filesystem module explicitly for faster booting.
1907 2009-08-23 Colin Watson <cjwatson@ubuntu.com>
1909 * util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER.
1911 2009-08-23 Colin Watson <cjwatson@ubuntu.com>
1913 * util/grub.d/30_os-prober.in: Disable os-prober if
1914 `GRUB_DISABLE_OS_PROBER' was set to true.
1916 2009-08-23 Robert Millan <rmh.grub@aybabtu.com>
1918 * partmap/pc.c: Rename to ...
1919 * partmap/msdos.c: ... this. Update all users.
1920 (grub_pc_partition_map): Rename to ...
1921 (grub_msdos_partition_map): ... this. Update all users.
1923 * parttool/pcpart.c: Rename to ...
1924 * parttool/msdospart.c: ... this. Update all users.
1926 * include/grub/pc_partition.h: Rename to ...
1927 * include/grub/msdos_partition.h: ... this. Update all users.
1928 (grub_pc_partition_bsd_entry): Rename to ...
1929 (grub_msdos_partition_bsd_entry): ... this. Update all users.
1930 (grub_pc_partition_disk_label): Rename to ...
1931 (grub_msdos_partition_disk_label): ... this. Update all users.
1932 (grub_pc_partition_entry): Rename to ...
1933 (grub_msdos_partition_entry): ... this. Update all users.
1934 (grub_pc_partition_mbr): Rename to ...
1935 (grub_msdos_partition_mbr): ... this. Update all users.
1936 (grub_pc_partition): Rename to ...
1937 (grub_msdos_partition): ... this. Update all users.
1938 (grub_pc_partition_is_empty): Rename to ...
1939 (grub_msdos_partition_is_empty): ... this. Update all users.
1940 (grub_pc_partition_is_extended): Rename to ...
1941 (grub_msdos_partition_is_extended): ... this. Update all users.
1942 (grub_pc_partition_is_bsd): Rename to ...
1943 (grub_msdos_partition_is_bsd): ... this. Update all users.
1945 * conf/common.rmk (amiga_mod_SOURCES, amiga_mod_CFLAGS)
1946 (amiga_mod_LDFLAGS, apple_mod_SOURCES, apple_mod_CFLAGS)
1947 (apple_mod_LDFLAGS, msdos_mod_SOURCES, msdos_mod_CFLAGS)
1948 (msdos_mod_LDFLAGS, sun_mod_SOURCES, sun_mod_CFLAGS)
1949 (sun_mod_LDFLAGS, acorn_mod_SOURCES, acorn_mod_CFLAGS)
1950 (acorn_mod_LDFLAGS, gpt_mod_SOURCES, gpt_mod_CFLAGS)
1951 (gpt_mod_LDFLAGS): Rename to ...
1952 (part_amiga_mod_SOURCES, part_amiga_mod_CFLAGS, part_amiga_mod_LDFLAGS)
1953 (part_apple_mod_SOURCES, part_apple_mod_CFLAGS, part_apple_mod_LDFLAGS)
1954 (part_msdos_mod_SOURCES, part_msdos_mod_CFLAGS, part_msdos_mod_LDFLAGS)
1955 (part_sun_mod_SOURCES, part_sun_mod_CFLAGS, part_sun_mod_LDFLAGS)
1956 (part_acorn_mod_SOURCES, part_acorn_mod_CFLAGS, part_acorn_mod_LDFLAGS)
1957 (part_gpt_mod_SOURCES, part_gpt_mod_CFLAGS)
1958 (part_gpt_mod_LDFLAGS): ... this.
1959 (pkglib_MODULES): Prefix partition modules with `part_'. Rename
1960 `pcpart.mod' to `msdospart.mod'.
1961 (pcpart_mod_SOURCES, pcpart_mod_CFLAGS, pcpart_mod_LDFLAGS): Rename
1963 (msdospart_mod_SOURCES, msdospart_mod_CFLAGS)
1964 (msdospart_mod_LDFLAGS): ... this.
1966 2009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
1968 * loader/i386/bsd.c (freebsd_opts): Rewritten to use extcmd.
1969 (openbsd_opts): Likewise.
1970 (netbsd_opts): Likewise.
1971 (freebsd_flags): Added 0 terminator.
1972 (openbsd_flags): Likewise.
1973 (netbsd_flags): Likewise.
1974 (grub_bsd_parse_flags): Rewritten to use extcmd. All users updated.
1975 (grub_cmd_freebsd): Transformed into extended command.
1976 (grub_cmd_openbsd): Likewise.
1977 (grub_cmd_netbsd): Likewise.
1978 (cmd_freebsd): Changed type to grub_extcmd_t.
1979 (cmd_openbsd): Likewise.
1980 (cmd_netbsd): Likewise.
1981 (GRUB_MOD_INIT (bsd)): Register grub_cmd_freebsd, grub_cmd_netbsd and
1982 grub_cmd_openbsd as extended commands.
1983 (GRUB_MOD_FINI (bsd)): Use grub_unregister_extcmd for cmd_freebsd,
1984 cmd_netbsd and cmd_openbsd
1986 2009-08-22 Vladimir Serbinenko <phcoder@gmail.com>
1988 * commands/xnu_uuid.c (transform): Use grub_memcpy instead of memcpy.
1990 2009-08-21 Pavel Roskin <proski@gnu.org>
1992 * Makefile.in (install-local): When checking if a file is in the
1993 build directory, use "test -e" to detect symlinks.
1995 * Makefile.in (install-local): Remove all files in
1996 $(DESTDIR)$(pkglibdir) before installing new files there.
1998 2009-08-18 Felix Zielcke <fzielcke@z-51.de>
2000 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Use
2003 2009-08-18 Felix Zielcke <fzielcke@z-51.de>
2005 * util/grub-mkconfig.in: Don't use gfxterm by default if not
2006 explicitly specified by the user.
2008 2009-08-18 Pavel Roskin <proski@gnu.org>
2010 * include/grub/fbfill.h (struct grub_video_fbrender_target): Use
2011 grub_uint8_t pointer for data.
2012 * include/grub/fbutil.h (struct grub_video_fbblit_info):
2014 * video/fb/fbutil.c: Remove unnecessary casts.
2016 2009-08-17 Michal Suchanek <hramrach@centrum.cz>
2020 * video/i386/pc/vbe.c (vbe_mode_in_use): Removed (duplicate).
2021 (grub_vbe_set_video_mode): Save active mode info
2022 only after setting the mode.
2023 (grub_video_vbe_setup): Call 'grub_vbe_set_video_mode' with NULL as
2026 2009-08-17 Michal Suchanek <hramrach@centrum.cz>
2028 Rename variables for clarity.
2030 * video/i386/pc/vbe.c (active_mode_info): Renamed to ...
2031 (active_vbe_mode_info): ... this. All users updated.
2032 (framebuffer): Rename 'active_mode' to 'active_vbe_mode'.
2034 (initial_mode): Rename to ...
2035 (initial_vbe_mode): ... this. All users updated.
2036 (mode_in_use): Rename to ..
2037 (vbe_mode_in_use): ... this. All users updated.
2038 (mode_list): Rename to ..
2039 (vbe_mode_list): ... this. All users updated.
2040 (grub_vbe_set_video_mode): Rename 'mode' to 'vbe_mode', 'mode_info' to
2041 'vbe_mode_info' and 'old_mode' to 'old_vbe_mode'.
2042 (grub_video_vbe_init): Rename 'rm_mode_list' to 'rm_vbe_mode_list' and
2043 'mode_list_size' to 'vbe_mode_list_size'.
2044 (grub_video_vbe_setup): Rename 'mode_info' to 'vbe_mode_info',
2045 'best_mode_info' to 'best_vbe_mode_info' and
2046 'best_mode' to 'best_vbe_mode'
2048 2009-08-17 Michal Suchanek <hramrach@centrum.cz>
2050 Remove duplicate grub_video_fb_get_video_ptr.
2052 * include/grub/fbutil.h (get_data_ptr): Rename to ...
2053 (grub_video_fb_get_video_ptr): ... this.
2054 * include/grub/video_fb.h (grub_video_fb_get_video_ptr): Removed.
2055 * video/fb/fbutil.c: Add comment about addressing.
2056 (get_data_ptr): Rename to ...
2057 (grub_video_fb_get_video_ptr): ... this. All users updated.
2058 * video/fb/video_fb.c (grub_video_fb_get_video_ptr): Remove.
2060 2009-08-17 Robert Millan <rmh.grub@aybabtu.com>
2062 * fs/fat.c (grub_fat_read_data): Remove `#if 0' braces around the
2063 grub_dprintf() that was just added.
2065 2009-08-17 Robert Millan <rmh.grub@aybabtu.com>
2067 * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT)
2068 (DEFAULT_VIDEO_MODE): Remove macros.
2069 (grub_linux_boot): Remove assumption that Linux has FB support,
2070 and use "text" as default video mode.
2072 2009-08-15 Vladimir Serbinenko <phcoder@gmail.com>
2074 * fs/affs.c (grub_affs_read_symlink): Change leftover grub_printf into
2076 * fs/fat.c (grub_fat_read_data): Likewise.
2078 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
2080 * loader/i386/multiboot.c (grub_multiboot): Don't pass filename to
2082 (grub_module): Likewise.
2084 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
2086 * loader/i386/multiboot.c (grub_multiboot_unload): Don't free mbi and
2087 mbi->cmdline but free playground.
2089 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
2091 Handle group offset on UFS1.
2093 * fs/ufs.c (grub_ufs_sblock): New field 'cylg_mask'.
2094 (grub_ufs_read_inode) [!MODE_UFS2]: handle cylg_offset and cylg_mask.
2096 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
2098 Split ufs.mod into ufs1.mod and ufs2.mod.
2100 * conf/common.rmk (grub_probe_SOURCES): Add fs/ufs2.c.
2101 (grub_fstest_SOURCES): Likewise.
2102 (pkglib_MODULES): Remove ufs.mod. Add ufs1.mod and ufs2.mod.
2103 (ufs_mod_SOURCES): Remove.
2104 (ufs_mod_CFLAGS): Likewise.
2105 (ufs_mod_LDFLAGS): Likewise.
2106 (ufs1_mod_SOURCES): New variable.
2107 (ufs1_mod_CFLAGS): Likewise.
2108 (ufs1_mod_LDFLAGS): Likewise.
2109 (ufs2_mod_SOURCES): New variable.
2110 (ufs2_mod_CFLAGS): Likewise.
2111 (ufs2_mod_LDFLAGS): Likewise.
2112 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add fs/ufs2.c.
2113 * conf/i386-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
2115 (grub_emu_SOURCES): Likewise.
2116 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2117 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
2118 (grub_setup_SOURCES): Likewise.
2119 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2120 * conf/sparc64.rmk (grub_emu_SOURCES): Likewise.
2121 (grub_setup_SOURCES): Likewise.
2122 * conf/x86_64-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
2124 * fs/ufs2.c: New file.
2125 * fs/ufs.c: Separate UFS1 from UFS2 by using preprocessor.
2127 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
2131 * commands/i386/pc/vbetest.c (grub_cmd_vbetest): Restore video
2132 subsystem at the end.
2133 * conf/common.rmk (pkglib_MODULES): Add video_fb.mod.
2134 (video_fb_mod_SOURCES): New variable.
2135 (video_fb_mod_CFLAGS): Likewise.
2136 (video_fb_mod_LDFLAGS): Likewise.
2137 * conf/i386-pc.rmk (vbe_mod_SOURCES): Remove video/i386/pc/vbeblit.c,
2138 video/i386/pc/vbefill.c and video/i386/pc/vbeutil.c.
2139 * video/i386/pc/vbeblit.c: Moved from here ...
2140 * video/fb/fbblit.c: ..here. Replaced 'vbe' with 'fb'.
2141 * video/i386/pc/vbefill.c: Moved from here ...
2142 * video/fb/fbfill.c: ..here. Replaced 'vbe' with 'fb'.
2143 * video/i386/pc/vbeutil.c: Moved from here ...
2144 * video/fb/fbutil.c: ..here. Replaced 'vbe' with 'fb'.
2145 * include/grub/i386/pc/vbeblit.h: Moved from here ...
2146 * include/grub/fbblit.h: ... here. Replaced 'vbe' with 'fb'.
2147 * include/grub/i386/pc/vbefill.h: Moved from here ...
2148 * include/grub/fbfill.h: ... here. Replaced 'vbe' with 'fb'.
2149 * include/grub/i386/pc/vbeutil.h: Moved from here ...
2150 * include/grub/fbutil.h: ... here. Replaced 'vbe' with 'fb'.
2151 * include/grub/i386/pc/vbe.h: Moved framebuffer part ...
2152 * include/grub/video_fb.h: ... here. Replaced 'vbe' with 'fb'.
2153 * include/grub/video.h (GRUB_VIDEO_RENDER_TARGET_FRONT_BUFFER): Removed.
2154 (GRUB_VIDEO_RENDER_TARGET_BACK_BUFFER): Likewise.
2155 (grub_video_adapter): Added 'get_info_and_fini'.
2156 (grub_video_get_info_and_fini): New prototype.
2157 (grub_video_set_mode): make modestring const char *.
2158 * loader/i386/linux.c (grub_linux_setup_video): Use
2159 grub_video_get_info_and_fini.
2160 (grub_linux_boot): Move modesetting just before booting.
2161 * loader/i386/pc/xnu.c (grub_xnu_set_video): Use
2162 grub_video_get_info_and_fini.
2163 * video/i386/pc/vbe.c: Moved framebuffer part ...
2164 * video/fb/video_fb.c: ... here. Replaced 'vbe' with 'fb'.
2165 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): Use
2166 grub_video_fbstd_colors and grub_video_fb_set_palette.
2167 (grub_video_vbe_init): Clear 'framebuffer' variable and use
2169 (grub_video_vbe_fini): Use grub_video_fb_fini.
2170 (grub_video_vbe_setup): Use framebuffer.render_target instead of
2171 render_target and use grub_video_fb_set_active_render_target and
2172 grub_video_fb_set_palette.
2173 (grub_video_vbe_set_palette): Use grub_video_fb_set_palette.
2174 (grub_video_vbe_set_viewport): Use grub_video_fb_set_viewport.
2175 (grub_video_vbe_adapter): Use framebuffer.
2176 * video/video.c (grub_video_get_info_and_fini): New function.
2177 (grub_video_set_mode): Make modestring const char *.
2178 (GRUB_MOD_INIT(video_video)): Don't set variables to 0 since these
2179 values are already initialised.
2181 2009-08-14 Pavel Roskin <proski@gnu.org>
2183 * boot/i386/pc/cdboot.S: Use LOCAL for local labels. Eliminate
2185 * boot/i386/pc/diskboot.S: Likewise.
2186 * boot/i386/pc/lnxboot.S: Likewise. Hardcode the number of code
2187 sectors allow compilation on MacOSX.
2188 * conf/i386-pc.rmk: Enable unconditional compilation of
2191 2009-08-13 Colin Watson <cjwatson@ubuntu.com>
2193 * util/grub-mkconfig.in: Export GRUB_HIDDEN_TIMEOUT.
2194 * util/grub.d/00_header.in: Enter interruptible sleep if
2195 GRUB_HIDDEN_TIMEOUT is set.
2197 2009-08-13 Yves Blusseau <blusseau@zetam.org>
2199 * include/grub/symbol.h: Add the LOCAL macro.
2200 * boot/i386/pc/boot.S: Use the LOCAL macro for all labels
2203 2009-08-13 Pavel Roskin <proski@gnu.org>
2205 * boot/i386/pc/boot.S: Remove ABS macro, it's not required by
2206 any modern compilers we support.
2208 * boot/i386/pc/boot.S: Remove all code dependent on APPLE_CC.
2209 Use local labels starting with "L_" so that Apple assembler
2210 knows they are local.
2212 2009-08-10 Robert Millan <rmh.grub@aybabtu.com>
2214 * include/grub/i386/bsd.h (KERNEL_TYPE_NONE, KERNEL_TYPE_FREEBSD)
2215 (KERNEL_TYPE_OPENBSD, KERNEL_TYPE_NETBSD): Convert to ...
2216 (bsd_kernel_types): ... this enum.
2218 * loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module)
2219 (grub_cmd_freebsd_module_elf): Abort with "You need to load the
2220 kernel first." when `kernel_type' is set to KERNEL_TYPE_NONE.
2222 (grub_bsd_load_aout, grub_bsd_load, grub_cmd_freebsd_loadenv)
2223 (grub_cmd_freebsd_module, grub_cmd_freebsd_module_elf)
2224 (GRUB_MOD_INIT (bsd)): Fix capitalization in a few error
2227 2009-08-08 Robert Millan <rmh.grub@aybabtu.com>
2229 * util/grub-dumpdevtree: Moved from here ...
2230 * util/i386/efi/grub-dumpdevtree: ... to here.
2231 (hexify): New function. Converts a string to its hex version.
2232 Generate hex versions of "efi" and "device-properties" by calling
2233 hexify() on the ASCII strings rather than by hardcoding numbers.
2235 2009-08-08 Robert Millan <rmh.grub@aybabtu.com>
2237 * fs/jfs.c: Update copyright year.
2239 2009-08-08 Felix Zielcke <fzielcke@z-51.de>
2241 * util/grub.d/00_header.in: Fix a comment.
2242 * util/grub.d/10_linux.in: Likewise.
2243 * util/grub.d/10_windows.in: Likewise.
2244 * util/grub.d/10_hurd.in: Likewise.
2246 2009-08-08 Felix Zielcke <fzielcke@z-51.de>
2248 * util/grub-mkconfig.in: Allow the user to specify the used font
2251 2009-08-08 Pavel Roskin <proski@gnu.org>
2253 * include/grub/powerpc/libgcc.h: Export __ashrdi3() if
2254 available, xfs.mod needs it now.
2256 * util/grub-mkconfig_lib.in (version_test_numeric): Don't use
2257 the "g" modifier in sed when the intention is to strip something
2258 once. This fixes comparison of kernels with multiple dashes.
2260 * util/grub-mkconfig.in: Define datarootdir, datadir may depend
2261 on it. Add missing space before closing bracket. Fix
2262 misleading formatting.
2264 2009-08-07 Robert Millan <rmh.grub@aybabtu.com>
2266 * docs/grub.texi: Major overhaul. Remove all sections that are
2267 specific to GRUB Legacy, or mostly composed of Legacy-specific
2270 2009-08-07 Robert Millan <rmh.grub@aybabtu.com>
2272 * docs/version.texi: New file. Provides version information for
2275 2009-08-07 Robert Millan <rmh.grub@aybabtu.com>
2277 * docs/grub.texi: Update CVS information to SVN.
2278 Replace outdated "GRUB 2 will include" phrase with "GRUB 2 includes".
2280 2009-08-07 Felix Zielcke <fzielcke@z-51.de>
2282 * util/grub-mkconfig.in: Remove a wrong `fi'.
2284 2009-08-07 Felix Zielcke <fzielcke@z-51.de>
2286 * fs/uuid.c (grub_jfs_superblock): New fields unused2 and uuid.
2287 (grub_jfs_uuid): New function.
2288 (grub_jfs_fs): Set uuid field to grub_jfs_uuid.
2290 2009-08-07 Felix Zielcke <fzielcke@z-51.de>
2292 * util/grub-mkconfig_lib.in (font_path): Move the functionality
2294 * util/grub-mkconfig.in: ... here. Prefer unicode.pf2 and
2295 unifont.pf2 over ascii.pf2. Export LANG=C in case ascii.pf2 gets used.
2297 2009-08-07 Robert Millan <rmh.grub@aybabtu.com>
2299 * util/grub.d/10_linux.in (test_numeric): Moved from here ...
2300 * util/grub-mkconfig_lib.in (version_test_numeric): ... to here.
2303 * util/grub.d/10_linux.in (test_gt): Strip any basename prefix,
2304 not just "vmlinu[zx]".
2306 * util/grub-mkconfig_lib.in (version_test_gt): ... to here. Update
2309 * util/grub.d/10_linux.in (find_latest): Moved from here ...
2310 * util/grub-mkconfig_lib.in (version_find_latest): ... to here. Update
2313 2009-08-07 Robert Millan <rmh.grub@aybabtu.com>
2315 * util/grub.d/10_freebsd.in: Use an absolute device path for
2316 `vfs.root.mountfrom'. Set `vfs.root.mountfrom.options=rw'.
2318 2009-08-06 Felix Zielcke <fzielcke@z-51.de>
2320 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix
2321 handling of multiple abstraction modules.
2323 2009-08-04 Robert Millan <rmh.grub@aybabtu.com>
2325 Fix a bug resulting in black screen when loading Linux using a
2328 * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette_width): New
2331 * include/grub/i386/pc/vbe.h (GRUB_VBE_CAPABILITY_DACWIDTH): New macro.
2332 (grub_vbe_bios_getset_dac_palette_width): New function.
2333 (grub_vbe_bios_get_dac_palette_width)
2334 (grub_vbe_bios_set_dac_palette_width): New macros (act as wrappers for
2335 grub_vbe_bios_getset_dac_palette_width()).
2337 * video/i386/pc/vbe.c (grub_vbe_probe): Use `GRUB_VBE_STATUS_OK' to
2338 check for return status.
2339 (grub_vbe_get_video_mode_info): When getting information for a packed
2340 mode (<= 8 bpp), obtain DAC palette width using
2341 grub_vbe_bios_getset_dac_palette_width(), and use that for initializing
2342 {red,green,blue}_mark_size.
2344 2009-08-04 Felix Zielcke <fzielcke@z-51.de>
2346 * commands/search.c (options): Fix help output to match actual code.
2348 2009-08-02 Vladimir Serbinenko <phcoder@gmail.com>
2350 * commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_read instead
2353 2009-08-01 Vladimir Serbinenko <phcoder@gmail.com>
2355 * util/hostfs.c (grub_hostfs_dir): Don't use DT_DIR: It doesn't work
2358 2009-08-01 Vladimir Serbinenko <phcoder@gmail.com>
2360 Support Apple partition map with sector size different from 512 bytes.
2362 * partmap/apple.c (grub_apple_header): New field 'blocksize'.
2363 (apple_partition_map_iterate): Respect 'aheader.blocksize'
2364 and 'apart.partmap_size'.
2366 2009-08-01 Vladimir Serbinenko <phcoder@gmail.com>
2367 2009-08-01 Robert Millan <rmh.grub@aybabtu.com>
2371 * commands/i386/cpuid.c (options): New variable.
2372 (grub_cmd_cpuid): Return real error.
2373 (GRUB_MOD_INIT(cpuid)): Declare options.
2375 2009-07-31 Vladimir Serbinenko <phcoder@gmail.com>
2377 * partmap/pc.c (pc_partition_map_iterate): Check that boot flags are
2380 2009-07-31 Bean <bean123ch@gmail.com>
2382 * fs/xfs.c (grub_xfs_sblock): Change unused5 field to log2_sect and
2384 (grub_fshelp_node): Move inode field to the end.
2385 (grub_xfs_data): Remove inode field.
2386 (grub_xfs_inode_block): Calculate inode size using sblock.
2387 (grub_xfs_inode_offset): Likewise.
2388 (grub_xfs_read_inode): Calculate inode size using sblock.
2389 (grub_xfs_read_block): Replace XFS_INODE_EXTENTS with nrec.
2390 (grub_xfs_iterate_dir): Calculate inode size using sblock.
2391 (grub_xfs_mount): Use grub_zalloc instead of grub_malloc. Realloc data
2392 to match inode size.
2393 (grub_xfs_dir): goto mount_fail when mount fails, as data->diropen is
2394 not accessible when data is null.
2395 (grub_xfs_open): Likewise.
2397 2009-07-31 Bean <bean123ch@gmail.com>
2399 * disk/lvm.c (grub_lvm_scan_device): Ignore extra copy of metadata.
2400 Don't change pv->disk if it's already set.
2402 * disk/raid.c (grub_raid_scan_device): Merge this function into ...
2403 (grub_raid_register): ... here.
2404 (grub_raid_rescan): Removed.
2406 * include/grub/raid.h (grub_raid_rescan): Removed.
2408 * util/grub-fstest.c: Remove include file <grub/raid.h>.
2409 (fstest): Replace grub_raid_rescan with module fini function followed
2412 * util/grub-probe.c: Add include file <grub/raid.h>.
2413 (probe_raid_level): New function.
2414 (probe): Detect abstraction by walking the disk device, support two
2415 level of abstraction (LVM on RAID) when detecting partition map.
2417 2009-07-31 Pavel Roskin <proski@gnu.org>
2419 * disk/raid5_recover.c (grub_raid5_recover): Revert conversion
2420 to grub_zalloc(), it was erroneous.
2421 Reported by Bean <bean123ch@gmail.com>
2423 2009-07-30 Vladimir Serbinenko <phcoder@gmail.com>
2425 * util/i386/pc/grub-setup.c (setup): Check that no partition is in
2426 embedding zone, not only the first one.
2428 2009-07-29 Joe Auricchio <jauricchio@gmail.com>
2430 * term/gfxterm.c (clear_char): New function.
2431 (grub_virtual_screen_setup): Use clear_char.
2432 (scroll_up): Likewise.
2433 (grub_virtual_screen_cls): Likewise.
2435 2009-07-29 Felix Zielcke <fzielcke@z-51.de>
2437 * util/deviceiter.c (get_acceleraid_disk_name): New static
2439 (grub_util_iterate_devices): Handle Accelraid devices.
2440 * util/hostdisk.c (convert_system_partition_to_system_disk): Likewise.
2442 2009-07-28 Robert Millan <rmh.grub@aybabtu.com>
2444 * loader/i386/linux.c (grub_cmd_linux): Use ',' rather than ';' as
2445 separator for the suggested gfxpayload string (';' collides with the
2446 parser and needs escaping).
2448 2009-07-28 Vladimir Serbinenko <phcoder@gmail.com>
2450 * loader/i386/multiboot_helper.S (grub_multiboot_backward_relocator):
2451 Clear direction flag before jumping to OS.
2452 (grub_multiboot2_real_boot): Likewise.
2454 2009-07-28 Felix Zielcke <fzielcke@z-51.de>
2456 * util/i386/pc/grub-install: Fix parsing of --disk-module
2459 2009-07-28 Felix Zielcke <fzielcke@z-51.de>
2461 * util/i386/pc/grub-setup.c (setup): Fix 2 incorrect checks
2464 2009-07-26 Felix Zielcke <fzielcke@z-51.de>
2466 * util/grub-mkconfig.in (package_version): New variable.
2467 Use it do display the version.
2469 2009-07-25 Felix Zielcke <fzielcke@z-51.de>
2471 * kern/file.c (grub_file_open): Revert to previous check with
2474 2009-07-25 Vladimir Serbinenko <phcoder@gmail.com>
2476 * commands/probe.c (GRUB_MOD_INIT (probe)): Remove "[--target=target]"
2477 from help line. It's out of sync with code.
2479 2009-07-25 Vladimir Serbinenko <phcoder@gmail.com>
2481 * kern/parser.c (grub_parser_execute): Fix a bug causing truncated
2482 entries on failed boot.
2484 2009-07-25 Felix Zielcke <fzielcke@z-51.de>
2486 * kern/file.c (grub_file_open): Fix an error check.
2488 2009-07-24 Vladimir Serbinenko <phcoder@gmail.com>
2490 * util/i386/pc/grub-setup.c (setup): Fix segmentation fault when
2491 partition map couldn't be identified.
2493 2009-07-23 Pavel Roskin <proski@gnu.org>
2495 * commands/xnu_uuid.c (transform): Use GRUB_CPU_WORDS_BIGENDIAN
2496 instead of WORDS_BIGENDIAN. Use grub_le_to_cpu32(), so that the
2497 case of little endian words becomes just an optimization.
2498 Respect const modifier.
2499 (md5_final): Use code that doesn't depend on endianness.
2501 * include/grub/misc.h (ALIGN_UP): Cast align to the type of addr
2502 to avoid loss of upper bits if align is unsigned and shorter
2505 2009-07-21 Vladimir Serbinenko <phcoder@gmail.com>
2507 UUID support for UFS
2509 * fs/ufs.c (grub_ufs_sblock): Add uuidhi and uuidlow.
2510 (grub_ufs_uuid): New function.
2511 (grub_ufs_fs): add .uuid
2513 2009-07-21 Pavel Roskin <proski@gnu.org>
2515 * kern/dl.c (grub_dl_check_header): Make static.
2517 2009-07-21 Felix Zielcke <fzielcke@z-51.de>
2519 * util/grub.d/30_os-prober.in: Remove unused CHAINROOT. Don't
2520 add drivemap for Vista. It breaks Windows 7.
2522 2009-07-21 Vladimir Serbinenko <phcoder@gmail.com>
2524 * fs/ufs.c (grub_ufs_sblock): Fix offset of mtime2 which was off by
2527 2009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2531 * conf/common.rmk (grub_probe_SOURCES): Add fs/befs.c.
2532 (grub_fstest_SOURCES): Likewise.
2533 (pkglib_MODULES): Add befs.mod.
2534 (befs_mod_SOURCES): New variable.
2535 (befs_mod_CFLAGS): Likewise.
2536 (befs_mod_LDFLAGS): Likewise.
2537 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
2538 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2539 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2540 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
2541 (grub_setup_SOURCES): Likewise.
2542 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2543 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2544 (grub_setup_SOURCES): Likewise.
2545 * fs/befs.c: New file.
2546 * fs/afs.c (GRUB_AFS_FSNAME): New declaration.
2547 (GRUB_AFS_SBLOCK_SECTOR): Likewise.
2548 (GRUB_AFS_SBLOCK_MAGIC1) [MODE_BFS]: New conditional declaration.
2549 (GRUB_AFS_BTREE_MAGIC) [MODE_BFS]: Likewise
2550 (B_KEY_INDEX_ALIGN): New declaration.
2551 (B_KEY_INDEX_OFFSET): Use B_KEY_INDEX_ALIGN.
2552 (grub_afs_bnode) [MODE_BFS]: Make key_count and key_size 16-bit
2553 (grub_afs_btree) [MODE_BFS]: New conditional declaration.
2554 (grub_afs_sblock) [MODE_BFS]: Remove link_count.
2555 (grub_afs_validate_sblock) [MODE_BFS]: Support BFS
2556 (grub_afs_mount) [MODE_BFS]: Likewise.
2557 (grub_afs_dir) [MODE_BFS]: Divide mtime by 65536 and not 1000000.
2558 (grub_afs_fs): Use GRUB_AFS_FSNAME
2559 (GRUB_MOD_INIT (afs)) [MODE_BFS]: Rename to ...
2560 (GRUB_MOD_INIT (befs)) [MODE_BFS]: ... this
2561 (GRUB_MOD_FINI (afs)) [MODE_BFS]: Rename to ...
2562 (GRUB_MOD_FINI (befs)) [MODE_BFS]: ... this
2564 2009-07-19 Yves BLUSSEAU <yves.grub-devel@zetam.org>
2566 * util/getroot.c (find_root_device): Add support for MacOSX.
2567 * util/hostdisk.c: Likewise.
2569 2009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2571 * font/font.c (find_glyph): Check whether a font is present to avoid
2574 2009-07-20 Joe Auricchio <jauricchio@gmail.com>
2576 * term/gfxterm.c (grub_virtual_screen_setup): Clear virtual_screen.
2578 2009-07-20 Pavel Roskin <proski@gnu.org>
2580 * configure.ac: Trim excessively wordy excuses.
2582 2009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2584 Add symlink, mtime and label support to AtheFS.
2586 * fs/afs.c (grub_afs_sblock): Declare `name' as char.
2587 (grub_afs_iterate_dir): Handle symlinks.
2588 (grub_afs_open): Use grub_afs_read_symlink.
2589 (grub_afs_dir): Likewise.
2591 (grub_afs_label): New function.
2592 (grub_afs_fs): Add grub_afs_label.
2593 (grub_afs_read_symlink): New function.
2595 2009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2599 * fs/afs.c: Fix comments style.
2600 (grub_afs_blockrun): Declare as packed.
2601 (grub_afs_datastream): Likewise.
2602 (grub_afs_bnode): Likewise.
2603 (grub_afs_btree): Likewise.
2604 (grub_afs_sblock): Likewise.
2605 Declare `name' as char.
2606 (grub_afs_inode): Declare as packed.
2607 Change void *vnode to grub_uint32_t unused.
2608 (grub_afs_iterate_dir): Check that key_size is positive.
2609 (grub_afs_mount): Don't read superblock twice.
2610 (grub_afs_dir): Don't free node in case of error,
2611 grub_fshelp_find_file already handles this.
2612 (grub_afs_open): Likewise.
2614 2009-07-19 Pavel Roskin <proski@gnu.org>
2616 * Makefile.in: Remove LIBLZO and enable_lzo.
2617 * conf/i386-pc.rmk: Remove lzo support.
2618 * configure.ac: Remove checks for lzo, don't define ENABLE_LZMA.
2619 * include/grub/i386/pc/kernel.h: Define ENABLE_LZMA. Remove lzo
2621 * kern/i386/pc/lzo1x.S: Remove.
2622 * kern/i386/pc/startup.S: Remove lzo support.
2623 * util/i386/pc/grub-mkimage.c: Likewise.
2625 2009-07-19 Vladimir Serbinenko <phcoder@gmail.com>
2627 * disk/usbms.c (grub_usbms_transfer): Fix double semicolon.
2628 * fs/xfs.c (grub_xfs_dir): Likewise.
2629 * fs/afs.c (grub_afs_dir): Likewise.
2630 * fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
2631 (grub_iso9660_open): Likewise.
2632 * fs/jfs.c (grub_jfs_open): Likewise.
2633 * fs/ext2.c (grub_ext2_dir): Likewise.
2634 * include/grub/macho.h (grub_macho_fat_arch): Likewise.
2635 * script/sh/lexer.c (grub_script_yylex): Likewise.
2637 2009-07-16 Pavel Roskin <proski@gnu.org>
2639 * configure.ac: Never add "-c" to CFLAGS.
2641 * configure.ac: Fix incorrect comparison for grub_cv_cc_efiemu.
2643 * configure.ac: Fix wrong use of grub_cv_cc_no_red_zone where
2644 grub_cv_cc_efiemu should be used.
2646 * configure.ac: Typo fixes.
2648 * kern/mm.c (grub_zalloc): New function.
2649 (grub_debug_zalloc): Likewise.
2650 * include/grub/mm.h: Declare grub_zalloc() and
2651 grub_debug_zalloc().
2652 * util/misc.c (grub_zalloc): New function.
2653 * bus/usb/uhci.c (grub_uhci_pci_iter): Use grub_zalloc()
2654 instead of grub_malloc(), remove unneeded initializations.
2655 * bus/usb/usbhub.c (grub_usb_hub_add_dev): Likewise.
2656 * commands/extcmd.c (grub_extcmd_dispatcher): Likewise.
2657 * commands/parttool.c (grub_cmd_parttool): Likewise.
2658 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
2659 * disk/raid5_recover.c (grub_raid5_recover): Likewise.
2660 * disk/raid6_recover.c (grub_raid6_recover): Likewise.
2661 * disk/usbms.c (grub_usbms_finddevs): Likewise.
2662 * efiemu/mm.c (grub_efiemu_request_memalign): Likewise.
2663 * efiemu/pnvram.c (grub_efiemu_pnvram): Likewise.
2664 (grub_cmd_efiemu_pnvram): Likewise.
2665 * fs/i386/pc/pxe.c (grub_pxefs_open): Likewise.
2666 * fs/iso9660.c (grub_iso9660_mount): Likewise.
2667 (grub_iso9660_iterate_dir): Likewise.
2668 * fs/jfs.c (grub_jfs_opendir): Likewise.
2669 * fs/ntfs.c (list_file): Likewise.
2670 (grub_ntfs_mount): Likewise.
2671 * kern/disk.c (grub_disk_open): Likewise.
2672 * kern/dl.c (grub_dl_load_core): Likewise.
2673 * kern/elf.c (grub_elf_file): Likewise.
2674 * kern/env.c (grub_env_context_open): Likewise.
2675 (grub_env_set): Likewise.
2676 (grub_env_set_data_slot): Likewise.
2677 * kern/file.c (grub_file_open): Likewise.
2678 * kern/fs.c (grub_fs_blocklist_open): Likewise.
2679 * loader/i386/multiboot.c (grub_module): Likewise.
2680 * loader/xnu.c (grub_xnu_create_key): Likewise.
2681 (grub_xnu_create_value): Likewise.
2682 * normal/main.c (grub_normal_add_menu_entry): Likewise.
2683 (read_config_file): Likewise.
2684 * normal/menu_entry.c (make_screen): Likewise.
2685 * partmap/sun.c (sun_partition_map_iterate): Likewise.
2686 * script/sh/lexer.c (grub_script_lexer_init): Likewise.
2687 * script/sh/script.c (grub_script_parse): Likewise.
2688 * video/bitmap.c (grub_video_bitmap_create): Likewise.
2689 * video/readers/jpeg.c (grub_video_reader_jpeg): Likewise.
2690 * video/readers/png.c (grub_png_output_byte): Likewise.
2691 (grub_video_reader_png): Likewise.
2693 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2695 Enable all targets that can be built by default
2697 * configure.ac: enable efiemu runtime, grub-emu, grub-emu-usb,
2698 grub-mkfont and grub-fstest if they can be built
2700 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2702 Fix hang and segmentation fault in grub-emu-usb
2704 * disk/scsi.c (grub_scsi_open): return err and not grub_errno
2705 * util/usb.c (grub_libusb_devices): likewise
2706 (grub_libusb_init): rename to ...
2707 (GRUB_MOD_INIT (libusb)):...this
2708 (grub_libusb_fini): rename to ..
2709 (GRUB_MOD_FINI (libusb)):...this
2710 * disk/usbms.c (grub_usbms_transfer): fix retry logic
2711 * include/grub/disk.h (grub_raid_init): removed, it's useless
2712 (grub_raid_fini): likewise
2713 (grub_lvm_init): likewise
2714 (grub_lvm_fini): likewise
2715 * util/grub-emu.c (main): don't call grub_libusb_init, it's done
2718 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2722 * Makefile.in (LIBUSB): new macro
2723 * genmk.rb (Utility/print_tail): new method
2724 (Utility/rule): use intermediary variable #{prefix}_OBJECTS
2725 (top level): call util.print_tail at the end.
2727 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2729 Make FreeBSD accept zpool.cache
2731 * loader/i386/bsd.c (grub_freebsd_add_meta_module): spoof filename if
2732 type is /boot/zfs/zpool.cache
2734 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2738 * include/grub/efiemu/efiemu.h (grub_efiemu_configuration_table64_t):
2739 correct wrong typedef
2740 * efiemu/prepare.c (SUFFIX (grub_efiemu_prepare)): minor style fixes
2742 2009-07-15 Pavel Roskin <proski@gnu.org>
2744 * include/grub/disk.h (struct grub_disk_dev): Use enum for id.
2745 * kern/disk.c (struct grub_disk_cache): Likewise.
2747 * commands/probe.c (options): Typo fix.
2749 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_BPB_END):
2750 Increase to 0x5a to accommodate FAT32. Adjust other offsets
2752 Original patch by Yves Blusseau <yves.grub-devel@zetam.org>
2754 * boot/i386/pc/boot.S (general_error_string): Add DOS newline at
2755 the end of "Error" to make the message more readable.
2757 * boot/i386/pc/boot.S (kernel_segment): Remove.
2758 (copy_buffer): Use GRUB_BOOT_MACHINE_KERNEL_ADDR in segment 0
2761 * boot/i386/pc/boot.S (boot_version): Remove.
2762 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
2765 * include/grub/i386/pc/boot.h: Sort all offsets.
2766 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Remove, it's unused.
2767 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Likewise.
2768 * boot/i386/pc/boot.S: Assert location of every offset listed in
2769 include/grub/i386/pc/boot.h.
2771 2009-07-13 Pavel Roskin <proski@gnu.org>
2773 * include/grub/i386/coreboot/machine.h: Rename
2774 GRUB_MACHINE_LINUXBIOS to GRUB_MACHINE_COREBOOT.
2775 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Allow
2776 multiboot 1 for GRUB_MACHINE_COREBOOT and GRUB_MACHINE_QEMU.
2778 * kern/dl.c: Force native word size to suppress warnings when
2781 * kern/device.c (grub_device_iterate): Change struct part_ent to
2782 hold the name, not a pointer to it. Use one grub_malloc() per
2783 partition, not two. Free partition_name if grub_malloc() fails.
2784 Set ents to NULL only before grub_partition_iterate() is called.
2786 2009-07-11 Bean <bean123ch@gmail.com>
2788 * kern/ieee1275/openfw.c (grub_children_iterate): Fix size of
2791 2009-07-10 Bean <bean123ch@gmail.com>
2792 2009-07-10 Robert Millan <rmh.grub@aybabtu.com>
2794 * kern/ieee1275/openfw.c (grub_children_iterate)
2795 (grub_devalias_iterate): Fix size evaluation for property or path
2796 strings, which was broken since r2132.
2798 2009-07-07 Pavel Roskin <proski@gnu.org>
2800 * commands/search.c (search_file): Merge into ...
2801 (search_fs): ... this. Accept search type as argument.
2802 (grub_cmd_search): Pass search type to search_fs().
2804 * include/grub/util/console.h: New file.
2805 * util/console.c: Use it instead of grub/machine/console.h.
2806 * util/grub-emu.c: Likewise.
2808 * lib/arg.c (find_long_option): Remove.
2809 (find_long): Add `len' argument, make `s' const char *.
2810 (grub_arg_parse): Parse long options in place, not in a
2813 2009-07-06 Pavel Roskin <proski@gnu.org>
2815 * commands/search.c (search_fs): Fix potential NULL pointer
2818 * commands/search.c (search_fs): Replace QUID macro with quid_fn
2821 2009-07-06 Daniel Mierswa <impulze@impulze.org>
2823 * commands/search.c (search_fs): Use grub_strcasecmp() for UUID
2826 2009-07-05 Pavel Roskin <proski@gnu.org>
2828 * include/grub/i386/linux.h (struct linux_kernel_params):
2829 Restore padding3, it's still needed.
2831 * util/grub.d/10_freebsd.in: Fix spelling of `device.hints' on
2833 * util/osdetect.lua: Likewise.
2835 2009-07-05 Bean <bean123ch@gmail.com>
2837 * conf/common.rmk (lua_mode_SOURCES): Add script/lua/lstrlib.c.
2839 * script/lua/grub_lib.c (grub_lua_run): Check input parameter.
2840 (grub_lua_getenv): Likewise.
2841 (grub_lua_setenv): Likewise.
2842 (save_errno): New function.
2843 (push_result): Likewise.
2844 (grub_lua_enum_device): Likewise.
2845 (grub_lua_enum_file): Likewise.
2846 (grub_lua_file_open): Likewise.
2847 (grub_lua_file_close): Likewise.
2848 (grub_lua_file_seek): Likewise.
2849 (grub_lua_file_read): Likewise.
2850 (grub_lua_file_getline): Likewise.
2851 (grub_lua_file_getsize): Likewise.
2852 (grub_lua_file_getpos): Likewise.
2853 (grub_lua_file_eof): Likewise.
2854 (grub_lua_file_exist): Likewise.
2855 (grub_lua_add_menu): Likewise.
2857 * script/lua/grub_lua.h (isupper): New inline function.
2858 (islower): Likewise.
2859 (ispunct): Likewise.
2860 (isxdigit): Likewise.
2861 (strcspn): Change to normal function.
2862 (strpbkr): New function declaration.
2865 * script/lua/grub_main.c (scan_str): New function.
2866 (strcspn): Likewise.
2867 (strpbrk): Likewise.
2870 * script/lua/linit.c (lualibs): Enable the string library.
2872 * util/osdetect.lua: New file.
2874 2009-07-04 Robert Millan <rmh.grub@aybabtu.com>
2876 * include/grub/i386/linux.h (struct linux_kernel_params): Add
2877 `capabilities' member.
2879 2009-07-02 Pavel Roskin <proski@gnu.org>
2881 * genparttoollist.sh: Add missing newline at the end.
2883 2009-07-01 Pavel Roskin <proski@gnu.org>
2885 * kern/x86_64/efi/callwrap.S: Add missing newline at the end.
2887 * util/hostdisk.c (open_device): Remove `const' from
2888 `sysctl_size', as sysctlbyname() can change it (in this case it
2889 doesn't actually happen).
2891 * include/grub/types.h: Define GRUB_LONG_MAX and GRUB_LONG_MIN
2892 using signed long int constants.
2894 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Make `p'
2895 constant to avoid a warning on FreeBSD.
2897 * util/hostdisk.c (device_is_wholedisk): Compile only on systems
2900 * Makefile.in: Install include/grub/machine symlink.
2902 * Makefile.in: When installing symlinks, use "cp -fR", which
2903 works on FreeBSD and MacOSX.
2904 From Yves Blusseau <cl7m42e02@sneakemail.com>
2906 * kern/dl.c (grub_dl_resolve_symbol): Make static.
2907 * include/grub/dl.h: Remove grub_dl_resolve_symbol().
2909 * util/misc.c: Move grub_reboot() and grub_halt() ...
2910 * util/grub-emu.c: ... here. Make main_env static.
2911 * include/grub/util/misc.h: Remove main_env.
2913 * kern/mm.c: Use correct format to print size_t.
2915 * include/grub/elf.h: Define Elf_Sword and Elf_Xword.
2916 * kern/i386/dl.c: Use ELF symbols without "32" or "64".
2917 * kern/powerpc/dl.c: Likewise.
2918 * kern/sparc64/dl.c: Likewise.
2919 * kern/x86_64/dl.c: Likewise.
2921 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2923 Fix grub-emu build on sparc64-ieee1275.
2925 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Synchronize with ...
2926 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): ... this.
2928 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2930 * util/misc.c: Include `<setjmp.h>' and `<grub/machine/machine.h>'.
2931 (grub_reboot, grub_halt): New functions.
2933 * util/i386/pc/misc.c: Delete. Update all users.
2934 * util/sparc64/ieee1275/misc.c: Likewise.
2935 * util/powerpc/ieee1275/misc.c: Likewise.
2937 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2939 * conf/i386.rmk (setjmp_mod_SOURCES)
2940 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Move to ...
2941 * conf/common.rmk (setjmp_mod_SOURCES)
2942 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): ... here, and modify
2943 to use $(target_cpu).
2944 * conf/x86_64-efi.rmk (setjmp_mod_SOURCES)
2945 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Remove.
2946 * conf/powerpc-ieee1275.rmk: Likewise.
2947 * conf/sparc64-ieee1275.rmk: Likewise.
2949 * conf/i386-pc.rmk (kernel_img_SOURCES): Use
2950 $(target_cpu) for kern/$(target_cpu)/dl.c.
2951 * conf/i386-efi.rmk: Likewise.
2952 * conf/i386-ieee1275.rmk: Likewise.
2953 * conf/x86_64-efi.rmk: Likewise.
2954 * conf/i386-coreboot.rmk: Likewise.
2955 * conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Use
2956 $(target_cpu) for kern/$(target_cpu)/dl.c and for
2957 kern/$(target_cpu)/cache.S.
2958 * conf/sparc64-ieee1275.rmk: Likewise.
2960 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2962 * include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size'
2963 type to `grub_uint8_t', and adjust `padding9' accordingly.
2965 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
2967 * include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): New macro.
2969 * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
2970 assembly in final jump, using register constraints.
2972 (grub_linux_boot): For text mode, initialize `have_vga' using
2973 GRUB_VIDEO_TYPE_TEXT rather than 0 (this changes its value to 1).
2975 Initialize `video_cursor_x' and `video_cursor_y' as late as possible,
2976 right before the final jump.
2978 Set `video_mode' to 0x3.
2980 Document initialization of `video_page', `video_mode' and
2983 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
2985 * include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro.
2986 * loader/i386/linux.c (grub_cmd_linux): Recognize "quiet" option,
2987 and set GRUB_LINUX_FLAG_QUIET appropriately.
2989 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
2991 Fix build on Debian / sparc.
2993 * configure.ac: Recognize `sparc' target_cpu (as sparc64).
2995 2009-06-28 Pavel Roskin <proski@gnu.org>
2997 * kern/i386/qemu/mmap.c (grub_machine_mmap_iterate): Use cast to
3000 * util/grub.d/10_linux.in: Match SUSE style initrd names.
3002 2009-06-27 Robert Millan <rmh.grub@aybabtu.com>
3004 * loader/i386/linux.c (grub_linux_boot): Fix uninitialized use of
3007 2009-06-27 Robert Millan <rmh.grub@aybabtu.com>
3011 * loader/i386/linux.c (grub_cmd_linux): Don't call grub_error when
3012 file can't be opened. grub_file_open() is already supposed to set
3013 grub_errno / grub_errmsg appropriately.
3014 * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
3016 2009-06-27 Pavel Roskin <proski@gnu.org>
3017 2009-06-27 Robert Millan <rmh.grub@aybabtu.com>
3019 * include/grub/dl.h: Include grub/elf.h.
3020 (struct grub_dl): Add symtab field.
3021 * kern/dl.c [GRUB_MACHINE_QEMU]: Define
3022 GRUB_MODULES_MACHINE_READONLY.
3023 (grub_dl_resolve_symbols): Populate mod->symtab, making a copy
3024 of the header for read-only modules.
3025 (grub_dl_unload): Free mod->symtab for read-only modules.
3026 * kern/i386/dl.c: Use mod->symtab.
3027 * kern/powerpc/dl.c: Likewise.
3028 * kern/sparc64/dl.c: Likewise.
3029 * kern/x86_64/dl.c: Likewise.
3031 * conf/i386-qemu.rmk: New file.
3032 * kern/i386/qemu/startup.S: Likewise.
3033 * kern/i386/qemu/mmap.c: Likewise.
3034 * boot/i386/qemu/boot.S: Likewise.
3035 * include/grub/i386/qemu/time.h: Likewise.
3036 * include/grub/i386/qemu/serial.h: Likewise.
3037 * include/grub/i386/qemu/kernel.h: Likewise.
3038 * include/grub/i386/qemu/console.h: Likewise.
3039 * include/grub/i386/qemu/boot.h: Likewise.
3040 * include/grub/i386/qemu/init.h: Likewise.
3041 * include/grub/i386/qemu/machine.h: Likewise.
3042 * include/grub/i386/qemu/loader.h: Likewise.
3043 * include/grub/i386/qemu/memory.h: Likewise.
3045 * conf/i386-coreboot.rmk (GRUB_BOOT_MACHINE_LINK_ADDR)
3046 (GRUB_KERNEL_MACHINE_LINK_ADDR): New variables.
3047 [qemu] (pkglib_IMAGES): Add `boot.img'.
3048 [qemu] (boot_img_SOURCES, boot_img_ASFLAGS, boot_img_LDFLAGS)
3049 [qemu] (boot_img_FORMAT): New variables.
3050 [qemu] (bin_UTILITIES): Add `grub-mkimage'.
3051 [qemu] (grub_mkimage_SOURCES, grub_mkimage_CFLAGS): New variables.
3052 [qemu] (kernel_img_SOURCES, kernel_img_HEADERS, kernel_img_CFLAGS)
3053 [qemu] (kernel_img_ASFLAGS, kernel_img_LDFLAGS)
3054 [qemu] (kernel_img_FORMAT): New variables.
3056 * configure.ac: Recognise `i386-qemu'.
3058 * util/i386/pc/grub-mkimage.c (compress_kernel): Add dummy variant
3059 (for no compression).
3060 [GRUB_MACHINE_QEMU] (generate_image): Misc adjustments to produce
3061 a valid i386 ROM image. Make `GRUB_KERNEL_MACHINE_COMPRESSED_SIZE',
3062 `GRUB_KERNEL_MACHINE_INSTALL_DOS_PART' and
3063 `GRUB_KERNEL_MACHINE_INSTALL_BSD_PART' optional features (with
3066 2009-06-27 Pavel Roskin <proski@gnu.org>
3068 * efiemu/prepare.c: Eliminate TYPE macro, it makes code hard to
3070 * efiemu/prepare32.c: Likewise.
3071 * efiemu/prepare64.c: Likewise.
3073 2009-06-26 Pavel Roskin <proski@gnu.org>
3075 * include/grub/types.h: Define GRUB_TARGET_WORDSIZE.
3076 * include/grub/elf.h: Define symbols without "32" or "64" based
3077 on GRUB_TARGET_WORDSIZE.
3078 * include/grub/multiboot2.h: Use GRUB_TARGET_WORDSIZE.
3079 * efiemu/loadcore32.c: Redefine GRUB_TARGET_WORDSIZE, remove own
3081 * efiemu/loadcore64.c: Likewise.
3082 * loader/i386/bsd32.c: Likewise.
3083 * loader/i386/bsd64.c: Likewise.
3084 * kern/dl.c: Remove own ELF definitions.
3085 * util/i386/efi/grub-mkimage.c: Likewise.
3087 2009-06-23 Robert Millan <rmh.grub@aybabtu.com>
3089 * kern/i386/pc/startup.S (real_to_prot): Access `gdtdesc' using
3090 segment 0x0 unconditionally, because the reference generated by
3091 GAS is an absolute address.
3093 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
3095 * include/grub/i386/kernel.h: Include `<grub/machine/machine.h>'.
3096 [! GRUB_MACHINE_IEEE1275]: Set `GRUB_MOD_ALIGN' to 0x1.
3098 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
3100 * commands/search.c (grub_cmd_search): Macroify hardcoded args[]
3101 indexes. Check for -f explicitly.
3102 (search_file): Improve error message.
3103 (GRUB_MOD_INIT(search)): Add missing `-n' to help output.
3105 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
3107 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): Rename to ...
3108 (GRUB_KERNEL_MACHINE_LINK_ADDR): ... this. Update all users.
3110 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
3112 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/misc.S'.
3113 * conf/i386-ieee1275.rmk: Likewise.
3114 * conf/i386-coreboot.rmk: Likewise.
3116 * kern/i386/pc/startup.S (grub_stop): Remove function.
3117 * kern/i386/ieee1275/startup.S: Likewise.
3118 * kern/i386/coreboot/startup.S: Likewise.
3119 * kern/i386/misc.S (grub_stop): New function.
3121 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
3123 * kern/i386/pc/startup.S (real_to_prot): Move from here ...
3124 * kern/i386/realmode.S (real_to_prot): ... to here.
3126 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
3128 * conf/i386-ieee1275.rmk (pkglib_PROGRAMS): Replace `kernel.elf'
3130 (kernel_elf_SOURCES): Rename to ...
3131 (kernel_img_SOURCES): ... this.
3132 (kernel_elf_HEADERS): Rename to ...
3133 (kernel_img_HEADERS): ... this. Update all users.
3134 (kernel_elf_ASFLAGS): Rename to ...
3135 (kernel_img_ASFLAGS): ... this.
3136 (kernel_elf_CFLAGS): Rename to ...
3137 (kernel_img_CFLAGS): ... this.
3138 (kernel_elf_LDFLAGS): Rename to ...
3139 (kernel_img_LDFLAGS): ... this.
3140 * conf/i386-coreboot.rmk: Likewise.
3141 * conf/powerpc-ieee1275.rmk: Likewise.
3143 * util/elf/grub-mkimage.c (add_segments): Replace "kernel.elf"
3146 2009-06-21 Pavel Roskin <proski@gnu.org>
3148 * loader/powerpc/ieee1275/linux.c (offset_phdr): Fix prototypes
3149 to match nested functions.
3150 * loader/sparc64/ieee1275/linux.c: Likewise.
3152 * conf/i386-ieee1275.rmk: Define kernel_elf_ASFLAGS.
3154 2009-06-21 Robert Millan <rmh.grub@aybabtu.com>
3156 * configure.ac: Enable `END_SYMBOL' / `BSS_START_SYMBOL' test on
3159 2009-06-21 Robert Millan <rmh.grub@aybabtu.com>
3161 Fix asm file handling on ELF, and remove workarounds.
3163 * genmk.rb (class Programs): Detect assembly files, and set ASFLAGS
3164 and -DASM_FILE=1 appropriately (copied from `class Images' stanza).
3165 * kern/i386/ieee1275/startup.S (ASM_FILE): Remove macro.
3166 * kern/i386/coreboot/startup.S (ASM_FILE): Likewise.
3168 2009-06-21 Vladimir Serbinenko <phcoder@gmail.com>
3170 Load BSD ELF modules
3172 * conf/i386-pc.rmk (bsd_mod_SOURCES): Add loader/i386/bsd32.c
3173 and loader/i386/bsd64.c
3174 * include/grub/i386/bsd.h (FREEBSD_MODTYPE_MODULE): Remove
3175 (FREEBSD_MODTYPE_ELF_MODULE): New definition
3176 (FREEBSD_MODTYPE_ELF_MODULE_OBJ): Likewise
3177 (grub_freebsd_load_elfmodule32): New declaration
3178 (grub_freebsd_load_elfmoduleobj64): Likewise
3179 (grub_freebsd_load_elf_meta32): Likewise
3180 (grub_freebsd_load_elf_meta64): Likewise
3181 (grub_freebsd_add_meta): Likewise
3182 (grub_freebsd_add_meta_module): Likewise
3183 * loader/i386/bsd.c (grub_freebsd_add_meta): Make global
3184 (grub_freebsd_add_meta_module): Likewise and move module-specific
3185 parts to grub_cmd_freebsd and grub_cmd_freebsd_module
3186 (grub_cmd_freebsd): Add elf-kernel specific parts
3187 based on grub_freebsd_add_meta_module
3188 (grub_cmd_freebsd_module): Add type parsing moved from
3189 grub_freebsd_add_meta_module
3190 (grub_cmd_freebsd_module_elf): New function
3191 (cmd_freebsd_module_elf): New variable
3192 (GRUB_MOD_INIT): Register freebsd_module_elf
3193 * loader/i386/bsd32.c: New file
3194 * loader/i386/bsd64.c: Likewise
3195 * loader/i386/bsdXX.c: Likewise
3196 * kern/elf.c (grub_elf32_load): Let hook decide which pheaders to load
3197 (grub_elf64_load): Likewise
3198 * include/grub/elfload.h (grub_elf32_load_hook_t): New parameter do_load
3200 (grub_elf64_load_hook_t): Likewise
3202 2009-06-21 Colin Watson <cjwatson@ubuntu.com>
3204 * util/grub-mkconfig.in (GRUB_DISABLE_LINUX_RECOVERY): Export
3206 * util/grub.d/10_linux.in: If GRUB_DISABLE_LINUX_RECOVERY is true,
3207 don't write a menu entry for recovery mode.
3209 2009-06-20 Robert Millan <rmh.grub@aybabtu.com>
3211 * util/i386/pc/grub-mkimage.c (main): Oops, free `output' only
3212 after it's no longer needed.
3214 2009-06-20 Robert Millan <rmh.grub@aybabtu.com>
3216 * include/grub/i386/loader.h (grub_linux_prot_size)
3217 (grub_linux_tmp_addr, grub_linux_real_addr)
3218 (grub_linux_is_bzimage, grub_linux16_boot): Declare only on
3219 GRUB_MACHINE_PCBIOS.
3220 * util/i386/pc/grub-mkimage.c (compress_kernel): Move
3221 common grub_util_info() call to ...
3222 (generate_image): ... here.
3223 Fix use of uninitialized memory, comparison of signed with
3224 unsigned integers and memory leak.
3225 Remove bogus module address message.
3227 2009-06-20 Vladimir Serbinenko <phcoder@gmail.com>
3229 * disk/mdraid_linux.c (GRUB_MOD_FINI): use grub_raid_unregister and not
3231 * disk/dmraid_nvidia.c (GRUB_MOD_FINI): likewise
3233 2009-06-19 Pavel Roskin <proski@gnu.org>
3235 * configure.ac: Remove stray AC_MSG_CHECKING.
3237 2009-06-19 Vladimir Serbinenko <phcoder@gmail.com>
3239 * disk/scsi.c (grub_scsi_open): use continue instead of big if
3241 2009-06-18 Pavel Roskin <proski@gnu.org>
3243 * conf/common.rmk: Add fs_file.mod.
3244 * disk/fs_file.c: New file.
3245 * include/grub/disk.h (enum grub_disk_dev_id): Add
3246 GRUB_DISK_DEVICE_FILE_ID.
3248 2009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
3250 Fix build with Apple's toolchain. Part 2
3252 * aclocal.m4 (grub_PROG_TARGET_CC): add missing prototype for main and
3255 2009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
3257 Fix build with Apple's toolchain. Part 1
3259 * commands/i386/pc/drivemap_int13h.S: use assembly-time constants
3261 * configure.ac: remove a leftover AC_MSG_RESULT
3262 (CFLAGS): don't add -Wl,--defsym,___main=0x8100 when building with
3265 2009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
3269 * fs/ntfscomp.c (decomp_get16): initialize c1 and c2
3270 (decomp_block): initialize ch
3271 use grub_memcpy instead of memcpy
3273 2009-06-17 Pavel Roskin <proski@gnu.org>
3275 * include/grub/i386/coreboot/console.h: Don't use the i386-pc
3276 version, use declarations needed to use vga_text as the startup
3279 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Remove
3280 term/i386/pc/at_keyboard.c, it doesn't need to be compiled into
3282 * kern/i386/coreboot/init.c: Don't call grub_at_keyboard_init()
3283 and grub_at_keyboard_fini(), it's done on module load and
3286 2009-06-17 Felix Zielcke <fzielcke@z-51.de>
3288 * loader/i386/linux.c (grub_cmd_linux): Set grub_error if the
3289 file can't be found.
3290 * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
3292 2009-06-17 Vladimir Serbinenko <phcoder@gmail.com>
3294 Fix newline handling
3296 * include/grub/script_sh.h (grub_lexer_param): new field was_newline
3297 * script/sh/lexer.c (grub_script_lexer_init): initialize was_newline
3298 (grub_script_yylex): don't segfault on unterminated script
3299 newline terminates command and variable
3301 2009-06-17 Vladimir Serbinenko <phcoder@gmail.com>
3303 avoid double grub_adjust_range call. Bug reported by David Simner
3305 * kern/disk.c (grub_disk_write): change to raw disk access before
3308 2009-06-17 Colin Watson <cjwatson@ubuntu.com>
3310 * util/elf/grub-mkimage.c (usage): Prefix each option line with two
3311 spaces, for the benefit of help2man.
3312 * util/i386/efi/grub-mkimage.c (usage): Likewise.
3314 2009-06-16 Pavel Roskin <proski@gnu.org>
3316 * kern/i386/halt.c: Include grub/machine/init.h.
3317 * kern/i386/reboot.c: Include grub/cpu/reboot.h.
3319 2009-06-16 Felix Zielcke <fzielcke@z-51.de>
3321 * util/grub.d/30_os-prober.in: Use ${root} in the generated
3324 2009-06-16 James Jarvis <James.Jarvis@ed.ac.uk>
3326 * commands/help.c GRUB_MOD_INIT(echo): Fix the help output of
3329 2009-06-16 Pavel Roskin <proski@gnu.org>
3331 * boot/i386/pc/boot.S: Remove root_drive. Assert offset of
3332 boot_drive_check by using GRUB_BOOT_MACHINE_DRIVE_CHECK. Don't
3333 save %dx, we only need %dl and we never change it.
3334 * boot/i386/pc/cdboot.S: Don't set the root drive.
3335 * boot/i386/pc/pxeboot.S: Likewise.
3336 * include/grub/i386/pc/boot.h: Remove
3337 GRUB_BOOT_MACHINE_ROOT_DRIVE, adjust
3338 GRUB_BOOT_MACHINE_DRIVE_CHECK.
3339 * include/grub/i386/pc/kernel.h: Remove grub_root_drive.
3340 * kern/i386/pc/init.c (make_install_device): Remove references
3342 * kern/i386/pc/startup.S: Likewise.
3343 * util/i386/pc/grub-setup.c (setup): Don't set root_drive.
3345 2009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
3349 * commands/xnu_uuid.c: new file
3350 * conf/common.rmk (pkglib_MODULES): add xnu_uuid.mod
3351 (xnu_uuid_mod_SOURCES): new variable
3352 (xnu_uuid_mod_CFLAGS): likewise
3353 (xnu_uuid_mod_LDFLAGS): likewise
3354 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
3355 * conf/i386-ieee1275.rmk: likewise
3356 * conf/i386-pc.rmk: likewise
3357 * conf/powerpc-ieee1275.rmk: likewise
3358 * conf/sparc64-ieee1275.rmk: likewise
3359 * util/grub.d/30_os-prober.in: use UUID for Mac OS X/Darwin
3361 2009-06-16 Pavel Roskin <proski@gnu.org>
3363 * configure.ac: Avoid '==' in test command, it's not portable.
3365 2009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
3369 * commands/probe.c: new file
3370 * conf/common.rmk (pkglib_MODULES): add probe.mod
3371 (probe_mod_SOURCES): new variable
3372 (probe_mod_CFLAGS): likewise
3373 (probe_mod_LDFLAGS): likewise
3374 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
3375 * conf/i386-ieee1275.rmk: likewise
3376 * conf/i386-pc.rmk: likewise
3377 * conf/powerpc-ieee1275.rmk: likewise
3378 * conf/sparc64-ieee1275.rmk: likewise
3380 2009-06-15 Vladimir Serbinenko <phcoder@gmail.com>
3382 Fix handling of string like \"hello\" and "a
3385 * script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC
3386 (grub_script_yylex): fix parsing of quoting, escaping and newline
3388 2009-06-13 Vladimir Serbinenko <phcoder@gmail.com>
3390 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): fix partition
3393 2009-06-13 Jun Inoue <jun.lambda@gmail.com>
3395 * util/grub-mkconfig.in: Fix parsing of --output option.
3397 2009-06-12 Pavel Roskin <proski@gnu.org>
3399 * Makefile.in (pkgdata_SRCDIR): Remove. genmodsrc.sh and
3400 genmk.rb don't need to be generated or installed.
3402 2009-06-12 Vladimir Serbinenko <phcoder@gmail.com>
3404 * commands/i386/pc/drivemap_int13h.S: add more comments
3406 2009-06-11 Pavel Roskin <proski@gnu.org>
3408 * Makefile.in (uninstall): Uninstall manuals.
3410 * Makefile.in: Rename lib_DATA to lib_SCRIPTS, move it from
3411 PKGLIB to SCRIPTS. This fixes installation of grub-mkconfig_lib
3412 and update-grub_lib in two places.
3413 * conf/common.rmk: Rename lib_DATA to lib_SCRIPTS.
3415 * disk/usbms.c (grub_usbms_transfer): Initialize `err' to fix
3418 * loader/i386/bsd.c (grub_freebsd_boot): Rename `entry' to
3419 `entry_lo' to fix variable shadowing.
3421 2009-06-11 Christian Franke <franke@computer.org>
3423 * kern/misc.c (__enable_execute_stack): Add missing return type
3424 to prevent gcc warning.
3426 2009-06-11 Felix Zielcke <fzielcke@z-51.de>
3428 * conf/i386-ieee1275.rmk (COMMON_LDFLAGS): Remove `-static -lgcc'.
3430 2009-06-11 Pavel Roskin <proski@gnu.org>
3432 * Makefile.in: Don't rely on any scripts being executable.
3433 Always use $(SHELL) to run shell scripts.
3435 * configure.ac: Always define ___main if using -nostdlib. This
3436 fixes tests on Cygwin.
3438 2009-06-11 Giuseppe Caizzone <acaizzo@gmail.com>
3442 * fs/udf.c (grub_udf_read_block): handle the fact that ad->length
3443 is in bytes and not in blocks
3445 2009-06-11 Pavel Roskin <proski@gnu.org>
3447 * kern/i386/halt.c (grub_halt): Make `i' unsigned to fix a
3450 2009-06-11 Felix Zielcke <fzielcke@z-51.de>
3452 * util/grub.d/30_os-prober.in: Fix a comment. Source
3453 ${libdir}/grub/grub-mkconfig_lib. Use prepare_grub_to_access_device
3454 to set the root device. Place drivemap command in the generated
3457 2009-06-11 Pavel Roskin <proski@gnu.org>
3459 * configure.ac: Remove host_m32. Issues with 64-bit utilities
3460 have long been resolved.
3462 2009-06-11 Colin Watson <cjwatson@ubuntu.com>
3464 * util/grub.d/10_linux.in: Capitalise "Linux".
3466 * util/grub-pe2elf.c (usage): Fix references to grub-editenv.
3468 2009-06-11 Pavel Roskin <proski@gnu.org>
3470 * kern/efi/efi.c (grub_exit): Add infinite loop at the end to
3471 fix a gcc warning and ensure that the function won't ever exit.
3473 * kern/i386/ieee1275/init.c: Add missing prototype for
3476 * loader/ieee1275/multiboot2.c [__i386__]: Include
3477 grub/cpu/multiboot.h.
3479 * term/i386/pc/serial.c (serial_translate_key_sequence): Avoid
3480 casts to short - they are not portable and cause warnings. Fix
3481 use of uninitialized values in input_buf. Use ARRAY_SIZE.
3483 2009-06-11 Vladimir Serbinenko <phcoder@gmail.com>
3487 * commands/i386/pc/drivemap.c (grub_get_root_biosnumber_drivemap):
3489 (grub_get_root_biosnumber_saved): new variable
3490 (GRUB_MOD_INIT): register grub_get_root_biosnumber_drivemap
3491 (GRUB_MOD_FINI): unregister grub_get_root_biosnumber_drivemap
3492 * commands/i386/pc/drivemap_int13h.S (grub_drivemap_handler): restore
3493 %dx after the call if necessary
3494 * conf/common.rmk (pkglib_MODULES): remove boot.mod
3495 (boot_mod_SOURCES): remove
3496 (boot_mod_CFLAGS): remove
3497 (boot_mod_LDFLAGS): remove
3498 * conf/i386-coreboot.rmk (pkglib_MODULES): add boot.mod
3499 (boot_mod_SOURCES): new variable
3500 (boot_mod_CFLAGS): likewise
3501 (boot_mod_LDFLAGS): likewise
3502 * conf/i386-efi.rmk: likewise
3503 * conf/i386-ieee1275.rmk: likewise
3504 * conf/i386-pc.rmk: likewise
3505 * conf/powerpc-ieee1275.rmk: likewise
3506 * conf/sparc64-ieee1275.rmk: likewise
3507 * conf/x86_64-efi.rmk: likewise
3508 * include/grub/i386/pc/biosnum.h: new file
3509 * lib/i386/pc/biosnum.c: likewise
3510 * loader/i386/bsd.c (grub_bsd_get_device): use grub_get_root_biosnumber
3511 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): likewise
3512 * loader/i386/pc/chainloader.c (grub_chainloader_cmd): likewise
3514 2009-06-10 Pavel Roskin <proski@gnu.org>
3516 * io/gzio.c (test_header): Don't reuse one buffer for all data.
3517 Use separate variables. Read only the file size at the end, but
3518 not the checksum that we don't use.
3520 * kern/file.c (grub_file_read): Use void pointer for the buffer.
3523 * kern/ieee1275/openfw.c: Remove libc includes.
3524 * kern/ieee1275/cmain.c: Likewise.
3525 * include/grub/ieee1275/ieee1275.h: Likewise.
3527 * kern/i386/coreboot/init.c: Include grub/cpu/tsc.h to fix
3530 2009-06-10 Felix Zielcke <fzielcke@z-51.de>
3532 * Makefile.in: Remove all trailing whitespace.
3533 * conf/i386-pc.rmk: Likewise.
3534 * conf/powerpc-ieee1275.rmk: Likewise.
3535 * conf/sparc64-ieee1275.rmk: Likewise.
3536 * docs/grub.texi: Likewise.
3537 * docs/texinfo.tex: Likewise.
3538 * disk/fs_uuid.c: Likewise.
3539 * disk/lvm.c: Likewise.
3540 * disk/scsi.c: Likewise.
3541 * disk/ata.c: Likewise.
3542 * disk/ieee1275/ofdisk.c: Likewise.
3543 * disk/i386/pc/biosdisk.c: Likewise.
3544 * disk/host.c: Likewise.
3545 * disk/raid.c: Likewise.
3546 * disk/efi/efidisk.c: Likewise.
3547 * disk/usbms.c: Likewise.
3548 * disk/memdisk.c: Likewise.
3549 * disk/loopback.c: Likewise.
3550 * kern/powerpc/dl.c: Likewise.
3551 * kern/device.c: Likewise.
3552 * kern/dl.c: Likewise.
3553 * kern/sparc64/dl.c: Likewise.
3554 * kern/ieee1275/ieee1275.c: Likewise.
3555 * kern/term.c: Likewise.
3556 * kern/fs.c: Likewise.
3557 * kern/i386/dl.c: Likewise.
3558 * kern/i386/pc/startup.S: Likewise.
3559 * kern/i386/pc/init.c: Likewise.
3560 * kern/i386/pc/mmap.c: Likewise.
3561 * kern/i386/pc/lzo1x.S: Likewise.
3562 * kern/i386/ieee1275/init.c: Likewise.
3563 * kern/i386/realmode.S: Likewise.
3564 * kern/i386/tsc.c: Likewise.
3565 * kern/partition.c: Likewise.
3566 * kern/corecmd.c: Likewise.
3567 * kern/file.c: Likewise.
3568 * kern/efi/efi.c: Likewise.
3569 * kern/efi/init.c: Likewise.
3570 * kern/efi/mm.c: Likewise.
3571 * kern/main.c: Likewise.
3572 * kern/err.c: Likewise.
3573 * kern/env.c: Likewise.
3574 * kern/disk.c: Likewise.
3575 * kern/generic/millisleep.c: Likewise.
3576 * kern/generic/rtc_get_time_ms.c: Likewise.
3577 * kern/misc.c: Likewise.
3578 * kern/parser.c: Likewise.
3579 * genmk.rb: Likewise.
3580 * configure.ac: Likewise.
3581 * boot/i386/pc/diskboot.S: Likewise.
3582 * boot/i386/pc/pxeboot.S: Likewise.
3583 * boot/i386/pc/boot.S: Likewise.
3584 * boot/i386/pc/lnxboot.S: Likewise.
3585 * boot/i386/pc/cdboot.S: Likewise.
3586 * parttool/pcpart.c: Likewise.
3587 * video/readers/tga.c: Likewise.
3588 * video/video.c: Likewise.
3589 * video/bitmap.c: Likewise.
3590 * lib/envblk.c: Likewise.
3591 * lib/i386/setjmp.S: Likewise.
3592 * fs/xfs.c: Likewise.
3593 * fs/afs.c: Likewise.
3594 * fs/fat.c: Likewise.
3595 * fs/ntfs.c: Likewise.
3596 * fs/udf.c: Likewise.
3597 * fs/affs.c: Likewise.
3598 * fs/iso9660.c: Likewise.
3599 * fs/hfs.c: Likewise.
3600 * fs/fshelp.c: Likewise.
3601 * fs/ext2.c: Likewise.
3602 * fs/jfs.c: Likewise.
3603 * fs/reiserfs.c: Likewise.
3604 * fs/hfsplus.c: Likewise.
3605 * fs/minix.c: Likewise.
3606 * fs/cpio.c: Likewise.
3607 * fs/sfs.c: Likewise.
3608 * fs/ufs.c: Likewise.
3609 * efiemu/prepare.c: Likewise.
3610 * efiemu/loadcore_common.c: Likewise.
3611 * efiemu/runtime/efiemu.sh: Likewise.
3612 * efiemu/runtime/efiemu.S: Likewise.
3613 * efiemu/runtime/efiemu.c: Likewise.
3614 * efiemu/pnvram.c: Likewise.
3615 * efiemu/main.c: Likewise.
3616 * efiemu/i386/pc/cfgtables.c: Likewise.
3617 * efiemu/i386/loadcore64.c: Likewise.
3618 * efiemu/i386/loadcore32.c: Likewise.
3619 * efiemu/loadcore.c: Likewise.
3620 * efiemu/symbols.c: Likewise.
3621 * efiemu/mm.c: Likewise.
3622 * include/grub/autoefi.h: Likewise.
3623 * include/grub/datetime.h: Likewise.
3624 * include/grub/term.h: Likewise.
3625 * include/grub/hfs.h: Likewise.
3626 * include/grub/lvm.h: Likewise.
3627 * include/grub/i386/tsc.h: Likewise.
3628 * include/grub/i386/linux.h: Likewise.
3629 * include/grub/i386/xnu.h: Likewise.
3630 * include/grub/i386/efiemu.h: Likewise.
3631 * include/grub/i386/pc/biosdisk.h: Likewise.
3632 * include/grub/i386/pc/memory.h: Likewise.
3633 * include/grub/i386/pc/vbe.h: Likewise.
3634 * include/grub/parttool.h: Likewise.
3635 * include/grub/video.h: Likewise.
3636 * include/grub/memory.h: Likewise.
3637 * include/grub/fs.h: Likewise.
3638 * include/grub/partition.h: Likewise.
3639 * include/grub/xnu.h: Likewise.
3640 * include/grub/efi/api.h: Likewise.
3641 * include/grub/efi/pe32.h: Likewise.
3642 * include/grub/efi/memory.h: Likewise.
3643 * include/grub/multiboot.h: Likewise.
3644 * include/grub/usbdesc.h: Likewise.
3645 * include/grub/multiboot2.h: Likewise.
3646 * include/grub/acpi.h: Likewise.
3647 * include/grub/efiemu/efiemu.h: Likewise.
3648 * include/grub/disk.h: Likewise.
3649 * include/grub/ieee1275/ieee1275.h: Likewise.
3650 * include/grub/net.h: Likewise.
3651 * include/grub/machoload.h: Likewise.
3652 * include/grub/macho.h: Likewise.
3653 * include/multiboot.h: Likewise.
3654 * genmoddep.awk: Likewise.
3655 * normal/main.c: Likewise.
3656 * normal/menu_entry.c: Likewise.
3657 * normal/menu_viewer.c: Likewise.
3658 * normal/completion.c: Likewise.
3659 * normal/cmdline.c: Likewise.
3660 * normal/misc.c: Likewise.
3661 * normal/datetime.c: Likewise.
3662 * bus/usb/usbtrans.c: Likewise.
3663 * bus/usb/ohci.c: Likewise.
3664 * bus/usb/uhci.c: Likewise.
3665 * bus/usb/usb.c: Likewise.
3666 * mmap/efi/mmap.c: Likewise.
3667 * mmap/i386/pc/mmap_helper.S: Likewise.
3668 * mmap/i386/pc/mmap.c: Likewise.
3669 * mmap/i386/mmap.c: Likewise.
3670 * mmap/i386/uppermem.c: Likewise.
3671 * mmap/mmap.c: Likewise.
3672 * commands/acpi.c: Likewise.
3673 * commands/echo.c: Likewise.
3674 * commands/blocklist.c: Likewise.
3675 * commands/loadenv.c: Likewise.
3676 * commands/usbtest.c: Likewise.
3677 * commands/boot.c: Likewise.
3678 * commands/parttool.c: Likewise.
3679 * commands/search.c: Likewise.
3680 * commands/cat.c: Likewise.
3681 * commands/i386/pc/play.c: Likewise.
3682 * commands/i386/pc/drivemap.c: Likewise.
3683 * commands/i386/pc/vbeinfo.c: Likewise.
3684 * commands/i386/pc/acpi.c: Likewise.
3685 * commands/i386/pc/vbetest.c: Likewise.
3686 * commands/ls.c: Likewise.
3687 * commands/cmp.c: Likewise.
3688 * commands/test.c: Likewise.
3689 * commands/efi/acpi.c: Likewise.
3690 * commands/gptsync.c: Likewise.
3691 * commands/help.c: Likewise.
3692 * partmap/amiga.c: Likewise.
3693 * partmap/apple.c: Likewise.
3694 * partmap/acorn.c: Likewise.
3695 * partmap/pc.c: Likewise.
3696 * partmap/sun.c: Likewise.
3697 * partmap/gpt.c: Likewise.
3698 * script/sh/lexer.c: Likewise.
3699 * script/sh/function.c: Likewise.
3700 * font/font.c: Likewise.
3701 * font/font_cmd.c: Likewise.
3702 * loader/powerpc/ieee1275/linux.c: Likewise.
3703 * loader/efi/chainloader.c: Likewise.
3704 * loader/multiboot_loader.c: Likewise.
3705 * loader/macho.c: Likewise.
3706 * loader/i386/multiboot.c: Likewise.
3707 * loader/i386/linux.c: Likewise.
3708 * loader/i386/pc/linux.c: Likewise.
3709 * loader/i386/pc/multiboot2.c: Likewise.
3710 * loader/i386/pc/chainloader.c: Likewise.
3711 * loader/i386/pc/xnu.c: Likewise.
3712 * loader/i386/bsd_trampoline.S: Likewise.
3713 * loader/i386/efi/linux.c: Likewise.
3714 * loader/i386/multiboot_elfxx.c: Likewise.
3715 * loader/i386/bsd_helper.S: Likewise.
3716 * loader/i386/bsd.c: Likewise.
3717 * loader/i386/linux_trampoline.S: Likewise.
3718 * loader/i386/xnu_helper.S: Likewise.
3719 * loader/i386/xnu.c: Likewise.
3720 * loader/i386/bsd_pagetable.c: Likewise.
3721 * loader/i386/multiboot_helper.S: Likewise.
3722 * loader/xnu.c: Likewise.
3723 * loader/xnu_resume.c: Likewise.
3724 * io/gzio.c: Likewise.
3725 * term/efi/console.c: Likewise.
3726 * term/terminfo.c: Likewise.
3727 * term/ieee1275/ofconsole.c: Likewise.
3728 * term/i386/pc/serial.c: Likewise.
3729 * term/i386/pc/vesafb.c: Likewise.
3730 * term/i386/pc/vga.c: Likewise.
3731 * term/usb_keyboard.c: Likewise.
3732 * term/gfxterm.c: Likewise.
3733 * aclocal.m4: Likewise.
3734 * util/lvm.c: Likewise.
3735 * util/grub.d/30_os-prober.in: Likewise.
3736 * util/grub.d/10_hurd.in: Likewise.
3737 * util/console.c: Likewise.
3738 * util/grub-macho2img.c: Likewise.
3739 * util/grub-probe.c: Likewise.
3740 * util/hostfs.c: Likewise.
3741 * util/i386/pc/grub-mkimage.c: Likewise.
3742 * util/i386/pc/grub-setup.c: Likewise.
3743 * util/i386/efi/grub-mkimage.c: Likewise.
3744 * util/grub-mkconfig.in: Likewise.
3745 * util/raid.c: Likewise.
3746 * util/resolve.c: Likewise.
3747 * util/grub-mkdevicemap.c: Likewise.
3748 * util/grub-emu.c: Likewise.
3749 * util/getroot.c: Likewise.
3750 * util/hostdisk.c: Likewise.
3751 * util/usb.c: Likewise.
3752 * util/grub-editenv.c: Likewise.
3753 * util/misc.c: Likewise.
3755 2009-06-10 Felix Zielcke <fzielcke@z-51.de>
3757 * gendistlist.sh (EXTRA_DISTFILES): Add `genhandlerlist.sh' and
3758 `genparttoollist.sh'.
3759 (DISTDIRS): Add `efiemu', `mmap', `parttool' and `script'.
3760 Add `*.sh' to the list find searches for and change `mdate.sh'
3763 2009-06-10 Pavel Roskin <proski@gnu.org>
3765 * include/grub/multiboot2.h: Provide compatibility defines for
3767 * include/multiboot2.h: Include stdint.h only if needed, using
3769 * loader/i386/pc/multiboot2.c: Include multiboot2.h after
3771 * loader/ieee1275/multiboot2.c: Likewise.
3772 * loader/multiboot2.c: Likewise.
3773 * loader/multiboot_loader.c: Likewise.
3775 * configure.ac: Use -nostdlib when probing for the target. It
3776 should not be required to have libc for the target.
3778 * configure.ac: Remove checks for __bswapsi2 and __bswapdi2,
3779 they fail without libc headers for the target.
3780 * include/grub/powerpc/libgcc.h: Use weak attribute for all
3782 * include/grub/sparc64/libgcc.h: Likewise. Don't use
3783 preprocessor conditionals.
3785 * conf/common.rmk: Compile tar.mod from tar.c, not cpio.c. The
3786 build system doesn't need to be aware of the tar.c internals.
3788 2009-06-09 Michel Hermier <michel.hermier@gmail.com>
3790 * fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values.
3792 2009-06-09 Robert Millan <rmh.grub@aybabtu.com>
3794 * util/deviceiter.c (grub_util_iterate_devices): Increase number of
3795 disk limit to 26 for IDE, Virtio, Xen and SCSI.
3797 2009-06-09 Felix Zielcke <fzielcke@z-51.de>
3799 * util/i386/pc/grub-install.in: Change the error message if UUIDs
3800 aren't available if ata.mod gets used.
3802 2009-06-09 Oliver Henshaw <oliver.henshaw@gmail.com>
3804 * bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after
3805 initialising controller.
3806 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
3808 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
3810 * util/i386/pc/grub-install.in: Add a parameter --disk-module
3811 to choose between ata and biosdisk module on i386-pc.
3813 2009-06-08 Oliver Henshaw <oliver.henshaw@gmail.com>
3815 * bus/usb/ohci.c (grub_ohci_pci_iter): Define the Class,
3816 Subclass and Programming Interface fields in terms of the 3 byte
3817 Class Code register.
3818 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
3820 * bus/usb/ohci.c (grub_ohci_pci_iter): Check that programming
3821 interface is OHCI. Add grub_dprintf for symmetry with
3823 * bus/usb/uhci.c (grub_uhci_pci_iter): Check that programming
3824 interface is UHCI. Add interf variable for programming
3825 interface. Print interface with class/subclass.
3827 * bus/usb/ohci.c: Set interf with correct field.
3829 * bus/usb/uhci.c: Remove unneeded doubled lines.
3830 * bus/usb/ohci.c: Likewise. Change interf to grub_uint32_t.
3831 Remove whitespace inside comment.
3833 2009-06-08 Robert Millan <rmh.grub@aybabtu.com>
3835 * loader/i386/linux.c (grub_cmd_linux): When processing `vga=', use
3836 as fallback an equivalent option without depth.
3838 2009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
3840 Not fail if unable to retrieve C/H/S on LBA disks
3842 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): behave gracefully
3843 if unable to retrieve C/H/S on LBA disks
3845 2009-06-08 Pavel Roskin <proski@gnu.org>
3847 * fs/hfs.c (grub_hfs_find_dir): Use union to avoid a warning
3850 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
3852 * Makefile.in (uninstall): Remove all $lib_DATA files.
3854 2009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
3856 Bugfix: install on partitionless device
3858 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): check if os_dev
3861 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
3863 * Makefile.in (uninstall): Remove all $include_DATA files.
3865 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
3867 * commands/true.c: New file. Implement the true and false commands.
3868 * conf/common.rmk.c (pkglib_MODULES): Add `true.mod'.
3869 (true_mod_SOURCES): New variable.
3870 (true_mod_CFLAGS): Likewise.
3871 (true_mod_LDFLAGS): Likewise.
3873 2009-06-05 Colin D Bennett <colin@gibibit.com>
3875 Optimized font character lookup using binary search instead of linear
3876 search. Fonts now are required to have the character index ordered by
3879 * font/font.c (load_font_index): Verify that fonts have ordered
3881 (find_glyph): Use binary search instead of linear search to find a
3882 character in a font.
3884 2009-06-05 Michael Scherer <misc@mandriva.org>
3886 * fs/hfsplus.c (grub_hfsplus_mount): Determine if the filesystem
3887 uses case sensitive btree.
3888 (grub_hfsplus_iterate_dir): Use GRUB_FSHELP_CASE_INSENSITIVE
3889 only for case insensitive filesystems.
3891 2009-06-05 Vladimir Serbinenko <phcoder@gmail.com>
3893 * conf/i386-pc.rmk (efiemu_mod_CFLAGS): remove -Werror -Wall
3894 * conf/common.rmk (search_mod_CFLAGS): likewise
3896 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3898 * kern/i386/pc/startup.S [APPLE_CC]: block of nops to
3899 compensate a compiler bug
3901 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3903 * include/grub/term.h (GRUB_TERM_BACKSPACE): explicitly define as 8
3906 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3908 Definitions for creating asm symbols with Apple's CC
3910 * include/grub/symbol.h [APPLE_CC] (FUNCTION): new macro
3911 [APPLE_CC] (VARIABLE): likewise
3913 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3915 Disable lnxboot.img when compiled
3918 * conf/i386-pc.rmk (pkglib_IMAGES): remove lnxboot.img
3919 pkglib_IMAGES [! TARGET_APPLE_CC] (pkglib_IMAGES): add lnxboot.img
3920 * boot/i386/pc/lnxboot.S [APPLE_CC]: define an #error
3921 [! APPLE_CC] (CODE_LENG): skip
3922 [! APPLE_CC] (setup_sects): likewise
3923 [! APPLE_CC]: skip filling
3925 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3927 Address in trampolines based on 32-bit registers when compiled
3930 * loader/i386/xnu_helper.S [APPLE_CC]: use 32-bit registers
3932 * loader/i386/linux_trampoline.S [APPLE_CC]: likewise
3934 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3936 Avoid aliases when compiling with Apple's CC for PCBIOS machine
3938 * kern/misc.c [APPLE_CC] (memcpy): new function
3939 [APPLE_CC] (memmove): likewise
3940 [APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise
3941 (memcpy): define alias conditionally on !APPLE_CC
3944 * include/grub/misc.h (memove): don't define when both GRUB_UTIL and
3945 APPLE_CC are defined
3946 * include/grub/list.h [APPLE_CC] (grub_assert_fail): new function
3947 (grub_assert_fail): make prototype conditional
3949 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3951 Use grub-macho2img when compiling with Apple's CC for PCBIOS machine
3953 * conf/common.rmk (bin_UTILITIES): add (on false on condition)
3955 (CLEANFILES): add grub-macho2img
3956 (grub_macho2img_SOURCES): new variable
3957 * kern/i386/pc/startup.S (bss_start): new variable
3959 * genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC
3960 * util/grub-macho2img.c: new file
3962 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3964 Use objconv when compiling with Apple's CC
3966 * conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined
3967 (efiemu64.o): likewise
3968 (efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1
3969 when compiling with Apple's CC
3970 (efiemu64_s.o): likewise
3971 * configure.ac: check for objconv when compiling with Apple's CC
3972 * genmk.rb: use objconv for modules when compiled with Apple's CC
3974 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3976 Define segment as well as section when compiling with
3979 * efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition
3980 (efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE
3981 (efiemu_convert_pointer): likewise
3982 (efiemu_set_virtual_address_map): likewise
3983 (efiemu_convert_pointer): likewise
3984 (efiemu_getcrc32): likewise
3985 (init_crc32_table): likewise
3987 * include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC
3988 (GRUB_MOD_DEP): likewise
3990 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3992 Allow a compilation without -mcmodel=large
3994 * kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB
3995 when compiled without -mcmodel=large
3996 (filter_memory_map): remove memory post 4 GiB when compiled
3997 without -mcmodel=large
3998 * configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to
3999 TARGET_CFLAGS when -mcmodel=large isn't supported
4001 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4003 Remove nested functions in efiemu core
4005 * efiemu/runtime/efiemu.c (reflect): make static instead of nested
4007 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4009 Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC
4011 * efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as
4013 * include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when
4015 (grub_cpu_is_tsc_supported): likewise
4016 * loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly
4018 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4020 Absolute addressing through constant with Apple's cc
4022 * kern/i386/pc/startup.S: Define necessary constants
4023 and address through it when using ABS with Apple's CC
4024 * boot/i386/pc/diskboot.S: likewise
4025 * boot/i386/pc/boot.S: likewise
4026 * boot/i386/pc/lnxboot.S: likewise
4027 * boot/i386/pc/cdboot.S: likewise
4028 * mmap/i386/pc/mmap_helper.S: likewise
4029 * commands/i386/pc/drivemap_int13h.S: likewise
4031 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4033 Check if compiler is apple cc
4035 * Makefile.in (ASFLAGS): new variable
4036 (TARGET_ASFLAGS): likewise
4037 (TARGET_MODULE_FORMAT): likewise
4038 (TARGET_APPLE_CC): likewise
4040 (TARGET_IMG_CFLAGS): likewise
4041 (TARGET_CPPFLAGS): add includedir
4042 * configure.ac: call grub_apple_cc and grub_apple_target_cc
4043 (TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated
4044 Check for linker script only if compiler isn't Apple's CC
4045 (TARGET_MODULE_FORMAT): set
4046 (TARGET_APPLE_CC): likewise
4047 (TARGET_ASFLAGS): likewise
4049 Check for objcopy only if compiler isn't Apple's CC
4050 Check for BSS symbol only if compiler isn't Apple's CC
4051 * genmk.rb: adapt nm options if we use Apple's utils
4052 * aclocal.m4 (grub_apple_cc): new test
4053 (grub_apple_target_cc): likewise
4055 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4057 Simplify sed expressions and improve awk
4059 * Makefile.in (install-local): simplify sed expression
4060 * gencmdlist.sh: likewise
4061 * genmoddep.awk: avoid adding module as a dependency of itself
4063 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4065 Add missing start symbols
4067 * boot/i386/pc/boot.S: add start
4068 * boot/i386/pc/pxeboot.S: likewise
4070 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4072 Fix wrong assumptions with grub-mkimage on EFI
4074 * i386/efi/grub-mkimage.c (read_kernel_module): don't write prefix here
4075 (relocate_addresses): consider both r_addend and value at offset
4076 (make_mods_section): zerofill modinfo and header
4077 (convert_elf): write prefix here
4079 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4081 Use .asciz instead of .string
4083 * i386/pc/diskboot.S: use .asciz instead of .string
4084 * i386/pc/boot.S: likewise
4085 * include/grub/dl.h (GRUB_MOD_DEP): likewise
4086 (GRUB_MOD_NAME): likewise
4088 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4092 * commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
4093 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
4094 (grub_video_setup): remove
4095 (grub_video_set_mode): new prototype
4096 * loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
4098 (linux_vesafb_res): compile only on PCBIOS
4099 (grub_linux_boot): support gfxpayload
4100 * loader/i386/pc/xnu.c (video_hook): new function
4101 (grub_xnu_set_video): support gfxpayload
4102 * term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
4103 (DEFAULT_VIDEO_HEIGHT): likewise
4104 (DEFAULT_VIDEO_FLAGS): likewise
4105 (DEFAULT_VIDEO_MODE): new definition
4106 (video_hook): new function
4107 (grub_gfxterm_init): use grub_video_set_mode
4108 * util/grub.d/30_os-prober.in: remove explicit modesetting before
4110 * video/video.c (grub_video_setup): removed
4111 (grub_video_set_mode): new function based on grub_gfxterm_init and
4114 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4116 Avoid calling biosdisk in drivemap
4118 * commands/i386/pc/drivemap.c (parse_biosdisk): remove
4119 (revparse_biosdisk): likewise
4120 (list_mappings): derive name from id directly
4121 (grub_cmd_drivemap): use tryparse_diskstring
4123 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
4127 * include/grub/script_sh.h (grub_script_cmdline): remove cmdline
4128 (grub_lexer_param): add tokenonhold
4129 (grub_script_create_cmdline): remove cmdline. All callers updated
4130 (grub_script_function_create): make functionname
4131 grub_script_arg. All callers updated
4132 (grub_script_execute_argument_to_string): new prototype
4133 * kern/parser.c (state_transitions): reorder
4134 (grub_parser_cmdline_state): fix a bug and make more compact
4135 * script/sh/execute.c (grub_script_execute_argument_to_string):
4137 (grub_script_execute_cmdline): use new format
4138 * script/sh/function.c (grub_script_function_create): make functionname
4139 grub_script_arg. All callers updated
4140 * script/sh/lexer.c (grub_script_lexer_init): initialize tokenonhold
4141 (grub_script_yylex): remove
4142 (grub_script_yylex2): renamed to ...
4143 (grub_script_yylex): ...renamed
4144 parse the expressions like a${b}c
4145 * script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
4146 (GRUB_PARSER_TOKEN_VAR): remove
4147 (GRUB_PARSER_TOKEN_NAME): likewise
4148 ("if"): declare as typeless
4150 ("function"): likewise
4155 (argument): likewise
4156 (script): accept empty scripts and make exit on error
4157 (arguments): use GRUB_PARSER_TOKEN_ARG
4158 (function): likewise
4159 (command): move error handling to script
4160 (menuentry): move grub_script_lexer_ref before
4161 * script/sh/script.c (grub_script_create_cmdline): remove cmdline
4162 argument. All callers updated
4164 2009-06-04 Robert Millan <rmh.grub@aybabtu.com>
4166 Prevent GRUB from probing floppies during boot.
4168 * conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'.
4169 * commands/search.c (options): Add --no-floppy.
4170 (search_fs, search_file, grub_cmd_search): Support --no-floppy.
4171 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use
4172 --no-floppy when searching for UUIDs.
4174 2009-06-04 Robert Millan <rmh.grub@aybabtu.com>
4176 Simplify the code duplication in commands/search.c.
4178 * commands/search.c (search_label, search_fs_uuid): Merge into ...
4179 (search_fs): ... this. Update all users.
4181 2009-06-03 Felix Zielcke <fzielcke@z-51.de>
4183 * util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir.
4185 2009-05-28 Pavel Roskin <proski@gnu.org>
4187 * Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD.
4188 Remove the original symlink explicitly.
4190 * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not
4191 just one slash. That's how grub_fshelp_find_file() does it.
4193 2009-05-26 Pavel Roskin <proski@gnu.org>
4195 * genmk.rb: Avoid shadowing variable `s', rename the outer `s'
4198 * util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as
4201 2009-05-25 Christian Franke <franke@computer.org>
4203 * disk/ata.c (grub_ata_wait_not_busy): Add debug output of status
4205 (grub_atapi_identify): Add wait after drive select.
4206 (grub_ata_identify): Do more strict status register check before
4207 calling grub_atapi_identify (). Suppress error message if status
4208 register is 0x00 after command failure. Add status register
4209 check after PIO read to avoid bogus identify due to stuck DRQ.
4210 Thanks to Pavel Roskin for testing.
4211 (grub_device_initialize): Remove unsafe status register check.
4212 Thanks to 'phcoder' for problem report and patch.
4213 Prevent sign extension in debug message.
4215 2009-05-23 Colin D Bennett <colin@gibibit.com>
4217 Cleaned up `include/grub/normal.h'. Grouped prototypes by
4218 definition file, and functions defined in `normal/menu.c' have had
4219 their prototypes moved to `include/grub/menu.h' for consistency.
4221 * include/grub/menu.h (grub_menu_execute_callback): Added; moved
4223 (grub_menu_get_entry): Likewise.
4224 (grub_menu_get_timeout): Likewise.
4225 (grub_menu_set_timeout): Likewise.
4226 (grub_menu_execute_entry): Likewise.
4227 (grub_menu_execute_with_fallback): Likewise.
4228 (grub_menu_entry_run): Likewise.
4230 * include/grub/normal.h: Re-ordered and grouped function
4231 prototypes by file that the function is defined in.
4232 (grub_menu_execute_callback): Removed; moved to menu.h.
4233 (grub_menu_get_entry): Likewise.
4234 (grub_menu_get_timeout): Likewise.
4235 (grub_menu_set_timeout): Likewise.
4236 (grub_menu_execute_entry): Likewise.
4237 (grub_menu_execute_with_fallback): Likewise.
4238 (grub_menu_entry_run): Likewise.
4239 (grub_menu_addentry): Renamed from this ...
4240 (grub_normal_add_menu_entry): ... to this.
4242 * normal/main.c (grub_menu_addentry): Renamed from this ...
4243 (grub_normal_add_menu_entry): ... to this.
4245 * script/sh/execute.c (grub_script_execute_menuentry): Update
4246 reference to renamed grub_menu_addentry function.
4248 2009-05-23 Felix Zielcke <fzielcke@z-51.de>
4250 * commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users.
4252 2009-05-22 Pavel Roskin <proski@gnu.org>
4254 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove.
4255 * configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG. Define
4256 NESTED_FUNC_ATTR using AH_BOTTOM. Use regparm(1) only when
4257 compiling for the i386 targets, but not for the utilities.
4259 * include/grub/i386/pc/kernel.h (grub_boot_drive): Change type
4261 (grub_root_drive): Likewise.
4262 * kern/i386/pc/startup.S (grub_boot_drive): Change size to byte,
4264 (grub_root_drive): Change size to byte.
4265 (grub_start_addr): Remove.
4266 (grub_end_addr): Likewise.
4267 (grub_apm_bios_info): Likewise.
4269 2009-05-21 Felix Zielcke <fzielcke@z-51.de>
4271 * normal/i386: Remove.
4272 * normal/powerpc: Likewise.
4273 * normal/sparc64: Likewise.
4274 * normal/x86_64: Likewise.
4276 2009-05-19 Vladimir Serbinenko <phcoder@gmail.com>
4278 * conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable
4279 * loader/i386/linux_trampoline.S: Fix indentation
4280 * loader/i386/xnu_helper.S: Likewise
4282 2009-05-18 Colin D Bennett <colin@gibibit.com>
4284 Display error messages when parsing a Lua statement fails.
4285 Previously, executing a syntactically invalid statement like
4286 ")foo" or "bar;" would silently fail.
4288 * script/lua/grub_main.c (handle_lua_error): New function.
4289 (grub_lua_parse_line): Improved reporting of Lua parser and
4292 2009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
4294 Remove -Werror which causes build to fail on some systems
4296 * conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall
4297 * conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise
4298 * conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise
4300 2009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
4302 trampoline for linux on 64-bit platform
4304 * conf/x86_64-efi.rmk (linux_mod_SOURCES): added
4305 loader/i386/efi/linux_trampoline.S
4306 * include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed
4308 * kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from
4310 * loader/i386/linux_trampoline.S: moved here
4311 * loader/i386/efi/linux.c (allocate_pages): reserve space for
4313 (jumpvector): removed
4314 (grub_linux_trampoline_start): new declaration
4315 (grub_linux_trampoline_end): likewise
4316 (grub_linux_boot): use trampoline when on 64-bit platform
4317 * loader/i386/linux.c: likewise
4319 2009-05-16 Pavel Roskin <proski@gnu.org>
4321 * script/lua/grub_lib.c (grub_lua_getenv): Make name and value
4322 const to avoid a warning.
4323 (grub_lua_setenv): Likewise.
4324 * script/lua/grub_main.c (grub_lua_parse_line): Use size_t for
4325 lmsg to fix a warning.
4327 2009-05-16 Felix Zielcke <fzielcke@z-51.de>
4329 * conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ...
4330 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
4331 * conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ...
4332 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
4333 * conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
4334 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
4335 * conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
4336 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
4338 2009-05-16 Felix Zielcke <fzielcke@z-51.de>
4340 * util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT.
4342 2009-05-16 Bean <bean123ch@gmail.com>
4344 * conf/common.rmk (pkglib_MODULES): Add lua.mod.
4345 (lua_mod_SOURCES): New variable.
4346 (lua_mod_CFLAGS): Likewise.
4347 (lua_mod_LDFLAGS): Likewise.
4349 * conf/i386.rmk (pkglib_MODULES): Add setjmp.mod.
4350 (setjmp_mod_SOURCES): New variable.
4351 (setjmp_mod_CFLAGS): Likewise.
4352 (setjmp_LDFLAGS): Likewise.
4354 * conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod.
4355 (setjmp_mod_SOURCES): New variable.
4356 (setjmp_mod_CFLAGS): Likewise.
4357 (setjmp_LDFLAGS): Likewise.
4359 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
4360 (setjmp_mod_SOURCES): New variable.
4361 (setjmp_mod_CFLAGS): Likewise.
4362 (setjmp_LDFLAGS): Likewise.
4364 * conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
4365 (setjmp_mod_SOURCES): New variable.
4366 (setjmp_mod_CFLAGS): Likewise.
4367 (setjmp_LDFLAGS): Likewise.
4369 * normal/i386/setjmp.S: Moved from here ...
4370 * lib/i386/setjmp.S: ... Moved here
4371 * normal/x86_64/setjmp.S: Moved from here ...
4372 * lib/x86_64/setjmp.S: ... Moved here
4373 * normal/powerpc/setjmp.S: Moved from here ...
4374 * lib/powerpc/setjmp.S: ... Moved here
4375 * normal/sparc64/setjmp.S: Moved from here ...
4376 * lib/sparc64/setjmp.S: ... Moved here
4378 * include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute
4379 returns_twice in mingw.
4381 * script/lua/grub_lib.c: New file.
4382 * script/lua/grub_lib.h: Likewise.
4383 * script/lua/grub_lua.h: Likewise.
4384 * script/lua/grub_main.c: Likewise.
4385 * script/lua/lapi.c: Likewise.
4386 * script/lua/lapi.h: Likewise.
4387 * script/lua/lauxlib.c: Likewise.
4388 * script/lua/lauxlib.h: Likewise.
4389 * script/lua/lbaselib.c: Likewise.
4390 * script/lua/lcode.c: Likewise.
4391 * script/lua/lcode.h: Likewise.
4392 * script/lua/ldblib.c: Likewise.
4393 * script/lua/ldebug.c: Likewise.
4394 * script/lua/ldebug.h: Likewise.
4395 * script/lua/ldo.c: Likewise.
4396 * script/lua/ldo.h: Likewise.
4397 * script/lua/ldump.c: Likewise.
4398 * script/lua/lfunc.c: Likewise.
4399 * script/lua/lfunc.h: Likewise.
4400 * script/lua/lgc.c: Likewise.
4401 * script/lua/lgc.h: Likewise.
4402 * script/lua/linit.c: Likewise.
4403 * script/lua/liolib.c: Likewise.
4404 * script/lua/llex.c: Likewise.
4405 * script/lua/llex.h: Likewise.
4406 * script/lua/llimits.h: Likewise.
4407 * script/lua/lmathlib.c: Likewise.
4408 * script/lua/lmem.c: Likewise.
4409 * script/lua/lmem.h: Likewise.
4410 * script/lua/loadlib.c: Likewise.
4411 * script/lua/lobject.c: Likewise.
4412 * script/lua/lobject.h: Likewise.
4413 * script/lua/lopcodes.c: Likewise.
4414 * script/lua/lopcodes.h: Likewise.
4415 * script/lua/loslib.c: Likewise.
4416 * script/lua/lparser.c: Likewise.
4417 * script/lua/lparser.h: Likewise.
4418 * script/lua/lstate.c: Likewise.
4419 * script/lua/lstate.h: Likewise.
4420 * script/lua/lstring.c: Likewise.
4421 * script/lua/lstring.h: Likewise.
4422 * script/lua/lstrlib.c: Likewise.
4423 * script/lua/ltable.c: Likewise.
4424 * script/lua/ltable.h: Likewise.
4425 * script/lua/ltablib.c: Likewise.
4426 * script/lua/ltm.c: Likewise.
4427 * script/lua/ltm.h: Likewise.
4428 * script/lua/lua.h: Likewise.
4429 * script/lua/luaconf.h: Likewise.
4430 * script/lua/lualib.h: Likewise.
4431 * script/lua/lundump.c: Likewise.
4432 * script/lua/lundump.h: Likewise.
4433 * script/lua/lvm.c: Likewise.
4434 * script/lua/lvm.h: Likewise.
4435 * script/lua/lzio.c: Likewise.
4436 * script/lua/lzio.h: Likewise.
4438 2009-05-16 Bean <bean123ch@gmail.com>
4440 * include/grub/kernel.h (grub_module_header_types): Add type
4443 * kern/main.c (grub_load_config): New function.
4444 (grub_main): Call grub_load_config to read boot config.
4446 * grub-mkimage (generate_image): New parameter config_path.
4447 (options): New option --config.
4448 (main): Parse --config option, and pass it to generate_image.
4450 2009-05-14 Christian Franke <franke@computer.org>
4452 * commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols.
4453 This fixes build on Cygwin.
4455 2009-05-14 Pavel Roskin <proski@gnu.org>
4457 * commands/i386/pc/drivemap_int13h.S: Eliminate unconditional
4458 jump. This saves two bytes, so the typical case of 2 swapped
4459 drives would fit 32 bytes.
4461 2009-05-13 Pavel Roskin <proski@gnu.org>
4463 * loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to
4464 grub_uint32_t to avoid a warning.
4466 * loader/i386/linux.c (allocate_pages): When assigning
4467 real_mode_mem, cast through grub_size_t to fix a warning. The
4468 code already makes sure that the value would fit a pointer.
4469 (grub_linux_setup_video): Cast render_target->data to
4470 grub_size_t to fix a warning.
4472 2009-05-13 Javier Martín <lordhabbit@gmail.com>
4474 * commands/i386/pc/drivemap.c: New file - implement drivemap
4476 * commands/i386/pc/drivemap_int13h.S: New file - int13 handler.
4477 * conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S.
4479 2009-05-13 Pavel Roskin <proski@gnu.org>
4481 * util/i386/pc/grub-setup.c (setup): Remove unused variable
4482 embedding_area_exists.
4484 2009-05-13 Robert Millan <rmh.grub@aybabtu.com>
4486 * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
4487 it easier to understand / work with.
4488 Improve warning messages for cases where there's no embedding area,
4489 or when it is too small (or core.img too large).
4491 2009-05-13 Pavel Roskin <proski@gnu.org>
4493 * loader/i386/pc/multiboot2.c: Add necessary includes for
4494 grub_multiboot2_real_boot().
4496 * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
4497 PX record is always little-endian. We only need the lower 2
4500 * fs/cpio.c: Use the same name "struct head" for tar and cpio to
4501 facilitate code reuse.
4502 (grub_cpio_mount): Use "struct head", not a char buffer. This
4503 fixes a warning reported by gcc 4.4.
4505 * kernel/disk.c (grub_disk_read): Use void pointer for the
4507 (grub_disk_write): Use const void pointer for the buffer.
4508 Adjust all callers. Remove unnecessary casts.
4510 2009-05-10 Robert Millan <rmh.grub@aybabtu.com>
4512 * util/i386/pc/grub-install.in: Update copyright year.
4514 2009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
4518 * commands/gptsync.c: new file
4519 * conf/common.rmk (pkglib_MODULES): add gptsync.mod
4520 (gptsync_mod_SOURCES): new variable
4521 (gptsync_mod_CFLAGS): likewise
4522 (gptsync_mod_LDFLAGS): likewise
4523 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS):
4525 (GRUB_PC_PARTITION_TYPE_HFS): likewise
4526 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c
4527 * conf/i386-ieee1275.rmk: likewise
4528 * conf/i386-pc.rmk: likewise
4529 * conf/powerpc-ieee1275.rmk: likewise
4531 2009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
4535 * kern/dl.c (grub_dl_ref): omit when compiling grub-emu
4536 (grub_dl_ref): likewise
4538 2009-05-08 Robert Millan <rmh.grub@aybabtu.com>
4540 * util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(),
4541 split in two functions (one for msdos and one for gpt).
4543 2009-05-08 Pavel Roskin <proski@gnu.org>
4545 * disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's
4548 * disk/raid6_recover.c (grub_raid6_recover): Fix warnings about
4549 uninitialized err[0] and err[1]. Rename them to bad1 and bad2.
4550 Initialize them with -1. Add sanity check for bad1. Eliminate
4553 2009-05-08 David S. Miller <davem@davemloft.net>
4555 * util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname.
4557 2009-05-06 Robert Millan <rmh.grub@aybabtu.com>
4559 * util/i386/pc/grub-setup.c (setup): Fix check for embed region
4562 2009-05-05 Felix Zielcke <fzielcke@z-51.de>
4564 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
4565 `kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'.
4567 2009-05-05 David S. Miller <davem@davemloft.net>
4569 * util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting.
4571 2009-05-05 Pavel Roskin <proski@gnu.org>
4573 * include/grub/dl.h [GRUB_UTIL]: Provide inline implementations
4574 of grub_dl_ref() and grub_dl_unref().
4575 * commands/parttool.c: Remove preprocessor conditionals around
4576 grub_dl_ref() and grub_dl_unref().
4577 * fs/affs.c: Likewise.
4578 * fs/afs.c: Likewise.
4579 * fs/cpio.c: Likewise.
4580 * fs/ext2.c: Likewise.
4581 * fs/fat.c: Likewise.
4582 * fs/hfs.c: Likewise.
4583 * fs/hfsplus.c: Likewise.
4584 * fs/iso9660.c: Likewise.
4585 * fs/jfs.c: Likewise.
4586 * fs/minix.c: Likewise.
4587 * fs/ntfs.c: Likewise.
4588 * fs/reiserfs.c: Likewise.
4589 * fs/sfs.c: Likewise.
4590 * fs/udf.c: Likewise.
4591 * fs/ufs.c: Likewise.
4592 * fs/xfs.c: Likewise.
4593 * include/grub/dl.h: Likewise.
4594 * loader/xnu.c: Likewise.
4596 2009-05-04 Pavel Roskin <proski@gnu.org>
4598 * commands/acpi.c: Remove unused variable my_mod.
4599 * partmap/amiga.c: Likewise.
4600 * partmap/apple.c: Likewise.
4601 * partmap/gpt.c: Likewise.
4602 * partmap/pc.c: Likewise.
4603 * partmap/sun.c: Likewise.
4604 * term/gfxterm.c: Likewise.
4605 * term/i386/pc/vesafb.c: Likewise.
4606 * term/i386/pc/vga.c: Likewise.
4608 2009-05-04 David S. Miller <davem@davemloft.net>
4610 * kern/ieee1275/openfw.c (grub_children_iterate): Fix string
4611 pointer args to grub_ieee1275_get_property().
4613 * conf/sparc64-ieee1275.rmk: Fix build due to missing '\'.
4615 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
4616 devices, and do not traverse down under controller nodes.
4618 * disk/ieee1275/ofdisk.c (compute_dev_path): New.
4619 (grub_ofdisk_open): Use it to un-escape "," characters.
4620 * kern/disk.c (find_part_sep): New.
4621 (grub_disk_open): Use it to find the first non-escaped ','
4622 character in the disk name.
4623 * util/ieee1275/devicemap.c (escape_of_path): New.
4624 (grub_util_emit_devicemap_entry): Use it.
4625 * util/sparc64/ieee1275/grub-install.in: Update script to
4626 strip partition specifiers properly by not triggering on
4627 '\' escaped ',' characters.
4629 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4631 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set
4633 * loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few
4635 (linux_vesafb_modes): Add a lot of additional modes to the list (based
4636 on documentation from Wikipedia).
4638 2009-05-04 Pavel Roskin <proski@gnu.org>
4640 * disk/ata.c: Spelling fixes.
4641 * disk/raid.c: Likewise.
4642 * disk/usbms.c: Likewise.
4643 * disk/dmraid_nvidia.c: Likewise.
4644 * kern/ieee1275/openfw.c: Likewise.
4645 * kern/ieee1275/init.c: Likewise.
4646 * kern/ieee1275/cmain.c: Likewise.
4647 * boot/i386/pc/cdboot.S: Likewise.
4648 * video/readers/png.c: Likewise.
4649 * video/i386/pc/vbe.c: Likewise.
4650 * fs/udf.c: Likewise.
4651 * fs/hfs.c: Likewise.
4652 * fs/reiserfs.c: Likewise.
4653 * efiemu/runtime/efiemu.c: Likewise.
4654 * efiemu/main.c: Likewise.
4655 * efiemu/mm.c: Likewise.
4656 * include/grub/elf.h: Likewise.
4657 * include/grub/xnu.h: Likewise.
4658 * include/grub/usbdesc.h: Likewise.
4659 * include/grub/usb.h: Likewise.
4660 * include/grub/script_sh.h: Likewise.
4661 * include/grub/lib/LzmaEnc.h: Likewise.
4662 * include/grub/efiemu/efiemu.h: Likewise.
4663 * include/grub/command.h: Likewise.
4664 * normal/menu.c: Likewise.
4665 * normal/main.c: Likewise.
4666 * normal/datetime.c: Likewise.
4667 * bus/usb/uhci.c: Likewise.
4668 * mmap/i386/uppermem.c: Likewise.
4669 * mmap/mmap.c: Likewise.
4670 * commands/acpi.c: Likewise.
4671 * commands/test.c: Likewise.
4672 * partmap/apple.c: Likewise.
4673 * font/font.c: Likewise.
4674 * loader/sparc64/ieee1275/linux.c: Likewise.
4675 * loader/macho.c: Likewise.
4676 * loader/i386/bsd_trampoline.S: Likewise.
4677 * loader/i386/bsd.c: Likewise.
4678 * loader/xnu.c: Likewise.
4679 * term/i386/pc/vesafb.c: Likewise.
4680 * term/usb_keyboard.c: Likewise.
4681 * util/resolve.c: Likewise.
4682 * util/getroot.c: Likewise.
4684 2009-05-04 Felix Zielcke <fzielcke@z-51.de>
4686 * conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA.
4688 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4690 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix
4693 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4695 * loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility
4696 parameter only available on BIOS.
4698 2009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
4700 Removed wrong semicolon in declaration
4702 * grub/misc.h (grub_dprintf): remove semicolon
4704 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4706 * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro.
4707 (grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this
4708 is done by grub_cmd_linux() now).
4709 [! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set,
4710 restore video to text mode.
4711 (grub_cmd_linux): Default `vid_mode' initialization to 0, which
4712 indicates lack of "vga=" parameter. "vga=0" is mapped to
4713 `GRUB_LINUX_VID_MODE_NORMAL'.
4715 2009-05-04 Felix Zielcke <fzielcke@z-51.de>
4717 * conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c',
4718 `normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c'
4719 and `normal/script.c'. Add `kern/rescue_reader.c',
4720 `kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c',
4721 `script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and
4722 `grub_script.tab.c'.
4724 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4725 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
4726 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4727 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
4728 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4730 * Makefile.in: Remove duplicated 2008 in Copyright line.
4732 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4734 * util/misc.c (grub_util_warn): New function. Emits a warning
4736 * include/grub/util/misc.h (grub_util_warn): New declaration.
4738 * util/i386/pc/grub-install.in: Understand --force and pass it down
4741 * util/i386/pc/grub-setup.c (main): Understand --force and pass it
4743 (setup): Improve error messages and add warnings when requested to
4744 install in odd layouts. Refuse to install using blocklists unless
4747 2009-05-04 martin f. krafft <madduck@madduck.net>
4749 * disk/raid.c (grub_raid_scan_device): Improve debug message.
4751 2009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
4753 Updated copyright year
4755 * fs/hfsplus.c: updated copyright year
4757 2009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
4761 * fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field
4762 in the space previously used by unused3
4763 (grub_hfsplus_uuid): new function
4764 (grub_hfsplus_fs): added uuid field
4766 2009-05-03 Pavel Roskin <proski@gnu.org>
4768 * disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to
4769 suppress warnings. It's no longer needed.
4770 * disk/host.c: Likewise.
4771 * disk/ata_pthru.c: Likewise.
4772 * disk/loopback.c: Likewise.
4773 * hook/datehook.c: Likewise.
4774 * parttool/pcpart.c: Likewise.
4775 * fs/i386/pc/pxe.c: Likewise.
4776 * fs/ntfscomp.c: Likewise.
4777 * efiemu/main.c: Likewise.
4778 * mmap/mmap.c: Likewise.
4779 * commands/crc.c: Likewise.
4780 * commands/hexdump.c: Likewise.
4781 * commands/hdparm.c: Likewise.
4782 * commands/acpi.c: Likewise.
4783 * commands/echo.c: Likewise.
4784 * commands/minicmd.c: Likewise.
4785 * commands/blocklist.c: Likewise.
4786 * commands/memrw.c: Likewise.
4787 * commands/loadenv.c: Likewise.
4788 * commands/usbtest.c: Likewise.
4789 * commands/lsmmap.c: Likewise.
4790 * commands/boot.c: Likewise.
4791 * commands/parttool.c: Likewise.
4792 * commands/configfile.c: Likewise.
4793 * commands/search.c: Likewise.
4794 * commands/ieee1275/suspend.c: Likewise.
4795 * commands/cat.c: Likewise.
4796 * commands/i386/pc/pxecmd.c: Likewise.
4797 * commands/i386/pc/play.c: Likewise.
4798 * commands/i386/pc/halt.c: Likewise.
4799 * commands/i386/pc/vbeinfo.c: Likewise.
4800 * commands/i386/pc/vbetest.c: Likewise.
4801 * commands/lspci.c: Likewise.
4802 * commands/date.c: Likewise.
4803 * commands/handler.c: Likewise.
4804 * commands/ls.c: Likewise.
4805 * commands/test.c: Likewise.
4806 * commands/cmp.c: Likewise.
4807 * commands/efi/loadbios.c: Likewise.
4808 * commands/efi/fixvideo.c: Likewise.
4809 * commands/halt.c: Likewise.
4810 * commands/help.c: Likewise.
4811 * commands/reboot.c: Likewise.
4812 * hello/hello.c: Likewise.
4813 * script/sh/main.c: Likewise.
4814 * loader/xnu.c: Likewise.
4815 * term/terminfo.c: Likewise.
4816 * term/i386/pc/serial.c: Likewise.
4817 * term/usb_keyboard.c: Likewise.
4819 2009-05-03 David S. Miller <davem@davemloft.net>
4821 * normal/menu.c: Include grub/parser.h
4823 2009-05-03 Pavel Roskin <proski@gnu.org>
4825 * mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*,
4827 * mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise.
4828 Suggested by Javier Martín <lordhabbit@gmail.com>
4830 * util/i386/pc/grub-mkrescue.in: Allow for the case when
4831 efiemu??.o doesn't exist.
4832 * util/i386/pc/grub-install.in: Likewise. Use "cp -f" for
4835 2009-05-03 Bean <bean123ch@gmail.com> Vladimir Serbinenko <phcoder@gmail.com>
4837 FreeBSD 64-bit support
4839 * conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S
4840 and loader/i386/bsd_trampoline.S
4841 (bsd_mod_ASFLAGS): new variable
4842 * include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition
4843 (FREEBSD_MODTYPE_KERNEL64): likewise
4844 (grub_bsd64_trampoline_start): likewise
4845 (grub_bsd64_trampoline_end): likewise
4846 (grub_bsd64_trampoline_selfjump): likewise
4847 (grub_bsd64_trampoline_gdt): likewise
4848 * include/grub/i386/loader.h (grub_unix_real_boot): moved from here ...
4849 * include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here
4850 * kern/i386/loader.S (grub_unix_real_boot): moved from here ...
4851 * loader/i386/bsd_helper.S (grub_unix_real_boot): moved here
4852 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
4854 * loader/i386/bsd_pagetable.c: new file
4855 * loader/i386/bsd_trampoline.S: likewise
4856 * loader/i386/bsd.c (ALIGN_QWORD): new macro
4857 (ALIGN_VAR): likewise
4858 (entry_hi): new variable
4859 (kern_end_mdofs): likewise
4860 (is_64bit): likewise
4861 (grub_freebsd_add_meta): use ALIGN_VAR
4862 (grub_e820_mmap): new declaration
4863 (grub_freebsd_add_mmap): new function
4864 (grub_freebsd_add_meta_module): support 64 bit kernels
4865 (grub_freebsd_list_modules): use ALIGN_VAR
4866 (gdt_descriptor): new declaration
4867 (grub_freebsd_boot): support 64 bit kernels
4868 (grub_bsd_elf64_hook): new function
4869 (grub_bsd_load_elf): support elf64
4871 2009-05-03 Bean <bean123ch@gmail.com>
4873 * script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno
4874 after we get the result of if statement.
4876 2009-05-03 Bean <bean123ch@gmail.com>
4878 * Makefile.in (enable_efiemu): New variable.
4880 * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is
4882 (efiemu32.o): Use macro $< for source file, add $(srcdir) to include
4884 (efi64_c.o): Use macro $< for source file, add $(srcdir) to include
4885 path, add -mno-red-zone option.
4886 (efiemu64_s.o): Likewise.
4887 (efiemu64.o): Use macro $^ for source file.
4889 * configure.ac (--enable-efiemu): New option.
4891 2009-05-03 Vladimir Serbinenko <phcoder@gmail.com>
4895 * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h
4896 (pkglib_MODULES): add xnu.mod
4897 (xnu_mod_SOURCES): new variable
4898 (xnu_mod_CFLAGS): likewise
4899 (xnu_mod_LDFLAGS): likewise
4900 (xnu_mod_ASFLAGS): likewise
4901 * conf/i386-pc.rmk: likewise
4902 * conf/x86_64-efi.rmk: likewise
4903 * include/grub/efi/efi.h (grub_efi_finish_boot_services):
4905 * include/grub/i386/macho.h: new file
4906 * include/grub/i386/xnu.h: likewise
4907 * include/grub/macho.h: likewise
4908 * include/grub/machoload.h: likewise
4909 * include/grub/x86_64/macho.h: likewise
4910 * include/grub/x86_64/xnu.h: likewise
4911 * include/grub/xnu.h: likewise
4912 * kern/efi/efi.c (grub_efi_finish_boot_services): new function
4913 * kern/efi/mm.c (MAX_HEAP_SIZE): increase
4914 * loader/i386/efi/xnu.c: new file
4915 * loader/i386/pc/xnu.c: likewise
4916 * loader/i386/xnu.c: likewise
4917 * loader/i386/xnu_helper.S: likewise
4918 * loader/macho.c: likewise
4919 * loader/xnu.c: likewise
4920 * loader/xnu_resume.c: likewise
4921 * util/grub-dumpdevtree: likewise
4922 * include/grub/i386/pit.h: include grub/err.h
4923 (grub_pit_wait): export
4924 * util/grub.d/30_os-prober.in: support Darwin/Mac OS X
4926 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
4930 * conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram,
4931 _linux_efi, linux_efi.
4932 new files in grub-emu
4933 new targets efiemu32.o and efiemu64.o
4934 * loader/linux_normal_efiemu.c: likewise
4935 * loader/i386/efi/linux.c: added preliminary efiemu support
4936 * util/i386/pc/grub-install.in: add efiemu??.o to the list of
4938 * include/grub/autoefi.h: new file
4939 * include/grub/i386/efiemu.h: likewise
4940 * include/grub/i386/pc/efiemu.h: likewise
4941 * include/grub/efi/api.h: add LL suffix when necessary
4942 new definitions relating to tables
4943 * include/grub/efiemu/efiemu.h: new file
4944 * include/grub/efiemu/runtime.h: likewise
4945 * efiemu/prepare.c: likewise
4946 * efiemu/loadcore_common.c: likewise
4947 * efiemu/loadcore64.c: likewise
4948 * efiemu/runtime/efiemu.sh: likewise
4949 * efiemu/runtime/efiemu.S: likewise
4950 * efiemu/runtime/efiemu.c: likewise
4951 * efiemu/runtime/config.h: likewise
4952 * efiemu/prepare32.c: likewise
4953 * efiemu/main.c: likewise
4954 * efiemu/modules/pnvram.c: likewise
4955 * efiemu/modules/i386: likewise
4956 * efiemu/modules/i386/pc: likewise
4957 * efiemu/modules/acpi.c: likewise
4958 * efiemu/i386/pc/cfgtables.c: likewise
4959 * efiemu/i386/loadcore64.c: likewise
4960 * efiemu/i386/loadcore32.c: likewise
4961 * efiemu/prepare64.c: likewise
4962 * efiemu/loadcore.c: likewise
4963 * efiemu/symbols.c: likewise
4964 * efiemu/mm.c: likewise
4965 * efiemu/loadcore32.c: likewise
4967 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
4971 * commands/acpi.c: new file
4972 * commands/i386/pc/acpi.c: likewise
4973 * commands/efi/acpi.c: likewise
4974 * include/grub/acpi.h: likewise
4975 * conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod
4976 (acpi_mod_SOURCES): new variable
4977 (acpi_mod_CFLAGS): likewise
4978 (acpi_mod_LDFLAGS): likewise
4979 * conf/i386-efi.rmk: likewise
4980 * conf/x86_64-efi.rmk: likewise
4982 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
4984 Missing part from mmap patch
4986 * mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to
4987 (grub_mmap_unregister)
4988 (grub_mmap_free_and_unregister): use grub_mmap_register
4990 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
4994 * loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate
4995 * loader/i386/linux.c (find_mmap_size): likewise
4996 (allocate_pages): likewise
4997 * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise
4998 (grub_fill_multiboot_mmap): likewise
4999 (grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper
5000 * loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower
5001 * include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition
5002 (OPENBSD_MMAP_RESERVED): likewise
5003 * include/grub/i386/pc/memory.h: include grub/memory.h
5004 (grub_lower_mem): removed
5005 (grub_upper_mem): likewise
5006 (GRUB_MACHINE_MEMORY_ACPI): new definition
5007 (GRUB_MACHINE_MEMORY_NVS): likewise
5008 (GRUB_MACHINE_MEMORY_MAX_TYPE): likewise
5009 (GRUB_MACHINE_MEMORY_HOLE): likewise
5010 (grub_machine_mmap_register): likewise
5011 (grub_machine_mmap_unregister): likewise
5012 (grub_machine_get_upper): likewise
5013 (grub_machine_get_lower): likewise
5014 (grub_machine_get_post64): likewise
5015 * include/grub/i386/efi/memory.h: new file
5016 * include/grub/x86_64/efi/memory.h: likewise
5017 * include/grub/efi/memory.h: likewise
5018 * conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod
5019 (mmap_mod_SOURCES): new variable
5020 (mmap_mod_LDFLAGS): likewise
5021 (mmap_mod_ASFLAGS): likewise
5022 * conf/i386-coreboot.rmk: likewise
5023 * conf/i386-ieee1275.rmk: likewise
5024 * conf/i386-efi.rmk: likewise
5025 * conf/x86_64-efi.rmk: likewise
5026 * include/grub/types.h (UINT_TO_PTR): new macro
5027 (PTR_TO_UINT32): likewise
5028 (PTR_TO_UINT64): likewise
5029 * include/grub/memory.h: new file
5030 * mmap/i386/pc/mmap.c: likewise
5031 * mmap/i386/pc/mmap_helper.S: likewise
5032 * mmap/i386/uppermem.c: likewise
5033 * mmap/mmap.c: likewise
5034 * mmap/efi/mmap.c: likewise
5035 * kern/i386/coreboot/init.c (grub_machine_init): don't use
5037 * kern/i386/pc/init.c (grub_lower_mem): removed variable
5038 (grub_upper_mem): likewise
5039 (grub_machine_init): don't use grub_upper_mem,
5040 make grub_lower_mem local
5041 * loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower,
5042 grub_mmap_iterate and grub_mmap_get_upper
5043 (grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper
5045 2009-05-02 Bean <bean123ch@gmail.com>
5047 * conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
5049 (pkglib_MODULES): Add normal.mod and sh.mod.
5050 (normal_SOURCES): New variable.
5051 (normal_mod_CFLAGS): Likewise.
5052 (normal_mod_LDFLAGS): Likewise.
5053 (sh_mod_SOURCES): Likewise.
5054 (sh_mod_CFLAGS): Likewise.
5055 (sh_mod_LDFLAGS): Likewise.
5057 * conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
5058 script/sh/lexer.c_DEPENDENCIES.
5059 (kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
5060 kern/rescue_reader.c and kern/rescue_parser.c.
5061 (kernel_img_HEADERS): Remove rescue.h, add reader.h.
5062 (grub_emu_SOURCES): Change source files.
5063 (pkglib_MODULES): Remove normal.mod.
5064 (normal_SOURCES): Removed.
5065 (normal_mod_CFLAGS): Likewise.
5066 (normal_mod_LDFLAGS): Likewise.
5067 * conf/i386-coreboot.rmk: Likewise.
5068 * conf/i386-efi.rmk: Likewise.
5069 * conf/i386-ieee1276.rmk: Likewise.
5070 * conf/powerpc-ieee1275.rmk: Likewise.
5071 * conf/sparc64-ieee1275.rmk: Likewise.
5072 * conf/x86_64-efi.rmk: Likewise.
5074 * include/grub/command.h (grub_command_execute): New inline function.
5076 * include/grub/menu.h (grub_menu_entry): Removed commands field.
5078 * include/grub/normal.h: Remove <grub/setjmp.h>.
5079 (grub_fs_module_list): Moved to normal/autofs.c.
5080 (grub_exit_env): Removed.
5081 (grub_command_execute): Likewise.
5082 (grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
5084 (read_command_list): New function declaration.
5085 (read_fs_list): Likewise.
5087 * include/parser.h: Include <grub/reader.h>.
5088 (grub_parser_split_cmdline): Change type of getline parameter.
5089 (grub_parser): New structure.
5090 (grub_parser_class): New variable.
5091 (grub_parser_execute): New function declaration.
5092 (grub_register_rescue_parser): Likewise.
5093 (grub_parser_register): New inline function.
5094 (grub_parser_unregister): Likewise.
5095 (grub_parser_get_current): Likewise.
5096 (grub_parser_set_current): Likewise.
5098 * include/grub/reader.h: New file.
5099 * kern/reader.c: Likewise.
5100 * kern/rescue_parser.c: Likewise.
5101 * kern/rescue_reader.c: Likewise.
5102 * normal/autofs.c: Likewise.
5103 * normal/dyncmd.c: Likewise.
5105 * include/grub/rescue.h: Removed.
5106 * normal/command.h: Likewise.
5108 * include/grub/script.h: Moved to ...
5109 * include/grub/script_sh.h: ... Moved here.
5110 * normal/execute.c: Moved to ...
5111 * script/sh/execute.c: ... Moved here.
5112 * normal/function.c: Moved to ...
5113 * script/sh/function.c: ... Moved here.
5114 * normal/lexer.c: Moved to ...
5115 * script/sh/lexer.c: ... Moved here.
5116 * normal/parser.y: Moved to ...
5117 * script/sh/parser.y: ... Moved here.
5118 * normal/script.c: Moved to ...
5119 * script/sh/script.c: ... Moved here.
5121 * normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
5123 (grub_exit_env): Removed.
5124 (fs_module_list): Moved to normal/autofs.c.
5125 (grub_file_getline): Don't handle comment here.
5126 (free_menu): Skip removed field entry->commands.
5127 (grub_normal_menu_addentry): Removed as grub_menu_entry, removed
5129 (read_config_file): Removed nested parameter, change getline function.
5130 (grub_enter_normal_mode): Removed.
5131 (grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
5132 (read_command_list): Likewise.
5133 (autoload_fs_module): Moved to normal/autofs.c.
5134 (read_fs_list): Likewise.
5135 (reader_nested): New variable.
5136 (grub_normal_execute): Run parser.sh to switch to sh parser.
5137 (grub_cmd_rescue): Removed.
5138 (cmd_normal): Removed.
5139 (grub_cmd_normal): Unregister itself at the beginning. Don't register
5141 (grub_cmdline_run): New function.
5142 (grub_normal_reader_init): Likewise.
5143 (grub_normal_read_line): Likewise.
5144 (grub_env_write_pager): Likewise.
5145 (cmdline): New variable.
5146 (grub_normal_reader): Likewise.
5147 (GRUB_MOD_INIT): Register normal reader and set as current, register
5148 pager hook, register normal command with grub_register_command_prio,
5149 so that it won't show up in command.lst.
5150 (GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
5151 grub_fs_autoload_hook.
5153 * normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
5154 (grub_menu_execute_entry): Replace grub_script_execute with
5155 grub_parser_execute, change parameter to grub_command_execute.
5157 * normal/menu_text.c: Remove <grub/script.h>.
5159 * normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
5160 and <grub/parser.h>.
5161 (run): Change editor_getline to use new parser interface. Change
5162 parameter to grub_command_execute.
5164 * kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
5165 <grub/reader.h> and <grub/parser.h>.
5166 (grub_load_normal_mode): Execute normal command.
5167 (grub_main): Call grub_register_core_commands,
5168 grub_register_rescue_parser and grub_register_rescue_reader, use
5169 grub_reader_loop to enter input loop.
5171 * kern/parser.c (grub_parser_split_cmdline): Change type of
5173 (grub_parser_class): New variable.
5174 (grub_parser_execute): New function.
5176 * loader/i386/multiboot.c: Remove <grub/rescue.h>.
5177 * loader/multiboot2.c: Likewise.
5178 * loader/sparc64/ieee1275/linux.c: Likewise.
5180 * util/grub-emu.c (read_command_list): New dummy function.
5182 2009-05-02 Robert Millan <rmh.grub@aybabtu.com>
5184 * util/deviceiter.c (grub_util_iterate_devices): Increase max drive
5185 count to 16 for CCISS and IDA.
5187 2009-05-02 Robert Millan <rmh.grub@aybabtu.com>
5189 * normal/menu_text.c (grub_wait_after_message): Print a newline
5190 after waiting for user input.
5192 * loader/i386/linux.c: Include `<grub/normal.h>'.
5193 (grub_cmd_linux): Improve the error message about `ask' mode, by
5194 waiting for user input so it's not missed (we can do this, since
5195 user requested interaction).
5197 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
5199 Added missing lst to grub-mkrescue
5201 * util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst
5202 and ${input_dir}/parttool.lst
5204 2009-04-30 David S. Miller <davem@davemloft.net>
5206 * util/hostdisk.c (device_is_wholedisk): New function.
5207 (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is
5208 zero only if device_is_wholedisk() returns true.
5210 * util/hostdisk.c (convert_system_partition_to_system_disk):
5211 Handle virtual disk devices named /dev/vdiskX as found on sparc
5214 * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If
5215 lettered partition specifier is found, convert to numbered.
5217 2009-04-29 David S. Miller <davem@davemloft.net>
5219 * include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h.
5220 * include/grub/sparc64/ieee1275/memory.h: Likewise.
5222 * normal/command.c: Add missing newline at end of file.
5224 * commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf
5226 * kern/ieee1275/openfw.c (grub_claimmap): Likewise.
5227 * disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close,
5228 grub_ofdisk_read): Likewise, and deal similarly with the fact that
5229 ihandles have a 32-bit type but need to be stored in a "void *".
5231 2009-04-28 Pavel Roskin <proski@gnu.org>
5233 * disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev,
5234 not disk. Adjust all dependencies.
5235 (grub_fs_uuid_close): Use grub_device_close(), not
5238 * disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy
5239 parent's partition, don't copy it by reference, as it gets freed
5242 2009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
5244 Preboot hooks support
5246 * commands/boot.c (struct grub_preboot_t): new declaration
5247 (preboots_head): new variable
5248 (preboots_tail): likewise
5249 (grub_loader_register_preboot_hook): new function
5250 (grub_loader_unregister_preboot_hook): likewise
5251 (grub_loader_set): launch preboot hooks
5252 * include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type
5253 (grub_loader_register_preboot_hook): new declaration
5254 (grub_loader_unregister_preboot_hook): likewise
5256 2009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
5260 * disk/scsi.c (grub_scsi_open): added missing cast when
5261 calling grub_dprintf
5263 2009-04-26 Vladimir Serbinenko <phcoder@gmail.com>
5265 Bug and warning fixes
5267 * include/grub/i386/pc/init.h (grub_stop_floppy): added missing
5269 * commands/test.c (test_parse): fixed bug with file tests and corrected
5270 declaration of find_file
5272 2009-04-26 Pavel Roskin <proski@gnu.org>
5274 * Makefile.in: Don't install empty manual pages if help2man is
5275 missing. Use help2man option for output, not shell redirection.
5277 2009-04-26 David S. Miller <davem@davemloft.net>
5279 * util/grub-mkdevicemap.c (make_device_map): Add missing
5280 NESTED_FUNC_ATTR to process_device().
5282 2009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
5286 * commands/test.c: rewritten to use bash-like test
5288 2009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
5290 Parttool autoloading and improvements
5292 * Makefile.in (pkglib_DATA): add parttool.lst
5293 (parttool.lst): new target
5294 * genmk.rb: generate parttool-*
5295 (CLEANFILES): add #{parttool}
5296 (PARTTOOLFILES): new variable
5297 * genparttoollist.sh: new file
5298 * parttool/pcpart.c (grub_pcpart_boot): more feedback
5299 (grub_pcpart_type): likewise
5300 * commands/parttool.c (helpmsg): new variable
5301 (grub_cmd_parttool): output help if not enough arguments are supplied
5303 (GRUB_MOD_INIT(parttool)): use helpmsg
5305 2009-04-24 David S. Miller <davem@davemloft.net>
5307 Avoiding opening same device multiple times in device iterator.
5309 * kern/device.c: (grub_device_iterate): Define struct part_ent,
5310 and use it to build a list of partitions in iterate_disk() and
5311 iterate_partition().
5313 * disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close()
5316 * disk/ieee1275/nand.c (grub_nand_iterate): Return
5317 grub_devalias_iterate() result instead of unconditional 0.
5318 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise.
5319 Also, capture hook return value, either directly or via
5320 grub_children_iterate(), and propagate to caller.
5321 * include/grub/ieee1275/ieee1275.h (grub_devalias_iterate,
5322 grub_children_iterate): Return value is now 'int' instead of
5324 * kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave
5325 like a proper iterator, stopping when hooks return non-zero.
5326 (grub_devalias_iterate): Likewise.
5328 2009-04-23 David S. Miller <davem@davemloft.net>
5330 * kern/sparc64/ieee1275/openfw.c: Unused, delete.
5332 2009-04-22 David S. Miller <davem@davemloft.net>
5334 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells
5335 is larger than address_cells, use that value for address_cells too.
5337 * include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN,
5338 IEEE1275_MAX_PATH_LEN): Define.
5339 * kern/ieee1275/openfw.c (grub_children_iterate): Dynamically
5340 allocate 'childtype', 'childpath', 'childname', and 'fullname'.
5341 (grub_devalias_iterate): Dynamically allocate 'aliasname' and
5342 'devtype'. Explicitly NULL terminate devalias expansion.
5344 * util/sparc64/ieee1275/misc.c: New file.
5345 * util/sparc64/ieee1275/grub-setup.c: New file.
5346 * util/sparc64/ieee1275/grub-ofpathname.c: New file.
5347 * util/sparc64/ieee1275/grub-mkimage.c: New file.
5348 * util/sparc64/ieee1275/grub-install.in: New file.
5349 * util/ieee1275/ofpath.c: New file.
5350 * util/ieee1275/devicemap.c: New file.
5351 * util/devicemap.c: New file.
5352 * util/deviceiter.c: New file.
5353 * kern/sparc64/ieee1275/init.c: New file.
5354 * include/grub/util/ofpath.h: New file.
5355 * include/grub/util/deviceiter.h: New file.
5356 * util/grub-mkdevicemap.c: Include deviceiter.h.
5357 Implement using grub_util_emit_devicemap_entry and
5358 grub_util_iterate_devices.
5359 * conf/i386-corebook.rmk: Build util/deviceiter.c and
5360 util/devicemap.c into grub-mkdevicemap
5361 * conf/i386-efi.rmk: Likewise.
5362 * conf/i386-ieee1275.rmk: Likewise.
5363 * conf/i386-pc.rmk: Likewise.
5364 * conf/powerpc-ieee1275.rmk: Likewise.
5365 * conf/sparc64-ieee1275.rmk: Add rules to build boot block
5366 images and installation utilities. Build kernel as image
5367 instead of as elf binary. Use common rules as much as possible.
5369 2009-04-19 Vladimir Serbinenko <phcoder@gmail.com>
5371 Correct GPT definition
5373 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
5376 2009-04-19 Felix Zielcke <fzielcke@z-51.de>
5378 * INSTALL: Replace `autogen.sh' with `./autogen.sh'.
5380 2009-04-19 David S. Miller <davem@davemloft.net>
5382 * loader/sparc64/ieee1275/linux.c: Include grub/command.h
5383 (grub_rescue_cmd_linux): Rename to...
5384 (grub_cmd_linux): and fix prototype.
5385 (grub_rescue_cmd_initrd): Rename to...
5386 (grub_cmd_initrd): and fix prototype.
5387 (cmd_linux, cmd_initrd): New.
5388 (GRUB_MOD_INIT(linux)): Use grub_register_command().
5389 (GRUB_MOD_FINI(linux): Use grub_unregister_command().
5391 2009-04-17 Pavel Roskin <proski@gnu.org>
5393 * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
5395 (grub_ohci_transfer): Likewise.
5397 * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.
5399 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
5400 return without a value. Fix inconsistent indentation.
5402 * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
5403 match struct grub_fs.
5405 * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
5406 * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
5407 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
5408 * commands/lspci.c (grub_lspci_iter): Likewise.
5410 2009-04-16 Bean <bean123ch@gmail.com>
5412 * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
5415 2009-04-15 Pavel Roskin <proski@gnu.org>
5417 * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
5418 LONG_MAX to GRUB_LONG_MAX. Introduce GRUB_LONG_MIN. Update all
5419 users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
5422 2009-04-15 Felix Zielcke <fzielcke@z-51.de>
5424 * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
5425 that no multiple data or metadata areas are supported and `Unknown
5428 2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
5430 Move loader out of the kernel
5432 * kern/loader.c: moved to ...
5433 * commands/boot.c: ... moved here
5434 * commands/minicmd.c (grub_mini_cmd_boot): moved to ...
5435 * commands/boot.c (grub_cmd_boot): moved here. All users updated
5436 * include/grub/kernel.h (grub_machine_fini): export
5437 * include/grub/loader.h (grub_loader_is_loaded): update declaration
5438 (grub_loader_set): likewise
5439 (grub_loader_unset): likewise
5440 (grub_loader_boot): likewise
5441 * conf/common.rmk: new module boot.mod
5442 (pkglib_MODULES): add boot.mod
5443 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
5444 (grub_emu_SOURCES): likewise
5445 * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
5446 (grub_emu_SOURCES): likewise
5447 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
5448 (grub_emu_SOURCES): likewise
5449 * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
5450 (grub_emu_SOURCES): likewise
5451 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
5452 (grub_emu_SOURCES): likewise
5453 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise
5454 (grub_emu_SOURCES): likewise
5455 * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
5456 (grub_emu_SOURCES): likewise
5458 2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
5460 use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
5462 * kern/misc.c (grub_itoa): Removed function
5463 (grub_ltoa): likewise
5464 (grub_vsprintf): use grub_lltoa
5466 2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
5470 * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
5471 * conf/i386-coreboot.rmk: likewise
5472 * conf/i386-ieee1275.rmk: likewise
5473 * conf/powerpc-ieee1275.rmk: likewise
5475 2009-04-15 Felix Zielcke <fzielcke@z-51.de>
5477 * INSTALL: Add that `./autogen.sh' needs to be run before
5480 2009-04-14 Bean <bean123ch@gmail.com>
5482 * Makefile.in (pkglib_DATA): Add handler.lst.
5483 (handler.lst): New rule.
5485 * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
5486 * conf/i386-coreboot.rmk: Likewise.
5487 * conf/i386-ieee1275.rmk: Likewise.
5488 * conf/i386-efi.rmk: Likewise.
5489 * conf/x86_64-efi.rmk: Likewise.
5490 * conf/powerpc-ieee1275.rmk: Likewise.
5491 * conf/sparc64-ieee1275.rmk: Likewise.
5493 * genhandlerlist.sh: New file.
5495 * genmk.rb: Add rules to generate handler.lst.
5497 * include/grub/normal.h (grub_file_getline): New function definition.
5498 (read_handler_list): Likewise.
5499 (free_handler_list): Likewise.
5501 * include/grub/term.h (grub_term_register_input): Add name parameter
5502 for auto generation of handler.lst.
5503 (grub_term_register_output): Likewise.
5505 * normal/handler.c: New file.
5507 * normal/main.c (get_line): Renamed to grub_file_getline.
5508 (read_config_file): Use the newly renamed grub_file_getline.
5509 (read_command_list): Likewise.
5510 (read_fs_list): Likewise.
5511 (grub_normal_execute): Call read_handler_list to parse handler.lst.
5512 (GRUB_MOD_FINI): Call free_handler_list to free handler list.
5514 * term/efi/console.c (grub_console_init): Add name parameter for auto
5515 generation of handler.lst.
5516 * term/gfxterm.c: Likewise.
5517 * term/i386/pc/at_keyboard.c: Likewise.
5518 * term/i386/pc/console.c: Likewise.
5519 * term/i386/pc/serial.c: Likewise.
5520 * term/i386/pc/vesafb.c: Likewise.
5521 * term/i386/pc/vga.c: Likewise.
5522 * term/i386/pc/vga_text.c: Likewise.
5523 * term/ieee1275/ofconsole.c: Likewise.
5524 * term/usb_keyboard.c: Likewise.
5526 2009-04-14 Bean <bean123ch@gmail.com>
5528 * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
5529 properly with null character.
5531 2009-04-14 Felix Zielcke <fzielcke@z-51.de>
5533 * configure: Remove.
5534 * config.h.in: Likewise.
5535 * stamp-h.in: Likewise.
5536 * DISTLIST: Likewise.
5537 * conf/common.mk: Likewise.
5538 * conf/i386-coreboot.mk: Likewise.
5539 * conf/i386-efi.mk: Likewise.
5540 * conf/i386-ieee1275.mk: Likewise.
5541 * conf/i386.mk: Likewise.
5542 * conf/i386-pc.mk: Likewise.
5543 * conf/powerpc-ieee1275.mk: Likewise.
5544 * conf/sparc64-ieee1275.mk: Likewise.
5545 * conf/x86_64-efi.mk: Likewise.
5547 * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
5550 2009-04-14 John Stanley <jpsinthemix@verizon.net>
5551 David S. Miller <davem@davemloft.net>
5553 * util/hostdisk.c (make_device_name): Fix buffer length
5556 2009-04-14 Felix Zielcke <fzielcke@z-51.de>
5558 * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
5559 <sys/param.h> and <sys/sysctl.h>.
5560 (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
5561 to add 0x10 to `kern.geom.debugflags' if it's not already set, before
5562 opening the device and reset them afterwards.
5564 2009-04-13 Pavel Roskin <proski@gnu.org>
5566 * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
5567 Reported by John Stanley <jpsinthemix@verizon.net>
5569 2009-04-13 Robert Millan <rmh@aybabtu.com>
5571 * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
5572 that name for menuentries when appropriate.
5574 2009-04-13 Felix Zielcke <fzielcke@z-51.de>
5576 * util/grub.d/10_freebsd.in: Add a missing `fi'.
5578 2009-04-13 Robert Millan <rmh@aybabtu.com>
5580 * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
5581 to Linux, simply abort telling the user it's no longer supported.
5583 2009-04-13 Felix Zielcke <fzielcke@z-51.de>
5585 * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
5586 doesn't exist. Check also for /boot/kernel/kernel.gz. Print
5587 `freebsd_loadenv' only when devices.hints exist.
5589 2009-04-13 Pavel Roskin <proski@gnu.org>
5591 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
5593 2009-04-13 Felix Zielcke <fzielcke@z-51.de>
5595 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
5597 (grub_drive): Likewise.
5599 2009-04-13 David S. Miller <davem@davemloft.net>
5601 * kern/sparc64/ieee1275/ieee1275.c: New file.
5602 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
5603 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
5604 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
5605 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
5606 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
5607 grub_ieee1275_alloc_physmem): Declare new exported functions.
5609 * include/grub/sparc64/ieee1275/loader.h: New file.
5610 * include/grub/sparc64/ieee1275/memory.h: Likewise.
5611 * include/grub/sparc64/kernel.h: Likewise.
5612 * loader/sparc64/ieee1275/linux.c: Likewise.
5614 * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
5615 (grub_fstest_SOURCES): Likewise.
5617 * util/hostdisk.c (make_device_name): Do not make any assumptions
5618 about the length of drive names.
5620 * kern/dl.c (grub_dl_load_file): Close file immediately when
5621 we are done using it.
5623 2009-04-12 David S. Miller <davem@davemloft.net>
5625 * kern/misc.c (grub_ltoa): Fix cast when handling negative
5626 values. Noticed by Pavel Roskin.
5628 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
5631 * genmk.rb: Add more flexible image type specification, also
5632 pass --strip-unneeded to objcopy.
5633 * conf/i386-pc.rmk: Use *_FORMAT.
5634 * conf/i386-pc.mk: Rebuilt.
5636 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
5637 (OFDISK_HASH_SZ): Define.
5638 (ofdisk_hash): New hash table.
5639 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
5640 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
5641 instead of device phandle which is not unique.
5643 * kern/sparc64/ieee1275/init.c: Delete, replace with...
5644 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
5645 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
5646 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
5647 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
5648 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
5649 GRUB_KERNEL_MACHINE_DATA_END): Define.
5650 (grub_kernel_image_size, grub_total_module_size): Declare.
5652 2009-04-12 Pavel Roskin <proski@gnu.org>
5654 * configure.ac: Change the logic when we check for target tools.
5655 Do it when the target is specified and it's different from the
5656 specified value of the host.
5658 2009-04-11 Felix Zielcke <fzielcke@z-51.de>
5660 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
5661 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
5662 GNU/kFreeBSD. Check if a device is a character device. Use
5663 DIOCGMEDIASIZE to get the size.
5664 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
5665 support for GNU/kFreeBSD.
5666 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
5667 is a character device instead of a block device. Add support for
5668 FreeBSD device names.
5670 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
5671 is a character device instead of a block device.
5673 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
5674 is a character device instead of a block device.
5676 2009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
5678 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
5679 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
5680 FreeBSD. Check if a device is a character device. Use
5681 DIOCGMEDIASIZE to get the size.
5682 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
5683 support for FreeBSD.
5684 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
5685 is a character device instead of a block device. Add support for
5686 FreeBSD device names.
5688 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
5689 a character device instead of a block device.
5690 (grub_util_check_char_device): New function.
5692 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
5693 a character device instead of a block device.
5695 * include/grub/util/getroot.h (grub_util_check_char_device): New
5698 2009-04-11 David S. Miller <davem@davemloft.net>
5700 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
5702 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
5703 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
5704 function, if present.
5705 (__bswapdi2): Likewise.
5707 * include/grub/sparc64/ieee1275/boot.h: New file.
5708 * boot/sparc64/ieee1275/boot.S: Likewise.
5709 * boot/sparc64/ieee1275/diskboot.S: Likewise.
5711 * kern/misc.c (grub_ltoa): New function.
5712 (grub_vsprintf): Use it to format 'long' integers.
5714 2009-04-10 David S. Miller <davem@davemloft.net>
5716 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
5717 slots are of type grub_ieee1275_cell_t.
5718 (grub_nand_read): Likewise.
5719 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
5720 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
5721 macros are used to compare values in arg/ret block of the call.
5722 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
5723 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
5724 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
5725 grub_ieee1275_instance_to_path, grub_ieee1275_write,
5726 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
5727 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
5728 grub_ieee1275_close, grub_ieee1275_set_property,
5729 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
5730 grub_ieee1275_cell_t.
5731 * kern/ieee1275/openfw.c (grub_map): Likewise.
5732 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
5733 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
5735 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
5736 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
5737 (grub_devalias_iterate): Likewise.
5739 2009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
5743 * fs/ufs.c (INODE_NBLOCKS): new definition
5744 (struct grub_ufs_dirent): added fields for non-BSD dirents
5745 (grub_ufs_get_file_block): fixed double indirect handling
5746 (grub_ufs_lookup_symlink): use more robust way to determine whether
5748 (grub_ufs_find_file): support for non-BSD dirents
5749 (grub_ufs_dir): support for non-BSD dirents
5751 2009-04-10 Bean <bean123ch@gnail.com>
5753 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
5754 attribute, otherwise the size would be wrong for i386 platform.
5756 * include/grub/pci.h (grub_pci_read_word): New inline function.
5757 (grub_pci_read_byte): Likewise.
5758 (grub_pci_write): Likewise.
5759 (grub_pci_write_word): Likewise.
5760 (grub_pci_write_byte): Likewise.
5762 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
5764 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
5765 (find_framebuf): Scan pci to locate the frame buffer address.
5767 * commands/efi/fixvideo.c: New file.
5769 * commands/efi/loadbios.c: Likewise.
5771 * commands/memrw.c: Likewise.
5773 * util/grub-dumpbios.in: Likewise.
5775 * conf/common.rmk (grub-dumpbios): New utility.
5776 (pkglib_MODULES): New module memrw.mod.
5777 (memrw_mod_SOURCE): New macro.
5778 (memrw_mod_CFLAGS): Likewise.
5779 (memrw_mod_LDFLAGS): Likewise.
5781 * conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and
5783 (loadbios_mod_SOURCE): New macro.
5784 (loadbios_mod_CFLAGS): Likewise.
5785 (loadbios_mod_LDFLAGS): Likewise.
5786 (fixvideo_mod_SOURCE): Likewise.
5787 (fixvideo_mod_CFLAGS): Likewise.
5788 (fixvideo_mod_LDFLAGS): Likewise.
5790 * conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and
5792 (loadbios_mod_SOURCE): New macro.
5793 (loadbios_mod_CFLAGS): Likewise.
5794 (loadbios_mod_LDFLAGS): Likewise.
5795 (fixvideo_mod_SOURCE): Likewise.
5796 (fixvideo_mod_CFLAGS): Likewise.
5797 (fixvideo_mod_LDFLAGS): Likewise.
5799 2009-04-08 Felix Zielcke <fzielcke@z-51.de>
5801 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
5803 2009-04-07 David S. Miller <davem@davemloft.net>
5805 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
5806 support for R_SPARC_OLO10 relocations. Fix compile warning for
5807 R_SPARC_WDISP30 case.
5808 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
5810 2009-04-06 Pavel Roskin <proski@gnu.org>
5812 * include/grub/misc.h (ARRAY_SIZE): New macro.
5813 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
5815 * loader/i386/linux.c (allocate_pages): Use free_pages().
5816 (grub_linux_unload): Don't use free_pages().
5817 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
5818 wrong index. Treat all other modes as text modes.
5819 (grub_cmd_linux): Initialize vid_mode unconditionally to
5820 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
5822 * commands/help.c (print_command_help): Use cmd->prio, not
5823 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
5825 2009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
5829 * parttool/pcpart.c: new file
5830 * commands/parttool.c: likewise
5831 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
5832 (parttool_mod_SOURCES): new variable
5833 (parttool_mod_CFLAGS): likewise
5834 (parttool_mod_LDFLAGS): likewise
5835 (pcpart_mod_SOURCES): likewise
5836 (pcpart_mod_CFLAGS): likewise
5837 (pcpart_mod_LDFLAGS): likewise
5838 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
5839 and parttool/pcpart.c
5840 * conf/i386-efi.rmk: likewise
5841 * conf/i386-ieee1275.rmk: likewise
5842 * conf/i386-pc.rmk: likewise
5843 * conf/powerpc-ieee1275.rmk: likewise
5844 * conf/sparc64-ieee1275.rmk: likewise
5845 * conf/x86_64-ieee1275.rmk: likewise
5847 2009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
5849 Support for mtime and further expandability of dir command
5851 * include/grub/lib/datetime.h: moved to ...
5852 * include/grub/datetime.h: ... moved here and added
5853 declaration of grub_unixtime2datetime. All users updated
5854 * include/grub/fs.h: new syntax for dir and mtime functions in
5856 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
5857 and GRUB_FSHELP_FLAGS_MASK
5858 * commands/ls.c (grub_ls_list_files): Write mtime in long format
5859 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
5860 (grub_ext2_mtime): new function
5861 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
5862 (grub_hfsplus_mtime): new function
5863 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
5864 (GRUB_UFS_ATTR_FILE): likewise
5865 (GRUB_UFS_ATTR_LNK): likewise
5866 (struct grub_ufs_sblock): new fields mtime
5867 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
5869 (grub_ufs_dir): mtime support
5870 (grub_ufs_mtime): new function
5871 * fs/affs.c (grub_affs_dir): use new dir syntax
5872 * fs/afs.c (grub_afs_dir): likewise
5873 * fs/cpio.c (grub_cpio_dir): likewise
5874 * fs/fat.c (grub_fat_find_dir): likewise
5875 * fs/hfs.c (grub_hfs_dir): likewise
5876 * fs/iso9660.c (grub_iso9660_dir): likewise
5877 * fs/jfs.c (grub_jfs_dir): likewise
5878 * fs/minix.c (grub_minix_dir): likewise
5879 * fs/ntfs.c (grub_ntfs_dir): likewise
5880 * fs/reiserfs.c (grub_reiserfs_dir): likewise
5881 * fs/sfs.c (grub_sfs_dir): likewise
5882 * fs/xfs.c (grub_xfs_dir): likewise
5883 * util/hostfs.c (grub_hostfs_dir): likewise
5884 * lib/datetime.c: moved to ...
5885 * normal/datetime.c: ... moved here
5886 (grub_unixtime2datetime): new function
5887 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
5888 * normal/completion.c (iterate_dir): use new dir syntax
5889 * normal/misc.c (grub_normal_print_device_info): tell the
5890 last modification time of a volume
5891 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
5892 * conf/common.rmk: added lib/datetime.c to ls.mod
5893 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
5894 (normal_mod_SOURCES): likewise
5895 (datetime_mod_SOURCES): Removed lib/datetime.c
5896 * conf/i386-efi.rmk: likewise
5897 * conf/i386-ieee1275.rmk: likewise
5898 * conf/i386-pc.rmk: likewise
5899 * conf/powerpc-ieee1275.rmk: likewise
5900 * conf/sparc64-ieee1275.rmk: likewise
5901 * conf/x86_64-efi.rmk: likewise
5903 2009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
5905 Trim trailing spaces in FAT label and support mtools-like labels
5907 * fs/fat.c (grub_fat_iterate_dir): New function based
5908 on grub_fat_find_dir
5909 (grub_fat_find_dir): use grub_fat_iterate_dir
5910 (grub_fat_label): likewise
5912 2009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
5914 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
5916 remove extraneous kernel_elf_HEADERS
5918 2009-04-04 Bean <bean123ch@gnail.com>
5920 * include/grub/util/misc.h: Add dummy function fsync for mingw.
5922 * util/misc.c: Likewise.
5924 2009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
5926 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
5927 instead of grub_printf.
5929 2009-04-03 Robert Millan <rmh@aybabtu.com>
5931 * loader/i386/linux.c (grub_linux_setup_video): Fill
5932 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
5933 values from `mode info' structure instead of hardcoded
5936 2009-04-01 Pavel Roskin <proski@gnu.org>
5938 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
5940 * genmk.rb: Likewise.
5941 * configure.ac: Likewise.
5943 2009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
5945 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
5946 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
5948 2009-04-01 David S. Miller <davem@davemloft.net>
5950 * normal/sparc64/setjmp.S: Fix setjmp implementation.
5951 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
5952 (grub_setjmp): Mark with 'returns_twice' attribute.
5953 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
5954 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
5955 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
5957 2009-04-01 Robert Millan <rmh@aybabtu.com>
5959 Reapply fix from 2008-07-28 which was accidentally reverted; also
5960 perform the same fix to a similar check in same function.
5962 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
5963 with the same number are found, just use issue a warning with
5964 grub_dprintf(), as this error has been reported to be non-fatal.
5966 2009-03-31 Pavel Roskin <proski@gnu.org>
5968 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
5969 for cross-compilation.
5971 2009-03-30 Robert Millan <rmh@aybabtu.com>
5973 Fix i386-ieee1275 build.
5975 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
5978 2009-03-30 Pavel Roskin <proski@gnu.org>
5980 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
5981 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
5982 zero-terminated, rely only on the strlen value. Fix comparison
5983 of strings differing in length.
5985 2009-03-30 Robert Millan <rmh@aybabtu.com>
5987 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
5988 checking for abi version. Improve error messages on BIOS to notify
5989 user about `linux16' command.
5991 2009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
5995 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
5996 in case of collision
5997 * disk/scsi.c (grub_scsi_open): free scsi in case of error
5999 2009-03-29 Robert Millan <rmh@aybabtu.com>
6001 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
6002 set `vid_mode' accordingly.
6003 (grub_linux_boot): Process `vid_mode' and set video mode.
6005 2009-03-29 Robert Millan <rmh@aybabtu.com>
6007 * util/grub.d/10_linux.in (linux_entry): New function.
6008 Factorize generation of Linux boot entries.
6010 2009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
6012 Make the format of Environment Block plain text. The boot loader
6013 part is not tested well yet.
6015 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
6018 (usage): Remove "info" and "clear". Add "unset". Update the
6019 description of "set", as this does not delete variables any
6021 (create_envblk_file): Complete rewrite.
6022 (open_envblk_file): Likewise.
6023 (cmd_info): Removed.
6024 (cmd_list): Likewise.
6025 (cmd_set): Likewise.
6026 (cmd_clear): Likewise.
6027 (list_variables): New function.
6028 (write_envblk): Likewise.
6029 (set_variables): Likewise.
6030 (unset_variables): Likewise.
6031 (main): Complete rewrite.
6033 * commands/loadenv.c (buffer): Removed.
6035 (open_envblk_file): New function.
6036 (read_envblk_file): Complete rewrite.
6037 (grub_cmd_load_env): Likewise.
6038 (grub_cmd_list_env): Likewise.
6039 (struct blocklist): New struct.
6040 (free_blocklists): New function.
6041 (check_blocklists): Likewise.
6042 (write_blocklists): Likewise.
6043 (grub_cmd_save_env): Complete rewrite.
6045 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
6046 a plain text signature.
6047 (GRUB_ENVBLK_MAXLEN): Removed.
6048 (struct grub_envblk): Complete rewrite.
6049 (grub_envblk_find): Removed.
6050 (grub_envblk_insert): Likewise.
6051 (grub_envblk_open): New prototype.
6052 (grub_envblk_set): Likewise.
6053 (grub_envblk_delete): Put const to VALUE.
6054 (grub_envblk_iterate): Put const to NAME and VALUE.
6055 (grub_envblk_close): New prototype.
6056 (grub_envblk_buffer): New inline function.
6057 (grub_envblk_size): Likewise.
6059 * lib/envblk.c: Include grub/mm.h.
6060 (grub_env_find): Removed.
6061 (grub_envblk_open): New function.
6062 (grub_envblk_close): Likewise.
6063 (escaped_value_len): Likewise.
6064 (find_next_line): Likewise.
6065 (grub_envblk_insert): Removed.
6066 (grub_envblk_set): New function.
6067 (grub_envblk_delete): Complete rewrite.
6068 (grub_envblk_iterate): Likewise.
6070 2009-03-28 Robert Millan <rmh@aybabtu.com>
6072 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
6073 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
6074 variables. Use 16-bit loader.
6075 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
6077 * kern/i386/loader.S (grub_linux_boot): Rename to ...
6078 (grub_linux16_boot): ... this. Update all users.
6079 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
6080 (grub_linux_boot): ... this. Update all users.
6082 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
6083 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
6084 commands to `linux16' and `initrd16'.
6085 (GRUB_MOD_FINI(linux)): Rename to ...
6086 (GRUB_MOD_FINI(linux16)): ... this.
6088 2009-03-24 Pavel Roskin <proski@gnu.org>
6090 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
6091 not just for compilation.
6093 2009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
6095 Move multiboot helper out of kernel
6097 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
6098 `loader/i386/multiboot_helper.S'.
6099 * conf/i386-coreboot.rmk: Likewise
6100 * conf/i386-ieee1275.rmk: Likewise
6102 * kern/i386/loader.S: Move multiboot helpers from here...
6103 * loader/i386/multiboot_helper.S: ...moved here
6104 * include/grub/i386/loader.h: Move declarations of multiboot
6105 helpers from here...
6106 * include/grub/i386/multiboot.h: ...moved here
6107 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
6109 2009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
6111 * kern/env.c (grub_env_context_open): Added an argument to specify
6112 whether a new context inherits exported variables from current
6113 one. This is useful when making a sandbox to interpret a config
6115 All callers updated.
6117 * include/grub/env.h (grub_env_context_open): Updated the prototype.
6119 2009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
6121 * kern/env.c (grub_env_context_close): Fix memory leaks.
6123 2009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
6125 * normal/main.c (grub_normal_execute): Added an argument
6126 BATCH to specify if an interactive interface should be provided
6127 after reading a config file.
6128 All callers updated.
6129 (read_command_list): Prevent being executed twice.
6130 (read_fs_list): Likewise.
6132 * include/grub/normal.h (grub_normal_execute): Updated the
6135 2009-03-22 Pavel Roskin <proski@gno.org>
6137 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
6139 * kern/i386/pc/startup.S: Likewise.
6140 * kern/i386/efi/startup.S: Likewise.
6141 * kern/i386/ieee1275/startup.S: Likewise.
6142 * kern/i386/coreboot/startup.S: Likewise.
6143 * kern/x86_64/efi/startup.S: Likewise.
6145 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
6146 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
6147 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
6149 2009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
6151 Bugfixes in multiboot for bugs uncovered by solaris kernel.
6153 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
6155 Use vaddr of correct segment for entry_point.
6157 2009-03-21 Bean <bean123ch@gmail.com>
6159 * commands/blocklist.c: Add include file <grub/command.h>, remove
6160 <grub/normal.h> and <grub/arg.h>.
6161 (grub_cmd_blocklist): Use the new command interface.
6162 (GRUB_MOD_INIT): Likewise.
6163 (GRUB_MOD_FINI): Likewise.
6164 * commands/boot.c: Likewise.
6165 * commands/cat.c: Likewise.
6166 * commands/cmp.c: Likewise.
6167 * commands/configfile.c: Likewise.
6168 * commands/crc.c: Likewise.
6169 * commands/echo.c: Likewise.
6170 * commands/halt.c: Likewise.
6171 * commands/handler.c: Likewise.
6172 * commands/hdparm.c: Likewise.
6173 * commands/help.c: Likewise.
6174 * commands/hexdump.c: Likewise.
6175 * commands/loadenv.c: Likewise.
6176 * commands/ls.c: Likewise.
6177 * commands/lsmmap.c: Likewise.
6178 * commands/lspci.c: Likewise.
6179 * commands/loadenv.c: Likewise.
6180 * commands/read.c: Likewise.
6181 * commands/reboot.c: Likewise.
6182 * commands/search.c: Likewise.
6183 * commands/sleep.c: Likewise.
6184 * commands/test.c: Likewise.
6185 * commands/usbtest.c: Likewise.
6186 * commands/videotest.c: Likewise.
6187 * commands/i386/cpuid.c: Likewise.
6188 * commands/i386/pc/halt.c: Likewise.
6189 * commands/i386/pc/play.c: Likewise.
6190 * commands/i386/pc/pxecmd.c: Likewise.
6191 * commands/i386/pc/vbeinfo.c: Likewise.
6192 * commands/i386/pc/vbetest.c: Likewise.
6193 * commands/ieee1275/suspend.c: Likewise.
6194 * disk/loopback.c: Likewise.
6195 * font/font_cmd.c: Likewise.
6196 * hello/hello.c: Likewise.
6197 * loader/efi/appleloader.c: Likewise.
6198 * loader/efi/chainloader.c: Likewise.
6199 * loader/i386/bsd.c: Likewise.
6200 * loader/i386/efi/linux.c: Likewise.
6201 * loader/i386/ieee1275/linux.c: Likewise.
6202 * loader/i386/linux.c: Likewise.
6203 * loader/i386/pc/chainloader.c: Likewise.
6204 * loader/i386/pc/linux.c: Likewise.
6205 * loader/powerpc/ieee1275/linux.c: Likewise.
6206 * loader/multiboot_loader.c: Likewise.
6207 * term/gfxterm.c: Likewise.
6208 * term/i386/pc/serial.c: Likewise.
6209 * term/terminfo.c: Likewise.
6211 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
6212 * term/i386/pc/vga.c: Likewise.
6213 * video/readers/jpeg.c: Likewise.
6214 * video/readers/png.c: Likewise.
6215 * video/readers/tga.c: Likewise.
6217 * util/grub-fstest (cmd_loopback): Removed.
6218 (cmd_blocklist): Likewise.
6220 (grub_register_command): Likewise.
6221 (grub_unregister_command): Likewise.
6222 (execute_command): Use grub_command_find to locate command and execute
6225 * include/grub/efi/chainloader.h: Removed.
6226 * loader/efi/chainloader_normal.c: Likewise.
6227 * loader/i386/bsd_normal.c: Likewise.
6228 * loader/i386/pc/chainloader_normal.c: Likewise.
6229 * loader/i386/pc/multiboot_normal.c: Likewise.
6230 * loader/linux_normal.c: Likewise.
6231 * loader/multiboot_loader_normal.c: Likewise.
6232 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
6234 * gencmdlist.sh: Scan new registration command grub_register_extcmd
6235 and grub_register_command_p1.
6237 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
6238 kern/command.c, lib/arg.c and commands/extcmd.c.
6239 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
6240 (minicmd_mod_SOURCES): New variable.
6241 (minicmd_mod_CFLAGS): Likewise.
6242 (minicmd_mod_LDFLAGS): Likewise.
6243 (extcmd_mod_SOURCES): Likewise.
6244 (extcmd_mod_CFLAGS): Likewise.
6245 (extcmd_mod_LDFLAGS): Likewise.
6246 (boot_mod_SOURCES): Removed.
6247 (boot_mod_CFLAGS): Likewise.
6248 (boot_mod_LDFLAGS): Likewise.
6250 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
6252 (kernel_img_HEADERS): Add command.h.
6253 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
6254 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
6256 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
6257 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
6258 remove the corresponding normal mode command.
6259 (normal_mod_SOURCES): Remove normal/arg.c.
6260 * conf/i386-coreboot.rmk: Likewise.
6261 * conf/i386-efi.rmk: Likewise.
6262 * conf/i386-ieee1275.rmk: Likewise.
6263 * conf/powerpc-ieee1275.rmk: Likewise.
6264 * conf/x86_64-efi.rmk: Likewise.
6266 * include/grub/arg.h: Move from here ...
6267 * include/grub/lib/arg.h: ... to here.
6269 * normal/arg.c: Move from here ...
6270 * lib/arg.c: ... to here.
6272 * commands/extcmd.c: New file.
6273 * commands/minicmd.c: Likewise.
6274 * include/grub/command.h: Likewise.
6275 * include/grub/extcmd.h: Likewise.
6276 * kern/command.c: Likewise.
6277 * kern/corecmd.c: Likewise.
6279 * kern/list.c (grub_list_iterate): Return int instead of void.
6280 (grub_list_insert): New function.
6281 (grub_prio_list_insert): Likewise.
6283 * kern/rescue.c (grub_rescue_command): Removed.
6284 (grub_rescue_command_list): Likewise.
6285 (grub_rescue_register_command): Likewise.
6286 (grub_rescue_unregister_command): Likewise.
6287 (grub_rescue_cmd_boot): Move to minicmd.c
6288 (grub_rescue_cmd_help): Likewise.
6289 (grub_rescue_cmd_info): Likewise.
6290 (grub_rescue_cmd_boot): Likewise.
6291 (grub_rescue_cmd_testload): Likewise.
6292 (grub_rescue_cmd_dump): Likewise.
6293 (grub_rescue_cmd_rmmod): Likewise.
6294 (grub_rescue_cmd_lsmod): Likewise.
6295 (grub_rescue_cmd_exit): Likewise.
6296 (grub_rescue_print_devices): Moved to corecmd.c.
6297 (grub_rescue_print_files): Likewise.
6298 (grub_rescue_cmd_ls): Likewise.
6299 (grub_rescue_cmd_insmod): Likewise.
6300 (grub_rescue_cmd_set): Likewise.
6301 (grub_rescue_cmd_unset): Likewise.
6302 (attempt_normal_mode): Use grub_command_find to get normal module.
6303 (grub_enter_rescue_mode): Use grub_register_core_commands to register
6304 commands, remove grub_rescue_register_command calls.
6306 * normal/command.c (grub_register_command): Removed.
6307 (grub_unregister_command): Likewise.
6308 (grub_command_find): Likewise.
6309 (grub_iterate_commands): Likewise.
6310 (rescue_command): Likewise.
6311 (export_command): Moved to corecmd.c.
6312 (set_command): Removed.
6313 (unset_command): Likewise.
6314 (insmod_command): Likewise.
6315 (rmmod_command): Likewise.
6316 (lsmod_command): Likewise.
6317 (grub_command_init): Likewise.
6319 * normal/completion.c (iterate_command): Use cmd->prio to check for
6321 (complete_arguments): Use grub_extcmd_t structure to find options.
6322 (grub_normal_do_completion): Change function grub_iterate_commands to
6323 grub_command_iterate.
6325 * normal/execute.c (grub_script_execute_cmd): No need to parse
6328 * normal/main.c (grub_dyncmd_dispatcher): New function.
6329 (read_command_list): Register unload commands as dyncmd.
6330 (grub_cmd_normal): Use new command interface, register rescue,
6331 unregister normal at entry, register normal, unregister rescue at exit.
6333 * include/grub/list.h (grub_list_test_t): New type.
6334 (grub_list_iterate): Return int instead of void.
6335 (grub_list_insert): New function.
6336 (GRUB_AS_NAMED_LIST_P): New macro.
6337 (GRUB_AS_PRIO_LIST): Likewise.
6338 (GRUB_AS_PRIO_LIST_P): Likewise.
6339 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
6340 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
6341 (grub_prio_list): New structure.
6342 (grub_prio_list_insert): New function.
6343 (grub_prio_list_remove): New inline function.
6345 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
6346 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
6347 (GRUB_COMMAND_FLAG_MENU): Likewise.
6348 (GRUB_COMMAND_FLAG_BOTH): Likewise.
6349 (GRUB_COMMAND_FLAG_TITLE): Likewise.
6350 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
6351 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
6352 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
6353 (grub_command): Likewise.
6354 (grub_register_command): Likewise.
6355 (grub_command_find): Likewise.
6356 (grub_iterate_commands): Likewise.
6357 (grub_command_init): Likewise.
6358 (grub_arg_parse): Likewise.
6359 (grub_arg_show_help): Likewise.
6361 * include/grub/rescue.h (grub_rescue_register_command): Removed.
6362 (grub_rescue_unregister_command): Likewise.
6364 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
6365 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
6366 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
6368 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
6369 grub_rescue_cmd_initrd.
6370 * include/grub/i386/loader.h: Likewise.
6371 * include/grub/x86_64/loader.h: Likewise.
6373 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
6375 2009-03-21 Bean <bean123ch@gmail.com>
6377 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
6378 instead of stat in mingw environment.
6380 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
6382 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
6384 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
6387 2009-03-21 Bean <bean123ch@gmail.com>
6389 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
6392 2009-03-18 Michel Dänzer <michel@daenzer.net>
6394 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
6395 checking inode flags for EXT4_EXTENTS_FLAG.
6397 2009-03-18 Robert Millan <rmh@aybabtu.com>
6399 * loader/i386/linux.c: Include `<grub/video.h>' and
6400 `<grub/i386/pc/vbe.h>'..
6401 (grub_linux_setup_video): New function. Loosely based on the EFI one.
6402 (grub_linux32_boot): Attempt to configure video settings with
6403 grub_linux_setup_video().
6404 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
6405 to avoid grub_console_fini() which would step out of graphical mode
6408 2009-03-14 Robert Millan <rmh@aybabtu.com>
6410 Fix build on powerpc.
6411 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
6413 2009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
6415 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
6416 background image command.
6418 2009-03-12 Colin D Bennett <colin@gibibit.com>
6420 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
6421 (grub_gfxterm_putchar): Extract pairs of identical calls to
6422 draw_cursor out of conditional blocks.
6424 2009-03-11 Pavel Roskin <proski@gnu.org>
6426 * fs/hfs.c (grub_hfs_strncasecmp): New function.
6427 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
6429 2009-03-11 Robert Millan <rmh@aybabtu.com>
6431 * loader/i386/multiboot_elfxx.c
6432 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
6434 2009-03-11 Felix Zielcke <fzielcke@z-51.de>
6436 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
6439 2009-03-11 Robert Millan <rmh@aybabtu.com>
6441 * loader/i386/multiboot.c (code_size): New variable.
6442 (grub_multiboot): Define offsets by adding to `code_size' rather
6443 than subtracting from `grub_multiboot_payload_size'. Provide
6444 4-byte alignment to MBI and others by increasing
6445 `boot_loader_name_length' appropriately.
6447 * loader/i386/multiboot_elfxx.c
6448 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
6450 2009-03-09 Felix Zielcke <fzielcke@z-51.de>
6452 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
6455 2009-03-08 Robert Millan <rmh@aybabtu.com>
6457 Make loader/i386/linux.c usable on i386-pc again.
6459 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
6461 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
6464 2009-03-07 Bean <bean123ch@gmail.com>
6466 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
6469 2009-03-06 Robert Millan <rmh@aybabtu.com>
6471 Fix display issue on terminals with screen size other than 80x25
6472 (e.g. gfxterm with resolution higher than 640x480).
6474 * normal/main.c (grub_normal_init_page): Display title text in a
6475 position relative to the center of the terminal instead of relying
6476 on a hardcoded offset.
6478 2009-03-04 Robert Millan <rmh@aybabtu.com>
6480 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
6483 * Makefile.in (host_kernel): New variable.
6484 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
6485 scripts instead of just the windows one.
6486 * configure.ac: Initialize and AC_SUBST `host_kernel'.
6488 2009-03-04 Felix Zielcke <fzielcke@z-51.de>
6490 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
6492 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6493 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
6494 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
6495 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6496 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6497 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6499 2009-03-04 Felix Zielcke <fzielcke@z-51.de>
6501 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
6502 or if there's no space for the disk label and print the partition number on a
6505 2009-03-04 Felix Zielcke <fzielcke@z-51.de>
6507 * util/misc.c: Include <time.h>.
6508 (grub_millisleep): New function.
6510 2009-03-04 Bean <bean123ch@gmail.com>
6512 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
6513 another option -mno-red-zone.
6515 * commands/handler.c: Change module description.
6517 * kern/handler.c: Add missing space at the end of description line.
6519 * kern/list.c: Likewise.
6521 2009-03-03 Robert Millan <rmh@aybabtu.com>
6523 Move more components to the relocation area, and fix mbi pointer
6524 handling to use the destination rather than the origin (thanks to
6525 Vladimir Serbinenko for spotting).
6527 * loader/i386/multiboot.c (mbi_dest): New variable.
6528 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
6529 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
6532 2009-03-01 Bean <bean123ch@gmail.com>
6534 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
6535 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
6536 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
6537 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
6539 * loader/i386/efi/linux.c (acpi_guid): New variable.
6540 (acpi_guid): Likewise.
6541 (EBDA_SEG_ADDR): New constant.
6542 (LOW_MEM_ADDR): Likewise.
6543 (FAKE_EBDA_SEG): Likewise.
6544 (fake_bios_data): New function.
6545 (grub_linux_boot): Call fake_bios_data.
6547 2009-03-01 Bean <bean123ch@gmail.com>
6549 * commands/terminal.c: Removed.
6551 * commands/handler.c: New file.
6553 * include/grub/list.h: Likewise.
6555 * include/grub/handler.h: Likewise.
6557 * kern/list.c: Likewise.
6559 * kern/handler.c: Likewise.
6561 * kern/term.h: Include header file <grub/handler.h>.
6562 (grub_term_input): Move next field to the beginning.
6563 (grub_term_output): Likewise.
6564 (grub_term_input_class): New variable.
6565 (grub_term_output_class): Likewise.
6566 (grub_term_register_input): Changed to inline function.
6567 (grub_term_register_output): Likewise.
6568 (grub_term_unregister_input): Likewise.
6569 (grub_term_unregister_output): Likewise.
6570 (grub_term_set_current_input): Likewise.
6571 (grub_term_set_current_output): Likewise.
6572 (grub_term_get_current_input): Likewise.
6573 (grub_term_get_current_output): Likewise.
6574 (grub_term_iterate_input): Removed.
6575 (grub_term_iterate_output): Likewise.
6577 * kern/term.c (grub_term_list_input): Removed.
6578 (grub_term_list_output): Likewise.
6579 (grub_term_input_class): New variable.
6580 (grub_term_output_class): Likewise.
6581 (grub_cur_term_input): Change variable as macro.
6582 (grub_cur_term_output): Likewise.
6583 (grub_term_register_input): Removed.
6584 (grub_term_register_output): Likewise.
6585 (grub_term_unregister_input): Likewise.
6586 (grub_term_unregister_output): Likewise.
6587 (grub_term_set_current_input): Likewise.
6588 (grub_term_set_current_output): Likewise.
6589 (grub_term_iterate_input): Likewise.
6590 (grub_term_iterate_output): Likewise.
6591 (grub_term_get_current_input): Likewise.
6592 (grub_term_get_current_output): Likewise.
6594 * util/grub-editenv.c: Include header file <grub/handler.h>.
6595 (grub_term_get_current_input): Removed.
6596 (grub_term_get_current_output): Likewise.
6597 (grub_term_input_class): New variable.
6598 (grub_term_output_class): Likewise.
6600 * util/grub-fstest.c (grub_term_get_current_input): Removed.
6601 (grub_term_get_current_output): Likewise.
6602 (grub_term_input_class): New variable.
6603 (grub_term_output_class): Likewise.
6605 * util/grub-probe.c (grub_term_get_current_input): Removed.
6606 (grub_term_get_current_output): Likewise.
6607 (grub_term_input_class): New variable.
6608 (grub_term_output_class): Likewise.
6610 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
6611 (grub_term_get_current_output): Likewise.
6612 (grub_term_input_class): New variable.
6613 (grub_term_output_class): Likewise.
6615 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
6616 (terminal_mod_SOURCES): Likewise.
6617 (terminal_mod_CFLAGS): Likewise.
6618 (terminal_mod_LDFLAGS): Likewise.
6620 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
6622 (kernel_img_SOURCES): Add list.c and handler.c.
6623 (kernel_img_HEADERS): Add list.h and handler.h.
6625 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
6627 (kernel_mod_SOURCES): Add list.c and handler.c.
6628 (kernel_mod_HEADERS): Add list.h and handler.h.
6630 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
6632 (kernel_elf_SOURCES): Add list.c and handler.c.
6633 (kernel_elf_HEADERS): Add list.h and handler.h.
6635 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
6637 (kernel_elf_SOURCES): Add list.c and handler.c.
6638 (kernel_elf_HEADERS): Add list.h and handler.h.
6640 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
6642 (kernel_mod_SOURCES): Add list.c and handler.c.
6643 (kernel_mod_HEADERS): Add list.h and handler.h.
6645 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
6647 (kernel_elf_SOURCES): Add list.c and handler.c.
6648 (kernel_elf_HEADERS): Add list.h and handler.h.
6650 2009-02-27 Robert Millan <rmh@aybabtu.com>
6652 Factorize elf32 / elf64 code in Multiboot loader. This will
6653 prevent it from getting out of sync again.
6655 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
6656 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
6657 grub_multiboot_load_elf64): Move from here ...
6658 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
6659 grub_multiboot_load_elf): ... to here (new file).
6661 2009-02-27 Robert Millan <rmh@aybabtu.com>
6663 * util/grub.d/10_linux.in: Rename "single-user mode" to
6666 2009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
6668 Don't leak in SCSI code.
6669 * disk/scsi.c (grub_scsi_close): free `scsi'.
6671 2009-02-27 Robert Millan <rmh@aybabtu.com>
6673 * loader/i386/pc/multiboot.c: Move from here ...
6674 * loader/i386/multiboot.c: ... to here. Update all users.
6676 2009-02-27 Robert Millan <rmh@aybabtu.com>
6678 Patch from Alexandre Bique <bique.alexandre@gmail.com>
6679 * util/i386/pc/grub-setup.c (setup): Fix directory path.
6681 2009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
6683 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
6686 2009-02-27 Robert Millan <rmh@aybabtu.com>
6688 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
6689 `0x' qualifier as 0 when base is specified as parameter).
6691 2009-02-24 Bean <bean123ch@gmail.com>
6693 * configure.ac: Check for -mcmodel=large in x86_64 target.
6695 * include/grub/efi/api.h (efi_call_10): New macro.
6696 (efi_wrap_10): New function.
6698 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
6699 (GRUB_PE32_REL_BASED_HIGH): Likewise.
6700 (GRUB_PE32_REL_BASED_LOW): Likewise.
6701 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
6702 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
6703 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
6704 (GRUB_PE32_REL_BASED_SECTION): Likewise.
6705 (GRUB_PE32_REL_BASED_REL): Likewise.
6706 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
6707 (GRUB_PE32_REL_BASED_DIR64): Likewise.
6708 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
6710 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
6713 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
6714 (efi_wrap_10): New function.
6716 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
6718 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
6719 MB/MBP model (NV chipset).
6720 (devdata_devs): Add devpath_5 to the list.
6722 * load/i386/efi/linux.c (video_base): Remove variable.
6723 (RGB_MASK): New macro.
6724 (RGB_MAGIC): Likewise.
6725 (LINE_MIN): Likewise.
6726 (LINE_MAX): Likewise.
6727 (FBTEST_STEP): Likewise.
6728 (FBTEST_COUNT): Likewise.
6729 (fb_list): New variable.
6730 (grub_find_video_card): Remove function.
6731 (find_framebuf): New function.
6732 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
6735 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
6738 2009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
6740 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
6742 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
6745 2009-02-22 Robert Millan <rmh@aybabtu.com>
6747 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
6748 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
6749 in our relocation, instead of using it directly from heap. Also
6750 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
6752 2009-02-21 Robert Millan <rmh@aybabtu.com>
6754 Implement USB keyboard support (based on patch by Marco Gerards)
6756 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
6757 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
6758 (usb_keyboard_mod_LDFLAGS): New variables.
6760 * term/usb_keyboard.c: New file.
6762 2009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
6764 Corrected wrong declaration
6766 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
6768 2009-02-14 Christian Franke <franke@computer.org>
6770 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
6771 (grub_lspci_iter): Print class code and programming interface byte.
6773 2009-02-14 Christian Franke <franke@computer.org>
6775 * gendistlist.sh: Ignore `.svn' directories.
6777 2009-02-14 Felix Zielcke <fzielcke@z-51.de>
6779 * fs/fat.c: Add 2009 to Copyright line.
6781 2009-02-14 Christian Franke <franke@computer.org>
6783 * commands/hdparm.c: New file. Provides `hdparm' command
6784 which sends ATA commands via grub_disk_ata_pass_through ().
6786 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
6788 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
6789 and <grub/cpu/io.h> to include/grub/ata.h.
6790 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
6791 (GRUB_CDROM_SECTOR_SIZE): Remove.
6792 (GRUB_ATA_*): Move to include/grub/ata.h.
6793 (GRUB_ATAPI_*): Likewise.
6794 (enum grub_ata_commands): Likewise.
6795 (enum grub_ata_timeout_milliseconds): Likewise.
6796 (struct grub_ata_device): Likewise.
6797 (grub_ata_regset): Likewise.
6798 (grub_ata_regget): Likewise.
6799 (grub_ata_regset2): Likewise.
6800 (grub_ata_regget2): Likewise.
6801 (grub_ata_check_ready): Likewise.
6802 (grub_ata_wait_not_busy): Remove static, exported in
6804 (grub_ata_wait_drq): Likewise.
6805 (grub_ata_pio_read): Likewise.
6807 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
6808 function for hdparm.mod.
6810 * include/grub/ata.h: New file, contains declarations from
6812 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
6814 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
6815 (grub_disk_ata_pass_through): New exported variable.
6817 * kern/disk.c (grub_disk_ata_pass_through): New variable.
6819 2009-02-13 Colin D Bennett <colin@gibibit.com>
6821 Support multiple fallback entries, and provide an API to support
6822 executing default+fallback menu entries. Renamed the `terminal' menu
6825 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
6826 variable declaration.
6827 (grub_menu_execute_callback): New structure declaration.
6828 (grub_menu_execute_callback_t): New typedef.
6829 (grub_menu_execute_with_fallback): New function declaration.
6830 (grub_menu_get_entry): Likewise.
6831 (grub_menu_get_timeout): Likewise.
6832 (grub_menu_set_timeout): Likewise.
6834 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
6836 * normal/menu.c (grub_wait_after_message): Moved to
6837 `normal/menu_text.c'.
6838 (draw_border): Likewise.
6839 (print_message): Likewise.
6840 (print_entry): Likewise.
6841 (print_entries): Likewise.
6842 (grub_menu_init_page): Likewise.
6843 (get_entry_number): Likewise.
6844 (print_timeout): Likewise.
6845 (run_menu): Likewise.
6846 (grub_menu_execute_entry): Likewise.
6847 (show_text_menu): Likewise.
6848 (get_and_remove_first_entry_number): New function.
6849 (grub_menu_execute_with_fallback): Likewise.
6850 (get_entry): Renamed to ...
6851 (grub_menu_get_entry): .. this and made it global.
6852 (get_timeout): Renamed to ...
6853 (grub_menu_get_timeout): ... this and made it global.
6854 (set_timeout): Renamed to ...
6855 (grub_menu_set_timeout): ... this and made it global.
6856 (grub_normal_terminal_menu_viewer): Renamed to ...
6857 (grub_normal_text_menu_viewer): ... this.
6859 * normal/menu_text.c: New file. Extracted text-menu-specific code
6862 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
6863 (normal_mod_SOURCES): Likewise.
6865 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6866 (normal_mod_SOURCES): Likewise.
6868 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6869 (normal_mod_SOURCES): Likewise.
6871 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
6872 (normal_mod_SOURCES): Likewise.
6874 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6875 (normal_mod_SOURCES): Likewise.
6877 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6878 (normal_mod_SOURCES): Likewise.
6880 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
6881 (normal_mod_SOURCES): Likewise.
6883 2009-02-11 Robert Millan <rmh@aybabtu.com>
6885 * util/grub.d/00_header.in: Update old reference to `font' command.
6887 2009-02-10 Felix Zielcke <fzielcke@z-51.de>
6889 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
6891 Based on patch from Javier Martín.
6893 2009-02-09 Felix Zielcke <fzielcke@z-51.de>
6895 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
6896 to avoid false positives with FAT.
6897 (grub_fstest_SOURCES): Likewise.
6898 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6899 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
6900 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6901 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
6902 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6903 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6905 2009-02-09 Felix Zielcke <fzielcke@z-51.de>
6907 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6908 bpb.version_specific.fat12_or_fat16.fstype and
6909 bpb.version_specific.fat32.fstype.
6911 2009-02-08 Robert Millan <rmh@aybabtu.com>
6913 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
6915 2009-02-08 Robert Millan <rmh@aybabtu.com>
6917 * Makefile.in (host_os, host_cpu): New variables.
6918 (target_os): Remove. Update all users.
6920 2009-02-08 Marco Gerards <marco@gnu.org>
6922 * Makefile.in (enable_grub_emu_usb): New variable.
6923 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
6924 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
6925 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
6926 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
6927 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
6928 `usbtest.mod' and `usbms.mod'.
6929 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
6930 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
6931 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
6932 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
6933 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
6936 * disk/usbms.c: New file.
6938 * include/grub/usb.h: Likewise.
6940 * include/grub/usbtrans.h: Likewise.
6942 * include/grub/usbdesc.h: Likewise.
6944 * bus/usb/usbtrans.c: Likewise.
6946 * bus/usb/ohci.c: Likewise.
6948 * bus/usb/uhci.c: Likewise.
6950 * bus/usb/usbhub.c: Likewise.
6952 * bus/usb/usb.c: Likewise.
6954 * commands/usbtest.c: Likewise.
6956 * util/usb.c: Likewise.
6958 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
6960 * configure.ac: Test for libusb presence.
6962 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
6964 2009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
6966 * kern/mm.c: Add more comments.
6968 2009-02-08 Robert Millan <rmh@aybabtu.com>
6970 Patch from Javier Martín.
6971 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
6972 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
6974 2009-02-08 Robert Millan <rmh@aybabtu.com>
6976 * fs/cpio.c: Split tar functionality to ...
6977 * fs/tar.c: ... here (new file). Update all users.
6979 2009-02-07 Robert Millan <rmh@aybabtu.com>
6981 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
6982 backward-incompatible features.
6984 Based on patch from Javier Martín, with some adjustments.
6986 2009-02-07 Michael Scherer <misc@mandriva.org>
6988 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
6990 2009-02-07 Robert Millan <rmh@aybabtu.com>
6992 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
6993 position of `disk/lvm.c' to ensure grub_init_all() always picks it
6994 after the RAID stuff.
6996 2009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
6998 Fixes problem when running vbetest command as reported by
6999 Vladimir Serbinenko <phcoder@gmail.com>.
7001 * (grub_vbe_set_video_mode): Fixed problem with text modes.
7003 2009-02-04 Felix Zielcke <fzielcke@z-51.de>
7005 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
7006 /dev/md/NpN style mdraid devices.
7008 2009-02-03 Felix Zielcke <fzielcke@z-51.de>
7010 * util/unifont2pff.rb: Remove.
7012 2009-02-03 Felix Zielcke <fzielcke@z-51.de>
7014 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
7017 2009-02-03 Felix Zielcke <fzielcke@z-51.de>
7019 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
7020 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7021 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
7022 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
7023 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7024 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7025 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7027 2009-02-02 Christian Franke <franke@computer.org>
7029 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
7031 2009-02-01 Felix Zielcke <fzielcke@z-51.de>
7033 * INSTALL: Note that we now require at least autoconf 2.59 and
7034 that LZO is optional.
7036 2009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
7038 Base on patch on bug #24154 created by Tomas Tintera
7041 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
7043 2009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
7045 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
7046 <bero@arklinux.org>.
7048 * normal/parser.y (script_init): Add missing semicolon.
7050 2009-01-31 Colin D Bennett <colin@gibibit.com>
7052 * normal/main.c: Add include to grub/menu_viewer.h.
7053 (free_menu_entry_classes): Added.
7054 (grub_normal_menu_addentry): Added class property handling.
7055 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
7056 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
7058 * normal/menu_viewer.c: New file.
7060 * normal/menu.c (run_menu_entry): Renamed to ...
7061 (grub_menu_execute_entry): ... this and made it as global.
7062 (grub_menu_run): Renamed to ...
7063 (show_text_menu): ... this and made it local.
7064 (show_text_menu): Adapt to new function names.
7065 (grub_normal_terminal_menu_viewer): New global variable.
7067 * include/grub/menu.h: New file.
7069 * include/grub/menu_viewer.h: New file.
7071 * include/grub/normal.h: Added include to grub/menu.h.
7072 (grub_menu_entry): Moved to include/grub/menu.h.
7073 (grub_menu_entry_t): Likewise.
7074 (grub_menu): Likewise.
7075 (grub_menu_t): Likewise.
7076 (grub_normal_terminal_menu_viewer): Added.
7077 (grub_menu_execute_entry): Likewise.
7078 (grub_menu_run): Removed.
7080 * DISTLIST: Added include/grub/menu.h.
7081 Added include/grub/menu_viewer.h.
7082 Added normal/menu_viewer.c.
7084 2009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
7086 * normal/execute.c (grub_script_execute_menuentry): Changed to use
7087 arglist for menutitle arguments.
7089 * normal/main.c (grub_normal_menu_addentry): Likewise.
7091 * normal/parser.y (menuentry): Likewise.
7093 * normal/script.c (grub_script_create_cmdmenu): Likewise.
7095 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
7096 (grub_script_create_cmdmenu): Likewise.
7098 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
7100 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
7103 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
7105 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
7107 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
7109 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
7111 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
7113 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
7115 2009-01-30 Christian Franke <franke@computer.org>
7117 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
7118 in option help text.
7120 2009-01-27 Pavel Roskin <proski@gnu.org>
7122 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
7124 2009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
7126 * commands/lsmmap.c: Add include to grub/machine/memory.h.
7128 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
7130 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
7131 unregister function.
7133 2009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
7135 * disk/scsi.c (grub_scsi_read): Fix sign problem.
7137 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
7139 * util/grub-mkfont.c (usage): Fix typo.
7141 * util/elf/grub-mkimage.c (load_modules): Fix warning.
7143 2009-01-26 Daniel Mierswa <impulze@impulze.org>
7145 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
7147 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
7149 * kern/misc.c (grub_strcasecmp): New function.
7150 (grub_strcasecmp): Use grub_size_t instead of int for length.
7152 * include/grub/misc.h: Update function prototypes.
7154 2009-01-26 Robert Millan <rmh@aybabtu.com>
7156 * configure.ac: Fix cross-compilation check.
7158 2009-01-22 Christian Franke <franke@computer.org>
7160 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
7161 (precision) digit string. Allow `.format2' without `format1' (width).
7162 Limit input chars for `%s' output to `format2' if specified. This is
7163 compatible with standard printf ().
7165 2009-01-22 Christian Franke <franke@computer.org>
7167 * disk/ata.c (grub_ata_wait_status): Replace by ...
7168 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
7169 other status bits may be invalid while BSY is asserted.
7170 (grub_ata_check_ready): New function.
7171 (grub_ata_cmd): Removed.
7172 (grub_ata_wait_drq): New function.
7173 (grub_ata_strncpy): Remove inline.
7174 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
7175 and error check now done by grub_ata_wait_drq ().
7176 (grub_ata_pio_write): Likewise.
7177 (grub_atapi_identify): Set DEV before check for !BSY. Use
7178 grub_ata_wait_drq () to wait for data.
7179 (grub_ata_device_initialize): Add status register check to
7180 detect missing SATA slave devices. Add debug messages.
7181 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
7182 (grub_atapi_packet): Set DEV before check for !BSY. Replace
7183 transfer loop by grub_ata_pio_write ().
7184 (grub_ata_identify): Set DEV before check for !BSY. Use
7185 grub_ata_wait_drq () to wait for data.
7186 (grub_ata_setaddress): Set DEV before check for !BSY.
7187 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
7188 read/write in one loop. Fix invalid command on write. Fix incomplete
7189 command on (size % batch) == 0. Add missing error check after write of
7190 last block. Add debug messages.
7191 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
7193 2009-01-19 Christian Franke <franke@computer.org>
7195 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
7196 (GRUB_ATAPI_IREASON_*): Likewise.
7197 (grub_ata_pio_write): Fix timeout error return.
7198 (grub_atapi_identify): Add grub_ata_wait () after cmd.
7199 (grub_atapi_wait_drq): New function.
7200 (grub_atapi_packet): New parameter `size'.
7201 Use grub_atapi_wait_drq () and direct write instead of
7202 grub_ata_pio_write ().
7203 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
7204 reads the number of bytes requested by the device for each DRQ
7206 (grub_atapi_write): Remove old implementation, return not
7207 implemented instead.
7209 2009-01-19 Christian Franke <franke@computer.org>
7211 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
7212 of 512 to calculate data size.
7213 (grub_scsi_read12): Likewise.
7214 (grub_scsi_write10): Likewise.
7215 (grub_scsi_write12): Likewise.
7216 (grub_scsi_read): Adjust size according to blocksize.
7217 Add checks for invalid blocksize and unaligned transfer.
7219 2009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
7221 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
7223 * term/gfxterm.c (write_char): Fix background rendering for wide
7226 2009-01-19 Robert Millan <rmh@aybabtu.com>
7228 * config.guess: Update to latest version from config git.
7229 * config.sub: Likewise.
7231 2009-01-17 Felix Zielcke <fzielcke@z-51.de>
7233 * Makefile.in: Change font compilation to use new grub-mkfont instead
7236 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
7237 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
7238 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
7239 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
7240 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
7241 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
7242 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
7243 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
7244 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
7246 2009-01-16 Christian Franke <franke@computer.org>
7248 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
7249 (enum grub_ata_timeout_milliseconds): New enum.
7250 (grub_ata_wait_status): Add parameter milliseconds.
7251 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
7252 recovery from timed-out commands.
7253 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
7254 return grub_errno instead of REG_ERROR.
7255 (grub_ata_pio_write): Add parameter milliseconds.
7256 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
7257 Pass milliseconds to grub_ata_wait_status () and
7258 grub_ata_pio_read ().
7259 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
7260 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
7261 grub_ata_wait_status (). Fix IDENTIFY timeout check.
7262 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
7263 It is not suitable for device detection, because DEV bit is ignored,
7264 the command may run too long, and not all devices set the signature
7266 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
7267 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
7268 Fix device selection, DEV bit must be set first to address the registers
7269 of the correct device.
7270 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
7271 grub_ata_pio_read/write ().
7272 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
7273 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
7275 2009-01-13 Carles Pina i Estany <carles@pina.cat>
7277 * util/grub-editenv.c (main): Use fseeko(), not fseek().
7279 2009-01-13 Bean <bean123ch@gmail.com>
7281 * util/grub-mkfont.c (write_font): forget to remove some debug code.
7283 2009-01-13 Bean <bean123ch@gmail.com>
7285 * Makefile.in: (enable_grub_mkfont): New variable.
7286 (freetype_cflags): Likewise.
7287 (freetype_libs): Likewise.
7289 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
7290 (grub_mkfont_SOURCES): New variable.
7291 (grub_mkfont_CFLAGS): Likewise.
7292 (grub_mkfont_LDFLAGS): Likewise.
7294 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
7295 library if `--enable-grub-mkfont' is requested.
7296 (enable_grub_mkfont): New variable.
7297 (freetype_cflags): Likewise.
7298 (freetype_libs): Likewise.
7300 * util/grub-mkfont.c: New file.
7302 2009-01-12 Christian Franke <franke@computer.org>
7304 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
7305 mode check. Fix setting of compat_use[].
7307 2009-01-10 Robert Millan <rmh@aybabtu.com>
7309 Update a few copyright years which we forgot to do in 2008 (only for
7310 files whose changes made in 2008 were copyright-significant)
7312 * Makefile.in: Add 2008 to Copyright line.
7313 * disk/ieee1275/ofdisk.c: Likewise.
7314 * disk/efi/efidisk.c: Likewise.
7315 * kern/dl.c: Likewise.
7316 * kern/sparc64/ieee1275/init.c: Likewise.
7317 * kern/mm.c: Likewise.
7318 * kern/efi/mm.c: Likewise.
7319 * boot/i386/pc/boot.S: Likewise.
7320 * genfslist.sh: Likewise.
7321 * fs/iso9660.c: Likewise.
7322 * fs/hfs.c: Likewise.
7323 * fs/jfs.c: Likewise.
7324 * fs/minix.c: Likewise.
7325 * fs/ufs.c: Likewise.
7326 * gensymlist.sh.in: Likewise.
7327 * genkernsyms.sh.in: Likewise.
7328 * include/grub/misc.h: Likewise.
7329 * include/grub/types.h: Likewise.
7330 * include/grub/symbol.h: Likewise.
7331 * include/grub/elf.h: Likewise.
7332 * include/grub/kernel.h: Likewise.
7333 * include/grub/disk.h: Likewise.
7334 * include/grub/dl.h: Likewise.
7335 * include/grub/i386/linux.h: Likewise.
7336 * include/grub/i386/pc/biosdisk.h: Likewise.
7337 * include/grub/efi/api.h: Likewise.
7338 * include/grub/efi/pe32.h: Likewise.
7339 * include/grub/util/misc.h: Likewise.
7340 * normal/execute.c: Likewise.
7341 * normal/arg.c: Likewise.
7342 * normal/completion.c: Likewise.
7343 * normal/lexer.c: Likewise.
7344 * normal/parser.y: Likewise.
7345 * normal/misc.c: Likewise.
7346 * commands/i386/pc/vbeinfo.c: Likewise.
7347 * commands/hexdump.c: Likewise.
7348 * commands/terminal.c: Likewise.
7349 * commands/ls.c: Likewise.
7350 * commands/help.c: Likewise.
7351 * partmap/pc.c: Likewise.
7352 * loader/efi/chainloader.c: Likewise.
7353 * loader/multiboot_loader.c: Likewise.
7354 * loader/i386/pc/multiboot2.c: Likewise.
7355 * term/efi/console.c: Likewise.
7356 * term/i386/pc/serial.c: Likewise.
7357 * util/lvm.c: Likewise.
7358 * util/console.c: Likewise.
7359 * util/i386/efi/grub-mkimage.c: Likewise.
7360 * util/raid.c: Likewise.
7362 2009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
7364 * commands/videotest.c: Removed include to grub/machine/memory.h.
7366 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
7367 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
7368 (video_mod_SOURCES): Removed.
7369 (video_mod_CFLAGS): Likewise.
7370 (video_mod_LDFLAGS): Likewise.
7371 (gfxterm_mod_SOURCES): Likewise.
7372 (gfxterm_mod_CFLAGS): Likewise.
7373 (gfxterm_mod_LDFLAGS): Likewise.
7374 (videotest_mod_SOURCES): Likewise.
7375 (videotest_mod_CFLAGS): Likewise.
7376 (videotest_mod_LDFLAGS): Likewise.
7377 (bitmap_mod_SOURCES): Likewise.
7378 (bitmap_mod_CFLAGS): Likewise.
7379 (bitmap_mod_LDFLAGS): Likewise.
7380 (tga_mod_SOURCES): Likewise.
7381 (tga_mod_CFLAGS): Likewise.
7382 (tga_mod_LDFLAGS): Likewise.
7383 (jpeg_mod_SOURCES): Likewise.
7384 (jpeg_mod_CFLAGS): Likewise.
7385 (jpeg_mod_LDFLAGS): Likewise.
7386 (png_mod_SOURCES): Likewise.
7387 (png_mod_CFLAGS): Likewise.
7388 (png_mod_LDFLAGS): Likewise.
7390 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
7391 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
7392 (video_mod_SOURCES): Added.
7393 (video_mod_CFLAGS): Likewise.
7394 (video_mod_LDFLAGS): Likewise.
7395 (videotest_mod_SOURCES): Likewise.
7396 (videotest_mod_CFLAGS): Likewise.
7397 (videotest_mod_LDFLAGS): Likewise.
7398 (bitmap_mod_SOURCES): Likewise.
7399 (bitmap_mod_CFLAGS): Likewise.
7400 (bitmap_mod_LDFLAGS): Likewise.
7401 (tga_mod_SOURCES): Likewise.
7402 (tga_mod_CFLAGS): Likewise.
7403 (tga_mod_LDFLAGS): Likewise.
7404 (jpeg_mod_SOURCES): Likewise.
7405 (jpeg_mod_CFLAGS): Likewise.
7406 (jpeg_mod_LDFLAGS): Likewise.
7407 (png_mod_SOURCES): Likewise.
7408 (png_mod_CFLAGS): Likewise.
7409 (png_mod_LDFLAGS): Likewise.
7410 (gfxterm_mod_SOURCES): Likewise.
7411 (gfxterm_mod_CFLAGS): Likewise.
7412 (gfxterm_mod_LDFLAGS): Likewise.
7414 * term/gfxterm.c: Removed include to grub/machine/memory.h,
7415 grub/machine/console.h.
7417 2009-01-04 Jerone Young <jerone@gmail.com>
7419 Make on screen instructions clearer
7421 Based on patch created by Jidanni <jidanni@jidanni.org>
7423 * normal/menu.c: print clearer instructions on the screen
7425 2009-01-02 Colin D Bennett <colin@gibibit.com>
7429 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
7430 build system and fixed gfxterm.c to work with different sized fonts.
7432 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
7434 * configure: Re-generated.
7436 * DISTLIST: Removed font/manager.c.
7438 Added font/font_cmd.c.
7440 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
7443 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
7445 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
7447 * kern/term.c: Changed users of grub_utf8_to_ucs4.
7449 * normal/menu.c: Likewise.
7451 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
7452 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
7454 * include/grub/font.h: Replaced with new file.
7456 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
7457 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
7458 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
7459 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
7460 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
7461 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
7462 fg_red, fg_green, fg_blue, fg_alpha.
7463 (grub_video_adapter): Removed blit_glyph.
7464 (grub_video_blit_glyph): Removed.
7466 * font/manager.c: Removed file.
7468 * font/font.c: New file.
7470 * font/font_cmd.c: Likewise.
7472 * video/video.c (grub_video_blit_glyph): Removed.
7474 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
7475 (grub_video_vbe_map_rgba): Likewise.
7476 (grub_video_vbe_unmap_color_int): Likewise.
7477 (grub_video_vbe_blit_glyph): Removed.
7478 (grub_video_vbe_adapter): Removed blit_glyph.
7480 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
7481 (get_pixel): Likewise.
7482 (set_pixel): Likewise.
7484 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
7486 * term/gfxterm.c: Adapted to new font engine.
7488 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
7490 * term/i386/pc/vga.c: Likewise.
7492 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
7494 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
7496 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
7498 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
7500 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
7502 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
7504 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
7506 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
7508 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
7510 * util/grub.d/00_header.in: Changed to use new loadfont command.
7512 * util/grub-mkconfig_lib.in: Changed font extension.
7514 2008-12-28 Felix Zielcke <fzielcke@z-51.de>
7516 * util/getroot.c (grub_util_get_grub_dev): Add support for
7517 /dev/md/dNNpNN style partitionable mdraid devices.
7519 2008-12-12 Alex Smith <alex@alex-smith.me.uk>
7521 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
7522 at a time limit of the PXE TFTP API correctly.
7523 (grub_pxefs_close): Likewise.
7525 2008-11-29 Robert Millan <rmh@aybabtu.com>
7527 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7528 grub_ata_device_initialize() calls.
7530 2008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
7532 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
7534 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
7536 2008-11-28 Robert Millan <rmh@aybabtu.com>
7538 Fix build on powerpc-ieee1275. Based on patch created by
7539 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
7540 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
7541 `kern/ieee1275/mmap.c'.
7542 * include/grub/powerpc/ieee1275/memory.h: New file.
7544 Provide grub-install on coreboot.
7545 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
7546 (grub_install_SOURCES): New variable.
7547 * util/i386/pc/grub-install.in: Add a few condition checks to make it
7550 2008-11-25 Felix Zielcke <fzielcke@z-51.de>
7552 * util/grub-fstest.c (grub_term_get_current_input): Change return type
7553 to `grub_term_input_t'.
7554 (grub_term_get_current_output): Change return type to
7555 `grub_term_output_t'.
7557 2008-11-22 Robert Millan <rmh@aybabtu.com>
7559 Fix breakage on coreboot due to declaration mismatch.
7560 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
7561 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
7562 grub_vga_text_cls().
7564 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
7565 comments. Avoid copying one more byte than necessary (just in case).
7567 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
7568 to 0x200000 (avoids trouble with some OFW implementations, and matches
7569 with the one in Yaboot).
7570 Reported by Manoel Abranches
7572 2008-11-20 Robert Millan <rmh@aybabtu.com>
7574 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
7575 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
7577 * util/grub-mkconfig_lib.in (grub_warn): New function.
7578 (convert_system_path_to_grub_path): Use grub_warn() when issuing
7579 warnings, to obtain consistent formatting.
7580 * util/grub.d/00_header.in: Likewise.
7581 * util/update-grub_lib.in: Likewise.
7583 * loader/i386/linux.c (allocate_pages): Fix a warning.
7584 Move comment text to `#error' stanza.
7586 Harmonize ieee1275's grub_available_iterate() with the generic
7587 grub_machine_mmap_iterate() interface (fixes a recently-introduced
7588 build problem on i386-ieee1275):
7589 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
7590 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
7591 parameter `type'. Update all users of this function.
7592 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
7593 `kern/ieee1275/mmap.c'.
7594 * kern/ieee1275/init.c
7595 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
7597 (grub_machine_mmap_iterate): ... this.
7598 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
7599 return type to `grub_err_t'. Update all implementations of this
7601 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
7604 Add `lsmmap' command (lists firmware-provided memory map):
7605 * commands/lsmmap.c: New file.
7606 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
7607 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
7609 * conf/powerpc-ieee1275.rmk: Likewise.
7610 * conf/i386-coreboot.rmk: Likewise.
7611 * conf/i386-ieee1275.rmk: Likewise.
7613 2008-11-19 Robert Millan <rmh@aybabtu.com>
7615 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
7616 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
7617 constraints to initrd allocation (based on code from
7618 loader/i386/pc/linux.c). Without them, initrd was allocated too high
7619 for Linux to find it.
7621 2008-11-14 Robert Millan <rmh@aybabtu.com>
7623 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
7624 order to cope with duplicate slashes.
7626 2008-11-14 Robert Millan <rmh@aybabtu.com>
7628 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
7629 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
7630 don't want to mess with lower memory, because it is used in the Linux
7633 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
7634 an appropriate place in lower memory, between 0x10000 and 0x90000,
7635 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
7636 is in our heap (probably as a result of it being corrupted during
7637 decompression). Add #error instance with comment to explain why this
7638 loader isn't currently usable on PC/BIOS.
7640 2008-11-14 Robert Millan <rmh@aybabtu.com>
7642 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
7643 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
7645 2008-11-12 Robert Millan <rmh@aybabtu.com>
7647 Make loader/i386/linux.c buildable on i386-pc (although disabled).
7649 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
7650 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
7652 * include/grub/i386/pc/memory.h: ... to here.
7654 2008-11-12 Robert Millan <rmh@aybabtu.com>
7656 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
7659 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
7660 (grub_console_cur_color, grub_console_real_putchar)
7661 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
7662 (grub_console_setcolorstate, grub_console_setcolor)
7663 (grub_console_getcolor): Move from here ...
7664 * include/grub/i386/vga_common.h: ... to here (new file).
7666 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
7667 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
7669 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
7670 `<grub/i386/vga_common.h>'.
7672 2008-11-12 Robert Millan <rmh@aybabtu.com>
7674 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
7675 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
7676 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
7678 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
7679 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
7681 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
7682 grub_console_init() with call to grub_vga_text_init().
7683 (grub_machine_fini): Replace call to
7684 grub_console_fini() with call to grub_vga_text_fini() and
7685 grub_at_keyboard_fini().
7687 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
7688 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
7689 (grub_console_setcolorstate, grub_console_setcolor)
7690 (grub_console_getcolor): New function prototypes.
7692 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
7693 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
7694 (grub_vga_text_setcursor): Static-ize.
7695 (grub_vga_text_term): New structure.
7696 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
7698 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
7699 (grub_console_cur_color, grub_console_standard_color)
7700 (grub_console_normal_color, grub_console_highlight_color)
7701 (map_char, grub_console_putchar, grub_console_getcharwidth)
7702 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
7703 (grub_console_getcolor): Move from here ...
7704 * term/i386/vga_common.c: ... to here (same function names).
7706 2008-11-12 Robert Millan <rmh@aybabtu.com>
7708 Use newly-added Multiboot support in coreboot.
7710 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
7711 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
7713 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
7714 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
7715 (codestart): Store the MBI in `startup_multiboot_info' when we're
7716 being loaded using Multiboot.
7718 * kern/i386/coreboot/init.c (grub_machine_init): Move
7719 grub_at_keyboard_init() call to beginning of function (useful for
7720 debugging). Call grub_machine_mmap_init() before attempting to use
7721 grub_machine_mmap_iterate().
7722 (grub_lower_mem, grub_upper_mem): Move from here ...
7723 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
7726 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
7729 2008-11-12 Robert Millan <rmh@aybabtu.com>
7731 Fix a regression introduced by the at_keyboard.mod split. Because
7732 some terminals are default on some platforms and non-default on
7733 others, the first terminal being registered determines which is
7734 going to be default.
7736 * kern/term.c (grub_term_register_input): If this is the first
7737 terminal being registered, set it as the current one.
7738 (grub_term_register_output): Likewise.
7740 * term/efi/console.c (grub_console_init): Do not call
7741 grub_term_set_current_output() or grub_term_set_current_input().
7742 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
7743 * term/i386/pc/console.c (grub_console_init): Likewise.
7744 (grub_console_fini): Do not call grub_term_set_current_input()
7745 (but leave grub_term_set_current_output() to restore text mode).
7747 2008-11-10 Robert Millan <rmh@aybabtu.com>
7749 * util/grub.d/00_header.in: Add backward compatibility check for
7750 versions of terminal.mod that don't understand `terminal_input' or
7753 2008-11-09 Robert Millan <rmh@aybabtu.com>
7755 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
7756 `terminal_input' / `terminal_output', not `terminal'.
7758 2008-11-08 Robert Millan <rmh@aybabtu.com>
7760 * Makefile.in (include_DATA): Fix srcdir=. assumption.
7761 (DISTCLEANFILES): Add `build_env.mk'.
7763 2008-11-08 Robert Millan <rmh@aybabtu.com>
7765 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
7766 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
7767 members. Update all users.
7768 * util/console.c (grub_ncurses_term): Split in ...
7769 (grub_ncurses_term_input): ... this, and ...
7770 (grub_ncurses_term_output): ... this. Update all users.
7771 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
7773 2008-11-08 Robert Millan <rmh@aybabtu.com>
7775 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
7776 (PKGDATA): Add $(pkgdata_SRCDIR).
7777 (pkglib_BUILDDIR): New variable.
7778 (pkgdata_SRCDIR): New variable.
7779 (build_env.mk): New target.
7780 (include_DATA): New variable.
7781 (install-local): Install $(include_DATA) files in $(includedir).
7783 2008-11-07 Pavel Roskin <proski@gnu.org>
7785 * gendistlist.sh: Use C locale for sorting to ensure consistent
7786 output on all systems.
7788 * util/grub.d/00_header.in: Remove incorrect space before
7791 2008-11-07 Robert Millan <rmh@aybabtu.com>
7793 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
7795 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
7796 * loader/multiboot_loader.c (find_multi_boot2_header): New function
7797 (based on find_multi_boot1_header).
7798 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
7799 using find_multi_boot2_header(), and abort if neither Multiboot or
7800 Multiboot headers were found.
7802 2008-11-07 Robert Millan <rmh@aybabtu.com>
7804 Modularize at_keyboard.mod:
7806 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
7807 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
7808 (at_keyboard_mod_LDFLAGS): New variables.
7810 Actual terminal split:
7812 * include/grub/term.h (struct grub_term): Split in ...
7813 (struct grub_term_input): ... this, and ...
7814 (struct grub_term_output): ... this. Update all users.
7815 (grub_term_set_current): Split in ...
7816 (grub_term_set_current_input): ... this, and ...
7817 (grub_term_set_current_output): ... this.
7818 (grub_term_get_current): Split in ...
7819 (grub_term_get_current_input): ... this, and ...
7820 (grub_term_get_current_output): ... this.
7821 (grub_term_register): Split in ...
7822 (grub_term_register_input): ... this, and ...
7823 (grub_term_register_output): ... this.
7824 (grub_term_unregister): Split in ...
7825 (grub_term_unregister_input): ... this, and ...
7826 (grub_term_unregister_output): ... this.
7827 (grub_term_iterate): Split in ...
7828 (grub_term_iterate_input): ... this, and ...
7829 (grub_term_iterate_output): ... this.
7831 * kern/term.c (grub_term_list): Split in ...
7832 (grub_term_list_input): ... this, and ...
7833 (grub_term_list_output): ... this. Update all users.
7834 (grub_cur_term): Split in ...
7835 (grub_cur_term_input): ... this, and ...
7836 (grub_cur_term_output): ... this. Update all users.
7837 (grub_term_set_current): Split in ...
7838 (grub_term_set_current_input): ... this, and ...
7839 (grub_term_set_current_output): ... this.
7840 (grub_term_get_current): Split in ...
7841 (grub_term_get_current_input): ... this, and ...
7842 (grub_term_get_current_output): ... this.
7843 (grub_term_register): Split in ...
7844 (grub_term_register_input): ... this, and ...
7845 (grub_term_register_output): ... this.
7846 (grub_term_unregister): Split in ...
7847 (grub_term_unregister_input): ... this, and ...
7848 (grub_term_unregister_output): ... this.
7849 (grub_term_iterate): Split in ...
7850 (grub_term_iterate_input): ... this, and ...
7851 (grub_term_iterate_output): ... this.
7853 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
7854 a check for input and one for output (and only attempt to get keys
7855 from user when input works).
7857 * util/grub-probe.c (grub_term_get_current): Split in ...
7858 (grub_term_get_current_input): ... this, and ...
7859 (grub_term_get_current_output): ... this.
7860 * util/grub-fstest.c: Likewise.
7861 * util/i386/pc/grub-setup.c: Likewise.
7862 * util/grub-editenv.c: Likewise.
7864 Portability adjustments:
7866 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
7867 `term/i386/pc/at_keyboard.c'.
7868 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
7869 grub_keyboard_controller_init() (now handled by terminal .init).
7870 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
7871 grub_at_keyboard_init().
7872 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
7873 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
7874 at_keyboard.mod via input terminal interface).
7875 * include/grub/i386/coreboot/console.h: Convert into a stub for
7876 `<grub/i386/pc/console.h>'.
7878 Migrate full terminals to new API:
7880 * term/efi/console.c (grub_console_term): Split into ...
7881 (grub_console_term_input): ... this, and ...
7882 (grub_console_term_output): ... this. Update all users.
7883 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
7884 (grub_ofconsole_init): Split into ...
7885 (grub_ofconsole_init_input): ... this, and ...
7886 (grub_ofconsole_init_output): ... this.
7887 (grub_ofconsole_term): Split into ...
7888 (grub_ofconsole_term_input): ... this, and ...
7889 (grub_ofconsole_term_output): ... this. Update all users.
7890 * term/i386/pc/serial.c (grub_serial_term): Split into ...
7891 (grub_serial_term_input): ... this, and ...
7892 (grub_serial_term_output): ... this. Update all users.
7893 * term/i386/pc/console.c (grub_console_term): Split into ...
7894 (grub_console_term_input): ... this, and ...
7895 (grub_console_term_output): ... this. Update all users.
7896 (grub_console_term_input): Only enable it on PC/BIOS platform.
7897 (grub_console_init): Remove grub_keyboard_controller_init() call.
7899 Migrate input terminals to new API:
7901 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
7902 `i386' and `i386/pc' to enable build on x86_64 (this driver is
7903 i386-specific anyway).
7904 (grub_console_checkkey): Rename to ...
7905 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
7907 (grub_keyboard_controller_orig): New variable.
7908 (grub_console_getkey): Rename to ...
7909 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
7911 (grub_keyboard_controller_init): Static-ize. Save original
7912 controller value so that it can be restored ...
7913 (grub_keyboard_controller_fini): ... here (new function).
7914 (grub_at_keyboard_term): New structure.
7915 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
7918 Migrate output terminals to new API:
7920 * term/i386/pc/vga.c (grub_vga_term): Change type to
7921 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
7922 members. Update all users.
7923 * term/gfxterm.c (grub_video_term): Change type to
7924 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
7925 members. Update all users.
7926 * include/grub/i386/pc/console.h (grub_console_checkkey)
7927 (grub_console_getkey): Do not export (no longer needed by gfxterm,
7930 Migrate `terminal' command and userland tools to new API:
7932 * commands/terminal.c (grub_cmd_terminal): Split into ...
7933 (grub_cmd_terminal_input): ... this, and ...
7934 (grub_cmd_terminal_output): ... this.
7935 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
7936 `terminal_input' and `terminal_output'.
7937 * util/grub.d/00_header.in: Adjust `terminal' calls to new
7938 `terminal_input' / `terminal_output' API.
7939 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
7940 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
7941 provided ${GRUB_TERMINAL}, convert it).
7943 2008-11-04 Robert Millan <rmh@aybabtu.com>
7945 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
7947 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
7949 2008-11-03 Bean <bean123ch@gmail.com>
7951 * kern/elf.c (grub_elf32_load): Revert to previous code.
7952 (grub_elf64_load): Likewise.
7954 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
7956 2008-11-01 Robert Millan <rmh@aybabtu.com>
7958 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
7959 (TARGET_CPPFLAGS): Likewise.
7960 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
7962 2008-11-01 Carles Pina i Estany <carles@pina.cat>
7964 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
7966 2008-10-29 Guillem Jover <guillem.jover@nokia.com>
7968 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
7969 addition of objects until the code is not going to be able to fail.
7971 2008-10-29 Guillem Jover <guillem.jover@nokia.com>
7973 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
7974 (add a missing NULL check, and correct them by moving the pointer
7975 operations after the actual check).
7977 2008-10-29 Robert Millan <rmh@aybabtu.com>
7979 * util/i386/pc/grub-install.in: Handle empty string as output from
7980 make_system_path_relative_to_its_root().
7982 2008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
7984 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
7985 circular metadata worst case scenario. If the metadata is circular
7986 then copy the wrap in place.
7987 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
7988 project lib/format_text/layout.h
7989 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
7991 2008-10-03 Felix Zielcke <fzielcke@z-51.de>
7993 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
7995 2008-10-03 Felix Zielcke <fzielcke@z-51.de>
7997 * util/update-grub_lib.in: Mention filename in warning message.
7999 2008-09-29 Felix Zielcke <fzielcke@z-51.de>
8001 * NEWS: Update for rename of update-grub to grub-mkconfig.
8003 2008-09-29 Felix Zielcke <fzielcke@z-51.de>
8005 * util/update-grub_lib.in: Copy to ...
8006 * util/grub-mkconfig_lib.in: ... this. Update all users.
8007 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
8008 * util/update-grub.in: Rename to ...
8009 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
8010 option. Add `--output' option to allow users to specify the generated
8011 configuration file. Default to stdout.
8012 (update_grub_dir): Rename to ...
8013 (grub_mkconfig_dir): ... this.
8014 (grub_cfg): Default to an empty string.
8015 * conf/common.rmk (update-grub): Rename to ...
8016 (grub-mkconfig): ... this.
8017 (update-grub_lib): Copy to ...
8018 (grub-mkconfig_lib): ... this.
8019 (update-grub_SCRIPTS): Copy to ...
8020 (grub-mkconfig_SCRIPTS): ... this. Update all users.
8021 (update-grub_DATA): Rename to ...
8022 (grub-mkconfig_DATA): ... this.
8024 2008-09-28 Robert Millan <rmh@aybabtu.com>
8026 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
8027 to `modified'. Add the real `created' field.
8028 (grub_iso9660_uuid): Use `modified' rather than `created' for
8029 constructing the UUID.
8031 2008-09-28 Felix Zielcke <fzielcke@z-51.de>
8033 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
8034 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
8036 2008-09-28 Bean <bean123ch@gmail.com>
8038 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
8039 Thanks to Christian Franke for finding this bug.
8041 2008-09-25 Robert Millan <rmh@aybabtu.com>
8043 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
8044 instances of grub_util_get_disk_name() (see previous commit).
8046 2008-09-25 Robert Millan <rmh@aybabtu.com>
8048 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
8049 `util/i386/get_disk_name.c'.
8050 * conf/i386-efi.rmk: Likewise.
8051 * conf/x86_64-efi.rmk: Likewise.
8052 * conf/i386-coreboot.rmk: Likewise.
8053 * conf/i386-ieee1275.rmk: Likewise.
8054 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
8055 `util/ieee1275/get_disk_name.c'.
8056 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
8057 * util/ieee1275/get_disk_name.c: Remove file.
8058 * util/i386/get_disk_name.c: Remove file.
8059 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
8060 "hd%d" for device.map entries, rather than using
8061 grub_util_get_disk_name().
8063 2008-09-24 Carles Pina i Estany <carles@pina.cat>
8065 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
8067 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
8069 2008-09-24 Carles Pina i Estany <carles@pina.cat>
8071 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
8073 (GRUB_TERM_PPAGE): Changed to 0x4900.
8075 2008-09-24 Robert Millan <rmh@aybabtu.com>
8077 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
8078 macros (they were i386-pc specific).
8079 * include/grub/sparc64/ieee1275/console.h: Likewise.
8080 * include/grub/efi/console.h: Likewise.
8082 2008-09-22 Bean <bean123ch@gmail.com>
8084 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
8085 resident and in attribute list.
8087 * include/grub/ntfs.h (BMP_LEN): Removed.
8089 2008-09-22 Bean <bean123ch@gmail.com>
8091 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
8092 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
8094 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
8095 error occurs, as grub_disk_open will call grub_disk_close, which will
8096 call p->close (scsi).
8098 2008-09-21 Felix Zielcke <fzielcke@z-51.de>
8100 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
8101 (AC_PREREQ): Bumped to 2.59.
8102 (AC_TRY_COMPILE): Replace obsolete macro with ...
8103 (AC_COMPILE_IFELSE): ... this.
8104 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
8105 (AC_LINK_IFELSE): ... this.
8107 2008-09-21 Felix Zielcke <fzielcke@z-51.de>
8109 * autogen.sh: Add a call to `gendistlist.sh'.
8111 2008-09-19 Christian Franke <franke@computer.org>
8113 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
8114 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
8115 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
8116 Export __enable_execute_stack() to modules.
8117 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
8120 2008-09-09 Felix Zielcke <fzielcke@z-51.de>
8122 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
8125 2008-09-09 Felix Zielcke <fzielcke@z-51.de>
8127 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
8128 #include <grub/util/hostdisk.h>.
8130 2008-09-08 Robert Millan <rmh@aybabtu.com>
8132 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
8133 segments when their filesz is zero (grub_file_read() interprets
8134 zero-size as "read until EOF", which results in memory corruption).
8135 Use `lowest_segment' rather than 0 for calculating the current
8136 segment load address.
8138 2008-09-08 Robert Millan <rmh@aybabtu.com>
8140 * util/hostdisk.c (open_device): Replace a grub_util_info() call
8141 with grub_dprintf("hostdisk", ...), as it was so verbose that it
8142 clobbered useful information.
8144 2008-09-08 Robert Millan <rmh@aybabtu.com>
8146 * include/grub/util/biosdisk.h: Move to ...
8147 * include/grub/util/hostdisk.h: ... here. Update all users.
8148 * util/biosdisk.c: Move to ...
8149 * util/hostdisk.c: ... here. Update all users.
8151 2008-09-07 Robert Millan <rmh@aybabtu.com>
8153 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
8155 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
8156 and length can be stored directly in the `mbi->mmap_addr' and
8157 `mbi->mmap_length' struct fields.
8159 2008-09-07 Robert Millan <rmh@aybabtu.com>
8161 * conf/i386.rmk: New file. Provides declaration for building
8163 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
8164 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
8166 Include `conf/i386.mk'.
8167 * conf/i386-efi.rmk: Likewise.
8168 * conf/x86_64-efi.rmk: Likewise.
8169 * conf/i386-coreboot.rmk: Likewise.
8170 * conf/i386-ieee1275.rmk: Likewise.
8172 2008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
8174 Based on patch created by Colin D Bennett <colin@gibibit.com>.
8175 Adds optimization support for BGR based modes.
8177 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
8178 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
8179 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
8180 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
8181 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
8182 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
8183 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
8184 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
8185 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
8186 (grub_video_i386_vbeblit_index_index): Likewise.
8187 (grub_video_i386_vbeblit_replace_directN): Added.
8188 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
8189 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
8190 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
8191 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
8192 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
8193 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
8194 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
8195 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
8196 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
8197 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
8198 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
8199 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
8200 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
8202 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
8203 (grub_video_i386_vbefill_R8G8B8): Likewise.
8204 (grub_video_i386_vbefill_index): Likewise.
8205 (grub_video_i386_vbefill_direct32): Added.
8206 (grub_video_i386_vbefill_direct24): Likewise.
8207 (grub_video_i386_vbefill_direct16): Likewise.
8208 (grub_video_i386_vbefill_direct8): Likewise.
8210 * include/grub/video.h (grub_video_blit_format): Removed
8211 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
8212 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
8213 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
8214 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
8215 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
8217 * video/video.c (grub_video_get_blit_format): Updated to use new
8218 blit formats. Added handling for 16 bit color modes.
8220 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
8222 (common_blitter): Updated to use new blitters.
8224 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
8226 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
8227 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
8228 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
8229 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
8230 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
8231 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
8232 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
8233 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
8234 (grub_video_i386_vbeblit_index_index): Likewise.
8235 (grub_video_i386_vbeblit_replace_directN): Added.
8236 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
8237 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
8238 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
8239 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
8240 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
8241 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
8242 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
8243 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
8244 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
8245 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
8246 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
8247 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
8248 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
8250 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
8251 (grub_video_i386_vbefill_R8G8B8): Likewise.
8252 (grub_video_i386_vbefill_index): Likewise.
8253 (grub_video_i386_vbefill_direct32): Added.
8254 (grub_video_i386_vbefill_direct24): Likewise.
8255 (grub_video_i386_vbefill_direct16): Likewise.
8256 (grub_video_i386_vbefill_direct8): Likewise.
8258 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
8261 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
8264 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
8267 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
8270 2008-09-06 Felix Zielcke <fzielcke@z-51.de>
8272 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
8275 2008-09-06 Felix Zielcke <fzielcke@z-51.de>
8277 * fs/iso9660.c (grub_iso9660_date): New structure.
8278 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
8279 (grub_iso9660_uuid): New function.
8281 2008-09-05 Bean <bean123ch@gmail.com>
8283 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
8285 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
8286 insensitive bit for names in Win32 and Win32 & DOS namespace.
8288 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
8290 * include/grub/types.h (LONG_MAX): Likewise.
8292 2008-09-04 Felix Zielcke <fzielcke@z-51.de>
8294 * util/getroot.c: Include <config.h>.
8295 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
8296 add support for /dev/md/N devices and handle LVM double dash escaping.
8298 2008-09-04 Felix Zielcke <fzielcke@z-51.de>
8300 * config.guess: Update to latest version from config git.
8301 * config.sub: Likewise.
8303 2008-09-03 Robert Millan <rmh@aybabtu.com>
8305 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
8306 `disk->total_sectors'.
8308 2008-09-01 Colin D Bennett <colin@gibibit.com>
8310 * include/grub/normal.h: Fixed incorrect comment for
8311 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
8313 2008-09-01 Colin D Bennett <colin@gibibit.com>
8315 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
8316 values with defines.
8318 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
8319 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
8320 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
8321 (GRUB_VBE_MODEATTR_COLOR): Likewise.
8322 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
8323 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
8324 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
8325 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
8326 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
8327 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
8328 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
8329 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
8330 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
8331 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
8332 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
8333 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
8334 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
8335 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
8336 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
8338 2008-08-31 Robert Millan <rmh@aybabtu.com>
8340 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
8342 (grub_multiboot): Fix a few warnings.
8344 2008-08-31 Robert Millan <rmh@aybabtu.com>
8346 * loader/i386/pc/multiboot.c: Update comment not to say that
8347 boot_device support is unimplemented.
8349 2008-08-31 Robert Millan <rmh@aybabtu.com>
8351 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
8352 or memory map support are unimplemented.
8354 2008-08-31 Colin D Bennett <colin@gibibit.com>
8356 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
8358 2008-08-31 Colin D Bennett <colin@gibibit.com>
8360 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
8361 total video memory in 'vbeinfo' output; show color format details for
8364 2008-08-30 Pavel Roskin <proski@gnu.org>
8366 * util/genmoddep.c: Remove for real this time.
8367 * DISTLIST: Remove util/genmoddep.c.
8369 2008-08-30 Robert Millan <rmh@aybabtu.com>
8371 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
8372 as required by Multiboot spec (it was already 4-byte aligned, but
8375 2008-08-29 Pavel Roskin <proski@gnu.org>
8377 * kern/powerpc/ieee1275/crt0.S: Rename to ...
8378 * kern/powerpc/ieee1275/startup.S: ... this.
8379 * conf/powerpc-ieee1275.rmk: Adjust for the above.
8380 * DISTLIST: Likewise.
8382 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
8383 grub/cpu/kernel.h. Add start label for consistency with other
8384 platforms. Add grub_prefix immediately after start. Add jump
8385 to the code after grub_prefix.
8386 * include/grub/powerpc/kernel.h: Provide valid values for
8387 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
8389 2008-08-29 Bean <bean123ch@gmail.com>
8391 * configure.ac: Change host_os to cygwin for mingw.
8392 (asprintf): New check for function.
8394 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
8395 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
8397 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
8398 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
8399 sync, sleep and grub_util_get_disk_size for mingw.
8401 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
8402 to get size in mingw.
8403 (open_device): Use flag O_BINARY if it's defined.
8404 (find_root_device): Add dummy code for mingw.
8406 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
8407 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
8408 (get_scsi_disk_name): Return 0 for mingw.
8410 * util/hostfs.c: #include <grub/util/misc.h>.
8411 (grub_hostfs_open): Use "rb" flag to open file, use
8412 grub_util_get_disk_size to get disk size for mingw.
8414 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
8415 (asprintf): New function if HAVE_ASPRINTF is not set.
8416 (sync): New function for mingw.
8418 (grub_util_get_disk_size): Likewise.
8420 2008-08-28 Pavel Roskin <proski@gnu.org>
8422 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
8425 2008-08-28 Robert Millan <rmh@aybabtu.com>
8427 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
8429 2008-08-28 Robert Millan <rmh@aybabtu.com>
8431 Change find_grub_drive() syntax so it doesn't prevent it from
8432 detecting NULL names as errors.
8434 * util/biosdisk.c (find_grub_drive): Move free slot search code
8436 (find_free_slot): ... to here.
8437 (read_device_map): Use find_free_slot() to search for free slots.
8439 2008-08-27 Marco Gerards <marco@gnu.org>
8441 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
8442 (scsi_mod_SOURCES): New variable.
8443 (scsi_mod_CFLAGS): Likewise
8444 (scsi_mod_LDFLAGS): Likewise.
8446 * disk/scsi.c: New file.
8448 * include/grub/scsi.h: Likewise.
8450 * include/grub/scsicmd.h: Likewise.
8452 * disk/ata.c: Include <grub/scsi.h>.
8453 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
8455 (grub_ata_iterate): Skip ATAPI devices.
8456 (grub_ata_open): Only handle ATAPI devices.
8457 (struct grub_atapi_read): Removed.
8458 (grub_atapi_readsector): Likewise.
8459 (grub_ata_read): No longer handle ATAPI devices.
8460 (grub_ata_write): Likewise.
8461 (grub_atapi_iterate): New function.
8462 (grub_atapi_read): Likewise.
8463 (grub_atapi_write): Likewise.
8464 (grub_atapi_open): Likewise.
8465 (grub_atapi_close): Likewise.
8466 (grub_atapi_dev): New variable.
8467 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
8468 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
8470 * include/grub/disk.h (enum grub_disk_dev_id): Add
8471 `GRUB_DISK_DEVICE_SCSI_ID'.
8473 2008-08-26 Robert Millan <rmh@aybabtu.com>
8475 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
8476 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
8479 2008-08-23 Bean <bean123ch@gmail.com>
8481 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
8482 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
8483 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
8484 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
8486 (raid5rec_mod_SOURCES): New macro.
8487 (raid5rec_mod_CFLAGS): Likewise.
8488 (raid5rec_mod_LDFLAGS): Likewise.
8489 (raid6rec_mod_SOURCES): Likewise.
8490 (raid6rec_mod_CFLAGS): Likewise.
8491 (raid6rec_mod_LDFLAGS): Likewise.
8492 (mdraid_mod_SOURCES): Likewise.
8493 (mdraid_mod_CFLAGS): Likewise.
8494 (mdraid_mod_LDFLAGS): Likewise.
8495 (dm_nv_mod_SOURCES): Likewise.
8496 (dm_nv_mod_CFLAGS): Likewise.
8497 (dm_nv_mod_LDFLAGS): Likewise.
8499 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
8500 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
8501 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
8503 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
8504 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
8506 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8508 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
8510 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8512 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8514 * disk/raid5_recover.c: New file.
8516 * disk/raid6_recover.c: Likewise.
8518 * disk/mdraid_linux.c: Likewise.
8520 * disk/dmraid_nvidia.c: Likewise.
8522 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
8525 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
8526 calculate the size of raid device.
8527 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
8528 different layout of raid5.
8529 (grub_raid_scan_device): Remove code specific to mdraid.
8530 (grub_raid_list): New variable.
8531 (free_array): New function.
8532 (grub_raid_register): Likewise.
8533 (grub_raid_unregister): Likewise.
8534 (grub_raid_rescan): Likewise.
8535 (GRUB_MOD_INIT): Don't iterate device here.
8536 (GRUB_MOD_FINI): Use free_array to release resource.
8538 * include/grub/raid.h: Remove macro and structure specific to mdraid.
8539 (grub_raid5_recover_func_t): New function variable type.
8540 (grub_raid6_recover_func_t): Likewise.
8541 (grub_raid5_recover_func): New variable.
8542 (grub_raid6_recover_func): Likewise.
8543 (grub_raid_register): New function.
8544 (grub_raid_unregister): Likewise.
8545 (grub_raid_rescan): Likewise.
8546 (grub_raid_block_xor): Likewise.
8548 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
8549 (CMD_CRC): New macro.
8551 (read_file): Handle device as well as file.
8552 (cmd_crc): New function.
8553 (fstest): Handle multiple disks.
8554 (options): Remove part, raw and long, add root and diskcount.
8555 (usage): Add crc, remove -p, -r, -l, add -r and -c.
8556 (main): Find the first non option entry and ignore subsequent options,
8557 add handling for the new options, support multiple disks.
8559 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
8561 2008-08-23 Bean <bean123ch@gmail.com>
8563 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
8565 * genfslist.sh: Ignore kernel.mod.
8567 * genpartmaplist.sh: Likewise.
8569 2008-08-23 Robert Millan <rmh@aybabtu.com>
8571 * util/getroot.c (find_root_device): Skip anything that starts with
8572 a dot, not just directories. This avoids things like /dev/.tmp.md0.
8574 2008-08-22 Felix Zielcke <fzielcke@z-51.de>
8576 * util/update-grub.in (GRUB_GFXMODE): Export variable.
8577 * util/grub.d/00_header.in: Allow the administrator to change default
8578 gfxmode via ${GRUB_GFXMODE}.
8580 2008-08-21 Felix Zielcke <fzielcke@z-51.de>
8582 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
8584 2008-08-21 Robert Millan <rmh@aybabtu.com>
8586 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
8588 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
8589 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
8591 2008-08-20 Carles Pina i Estany <carles@pina.cat>
8593 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
8594 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
8596 2008-08-19 Robert Millan <rmh@aybabtu.com>
8598 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
8599 (struct grub_virtual_screen): Remove `cursor_color'.
8600 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
8602 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
8604 2008-08-18 Robert Millan <rmh@aybabtu.com>
8606 Unify (identical) linux_normal.c files.
8607 * loader/i386/efi/linux_normal.c: Move from here ...
8608 * loader/linux_normal.c: ... to here. Update all users.
8609 * loader/i386/pc/linux_normal.c: Delete. Update all users.
8610 * loader/i386/ieee1275/linux_normal.c: Likewise.
8612 2008-08-18 Robert Millan <rmh@aybabtu.com>
8614 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
8615 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
8616 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
8617 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
8618 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
8620 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
8621 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
8622 (GRUB_LINUX_CL_END_OFFSET): ... to here.
8623 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
8624 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
8625 (GRUB_EFI_CL_END_OFFSET): Rename to ...
8626 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
8627 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
8628 Initialize `params->video_cursor_x' and `params->video_cursor_y'
8629 portably using grub_getxy().
8630 Replace `-EFI' with `-bzImage' in boot message.
8632 2008-08-17 Robert Millan <rmh@aybabtu.com>
8634 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
8636 2008-08-17 Robert Millan <rmh@aybabtu.com>
8638 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
8640 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
8641 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
8642 (grub_machine_mmap_iterate): New function declaration.
8643 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
8645 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
8648 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
8649 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
8650 Move e820 parsing from here ...
8651 * kern/i386/pc/mmap.c: New file.
8652 (grub_machine_mmap_iterate): ... to here.
8654 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
8655 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
8656 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
8657 (grub_available_iterate): Redeclare to return `void', and redeclare
8658 its hook to use grub_uint64_t as addr and size parameters, and rename
8660 (grub_machine_mmap_iterate): ... this. Update all users.
8662 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
8663 to make it more readable. Rename to ...
8664 (grub_machine_mmap_iterate): ... this.
8666 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
8667 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
8668 (grub_multiboot): Allocate an extra region after the payload, and fill
8669 it with a Multiboot memory map. Adjust a.out loader to calculate size
8670 with the extra space.
8671 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
8672 with the extra space.
8674 2008-08-17 Carles Pina i Estany <carles@pina.cat>
8676 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
8678 2008-08-17 Felix Zielcke <fzielcke@z-51.de>
8680 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
8681 mdate-sh to the list `find' searches for.
8682 * DISTLIST: Regenerated.
8684 2008-08-16 Felix Zielcke <fzielcke@z-51.de>
8686 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
8687 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
8688 genmoddep.awk, gensymlist.sh.in.
8689 (DISTDIRS): Add bus, docs, hook, lib.
8690 * DISTLIST: Regenerated.
8691 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
8693 2008-08-16 Robert Millan <rmh@aybabtu.com>
8695 * disk/raid.c (grub_raid_init): Handle/report errors set by
8696 grub_device_iterate().
8697 * disk/lvm.c (grub_lvm_init): Likewise.
8699 2008-08-15 Bean <bean123ch@gmail.com>
8701 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8703 (datetime_mod_SOURCES): New macro.
8704 (datetime_mod_CFLAGS): Likewise.
8705 (datetime_mod_LDFLAGS): Likewise.
8706 (date_mod_SOURCES): Likewise.
8707 (date_mod_CFLAGS): Likewise.
8708 (date_mod_LDFLAGS): Likewise.
8709 (datehook_mod_SOURCES): Likewise.
8710 (datehook_mod_CFLAGS): Likewise.
8711 (datehook_mod_LDFLAGS): Likewise.
8713 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8715 (datetime_mod_SOURCES): New macro.
8716 (datetime_mod_CFLAGS): Likewise.
8717 (datetime_mod_LDFLAGS): Likewise.
8718 (date_mod_SOURCES): Likewise.
8719 (date_mod_CFLAGS): Likewise.
8720 (date_mod_LDFLAGS): Likewise.
8721 (datehook_mod_SOURCES): Likewise.
8722 (datehook_mod_CFLAGS): Likewise.
8723 (datehook_mod_LDFLAGS): Likewise.
8725 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8727 (datetime_mod_SOURCES): New macro.
8728 (datetime_mod_CFLAGS): Likewise.
8729 (datetime_mod_LDFLAGS): Likewise.
8730 (date_mod_SOURCES): Likewise.
8731 (date_mod_CFLAGS): Likewise.
8732 (date_mod_LDFLAGS): Likewise.
8733 (datehook_mod_SOURCES): Likewise.
8734 (datehook_mod_CFLAGS): Likewise.
8735 (datehook_mod_LDFLAGS): Likewise.
8737 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8739 (datetime_mod_SOURCES): New macro.
8740 (datetime_mod_CFLAGS): Likewise.
8741 (datetime_mod_LDFLAGS): Likewise.
8742 (date_mod_SOURCES): Likewise.
8743 (date_mod_CFLAGS): Likewise.
8744 (date_mod_LDFLAGS): Likewise.
8745 (datehook_mod_SOURCES): Likewise.
8746 (datehook_mod_CFLAGS): Likewise.
8747 (datehook_mod_LDFLAGS): Likewise.
8749 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8751 (datetime_mod_SOURCES): New macro.
8752 (datetime_mod_CFLAGS): Likewise.
8753 (datetime_mod_LDFLAGS): Likewise.
8754 (date_mod_SOURCES): Likewise.
8755 (date_mod_CFLAGS): Likewise.
8756 (date_mod_LDFLAGS): Likewise.
8757 (datehook_mod_SOURCES): Likewise.
8758 (datehook_mod_CFLAGS): Likewise.
8759 (datehook_mod_LDFLAGS): Likewise.
8761 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
8763 * commands/date.c: New file.
8765 * hook/datehook.c: Likewise.
8767 * include/grub/lib/datetime.h: Likewise.
8769 * include/grub/i386/cmos.h: Likewise.
8771 * lib/datetime.c: Likewise.
8773 * lib/i386/datetime.c: Likewise.
8775 * lib/efi/datetime.c: Likewise.
8777 2008-08-14 Robert Millan <rmh@aybabtu.com>
8779 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
8780 (grub_mkelfimage_SOURCES): New variable.
8781 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
8783 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
8784 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
8785 * conf/powerpc-ieee1275.rmk: Likewise.
8786 * conf/i386-ieee1275.rmk: Likewise.
8788 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
8789 * kern/i386/coreboot/init.c: Likewise.
8791 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
8792 with `<grub/cpu/kernel.h>'.
8793 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
8795 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
8796 * kern/i386/coreboot/startup.S: Likewise.
8798 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
8799 (GRUB_MOD_GAP): Remove.
8800 * include/grub/powerpc/kernel.h: New file.
8801 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
8802 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
8803 * include/grub/i386/kernel.h: New file.
8804 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
8805 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
8806 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
8808 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
8810 Use --directory when invoking grub_mkimage.
8812 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
8813 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
8814 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
8815 and GRUB_KERNEL_CPU_PREFIX.
8817 2008-08-14 Felix Zielcke <fzielcke@z-51.de>
8819 * include/grub/err.h (grub_err_printf): New function prototype.
8820 * util/misc.c (grub_err_printf): New function.
8821 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
8823 * kern/err.c (grub_print_error): Use grub_err_printf.
8825 2008-08-13 Robert Millan <rmh@aybabtu.com>
8827 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
8829 2008-08-13 Robert Millan <rmh@aybabtu.com>
8831 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
8834 2008-08-12 Robert Millan <rmh@aybabtu.com>
8836 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
8837 of the relocation code from here ...
8838 (grub_multiboot): ... to here.
8839 (forward_relocator, backward_relocator): Move from here ...
8840 * kern/i386/loader.S (grub_multiboot_forward_relocator)
8841 (grub_multiboot_backward_relocator): ... to here.
8842 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
8843 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
8844 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
8845 (grub_multiboot_forward_relocator_end)
8846 (grub_multiboot_backward_relocator)
8847 (grub_multiboot_backward_relocator_end): New variables.
8849 2008-08-12 Bean <bean123ch@gmail.com>
8851 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
8853 2008-08-11 Robert Millan <rmh@aybabtu.com>
8855 * kern/i386/linuxbios/startup.S: Move from here ...
8856 * kern/i386/coreboot/startup.S: ... to here.
8858 * kern/i386/linuxbios/init.c: Move from here ...
8859 * kern/i386/coreboot/init.c: ... to here.
8861 * kern/i386/linuxbios/table.c: Move from here ...
8862 * kern/i386/coreboot/mmap.c: ... to here.
8864 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
8866 2008-08-11 Robert Millan <rmh@aybabtu.com>
8868 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
8869 errors. Leave it to the upper layer to handle them.
8871 2008-08-09 Christian Franke <franke@computer.org>
8873 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
8874 * conf/common.rmk: Install `grub-pe2elf' only if requested.
8875 Install `grub.d/10_windows' only on Cygwin.
8876 * configure.ac: Add subst of `target_os'.
8877 Check `target_os' also before setting TARGET_OBJ2ELF.
8878 Add `--enable-grub-pe2elf'.
8880 2008-08-08 Robert Millan <rmh@aybabtu.com>
8882 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
8883 (grub_last_time): Change type to grub_uint64_t.
8884 (grub_disk_open): Migrate code from to using grub_get_time_ms().
8885 (grub_disk_close): Likewise.
8887 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
8888 (run_menu): Migrate code from to using grub_get_time_ms().
8890 * util/misc.c (grub_get_time_ms): New function.
8892 2008-08-08 Marco Gerards <marco@gnu.org>
8894 * disk/ata.c (grub_ata_regget): Change return type to
8896 (grub_ata_regget2): Likewise.
8897 (grub_ata_wait_status): New function.
8898 (grub_ata_wait_busy): Removed function, updated all users to use
8899 `grub_ata_wait_status'.
8900 (grub_ata_wait_drq): Likewise.
8901 (grub_ata_cmd): New function.
8902 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
8904 (grub_ata_pio_write): Add error handling.
8905 (grub_atapi_identify): Likewise.
8906 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
8908 (grub_ata_identify): Use `grub_ata_cmd' and improve error
8909 handling. Actually use the detected registers. Reorder the
8910 detection logic such that it is easier to read.
8911 (grub_ata_pciinit): Do not assign the same ID to each controller.
8912 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
8914 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
8916 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
8918 2008-08-08 Marco Gerards <marco@gnu.org>
8922 2008-08-07 Bean <bean123ch@gmail.com>
8924 * include/grub/x86_64/pci.h: New file.
8926 2008-08-07 Christian Franke <franke@computer.org>
8928 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
8929 (TIMER2_GATE): Likewise.
8930 (grub_pit_wait): Add enable/disable of the timer2 gate
8931 bit of port 0x61. This fixes a possible infinite loop.
8933 2008-08-07 Bean <bean123ch@gmail.com>
8935 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
8936 kern/i386/tsc.c and kern/i386/pit.c.
8938 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
8941 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
8944 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
8946 2008-08-07 Bean <bean123ch@gmail.com>
8948 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
8950 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
8952 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
8953 multiple inclusion. Add #include <grub/types.h>.
8955 2008-08-06 Christian Franke <franke@computer.org>
8957 * conf/common.rmk: Build and install `10_windows'.
8958 * util/grub.d/10_windows.in: New script.
8960 2008-08-06 Pavel Roskin <proski@gnu.org>
8962 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
8964 2008-08-06 Robert Millan <rmh@aybabtu.com>
8966 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
8967 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
8969 2008-08-06 Bean <bean123ch@gmail.com>
8971 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
8972 (grub_pxefs_fs_int): Remove dummy definition.
8973 (grub_pxefs_open): Use data->block_size to store the current block
8975 (grub_pxefs_read): Use block size stored in data->block_size. As the
8976 value of grub_pxe_blksize can be changed after the file is opened.
8978 2008-08-06 Bean <bean123ch@gmail.com>
8980 * fs/i386/pc/pxe.c (curr_file): new variable.
8981 (grub_pxefs_open): Simply the handling of pxe file system. Don't
8982 require the dummy internal file system anymore.
8983 (grub_pxefs_read): Removed.
8984 (grub_pxefs_close): Likewise.
8985 (grub_pxefs_fs_int): Likewise.
8986 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
8987 connection when we switch file.
8988 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
8990 2008-08-06 Robert Millan <rmh@aybabtu.com>
8992 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
8994 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
8995 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
8997 * kern/i386/halt.c: New file.
8998 * kern/i386/reboot.c: Likewise.
8999 * include/grub/i386/reboot.h: Likewise.
9000 * include/grub/i386/halt.h: Likewise.
9002 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
9003 Include `<grub/cpu/halt.h>'.
9004 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
9005 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
9007 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
9008 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
9009 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
9010 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
9011 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
9012 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
9014 * include/grub/i386/at_keyboard.h: ... to here.
9016 2008-08-05 Robert Millan <rmh@aybabtu.com>
9018 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
9019 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
9020 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
9021 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
9022 `kern/generic/millisleep.c'.
9024 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
9025 instead of grub_get_rtc().
9026 (grub_tsc_init): Initialize `tsc_boot_time'.
9028 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
9029 (grub_machine_init): Use grub_tsc_init() rather than
9030 installing an RTC-based handler via grub_install_get_time_ms().
9032 * kern/i386/pit.c: New file.
9033 * include/grub/i386/pit.h: Likewise.
9035 2008-08-05 Bean <bean123ch@gmail.com>
9037 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
9039 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
9040 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
9041 (pxe_mod_SOURCES): New macro.
9042 (pxe_mod_CFLAGS): Likewise.
9043 (pxe_mod_LDFLAGS): Likewise.
9044 (pxecmd_mod_SOURCES): Likewise.
9045 (pxecmd_mod_CFLAGS): Likewise.
9046 (pxecmd_mod_LDFLAGS): Likewise.
9048 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
9049 (grub_pxe_call): Likewise.
9051 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
9053 * commands/i386/pc/pxecmd.c: New file.
9055 * fs/i386/pc/pxe.c: Likewise.
9057 * include/grub/i386/pc/pxe.h: Likewise.
9059 2008-08-05 Bean <bean123ch@gmail.com>
9061 * util/console.c (grub_console_cur_color): New variable.
9062 (grub_console_standard_color): Likewise.
9063 (grub_console_normal_color): Likewise.
9064 (grub_console_highlight_color): Likewise.
9065 (color_map): Likewise.
9066 (use_color): Likewise.
9067 (NUM_COLORS): New macro.
9068 (grub_ncurses_setcolorstate): Handle color properly.
9069 (grub_ncurses_setcolor): Don't change color here, just remember the
9070 settings, color will be set in grub_ncurses_setcolorstate.
9071 (grub_ncurses_getcolor): New function.
9072 (grub_ncurses_init): Initialize color pairs.
9073 (grub_ncurses_term): New member grub_ncurses_getcolor.
9075 2008-08-05 Colin D Bennett <colin@gibibit.com>
9077 High resolution timer support. Implemented for x86 CPUs using TSC.
9078 Extracted generic grub_millisleep() so it's linked in only as needed.
9079 This requires a Pentium compatible CPU; if the RDTSC instruction is
9080 not supported, then it falls back on the generic grub_get_time_ms()
9081 implementation that uses the machine's RTC.
9083 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
9084 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
9085 `kern/generic/millisleep.c'.
9087 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
9088 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
9090 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
9091 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
9093 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
9095 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
9096 `kern/generic/millisleep.c'.
9098 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
9100 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
9102 * kern/generic/rtc_get_time_ms.c: New file.
9104 * kern/generic/millisleep.c: New file.
9106 * kern/misc.c: Don't include
9107 <kern/time.h> anymore.
9108 (grub_millisleep_generic): Removed.
9110 * commands/sleep.c (grub_interruptible_millisleep): Uses
9111 grub_get_time_ms() instead of grub_get_rtc().
9113 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
9115 (grub_cpu_is_cpuid_supported): New inline function.
9116 (grub_cpu_is_tsc_supported): New inline function.
9117 (grub_tsc_init): New function prototype.
9118 (grub_tsc_get_time_ms): New function prototype.
9120 * kern/i386/tsc.c (grub_get_time_ms): New file.
9122 * include/grub/time.h: Include <grub/types.h.
9123 (grub_millisleep_generic): Removed.
9124 (grub_get_time_ms): New prototype.
9125 (grub_install_get_time_ms): New prototype.
9126 (grub_rtc_get_time_ms): New prototype.
9128 * kern/time.c (grub_get_time_ms): New function.
9129 (grub_install_get_time_ms): New function.
9131 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
9132 <grub/time.h> anymore.
9133 (grub_millisleep): Removed.
9134 (grub_machine_init): Call grub_tsc_init.
9136 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
9137 get_time_ms() implementation.
9139 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
9140 (ieee1275_get_time_ms): New function.
9141 (grub_machine_init): Install get_time_ms() implementation.
9143 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
9144 (grub_machine_init): Call grub_tsc_init().
9145 (grub_millisleep): Removed.
9147 * kern/ieee1275/init.c (grub_millisleep): Removed.
9148 (grub_machine_init): Install ieee1275_get_time_ms()
9150 (ieee1275_get_time_ms): New function.
9151 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
9154 2008-08-05 Marco Gerards <marco@gnu.org>
9156 * disk/ata.c: Include <grub/pci.h>.
9157 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
9158 (grub_ata_initialize): Rewritten.
9159 (grub_ata_device_initialize): New function.
9161 2008-08-04 Pavel Roskin <proski@gnu.org>
9163 * kern/main.c: Include grub/mm.h.
9165 2008-08-04 Robert Millan <rmh@aybabtu.com>
9167 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
9168 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
9169 corruption problem).
9171 2008-08-04 Robert Millan <rmh@aybabtu.com>
9173 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
9174 warnings introduced in my last commit.
9176 2008-08-03 Robert Millan <rmh@aybabtu.com>
9178 Make PCI available on all i386 architectures.
9180 * include/grub/i386/pc/pci.h: Move from here ...
9181 * include/grub/i386/pci.h: ... to here.
9183 * include/grub/i386/pc/pci.h: Remove.
9184 * include/grub/i386/efi/pci.h: Remove.
9185 * include/grub/x86_64/efi/pci.h: Remove.
9187 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
9190 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
9191 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
9192 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
9194 * conf/i386-ieee1275.rmk: Likewise.
9196 2008-08-03 Robert Millan <rmh@aybabtu.com>
9198 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
9199 (grub_console_setcursor): Make it possible to set cursor off.
9201 2008-08-03 Robert Millan <rmh@aybabtu.com>
9203 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
9204 of modules instead of assuming which platform provides what.
9205 * util/update-grub.in: Likewise.
9207 2008-08-03 Robert Millan <rmh@aybabtu.com>
9209 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
9210 instead of `grub_install_dos_part' to determine whether a drive needs
9211 to be prepended to prefix (`grub_install_dos_part' is not reliable,
9212 because it can be overridden when loading GRUB via Multiboot).
9214 2008-08-02 Robert Millan <rmh@aybabtu.com>
9216 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
9218 2008-08-02 Robert Millan <rmh@aybabtu.com>
9220 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
9221 of informational grub_dprintf() calls.
9223 2008-08-02 Robert Millan <rmh@aybabtu.com>
9225 * disk/memdisk.c (memdisk_size): Don't initialize.
9226 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
9228 * include/grub/i386/pc/kernel.h
9229 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
9230 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
9231 (grub_memdisk_image_size, grub_arch_memdisk_addr)
9232 (grub_arch_memdisk_size): Remove.
9234 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
9235 field (was only used to transfer a constant). Add `type' field to
9236 support multiple module types.
9237 (grub_module_iterate): New function.
9239 * kern/device.c (grub_device_open): Do not hide error messages
9240 when grub_disk_open() fails. Use grub_print_error() instead.
9242 * kern/i386/pc/init.c (grub_arch_modules_addr)
9243 (grub_arch_memdisk_size): Remove functions.
9244 (grub_arch_modules_addr): Return the module address in high memory
9245 (now that it isn't copied anymore).
9247 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
9248 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
9249 decompression routine (grub_total_module_size already includes that
9250 now). Don't copy modules back to low memory.
9252 * kern/main.c: Include `<grub/mm.h>'.
9253 (grub_load_modules): Split out (and use) ...
9254 (grub_module_iterate): ... this function, which iterates through
9255 module objects and runs a hook.
9256 Comment out grub_mm_init_region() call, as it would cause non-ELF
9257 modules to be overwritten.
9259 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
9260 the memdisk image in its own region, make it part of the module list.
9261 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
9262 (main): Parse --memdisk|-m option, and pass user-provided path as
9263 parameter to generate_image().
9264 (add_segments): Pass `memdisk_path' down to load_modules().
9265 (load_modules): Embed memdisk image in module section when requested.
9266 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
9267 `header.type' instead of `header.offset'.
9269 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
9270 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
9271 (memdisk_mod_LDFLAGS): New variables.
9272 * conf/i386-coreboot.rmk: Likewise.
9273 * conf/i386-ieee1275.rmk: Likewise.
9275 2008-08-02 Robert Millan <rmh@aybabtu.com>
9277 * loader/i386/pc/multiboot.c (playground, forward_relocator)
9278 (backward_relocator): New variables. Used to allocate and relocate
9279 the payload, respectively.
9280 (grub_multiboot_load_elf32): Load into heap instead of requested
9281 address, install the appropriate relocator code in each bound of
9282 the payload, and set the entry point such that
9283 grub_multiboot_real_boot() will jump to one of them.
9285 * kern/i386/loader.S (grub_multiboot_payload_size)
9286 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
9287 (grub_multiboot_payload_entry_offset): New variables.
9288 (grub_multiboot_real_boot): Set cpu context to what the relocator
9289 expects, and jump to the relocator instead of the payload.
9291 * include/grub/i386/loader.h (grub_multiboot_payload_size)
9292 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
9293 (grub_multiboot_payload_entry_offset): Export.
9295 2008-08-01 Bean <bean123ch@gmail.com>
9297 * normal/menu_entry.c (editor_getline): Don't return the original
9298 string as result, as it will be released by lexer once it has done
9301 2008-08-01 Robert Millan <rmh@aybabtu.com>
9303 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
9304 within menuentries, not before them.
9305 util/grub.d/10_hurd.in: Likewise.
9307 2008-08-01 Bean <bean123ch@gmail.com>
9309 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
9310 (bufio_mod_SOURCES): New macro.
9311 (bufio_mod_CFLAGS): Likewise.
9312 (bufio_mod_LDFLAGS): Likewise.
9314 * include/grub/bufio.h: New file.
9316 * io/bufio.c: Likewise.
9318 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
9319 (grub_video_reader_png): Use grub_buffile_open to open file.
9321 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
9322 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
9324 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
9325 (grub_video_reader_tga): Use grub_buffile_open to open file.
9327 * font/manager.c: Include <grub/bufio.h>.
9328 (add_font): Use grub_buffile_open to open file.
9330 2008-07-31 Robert Millan <rmh@aybabtu.com>
9332 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
9333 ELF segments, use a macro for arbitrarily accessing any of them instead
9334 of preparing a pointer that allows access to one at a time.
9335 (grub_multiboot_load_elf64): Likewise.
9337 2008-07-31 Bean <bean123ch@gmail.com>
9339 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
9340 GRUB_KERNEL_MACHINE_DATA_END.
9342 2008-07-30 Robert Millan <rmh@aybabtu.com>
9344 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
9345 Increase from 0x50 to 0x60.
9346 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
9347 use UUIDs to identify the root drive for them. If that's not
9349 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
9350 check, for cross-disk installs.
9352 2008-07-30 Robert Millan <rmh@aybabtu.com>
9354 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
9355 is non-empty, use it to set the `prefix' environment variable instead
9356 of the usual approach.
9357 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
9358 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
9359 environment variable instead of dummy make_install_device().
9361 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
9362 (start): Insert a data section, with `grub_prefix' variable.
9363 * kern/i386/linuxbios/startup.S: Likewise.
9365 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
9366 New variable reference.
9367 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
9368 New macro. Defines offset of `grub_prefix' within startup.S (relative
9370 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
9371 section within startup.S (relative to `start').
9372 * include/grub/i386/coreboot/kernel.h: Likewise.
9374 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
9375 Overwrite grub_prefix with its contents, at the beginning of the
9377 (main): Understand -p|--prefix.
9379 2008-07-30 Robert Millan <rmh@aybabtu.com>
9381 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
9383 2008-07-30 Robert Millan <rmh@aybabtu.com>
9385 * term/i386/pc/vga_text.c (grub_console_cls): Use
9386 grub_console_gotoxy() to go back to beginning of the screen.
9387 Found by Patrick Georgi <patrick.georgi@coresystems.de>
9389 2008-07-29 Christian Franke <franke@computer.org>
9391 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
9392 Add conversion of emulated mount points on Cygwin.
9394 2008-07-29 Christian Franke <franke@computer.org>
9396 * util/update-grub.in: Add a check for admin
9398 Remove old `grub.cfg.new' before creation.
9399 Add `-f' to `mv' to handle the different filesystem
9400 semantics of Windows.
9402 2008-07-29 Bean <bean123ch@gmail.com>
9404 * normal/main.c (get_line): Fix buffer overflow bug.
9406 2008-07-28 Robert Millan <rmh@aybabtu.com>
9408 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
9409 (struct grub_apple_header): New struct. Describes the layout of
9411 (apple_partition_map_iterate): Check the header magic as well as the
9412 partition magic (which was already being checked).
9414 2008-07-28 Pavel Roskin <proski@gnu.org>
9416 * genmk.rb: Add a warning to the beginning of the output that
9417 it's a generated file and should not be edited.
9419 2008-07-28 Robert Millan <rmh@aybabtu.com>
9421 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
9422 with the same number are found, just use issue a warning with
9423 grub_dprintf(), as this error has been reported to be non-fatal.
9425 2008-07-27 Robert Millan <rmh@aybabtu.com>
9427 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
9430 2008-07-27 Bean <bean123ch@gmail.com>
9432 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
9433 (grub_fat_find_dir): Ignore case when comparing filename.
9435 2008-07-27 Bean <bean123ch@gmail.com>
9437 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
9438 smallino, as it's more descriptive, and i8count can be confused with
9439 the other field count.
9440 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
9443 2008-07-27 Bean <bean123ch@gmail.com>
9445 * commands/crc.c: New file.
9447 * lib/crc.c: Likewise.
9449 * include/grub/lib/crc.h: Likewise.
9451 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
9453 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
9454 (hexdump): Move this function to ...
9456 * lib/hexdump.c: ... here.
9458 * include/grub/hexdump.h: Renamed to ...
9460 * include/grub/lib/hexdump.h: ... this.
9462 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
9464 * util/grub-editenv.c: Likewise.
9466 * include/envblk.h: Renamed to ...
9468 * include/lib/envblk.h: ... this.
9470 * util/envblk.c: Renamed to ...
9472 * lib/envblk.c: ... this.
9474 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
9476 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
9477 (pkglib_MODULES): Add crc.mod.
9478 (hexdump_mod_SOURCES): Add lib/hexdump.c.
9479 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
9480 (crc_mod_SOURCES): New macro.
9481 (crc_mod_CFLAGS): Likewise.
9482 (crc_mod_LDFLAGS): Likewise.
9484 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
9486 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
9488 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
9490 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9492 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
9494 2008-07-27 Felix Zielcke <fzielcke@z-51.de>
9496 * commands/help.c: Include <grub/term.h>.
9497 (TERM_WIDTH): Removed. Updated all users.
9499 2008-07-27 Pavel Roskin <proski@gnu.org>
9501 * util/getroot.c (find_root_device): Rephrase a comment to avoid
9502 spurious warnings about a comment within a comment.
9504 2008-07-25 Robert Millan <rmh@aybabtu.com>
9506 * util/getroot.c (find_root_device): Skip devices that match
9507 /dev/dm-[0-9]. This lets the real device be found for any type of
9508 abstraction (LVM, EVMS, RAID..).
9509 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
9510 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
9511 device is found first, find_root_device() will now skip it.
9513 2008-07-24 Pavel Roskin <proski@gnu.org>
9515 * include/grub/types.h: Use __builtin_bswap32() and
9516 __builtin_bswap64() with gcc 4.3 and newer.
9518 2008-07-24 Christian Franke <franke@computer.org>
9520 * util/i386/pc/grub-install.in: If `--debug' is specified,
9521 pass `--verbose' to grub-setup.
9522 Abort script if make_system_path_relative_to_its_root() fails.
9524 2008-07-24 Bean <bean123ch@gmail.com>
9526 * configure.ac: Fixed a bug caused by the previous cygwin patch,
9527 variable `target_platform' should be `platform'.
9529 2008-07-24 Bean <bean123ch@gmail.com>
9531 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
9532 (grub_png_init_fixed_block): New function.
9533 (grub_png_decode_image_data): Handle fixed huffman code compression.
9535 2008-07-24 Bean <bean123ch@gmail.com>
9537 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
9538 (grub_pe2elf_SOURCES): New macro.
9539 (CLEANFILES): Add grub-pe2elf.
9541 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
9542 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
9543 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
9544 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
9545 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
9546 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
9547 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
9548 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
9549 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
9550 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
9551 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
9552 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
9553 (GRUB_PE32_DT_FUNCTION): Likewise.
9554 (GRUB_PE32_REL_I386_DIR32): Likewise.
9555 (GRUB_PE32_REL_I386_REL32): Likewise.
9556 (grub_pe32_symbol): New structure.
9557 (grub_pe32_reloc): Likewise.
9559 * util/grub-pe2elf.c: New file.
9561 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
9562 start symbol in non pc platform.
9564 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
9566 The following patches are from Christian Franke.
9568 * include/grub/dl.h: Remove .previous, gas supports this only
9571 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
9572 Remove .type, gas supports this only for ELF format.
9574 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
9575 nullbytes in symbol table. This fixes an infinite loop if table is
9578 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
9579 TARGET_IMG_LDFLAGS and EXEEXT.
9581 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
9582 TARGET_IMG_LDFLAGS_AC.
9583 (grub_CHECK_STACK_ARG_PROBE): New function.
9585 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
9587 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
9589 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
9590 to set TARGET_IMG_LD* accordingly.
9591 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
9592 Add call to grub_CHECK_STACK_ARG_PROBE.
9593 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
9595 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
9597 * genmk.rb: Add EXEEXT to CLEANFILES.
9599 2008-07-23 Robert Millan <rmh@aybabtu.com>
9601 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
9602 define the codes for arrows and lines used for the menu).
9603 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
9606 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
9607 fonts, because the latter are too slow.
9609 2008-07-21 Bean <bean123ch@gmail.com>
9611 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
9612 a20. Run keyboard test last, as it will cause macbook to halt.
9614 2008-07-18 Pavel Roskin <proski@gnu.org>
9616 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
9617 load foreign architecture modules correctly anyway. Keep
9618 support for loading host architecture modules, whether we
9619 compile them or not.
9621 2008-07-17 Pavel Roskin <proski@gnu.org>
9623 * configure.ac: Use -m32 or -m64 regardless of whether we had to
9624 change target_cpu. The compiler default can mismatch target_cpu
9627 * disk/efi/efidisk.c: Fix format warnings on x86_64.
9628 * kern/efi/efi.c: Likewise.
9630 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
9631 target compiler is functional.
9632 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
9635 * configure.ac: Default to efi platform for x86_64-apple. Allow
9636 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
9637 adjustments from the rest, only do them if target is not
9638 explicitly given. Merge other adjustments with the final sanity
9639 check. Remove an extraneous check for supported CPU. Be
9640 specific which CPU and which platform is not supported.
9642 * configure.ac: Default to pc platform for x86_64.
9644 2008-07-17 Robert Millan <rmh@aybabtu.com>
9646 Partial LinuxBIOS -> Coreboot rename.
9648 * conf/i386-linuxbios.rmk: Renamed to ...
9649 * conf/i386-coreboot.rmk: ... this.
9650 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
9651 * configure.ac: Accept "coreboot" as input platform (but maintain
9652 compatibility with "linuxbios").
9653 * include/grub/i386/linuxbios: Renamed to ...
9654 * include/grub/i386/coreboot: ... this.
9656 2008-07-17 Bean <bean123ch@gmail.com>
9658 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
9659 (appleldr_mod_SOURCE): New variable.
9660 (appleldr_mod_CFLAGS): Likewise.
9661 (appleldr_mod_LDFLAGS): Likewise.
9662 (pci_mod_SOURCES): Likewise.
9663 (pci_mod_CFLAGS): Likewise.
9664 (pci_mod_LDFLAGS): Likewise.
9665 (lspci_mod_SOURCES): Likewise.
9666 (lspci_mod_CFLAGS): Likewise.
9667 (lspci_mod_LDFLAGS): Likewise.
9669 * conf/x86_64-efi.rmk: New file.
9671 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
9673 (grub_efidisk_write): Likewise.
9675 * include/efi/api.h (efi_call_0): New macro.
9676 (efi_call_1): Likewise.
9677 (efi_call_2): Likewise.
9678 (efi_call_3): Likewise.
9679 (efi_call_4): Likewise.
9680 (efi_call_5): Likewise.
9681 (efi_call_6): Likewise.
9683 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
9684 grub_rescue_cmd_chainloader.
9686 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
9687 (grub_pe32_optional_header): Change some fields based on i386 or
9689 (GRUB_PE32_PE32_MAGIC): Likewise.
9691 * include/grub/efi/uga_draw.h: New file.
9693 * include/grub/elf.h (STN_ABS): New constant.
9694 (R_X86_64_NONE): Relocation constant for x86_64.
9695 (R_X86_64_64): Likewise.
9696 (R_X86_64_PC32): Likewise.
9697 (R_X86_64_GOT32): Likewise.
9698 (R_X86_64_PLT32): Likewise.
9699 (R_X86_64_COPY): Likewise.
9700 (R_X86_64_GLOB_DAT): Likewise.
9701 (R_X86_64_JUMP_SLOT): Likewise.
9702 (R_X86_64_RELATIVE): Likewise.
9703 (R_X86_64_GOTPCREL): Likewise.
9704 (R_X86_64_32): Likewise.
9705 (R_X86_64_32S): Likewise.
9706 (R_X86_64_16): Likewise.
9707 (R_X86_64_PC16): Likewise.
9708 (R_X86_64_8): Likewise.
9709 (R_X86_64_PC8): Likewise.
9711 * include/grub/i386/efi/pci.h: New file.
9713 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
9714 Change it value based on platform.
9715 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
9716 (GRUB_E820_RAM): Likewise.
9717 (GRUB_E820_RESERVED): Likewise.
9718 (GRUB_E820_ACPI): Likewise.
9719 (GRUB_E820_NVS): Likewise.
9720 (GRUB_E820_EXEC_CODE): Likewise.
9721 (GRUB_E820_MAX_ENTRY): Likewise.
9722 (grub_e820_mmap): New structure.
9723 (linux_kernel_header): Change the efi field according to different
9724 kernel version, also field from linux_kernel_header.
9726 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
9728 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
9729 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
9730 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
9731 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
9732 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
9733 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
9734 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
9735 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
9736 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
9737 (GRUB_PCI_ADDR_IO_MASK): Likewise.
9739 * include/grub/x86_64/efi/kernel.h: New file.
9741 * include/grub/x86_64/efi/loader.h: Likewise.
9743 * include/grub/x86_64/efi/machine.h: Likewise.
9745 * include/grub/x86_64/efi/pci.h: Likewise.
9747 * include/grub/x86_64/efi/time.h: Likewise.
9749 * include/grub/x86_64/linux.h: Likewise.
9751 * include/grub/x86_64/setjmp.h: Likewise.
9753 * include/grub/x86_64/time.h: Likewise.
9755 * include/grub/x86_64/types.h: Likewise.
9757 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
9758 GRUB_TARGET_SIZEOF_VOID_P.
9760 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
9761 (grub_efi_locate_handle): Likewise.
9762 (grub_efi_open_protocol): Likewise.
9763 (grub_efi_set_text_mode): Likewise.
9764 (grub_efi_stall): Likewise.
9765 (grub_exit): Likewise.
9766 (grub_reboot): Likewise.
9767 (grub_halt): Likewise.
9768 (grub_efi_exit_boot_services): Likewise.
9769 (grub_get_rtc): Likewise.
9771 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
9772 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
9773 (grub_efi_allocate_pages): Wrap efi calls.
9774 (grub_efi_free_pages): Wrap efi calls.
9775 (grub_efi_get_memory_map): Wrap efi calls.
9777 * kern/x86_64/dl.c: New file.
9779 * kern/x86_64/efi/callwrap.S: Likewise.
9781 * kern/x86_64/efi/startup.S: Likewise.
9783 * loader/efi/appleloader.c: Likewise.
9785 * loader/efi/chainloader.c (cmdline): New variable.
9786 (grub_chainloader_unload): Wrap efi calls.
9787 (grub_chainloader_boot): Likewise.
9788 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
9791 * loader/efi/chainloader_normal.c (chainloader_command):
9792 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
9795 * loader/i386/efi/linux.c (allocate_pages): Change allocation
9797 (grub_e820_add_region): New function.
9798 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
9800 (grub_find_video_card): New function.
9801 (grub_linux_setup_video): New function.
9802 (grub_rescue_cmd_linux): Probe for video information.
9804 * normal/x86_64/setjmp.S: New file.
9806 * term/efi/console.c (map_char): New function.
9807 (grub_console_putchar): Map unicode char.
9808 (grub_console_checkkey): Wrap efi calls.
9809 (grub_console_getkey): Likewise.
9810 (grub_console_getwh): Likewise.
9811 (grub_console_gotoxy): Likewise.
9812 (grub_console_cls): Likewise.
9813 (grub_console_setcolorstate): Likewise.
9814 (grub_console_setcursor): Likewise.
9816 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
9818 2008-07-16 Pavel Roskin <proski@gnu.org>
9820 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
9823 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
9824 pointer, not an integer. This fixes a warning and prevents
9825 precision loss on 64-bit systems.
9826 (relocate_addresses): Remove unneeded cast.
9828 2008-07-15 Pavel Roskin <proski@gnu.org>
9830 * kern/i386/ieee1275/init.c: Include grub/cache.h.
9832 * term/ieee1275/ofconsole.c: Disable code unused on i386.
9834 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
9835 Fix comparison between signed and unsigned.
9837 * include/grub/i386/ieee1275/console.h: Declare
9838 grub_console_init() and grub_console_fini().
9840 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
9841 It's empty and unused.
9843 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
9844 beginning to avoid warnings with some compilers.
9846 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
9847 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
9849 2008-07-14 Pavel Roskin <proski@gnu.org>
9851 * kern/env.c (grub_register_variable_hook): Don't copy empty
9852 string, it leaks memory. Pass "" to grub_env_set(), it should
9853 handle constant strings.
9855 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
9856 * commands/cmp.c (grub_cmd_cmp): Likewise.
9857 * kern/dl.c (grub_dl_flush_cache): Likewise.
9858 (grub_dl_load_core): Likewise.
9859 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
9860 (grub_elf64_load_phdrs): Likewise.
9862 2008-07-13 Pavel Roskin <proski@gnu.org>
9864 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
9865 between signed and unsigned.
9866 (LzmaEnc_Finish): Fix warning about an unused parameter.
9868 2008-07-13 Bean <bean123ch@gmail.com>
9870 * Makefile.in (enable_lzo): New rule.
9872 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
9874 * configure.ac (ENABLE_LZO): New option --enable-lzo.
9876 * boot/i386/pc/lnxboot.S: #include <config.h>.
9878 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
9879 its value according to the compression algorithm used, lzo or lzma.
9881 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
9882 compression algorithm according to configure macro.
9884 * kern/i386/pc/startup.S (codestart): Likewise.
9886 * kern/i386/pc/lzma_decode.S: New file.
9888 * include/grub/lib/LzFind.h: Likewise.
9890 * include/grub/lib/LzHash.h: Likewise.
9892 * include/grub/lib/LzmaDec.h: Likewise.
9894 * include/grub/lib/LzmaEnc.h: Likewise.
9896 * include/grub/lib/LzmaTypes.h: Likewise.
9898 * lib/LzFind.c: Likewise.
9900 * lib/LzmaDec.c: Likewise.
9902 * lib/LzmaEnc.c: Likewise.
9904 2008-07-13 Bean <bean123ch@gmail.com>
9906 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
9907 (grub_ext4_extent_header): New structure.
9908 (grub_ext4_extent): Likewise.
9909 (grub_ext4_extent_idx): Likewise.
9910 (grub_ext4_find_leaf): New function.
9911 (grub_ext2_read_block): Handle extents.
9913 2008-07-12 Robert Millan <rmh@aybabtu.com>
9915 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
9917 2008-07-11 Robert Millan <rmh@aybabtu.com>
9919 * util/grub.d/40_custom.in: New file. Example on how to add custom
9920 entries to /etc/grub.d.
9921 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
9922 40_custom (implicitly, by merging all the grub.d rules).
9924 2008-07-11 Pavel Roskin <proski@gnu.org>
9926 * commands/read.c (grub_getline): Fix invalid memory access.
9927 Don't add newline to the variable value.
9929 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
9930 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
9931 (serial_hw_get_port): Check validity of the port number.
9932 (grub_cmd_serial): Check return value of serial_hw_get_port().
9934 2008-07-07 Pavel Roskin <proski@gnu.org>
9936 * boot/i386/pc/diskboot.S (notification_string): Replace
9937 "Loading kernel" with just "loading". This is shorter, less
9938 confusing and saves a few bytes for possible future changes.
9940 2008-07-05 Pavel Roskin <proski@gnu.org>
9942 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
9943 size for ATAPI devices, they are undefined. Output sector
9944 number in decimal form.
9946 * disk/ata.c: Use named constants for status bits.
9948 2008-07-04 Pavel Roskin <proski@gnu.org>
9950 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
9951 grub_addr_t before casting it to the void pointer to fix a
9952 warning. Non-addressable regions are discarded earlier.
9953 (grub_arch_modules_addr): Cast _end to grub_addr_t.
9954 * kern/i386/linuxbios/table.c: Include grub/misc.h.
9955 (check_signature): Don't shadow table_header.
9956 (grub_linuxbios_table_iterate): Cast numeric constants to
9957 grub_linuxbios_table_header_t.
9958 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
9961 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
9964 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
9965 pointer, which can cause warnings. Support 64-bit addresses.
9967 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
9968 of sizeof(long). This fixes PowerPC image generation on x86_64.
9970 2008-07-04 Robert Millan <rmh@aybabtu.com>
9972 This fixes a performance issue when pc & gpt partmap iterators
9973 didn't abort iteration even after our hook found what it was
9974 looking for (often causing expensive probes of non-existent drives).
9976 Some callers relied on previous buggy behaviour, since they would
9977 raise an error when their own hooks caused early abortion of its
9980 * kern/device.c (grub_device_open): Improve error message.
9981 * disk/lvm.c (grub_lvm_open): Likewise.
9982 * disk/raid.c (grub_raid_open): Likewise.
9984 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
9985 when hook requests it, independently of grub_errno.
9986 (pc_partition_map_probe): Do not fail when find_func() caused
9987 early abortion of pc_partition_map_iterate().
9989 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
9990 when hook requests it, independently of grub_errno.
9991 (gpt_partition_map_probe): Do not fail when find_func() caused
9992 early abortion of gpt_partition_map_iterate().
9994 * kern/partition.c (grub_partition_iterate): Abort parent iteration
9995 when hook requests it, independently of grub_errno. Do not fail when
9996 part_map_iterate_hook() caused early abortion of p->iterate().
9998 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
9999 when grub_partition_iterate() returned with non-zero.
10001 2008-07-03 Pavel Roskin <proski@gnu.org>
10003 * disk/ata.c (grub_ata_pio_write): Check status before writing,
10004 like we do in grub_ata_pio_read().
10005 (grub_ata_readwrite): Always write individual sectors. Fix the
10006 sector count for the remainder.
10007 (grub_ata_write): Enable writing to ATA devices. Correctly
10008 report error for ATAPI devices.
10010 2008-07-02 Pavel Roskin <proski@gnu.org>
10012 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
10015 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
10016 for every read sector, we already increment it for the whole
10017 batch. This fixes reading more than 256 sectors at once.
10019 * util/grub-editenv.c (cmd_info): Cast argument to long
10020 explicitly. ptrdiff_t reduces to int on i386.
10022 * util/grub-editenv.c (main): Be specific which parameter is
10025 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
10026 (memdisk): Make memdisk_orig_addr a pointer.
10028 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
10029 for file offsets, use grub_off_t instead. Fix printf format
10032 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
10033 there. Real unexpected warnings should not drown in the noise
10034 about known problems.
10036 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
10037 grub_disk_addr_t for memory addresses.
10039 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
10040 explicitly to fix a warning.
10042 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
10044 * Makefile.in (MODULE_LDFLAGS): New variable.
10045 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
10046 the linker accepts --build-id=none.
10047 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
10049 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
10051 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
10052 those in Linux XFS code. Provide a way to access 64-bit parent
10054 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
10055 the end of struct grub_xfs_dir_header.
10057 2008-07-02 Bean <bean123ch@gmail.com>
10059 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
10060 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
10061 and GRUB_IEEE1275_FLAG_NO_ANSI.
10063 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
10064 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
10065 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
10067 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
10068 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
10070 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
10071 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
10073 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
10074 esc sequence on non ANSI terminal.
10075 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
10077 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
10080 2008-07-02 Bean <bean123ch@gmail.com>
10082 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
10083 (grub_editenv_SOURCES): New variable.
10084 (pkglib_MODULES): Add loadenv.mod.
10085 (loadenv_mod_SOURCES): New variable.
10086 (loadenv_mod_CFLAGS): Likewise.
10087 (loadenv_mod_LDFLAGS): Likewise.
10089 * include/grub/envblk.h: New file.
10091 * util/envblk.c: New file.
10093 * util/grub-editenv.c: New file.
10095 * commands/loadenv.c: New file.
10097 2008-07-01 Pavel Roskin <proski@gnu.org>
10099 * include/multiboot2.h (struct multiboot_tag_module): Use char,
10100 not unsigned char. This fixes warnings and is consistent with
10103 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
10105 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
10107 * term/tparm.c (analyze): Always set *popcount.
10109 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
10110 cast to fix a warning.
10112 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
10113 cast to suppress a warning.
10115 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
10116 grub_fshelp_read_file() expects.
10118 * fs/fat.c: Fix UUID calculation on big-endian systems. We
10119 write uuid as a 32-bit value in CPU byte order, so declare and
10122 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
10123 long if the format specifier expects it.
10124 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
10125 * partmap/pc.c (pc_partition_map_iterate): Likewise.
10126 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
10127 long to fix a warning.
10128 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
10129 grub_dprintf() arguments to fix warnings.
10131 2008-06-30 Pavel Roskin <proski@gnu.org>
10133 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
10134 install_bsd_part immediately before core.img is embedded or
10135 modified on disk. This fixes core.img verification if core.img
10136 cannot be embedded.
10138 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
10139 core_path to calculate the blocklist.
10140 Patch from Javier Martín <lordhabbit@gmail.com>
10142 2008-06-29 Robert Millan <rmh@aybabtu.com>
10144 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
10145 block to disk block.
10146 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
10147 Patch from Niels Böhm <bitbucket@arcor.de>
10149 2008-06-29 Robert Millan <rmh@aybabtu.com>
10151 * util/update-grub_lib.in (font_path): Search for fonts in
10152 /boot/grub first, which is more likely to be readable (we aren't
10153 deciding where fonts live, just looking for them).
10155 2008-06-26 Pavel Roskin <proski@gnu.org>
10157 * util/biosdisk.c (read_device_map): Don't leave dead map
10158 entries for devices failing stat() check.
10160 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
10161 core_path_dev for the core.img path on the target device.
10163 2008-06-26 Robert Millan <rmh@aybabtu.com>
10165 * disk/fs_uuid.c: New file.
10166 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
10167 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
10168 (fs_uuid_mod_LDFLAGS): New variables.
10169 * include/grub/disk.h (grub_disk_dev_id): Add
10170 `GRUB_DISK_DEVICE_UUID_ID'.
10171 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
10172 implement iterate().
10174 2008-06-26 Robert Millan <rmh@aybabtu.com>
10176 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
10177 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
10178 Linux image includes no initrd.
10180 2008-06-21 Javier Martín <lordhabbit@gmail.com>
10182 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
10183 call to resolve the core image location that effectively appended the
10186 2008-06-21 Robert Millan <rmh@aybabtu.com>
10188 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
10191 * util/grub.d/10_hurd.in: ... to here ...
10192 * util/grub.d/10_linux.in: ... and here.
10194 2008-06-19 Robert Millan <rmh@aybabtu.com>
10196 * kern/main.c (grub_main): Export `prefix' variable immediately
10197 after it has been set by grub_machine_set_prefix().
10199 2008-06-19 Robert Millan <rmh@aybabtu.com>
10201 * commands/search.c (search_label, search_fs_uuid, search_file): Print
10202 search result when not saving to variable, not the other way around.
10203 When saving to variable, abort iteration as soon as a match is found.
10205 2008-06-19 Robert Millan <rmh@aybabtu.com>
10207 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
10208 check for partition that provides /boot/grub. Its logic is flawed,
10209 as it prevents prepare_grub_to_access_device() from being called
10212 2008-06-19 Robert Millan <rmh@aybabtu.com>
10214 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
10215 "insmod" command directly when abstraction modules are needed,
10216 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
10217 since it had already been processed).
10219 2008-06-19 Pavel Roskin <proski@gnu.org>
10221 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
10222 changed. This is needed in case GRUB_LIBDIR changes.
10223 * conf/i386-ieee1275.rmk: Likewise.
10224 * conf/i386-linuxbios.rmk: Likewise.
10225 * conf/i386-pc.rmk: Likewise.
10226 * conf/powerpc-ieee1275.rmk: Likewise.
10228 2008-06-18 Pavel Roskin <proski@gnu.org>
10230 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
10231 kernel_elf_symlist.c to symlist.c for consistency with other
10232 architectures. Update all users.
10233 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
10235 2008-06-18 Robert Millan <rmh@aybabtu.com>
10237 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
10240 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
10241 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
10242 a RAID device, run setup() for all members independently on whether
10243 LVM abstraction is being used.
10244 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
10245 If grub-mkimage has set `*install_dos_part == -2', don't override this
10247 Perform *install_dos_part adjustments independently on whether
10248 we're embedding or not.
10249 Clarify error message when image is too big for embedding.
10250 Remove duplicate *install_dos_part stanza.
10252 2008-06-17 Robert Millan <rmh@aybabtu.com>
10254 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
10255 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
10257 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
10258 values in grub_ofconsole_normal_color and
10259 grub_ofconsole_highlight_color (they're not directly related to
10260 background and foreground).
10261 (grub_ofconsole_setcolorstate): Extract background and foreground
10262 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
10264 2008-06-17 Robert Millan <rmh@aybabtu.com>
10266 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
10267 /boot/grub for the check in last commit, not /boot (they could be
10268 different partitions).
10270 2008-06-16 Robert Millan <rmh@aybabtu.com>
10272 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
10273 asked to setup access for the same partition that provides /boot,
10274 don't bother using UUIDs since our root already has the value we
10277 2008-06-16 Robert Millan <rmh@aybabtu.com>
10279 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
10281 Patch from Sven Mueller <sven@debian.org>.
10283 2008-06-16 Robert Millan <rmh@aybabtu.com>
10285 * util/update-grub.in: Check for $EUID instead of $UID.
10286 Reported by Vincent Zweije.
10288 2008-06-16 Bean <bean123ch@gmail.com>
10290 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
10291 (grub_ext2_read_block): Likewise.
10292 (grub_ext2_read_inode): Likewise.
10293 (grub_ext2_mount): Likewise.
10294 (grub_ext2_close): Likewise.
10295 (grub_ext3_get_journal): Removed.
10297 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
10298 (grub_reiserfs_read_symlink): Likewise.
10299 (grub_reiserfs_mount): Likewise.
10300 (grub_reiserfs_open): Likewise.
10301 (grub_reiserfs_read): Likewise.
10302 (grub_reiserfs_close): Likewise.
10303 (grub_reiserfs_get_journal): Removed.
10305 * fs/fshelp.c (grub_fshelp_read): Removed.
10306 (grub_fshelp_map_block): Likewise.
10308 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
10309 (grub_fshelp_journal): Likewise.
10310 (grub_fshelp_read): Likewise.
10311 (grub_fshelp_map_block): Likewise.
10313 2008-06-16 Pavel Roskin <proski@gnu.org>
10315 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
10316 floating point anymore.
10317 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
10319 2008-06-15 Pavel Roskin <proski@gnu.org>
10321 * commands/ls.c (grub_ls_list_files): Use integer calculations
10322 for human readable format, avoid floating point use.
10323 * kern/misc.c (grub_ftoa): Remove.
10324 (grub_vsprintf): Remove floating point support.
10326 2008-06-15 Robert Millan <rmh@aybabtu.com>
10328 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
10330 Reported by Max Vozeler.
10332 2008-06-15 Robert Millan <rmh@aybabtu.com>
10334 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
10335 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
10337 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
10338 the beginning of the prefix.
10340 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
10341 It is assumed that if we have a memdisk, grub-mkimage has set
10342 grub_prefix to include the "(memdisk)" drive in it.
10344 2008-06-15 Robert Millan <rmh@aybabtu.com>
10346 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
10347 Initialize keyboard controller after registering the terminal, so that
10348 grub_printf() can be called from grub_keyboard_controller_init().
10350 2008-06-15 Robert Millan <rmh@aybabtu.com>
10352 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
10353 extent-btree which is written as big endian on disk.
10354 Reported by Alain Greppin <al@chilibi.org>.
10356 2008-06-14 Robert Millan <rmh@aybabtu.com>
10358 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
10359 * util/i386/pc/grub-install.in (modules): Likewise.
10361 2008-06-13 Pavel Roskin <proski@gnu.org>
10363 * commands/ls.c (grub_ls_list_files): Fix format warnings.
10365 2008-06-13 Bean <bean123ch@gmail.com>
10367 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
10369 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
10371 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
10372 to indicate sparse block.
10374 2008-06-12 Pavel Roskin <proski@gnu.org>
10376 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
10377 number, grub_fshelp_read() does it for us.
10379 * fs/fshelp.c (grub_fshelp_read): New function. Implement
10380 linear disk read with journal translation.
10381 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
10382 * include/grub/fshelp.h: Declare grub_fshelp_read().
10384 2008-06-09 Pavel Roskin <proski@gnu.org>
10386 * fs/minix.c (grub_minix_mount): Handle error reading
10389 2008-06-08 Robert Millan <rmh@aybabtu.com>
10391 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
10392 don't append the RAID prefix afterwards.
10393 Reported by Clint Adams.
10395 2008-06-08 Robert Millan <rmh@aybabtu.com>
10397 Based on description from Pavel:
10398 * kern/disk.c (grub_disk_check_range): Rename to ...
10399 (grub_disk_adjust_range): ... this. Add a comment explaining the
10400 tasks performed by this function.
10402 2008-06-08 Robert Millan <rmh@aybabtu.com>
10404 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
10405 `num_serial' (for consistency with other variables).
10406 (struct grub_ntfs_data): Add `uuid' member.
10407 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
10408 (grub_ntfs_uuid): New function.
10409 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
10411 2008-06-07 Pavel Roskin <proski@gnu.org>
10413 * util/biosdisk.c (open_device): Revert last change to the
10414 function, it broke installation. The sector needs to be
10415 different dependent on which device is opened.
10417 2008-06-06 Robert Millan <rmh@aybabtu.com>
10419 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
10420 rest of GRUB, and breakage doesn't happen if its value were modified.
10422 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
10423 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
10424 a constant (same value).
10425 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
10426 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
10428 2008-06-06 Robert Millan <rmh@aybabtu.com>
10430 * util/biosdisk.c (open_device): Do not modify sector offset when
10431 accessing a partition. kern/disk.c already handles this for us.
10433 2008-06-06 Robert Millan <rmh@aybabtu.com>
10435 * util/grub-emu.c (grub_machine_init): Move code in this function from
10437 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
10438 segfault in case grub_printf() is called).
10440 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
10441 grub_probe. Update all users not to explicitly add it again.
10442 (grub_device): New variable; contains corresponding device for grubdir.
10443 (fs_module, partmap_module, devabstraction_module): Pass
10444 `--device ${grub_device}' to grub_probe to avoid traversing /dev
10447 2008-06-05 Robert Millan <rmh@aybabtu.com>
10449 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
10450 is found, print it (same layout as with labels).
10452 2008-06-04 Robert Millan <rmh@aybabtu.com>
10454 * util/biosdisk.c (get_drive): Rename to ...
10455 (find_grub_drive): ... this. Update all users.
10457 (get_os_disk): Rename to ...
10458 (convert_system_partition_to_system_disk): ... this. Update all users.
10460 (find_drive): Rename to ...
10461 (find_system_device): ... this. Update all users.
10463 2008-06-04 Robert Millan <rmh@aybabtu.com>
10465 * util/biosdisk.c (get_os_disk): Handle IDA devices.
10466 * util/grub-mkdevicemap.c (get_mmc_disk_name)
10467 (make_device_map): Likewise.
10469 2008-06-01 Robert Millan <rmh@aybabtu.com>
10471 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
10472 before dereferencing it.
10474 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
10475 union with fat12/fat16-specific ones. Add some new fields, including
10476 `num_serial' for both versions.
10477 (struct grub_fat_data): Add `uuid' member.
10478 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
10479 names. Initialize `data->uuid' using `num_serial'.
10480 (grub_fat_uuid): New function.
10481 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
10483 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
10484 (grub_reiserfs_uuid): New function.
10485 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
10488 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
10489 (grub_xfs_uuid): New function.
10490 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
10492 2008-06-01 Robert Millan <rmh@aybabtu.com>
10494 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
10495 code that is backward compatible with pre-uuid search command.
10497 2008-05-31 Robert Millan <rmh@aybabtu.com>
10499 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
10500 floppies after everything else, to ensure floppy drive isn't accessed
10501 unnecessarily (patch from Bean).
10503 2008-05-31 Robert Millan <rmh@aybabtu.com>
10505 * commands/search.c (search_label, search_fs_uuid, search_file): Do
10506 not print device names when we were asked to set a variable.
10508 2008-05-31 Robert Millan <rmh@aybabtu.com>
10510 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
10511 using "cursor-on" and "cursor-off" commands (understood at least by
10512 the Open Firmware flavour on OLPC).
10514 2008-05-31 Michael Gorven <michael@gorven.za.net>
10516 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
10517 on and off sequences.
10519 2008-05-31 Robert Millan <rmh@aybabtu.com>
10521 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
10522 * util/update-grub.in: Likewise.
10524 2008-05-30 Pavel Roskin <proski@gnu.org>
10526 * util/biosdisk.c (linux_find_partition): Simplify logic and
10527 make the code more universal. Keep special processing for
10528 devfs, but use a simple rule for all other devices. If the
10529 device ends with a number, append 'p' and the partition number.
10530 Otherwise, append only the partition number.
10532 2008-05-30 Robert Millan <rmh@aybabtu.com>
10534 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
10535 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
10536 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
10537 the `root' parameter to Linux.
10539 2008-05-30 Robert Millan <rmh@aybabtu.com>
10541 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
10542 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
10543 --fs_uuid with --fs-uuid.
10544 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
10545 all filesystems support them).
10547 2008-05-30 Robert Millan <rmh@aybabtu.com>
10549 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
10550 grub_printf() flags, since we're printing in units of 2 bytes.
10552 2008-05-30 Robert Millan <rmh@aybabtu.com>
10554 * util/grub.d/00_header.in: Remove obsolete comment referencing
10555 convert_system_path_to_grub_path().
10556 * util/update-grub.in: Likewise.
10557 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
10558 (convert_system_path_to_grub_path): Add a warning message explaining
10559 that this function is deprecated. Rely on is_path_readable_by_grub()
10560 for the readability checks.
10561 (font_path): Use is_path_readable_by_grub() for the readability
10562 check rather than convert_system_path_to_grub_path().
10564 2008-05-30 Robert Millan <rmh@aybabtu.com>
10566 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
10567 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
10568 converting it first.
10569 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
10570 grub.cfg for access to font file, and afterwards call it again to set
10573 2008-05-30 Robert Millan <rmh@aybabtu.com>
10575 * commands/search.c (options): Add --fs_uuid option.
10576 (search_fs_uuid): New function.
10577 (grub_cmd_search): Fix --set argument passing.
10578 Use search_fs_uuid() when requested via --fs_uuid.
10579 (grub_search_init): Update help message.
10580 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
10581 and redeclare it as an array of 16-bit words.
10582 (grub_ext2_uuid): New function.
10583 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
10584 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
10585 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
10586 (GRUB_DEVICE_BOOT_UUID): New variables.
10587 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
10588 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
10590 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
10591 just assume `root' variable has the right value.
10592 * util/grub.d/10_linux.in: Likewise.
10593 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
10595 (main): Recognise `-t fs_uuid' argument.
10597 2008-05-30 Robert Millan <rmh@aybabtu.com>
10599 * util/biosdisk.c (map): Redefine structure to hold information
10600 about GRUB drive name.
10601 (get_drive): Reimplement without assuming (and verifying) BIOS-like
10603 (call_hook): Remove.
10604 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
10605 member. Assume drive has partitions.
10606 (grub_util_biosdisk_open): Access device names via `.device' struct
10608 (open_device): Likewise.
10609 (find_drive): Likewise.
10610 (read_device_map): Adjust map[] usage to match the new struct
10611 definition. Don't check for duplicates (still possible, but not cheap
10613 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
10614 (make_device_name): Remove assumption of BIOS-like drive names.
10616 2008-05-30 Pavel Roskin <proski@gnu.org>
10618 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
10619 compiling execute.c doesn't need grub_script.tab.h anymore.
10620 (normal/command.c_DEPENDENCIES): Likewise.
10621 (normal/function.c_DEPENDENCIES): Likewise.
10622 * conf/i386-ieee1275.rmk: Likewise.
10623 * conf/i386-linuxbios.rmk: Likewise.
10624 * conf/i386-pc.rmk: Likewise.
10625 * conf/powerpc-ieee1275.rmk: Likewise.
10626 * conf/sparc64-ieee1275.rmk: Likewise.
10628 2008-05-29 Pavel Roskin <proski@gnu.org>
10630 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
10631 when scanning metadata for volume group name.
10633 * include/grub/script.h: Don't include grub_script.tab.h. It's
10634 a generated file, which may only be included from the files with
10635 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
10636 use union YYSTYPE, as the later allows forward declaration.
10637 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
10639 2008-05-29 Robert Millan <rmh@aybabtu.com>
10641 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
10642 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
10643 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
10644 (grub_console_checkkey): Add grub_dprintf() call to report unknown
10647 2008-05-29 Robert Millan <rmh@aybabtu.com>
10649 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
10650 control key combinations.
10652 2008-05-29 Robert Millan <rmh@aybabtu.com>
10654 * util/powerpc/ieee1275/grub-install.in: Move from here ...
10655 * util/ieee1275/grub-install.in: ... to here.
10656 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
10657 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
10658 (grub_install_SOURCES): Likewise.
10660 2008-05-29 Robert Millan <rmh@aybabtu.com>
10662 * fs/affs.c: Update copyright year.
10663 * fs/ext2.c: Likewise.
10664 * fs/fshelp.c: Likewise.
10665 * fs/hfsplus.c: Likewise.
10666 * fs/ntfs.c: Likewise.
10667 * fs/xfs.c: Likewise.
10668 * include/grub/fshelp.h: Likewise.
10669 * util/grub-mkdevicemap.c: Likewise.
10671 2008-05-28 Robert Millan <rmh@aybabtu.com>
10673 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
10674 might need to be fatfs to support some firmware implementations
10677 2008-05-28 Robert Millan <rmh@aybabtu.com>
10679 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
10681 * util/grub-mkdevicemap.c (get_mmc_disk_name)
10682 (make_device_map): Likewise.
10684 2008-05-20 Bean <bean123ch@gmail.com>
10686 * fs/fshelp.c (grub_fshelp_map_block): New function.
10687 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
10688 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
10690 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
10691 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
10692 (grub_fshelp_journal): New structure.
10693 (grub_fshelp_map_block): New function prototype.
10694 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
10695 (grub_fshelp_map_block): Likewise.
10697 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
10698 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
10699 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
10700 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
10701 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
10702 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
10703 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
10704 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
10705 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
10706 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
10707 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
10708 (grub_ext2_sblock): New members for journal support.
10709 (grub_ext3_journal_header): New structure.
10710 (grub_ext3_journal_revoke_header): Likewise.
10711 (grub_ext3_journal_block_tag): Likewise.
10712 (grub_ext3_journal_sblock): Likewise.
10713 (grub_fshelp_node): New members logfile and journal.
10714 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
10715 grub_fshelp_map_block to get real block number.
10716 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
10718 (grub_ext2_read_inode): Likewise.
10719 (grub_ext3_get_journal): New function.
10720 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
10721 (grub_ext2_close): Release memory used by journal.
10723 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
10724 (REISERFS_MAGIC_DESC_BLOCK): New macro.
10725 (grub_reiserfs_transaction_header): Renamed to
10726 grub_reiserfs_description_block, replace field data with real_blocks.
10727 (grub_reiserfs_commit_block): New structure.
10728 (grub_reiserfs_data): New member journal.
10729 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
10731 (grub_reiserfs_read_symlink): Likewise.
10732 (grub_reiserfs_iterate_dir): Likewise.
10733 (grub_reiserfs_open): Likewise.
10734 (grub_reiserfs_read): Likewise.
10735 (grub_reiserfs_get_journal): New function.
10736 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
10737 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
10738 using grub_reiserfs_get_journal.
10739 (grub_reiserfs_close): Release memory used by journal.
10741 * fs/affs.c (grub_affs_read_block): Change block type to
10742 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
10744 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
10746 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
10748 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
10750 * fs/udf.c (grub_udf_read_block): Change block type to
10751 grub_disk_addr_t. Use type cast to avoid warning.
10753 * fs/xfs.c (grub_xfs_read_block): Likewise.
10755 2008-05-16 Christian Franke <franke@computer.org>
10757 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
10758 to ensure that break with ESC will always work.
10759 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
10760 Remove ESC from keyboard queue.
10762 2008-05-16 Christian Franke <franke@computer.org>
10764 * util/biosdisk.c: [__CYGWIN__] Add includes.
10765 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
10766 (get_os_disk): Move variable declarations to OS specific
10767 parts to avoid warning.
10768 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
10769 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
10770 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
10772 * util/getroot.c: [__CYGWIN__] Add includes.
10773 (strip_extra_slashes): Fix "/" case.
10774 [__CYGWIN__] (get_win32_path): New function.
10775 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
10776 [__CYGWIN__] (find_root_device): Disable.
10777 [__CYGWIN__] (get_bootsec_serial): New function.
10778 [__CYGWIN__] (find_cygwin_root_device): Likewise.
10779 [__linux__] (grub_guess_root_device): Add early returns to simplify
10781 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
10782 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
10783 check for Linux only.
10785 2008-05-15 Bean <bean123ch@gmail.com>
10787 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
10788 keyboard hang problem in apple's intel mac.
10790 2008-05-09 Robert Millan <rmh@aybabtu.com>
10792 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
10794 * util/grub-mkdevicemap.c (get_virtio_disk_name)
10795 (make_device_map): Likewise.
10796 Reported by Aurelien Jarno <aurel32@debian.org>
10798 2008-05-07 Ian Campbell <ijc@hellion.org.uk>
10800 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
10801 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
10802 (make_device_map): Output entries for xvd type disks.
10804 2008-05-07 Robert Millan <rmh@aybabtu.com>
10806 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
10808 * util/grub-mkdevicemap.c (get_cciss_disk_name)
10809 (make_device_map): Likewise.
10810 Reported by Roland Dreier <rdreier@cisco.com>
10812 2008-05-07 Robert Millan <rmh@aybabtu.com>
10814 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
10815 grub_strstr() call. Correct a few mistakes in failure path handling.
10817 2008-05-06 Robert Millan <rmh@aybabtu.com>
10819 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
10820 Do not print a trailing slash (therefore, the root directory is an
10822 (convert_system_path_to_grub_path): Do not remove trailing slash
10823 from make_system_path_relative_to_its_root() output.
10825 * util/i386/pc/grub-install.in: Add trailing slash to output from
10826 make_system_path_relative_to_its_root().
10828 2008-05-06 Robert Millan <rmh@aybabtu.com>
10830 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
10831 ensures that output lines aren't intermangled with those sent to
10832 stderr (via grub_util_info()).
10833 * util/grub-probe.c (grub_refresh): Likewise.
10834 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
10836 2008-05-05 Christian Franke <franke@computer.org>
10838 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
10839 Add Cygwin device names.
10840 (get_ide_disk_name) [__CYGWIN__]: Likewise.
10841 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
10842 (check_device): Return error instead of success on empty name.
10843 (make_device_map): Move label inside linux specific code to
10844 prevent compiler warning.
10846 2008-04-30 Robert Millan <rmh@aybabtu.com>
10848 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
10849 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
10851 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
10853 2008-04-29 Robert Millan <rmh@aybabtu.com>
10855 * docs/grub.cfg: New file (example GRUB configuration).
10857 2008-04-26 Robert Millan <rmh@aybabtu.com>
10859 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
10860 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
10861 and `disk/ieee1275/nand.c'.
10863 2008-04-25 Bean <bean123ch@gmail.com>
10865 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
10868 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
10869 change the buffer size to 4096 for cdrom device.
10871 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
10873 (_linux_mod_SOURCES): New variable.
10874 (_linux_mod_CFLAGS): Likewise.
10875 (_linux_mod_LDFLAGS): Likewise.
10876 (linux_mod_SOURCES): Likewise.
10877 (linux_mod_CFLAGS): Likewise.
10878 (linux_mod_LDFLAGS): Likewise.
10879 (nand_mod_SOURCES): Likewise.
10880 (nand_mod_CFLAGS): Likewise.
10881 (nand_mod_LDFLAGS): Likewise.
10883 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
10884 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
10885 type property. (nand device in olpc don't have this property)
10887 * include/grub/disk.h (grub_disk_dev_id): New macro
10888 GRUB_DISK_DEVICE_NAND_ID.
10890 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
10891 function prototype.
10892 (grub_rescue_cmd_initrd): Likewise.
10894 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
10895 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
10896 ofw_cif_handler and ofw_idt, adjust padding number.
10898 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
10899 GRUB_MACHINE_IEEE1275 is defined.
10901 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
10902 Use NESTED_FUNC_ATTR attribute on the hook parameter.
10904 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
10905 on nested function heap_init.
10906 (grub_upper_mem): New variable for i386-ieee1275.
10907 (grub_get_extended_memory): New function for i386-ieee1275.
10908 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
10910 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
10911 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
10914 * loader/i386/ieee1275/linux.c: New file.
10916 * loader/i386/ieee1275/linux_normal.c: New file.
10918 * disk/ieee1275/nand.c: New file.
10920 2008-04-18 Thomas Schwinge <tschwinge@gnu.org>
10922 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
10924 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
10926 2008-04-18 Robert Millan <rmh@aybabtu.com>
10928 Restructures early code path on ieee1275 to unify grub_main() as
10929 the first C function that is executed in every platform.
10931 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
10932 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
10934 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
10935 * kern/ieee1275/cmain.c (cmain): Rename to ...
10936 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
10937 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
10940 2008-04-18 Robert Millan <rmh@aybabtu.com>
10942 * util/update-grub.in: Fix syntax error when setting
10943 `GRUB_PRELOAD_MODULES'.
10944 Reported by Stephane Chazelas <stephane@artesyncp.com>
10946 2008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
10948 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
10949 section into account, newer toolchains generate unique build ids
10950 * configure.ac: remove the test for --build-id=none acceptance,
10951 we want build ids to be preserved
10952 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
10953 far from other sections don't cause the raw binary images grow
10956 2008-04-15 Robert Millan <rmh@aybabtu.com>
10958 * disk/lvm.c: Update copyright year.
10959 * kern/misc.c: Likewise.
10961 2008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
10963 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
10964 there is no memory left for physical volume name.
10966 2008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
10968 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
10969 volume name mapping to support bigger than 9 character names properly.
10971 2008-04-13 Robert Millan <rmh@aybabtu.com>
10973 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
10974 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
10976 2008-04-13 Christian Franke <franke@computer.org>
10978 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
10979 to create a floppy emulation boot CD when non emulation mode
10981 Enable Joliet CD filesystem extension.
10983 2008-04-13 Robert Millan <rmh@aybabtu.com>
10985 * kern/misc.c (grub_strncat): Fix off-by-one error.
10986 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
10988 * kern/env.c (grub_env_context_close): Clear current context, not
10990 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
10992 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
10994 2008-04-13 Robert Millan <rmh@aybabtu.com>
10996 Improve robustness when handling LVM.
10998 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
10999 (and leave `*p' unmodified).
11000 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
11002 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
11003 iterating through it.
11004 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
11006 (grub_lvm_scan_device): Check the return value (and fail gracefully
11007 when due) on each grub_lvm_getvalue() or grub_strstr() call.
11008 Don't assume `vg->pvs != NULL' when iterating through it.
11010 2008-04-13 Robert Millan <rmh@aybabtu.com>
11012 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
11013 * genmk.rb (partmap): New variable.
11014 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
11015 (#{partmap}): New target rule.
11016 * genpartmaplist.sh: New file.
11017 * Makefile.in (pkglib_DATA): Add partmap.lst.
11018 (partmap.lst): New target rule.
11019 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
11020 modules (including all partition maps), instead of preloading them.
11022 2007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
11024 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
11025 `linux-boot-prober' (if installed) to detect other operating
11026 systems which are installed on the computer and add them to
11028 * conf/common.rmk: Build and install 30_os-prober.
11030 2008-04-12 Robert Millan <rmh@aybabtu.com>
11032 * kern/powerpc/ieee1275/init.c: Move from here ...
11033 * kern/ieee1275/init.c: ... to here. Update all users.
11035 * kern/powerpc/ieee1275/cmain.c: Move from here ...
11036 * kern/ieee1275/cmain.c: ... to here. Update all users.
11038 * kern/powerpc/ieee1275/openfw.c: Move from here ...
11039 * kern/ieee1275/openfw.c: ... to here. Update all users.
11041 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
11042 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
11044 2008-04-10 Pavel Roskin <proski@gnu.org>
11046 * configure.ac: Always use "_cv_" in cache variables for
11047 compatibility with Autoconf 2.62.
11049 2008-04-07 Robert Millan <rmh@aybabtu.com>
11051 Revert grub/machine/init.h addition by Pavel (since it breaks on
11052 i386-ieee1275 and others):
11053 * util/i386/pc/misc.c: Remove grub/machine/init.h.
11054 * util/powerpc/ieee1275/misc.c: Likewise.
11056 2008-04-07 Robert Millan <rmh@aybabtu.com>
11058 * util/grub-probe.c (probe): Improve error message.
11060 2008-04-07 Robert Millan <rmh@aybabtu.com>
11062 * util/biosdisk.c (read_device_map): Skip devices that don't exist
11063 (this prevents the presence of a bogus entry from ruining the whole
11066 2008-04-06 Pavel Roskin <proski@gnu.org>
11068 * util/biosdisk.c: Include grub/util/biosdisk.h.
11069 * util/grub-fstest.c (execute_command): Make static.
11070 * util/grub-mkdevicemap.c (check_device): Likewise.
11071 * util/i386/pc/misc.c: Include grub/machine/init.h.
11072 * util/powerpc/ieee1275/misc.c: Likewise.
11073 * util/lvm.c: Include grub/util/lvm.h.
11074 * util/misc.c: Include grub/kernel.h, grub/misc.h and
11076 * util/raid.c: Include grub/util/raid.h.
11077 (grub_util_getdiskname): Make static.
11079 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
11080 grub_hostfs_fini(), as they are called from grub_init_all() and
11081 grub_fini_all() respectively. This fixes an infinite loop in
11082 grub-fstest due to double registration of hostfs.
11083 Reported by Christian Franke <Christian.Franke@t-online.de>
11085 2008-04-05 Pavel Roskin <proski@gnu.org>
11087 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
11088 all 8 functions. Otherwise, probe function 0 only.
11090 2008-04-04 Pavel Roskin <proski@gnu.org>
11092 * commands/lspci.c (grub_lspci_iter): Print the bus number
11095 * commands/lspci.c (grub_pci_classes): Fix typos.
11096 (grub_lspci_iter): Don't print func twice. Print vendor ID
11097 before device ID, as it's normally done.
11099 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
11100 Fix signedness warnings.
11101 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
11103 * util/ieee1275/get_disk_name.c: Include config.h so that
11104 _GNU_SOURCE is defined and getline() is declared. Mark an
11105 unused argument as such. Fix a signedness warning.
11107 2008-04-02 Pavel Roskin <proski@gnu.org>
11109 * genkernsyms.sh.in: Use more robust assignments for CC and
11110 srcdir. Quote srcdir.
11111 * gensymlist.sh.in: Likewise. Assert at the compile time that
11112 the symbol table is not empty.
11114 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
11115 * fs/cpio.c (grub_cpio_read): Likewise.
11117 2008-04-01 Pavel Roskin <proski@gnu.org>
11119 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
11120 * disk/host.c (grub_host_open): Likewise.
11121 * disk/loopback.c (grub_loopback_open): Likewise.
11122 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
11123 disk->id as in disk/host.c, not a multi-character constant.
11125 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
11126 later is obsolete, potentially dangerous and sets a bad example.
11127 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
11128 * util/misc.c (grub_util_get_image_size): Likewise.
11130 * disk/loopback.c (options): Improve help for "--partitions".
11132 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
11133 options to align them with the short options, e.g. "echo -e".
11135 2008-03-31 Bean <bean123ch@gmail.com>
11137 * video/reader/png.c (grub_png_data): New member is_16bit and
11139 (grub_png_decode_image_header): Detect 16 bit png image.
11140 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
11141 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
11142 (grub_video_reader_png): Release memory occupied by image_data.
11144 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
11146 (grub_nfs_mount): Skip the test for sector per cluster.
11148 * include/grub/ntfs.h (MAX_SPC): Removed.
11150 2008-03-31 Bean <bean123ch@gmail.com>
11152 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
11153 (grub_probe_SOURCES): Add fs/afs.c.
11154 (grub_fstest_SOURCES): Likewise.
11155 (afs_mod_SOURCES): New variable.
11156 (afs_mod_CFLAGS): Likewise.
11157 (afs_mod_LDFLAGS): Likewise.
11159 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
11160 (grub_emu_SOURCES): Likewise.
11162 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
11164 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11166 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
11168 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11170 * fs/afs.c: New file.
11172 2008-03-30 Pavel Roskin <proski@gnu.org>
11174 * disk/host.c: Include grub/misc.h to fix a warning.
11175 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
11176 warnings about implicit declarations.
11178 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
11180 * include/grub/i386/loader.h: Change declaration of
11181 grub_linux_boot() to match what grub_loader_set() expects.
11182 * util/getroot.c (grub_guess_root_device): Return const char* to
11184 * util/grub-probe.c (probe): Fix a warning about uninitialized
11185 abstraction_name variable.
11186 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
11187 second argument as unused to fix a warning.
11189 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
11190 missing grub_error() call.
11192 * util/update-grub_lib.in: Define datarootdir, since Autoconf
11193 2.60 and newer uses it to define datadir.
11195 * commands/sleep.c: Fix warning about implicit declaration.
11196 * disk/memdisk.c: Likewise.
11197 * loader/aout.c: Likewise.
11198 * loader/i386/bsd_normal.c: Likewise.
11199 * util/grub-probe.c: Likewise.
11201 * commands/i386/cpuid.c (has_longmode): Make static.
11202 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
11203 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
11205 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
11206 GDT. This is more robust, as %ds can change.
11207 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
11208 calling real_to_prot().
11209 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
11211 2008-03-28 Pavel Roskin <proski@gnu.org>
11213 * kern/i386/pc/startup.S: Assert that uncompressed functions
11214 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
11215 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
11216 code, as they push parts of the code (error handlers) beyond
11217 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
11218 code as correctness and size.
11220 2008-03-28 Pavel Roskin <proski@gnu.org>
11222 * kern/i386/pc/startup.S
11223 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
11224 data block address to the real mode, keep offset minimal. This
11225 works around a bug in AWARD BIOS on old Athlon systems, which
11226 makes CD detection hang.
11228 2008-03-26 Pavel Roskin <proski@gnu.org>
11230 * normal/color.c (grub_parse_color_name_pair): Make `name' a
11232 * include/grub/normal.h: Add grub_parse_color_name_pair()
11235 2008-03-24 Bean <bean123ch@gmail.com>
11237 * disk/i386/pc/biosdisk.c (cd_start): Removed.
11238 (cd_count): Removed.
11239 (cd_drive): New variable.
11240 (grub_biosdisk_get_drive): Don't check for (cdN) device.
11241 (grub_biosdisk_call_hook): Likewise.
11242 (grub_biosdisk_iterate): Change cdrom detection method.
11243 (grub_biosdisk_open): Replace cd_start with cd_drive.
11244 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
11245 detect cdrom device.
11247 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
11249 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
11250 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
11251 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
11252 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
11253 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
11254 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
11255 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
11256 (grub_biosdisk_cdrp): New structure.
11257 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
11259 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
11261 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
11264 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
11267 2008-03-20 Robert Millan <rmh@aybabtu.com>
11269 Remove 2 TiB limit in ata.mod.
11270 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
11271 (grub_ata_dumpinfo): Print sector count with 0x%llx.
11272 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
11273 grub_uint64_t instead of grub_uint32_t.
11275 2008-03-05 Bean <bean123ch@gmail.com>
11277 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
11278 (grub_multiboot): Set boot device.
11280 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
11282 2008-03-02 Bean <bean123ch@gmail.com>
11284 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
11287 2008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
11289 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
11292 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
11295 * docs/fdl.texi: New file.
11297 * docs/mdate-sh: New file. Copied from gnulib.
11298 * docs/texinfo.tex: Likewise.
11300 * config.guess: Updated from gnulib.
11301 * install-sh: Likewise.
11303 2008-02-28 Robert Millan <rmh@aybabtu.com>
11305 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
11306 (aout_mod_SOURCES): New variable.
11307 (aout_mod_CFLAGS): Likewise.
11308 (aout_mod_LDFLAGS): Likewise.
11310 * conf/i386-ieee1275.rmk: Likewise.
11312 2008-02-28 Robert Millan <rmh@aybabtu.com>
11314 * util/update-grub.in: Reorganise terminal validity check. Accept
11315 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
11316 Based on suggestion by Franklin PIAT.
11318 2008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
11320 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
11322 * util/getroot.c (grub_util_check_block_device): New function that
11323 returns the given argument if it is a block device and returns NULL else.
11324 * util/grub-probe.c (argument_is_device): New variable.
11325 (probe): Promote device_name from a variable to an argument. Receive
11326 device_name from grub_util_check_block_device() if path is NULL and from
11327 grub_guess_root_device() else. Do not free() device_name anymore.
11328 (options): Introduce new parameter '-d, --device'.
11329 (main): Add description of the new parameter to the help screen.
11330 Rename path variable to argument. Set argument_is_device if the '-d'
11331 option is given. Pass argument to probe() depending on
11332 argument_is_device.
11334 2008-02-24 Bean <bean123ch@gmail.com>
11336 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
11337 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
11338 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
11339 (GRUB_ISO9660_VOLDESC_PART): Likewise.
11340 (GRUB_ISO9660_VOLDESC_END): Likewise.
11341 (grub_iso9660_primary_voldesc): New member escape.
11342 (grub_iso9660_data): New member joliet.
11343 (grub_iso9660_convert_string): New function.
11344 (grub_iso9660_mount): Detect joliet extension.
11345 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
11346 (grub_iso9660_iso9660_label): Likewise.
11348 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
11349 (grub_setup_SOURCES): Add fs/udf.c.
11350 (grub_fstest_SOURCES): Likewise.
11351 (udf_mod_SOURCES): New variable.
11352 (udf_mod_CFLAGS): Likewise.
11353 (udf_mod_LDFLAGS): Likewise.
11355 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
11356 (grub_emu_SOURCES): Likewise.
11358 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
11360 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11362 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
11364 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11366 * fs/udf.c: New file.
11368 2008-02-24 Robert Millan <rmh@aybabtu.com>
11370 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
11371 (normal/lexer.c_DEPENDENCIES): New variables.
11372 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
11373 (normal/lexer.c_DEPENDENCIES): Likewise.
11374 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
11375 (normal/lexer.c_DEPENDENCIES): Likewise.
11376 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
11377 (normal/lexer.c_DEPENDENCIES): Likewise.
11378 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
11379 (normal/lexer.c_DEPENDENCIES): Likewise.
11380 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
11381 (normal/lexer.c_DEPENDENCIES): Likewise.
11383 2008-02-23 Robert Millan <rmh@aybabtu.com>
11385 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
11386 since they were intended to be in hex. This didn't break previously
11387 because of a bug in gpt_partition_map_iterate() (see below).
11389 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
11390 when checking the validity of GPT header.
11391 Remove `partno', since it always provides the same information as `i'.
11393 2008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
11395 * include/grub/efi/time.h: Fix a wrong comment.
11397 2008-02-19 Pavel Roskin <proski@gnu.org>
11399 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
11402 2008-02-19 Bean <bean123ch@gmail.com>
11404 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
11405 (aout_mod_SOURCES): New variable.
11406 (aout_mod_CFLAGS): Likewise.
11407 (aout_mod_LDFLAGS): Likewise.
11408 (_bsd_mod_SOURCES): New variable.
11409 (_bsd_mod_CFLAGS): Likewise.
11410 (_bsd_mod_LDFLAGS): Likewise.
11411 (bsd_mod_SOURCES): New variable.
11412 (bsd_mod_CFLAGS): Likewise.
11413 (bsd_mod_LDFLAGS): Likewise.
11415 * include/grub/aout.h: New file.
11417 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
11419 * include/grub/i386/bsd.h: New file.
11421 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
11424 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
11425 function is called, so that it's possible to change it inside the hook.
11426 (grub_elf64_load): Likewise.
11427 (grub_elf_file): Don't close the file if elf header is not found.
11428 (grub_elf_close): Close the file if grub_elf_file fails (The new
11429 grub_elf_file won't close it).
11430 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
11431 (grub_elf64_size): Likewise.
11433 * kern/i386/loader.S (grub_unix_real_boot): New function.
11435 * loader/aout.c: New file.
11437 * loader/i386/bsd.c: New file.
11439 * loader/i386/bsd_normal.c: New file.
11441 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
11443 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
11444 can test other formats.
11446 2008-02-19 Robert Millan <rmh@aybabtu.com>
11448 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
11449 (grub_gpt_partition_type_empty): Redefine with macro from
11450 `<grub/gpt_partition.h>'.
11451 (gpt_partition_map_iterate): Adjust partition type comparison.
11453 Export `entry' as partmap-specific `part.data' struct.
11454 (grub_gpt_header, grub_gpt_partentry): Move from here ...
11456 * include/grub/gpt_partition.h (grub_gpt_header)
11457 (grub_gpt_partentry): ... to here (new file).
11459 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
11461 (grub_gpt_partition_type_bios_boot): New const variable, defined
11462 with macro from `<grub/gpt_partition.h>'.
11464 (setup): Replace `first_start' with `embed_region', which keeps
11465 track of the embed region (and is partmap-agnostic).
11467 Replace find_first_partition_start() with find_usable_region(),
11468 which finds a usable region for embedding using partmap-specific
11469 knowledge (supports PC/MSDOS and GPT).
11471 Fix all assumptions that the embed region start at sector 1, using
11472 `embed_region.start' from now on. Similarly, use `embed_region.end'
11473 rather than `first_start' to calculate available size.
11475 In grub_util_info() message, replace "into after the MBR" with an
11476 indication of the specific sector our embed region starts at.
11478 2008-02-19 Robert Millan <rmh@aybabtu.com>
11480 * DISTLIST: Replace `commands/ieee1275/halt.c' and
11481 `commands/ieee1275/reboot.c' with `commands/halt.c' and
11482 `commands/reboot.c'.
11483 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
11484 (halt_mod_SOURCES): Likewise.
11485 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
11486 (halt_mod_SOURCES): Likewise.
11488 2008-02-17 Christian Franke <franke@computer.org>
11490 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
11492 2008-02-17 Robert Millan <rmh@aybabtu.com>
11494 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
11495 set `first_start' to 0 for non-PC/MSDOS partition maps.
11497 2008-02-16 Robert Millan <rmh@aybabtu.com>
11499 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
11500 do not assume partition map is PC/MSDOS before performing checks that
11501 are specific to that layout.
11503 2008-02-13 Robert Millan <rmh@aybabtu.com>
11505 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
11506 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
11507 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
11509 2008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
11511 * configure.ac: Only a cosmetic change on the handling of
11512 -fno-stack-protector.
11514 2008-02-12 Alexandre Boeglin <alex@boeglin.org>
11516 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
11517 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
11519 (grub_install_SOURCES): Add halt.mod and reboot.mod.
11520 (halt_mod_SOURCES): New variable.
11521 (halt_mod_CFLAGS): Likewise.
11522 (halt_mod_LDFLAGS): Likewise.
11523 (reboot_mod_SOURCES): Likewise.
11524 (reboot_mod_CFLAGS): Likewise.
11525 (reboot_mod_LDFLAGS): Likewise.
11527 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
11528 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
11530 (halt_mod_SOURCES): Likewise.
11531 (reboot_mod_SOURCES): Likewise.
11533 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
11534 commands/i386/pc/reboot.c by commands/reboot.c.
11535 (reboot_mod_SOURCES): Likewise.
11537 * commands/i386/pc/reboot.c: merge this file ...
11539 * commands/ieee1275/reboot.c: ... and this file ...
11541 * commands/reboot.c: ... to this file.
11542 Add some precompiler directive to include the correct header for
11545 * commands/ieee1275/halt.c: move this file ...
11547 * commands/halt.c: ... to here.
11548 Add some precompiler directive to include the correct header for
11551 * include/grub/efi/efi.h (grub_reboot): New function declaration.
11552 (grub_halt): Likewise.
11554 * kern/efi/efi.c (grub_reboot): New function.
11555 (grub_halt): Likewise.
11557 2008-02-12 Robert Millan <rmh@aybabtu.com>
11559 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
11560 /dev (like it is done for /dev/mapper). This doesn't provide support
11561 for EVMS, but at least it is now easy to identify the problem when it
11564 2008-02-11 Robert Millan <rmh@aybabtu.com>
11566 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
11567 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
11568 comparing it with -1, not 0.
11570 2008-02-10 Robert Millan <rmh@aybabtu.com>
11572 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
11574 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11575 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
11577 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
11578 `disk/lvm.c' to the end of the list.
11579 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
11580 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
11582 2008-02-10 Robert Millan <rmh@aybabtu.com>
11584 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
11585 grub_print_error() instead. This will let user know why we're entering
11587 Based on suggestions from Sam Morris.
11589 2008-02-10 Alexandre Boeglin <alex@boeglin.org>
11591 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
11592 on remaining N args, instead of "--" arg N times.
11594 2008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
11596 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
11597 (fill_with_default_glyph): Changed to use unknown_glyph for fill
11598 pattern for unknown glyphs.
11600 2008-02-09 Robert Millan <rmh@aybabtu.com>
11602 * configure.ac: Probe for `help2man'.
11603 * Makefile.in (builddir): New variable.
11604 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
11605 or otherwise add a few flags/options to it.
11606 (install-local): For every executable utility or script that is
11607 installed, invoke $(HELP2MAN) to install a manpage based on --help
11610 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
11611 that it doesn't prevent --help from working in build tree.
11613 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
11614 with `bug-grub@gnu.org'.
11615 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
11616 * util/update-grub.in (usage): New function.
11617 Implement proper argument check, with support for --help and --version
11618 (as well as existing -y).
11620 2008-02-09 Christian Franke <franke@computer.org>
11622 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
11623 avoid overwriting previous output.
11624 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
11626 2008-02-09 Robert Millan <rmh@aybabtu.com>
11628 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
11631 2008-02-09 Robert Millan <rmh@aybabtu.com>
11633 * commands/sleep.c: New file.
11634 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
11635 (sleep_mod_SOURCES): New variable.
11636 (sleep_mod_CFLAGS): Likewise.
11637 (sleep_mod_LDFLAGS): Likewise.
11639 2008-02-09 Robert Millan <rmh@aybabtu.com>
11641 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
11642 situations in which we can deduce the RAID size and the superblock
11645 2008-02-09 Robert Millan <rmh@aybabtu.com>
11647 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
11648 and return a grub_diskmemberlist_t composed of LVM physical volumes.
11649 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
11651 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
11652 and return a grub_diskmemberlist_t composed of physical array members.
11653 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
11655 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
11657 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
11658 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
11659 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
11661 * util/grub-probe.c (probe): Move partmap probing code from here ...
11662 (probe_partmap): ... to here.
11663 (probe): Use probe_partmap() once for the disk we're probing, and
11664 additionally, when such disk contains a memberlist() struct member,
11665 once for each disk that is contained in the structure returned by
11668 2008-02-09 Robert Millan <rmh@aybabtu.com>
11670 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
11671 environment variable to 'all' in order to obtain debug output from
11673 * util/i386/pc/grub-setup.c (main): Likewise.
11675 2008-02-08 Robert Millan <rmh@aybabtu.com>
11677 * disk/raid.c (grub_raid_scan_device): Check for
11678 `array->device[sb.this_disk.number]' rather than for
11679 `array->device[sb.this_disk.number]->name', since the latter is not
11680 guaranteed to be accessible.
11682 2008-02-08 Robert Millan <rmh@aybabtu.com>
11684 * disk/raid.c: Update copyright.
11685 * fs/cpio.c: Likewise.
11686 * include/grub/raid.h: Likewise.
11687 * loader/i386/pc/multiboot.c: Likewise.
11688 * util/hostfs.c: Likewise.
11690 2008-02-08 Robert Millan <rmh@aybabtu.com>
11692 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
11693 to a grub_disk_t array.
11694 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
11696 (grub_raid_scan_device): Replace `device[x].name' accesses with
11697 `device[x]->name'. Simplify initialization of `array->device[x]'.
11699 2008-02-08 Robert Millan <rmh@aybabtu.com>
11701 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
11702 grub_dprintf() calls.
11703 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
11706 2008-02-07 Christian Franke <franke@computer.org>
11708 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
11709 instead of fseek and ftell to support large files.
11710 (grub_hostfs_read): Likewise.
11712 2008-02-07 Robert Millan <rmh@aybabtu.com>
11714 Patch from Jeroen Dekkers.
11715 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
11716 failure, since successfully reading all array members might not be
11719 2008-02-06 Robert Millan <rmh@aybabtu.com>
11721 * util/grub-probe.c (probe): Simplify partmap probing (with the
11722 assumption that the first word up to the underscore equals to
11725 2008-02-06 Christian Franke <franke@computer.org>
11727 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
11728 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
11729 last block of a cpio or tar stream.
11730 Check for "TRAILER!!!" instead of any empty data
11731 block to detect last block of a cpio stream.
11732 (grub_cpio_dir): Fix constness of variable np.
11733 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
11734 cpio or tar trailer is detected. This fixes a crash
11735 on open of a non existing file.
11737 2008-02-05 Bean <bean123ch@gmail.com>
11739 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
11741 (grub_multiboot_load_elf64): Likewise.
11742 (grub_multiboot): Initialize mbi structure.
11744 * util/grub-fstest.c: Don't include unused header file script.h.
11746 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
11748 (grub_fstest_SOURCES): Likewise.
11750 2008-02-05 Robert Millan <rmh@aybabtu.com>
11752 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
11753 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
11754 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
11755 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
11757 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
11758 (translation_table): Replace hardcoded values with macros
11759 provided by `<grub/term.h>'.
11761 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
11762 (keyboard_map): Correct/add a few values, with macros provided
11763 by `<grub/term.h>'.
11764 (keyboard_map_shift): Zero values that don't differ from their
11765 `keyboard_map' equivalents.
11766 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
11767 Discard the second scan code that is always sent by Caps lock.
11768 Only use `keyboard_map_shift' when it provides a non-zero value,
11769 otherwise fallback to `keyboard_map'.
11771 2008-02-04 Bean <bean123ch@gmail.com>
11773 * Makefile.in (enable_grub_fstest): New variable.
11775 * conf/common.rmk (grub_fstest_init.lst): New rule.
11776 (grub_fstest_init.h): Likewise.
11777 (grub_fstest_init.c): Likewise.
11778 (util/grub-fstest.c_DEPENDENCIES): New variable.
11779 (grub_fstest_SOURCES): Likewise.
11781 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
11783 * util/grub-fstest.c: New file.
11785 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
11787 Make grub-setup handle a separate root device.
11789 * util/i386/pc/grub-setup.c (setup): Always open the root device,
11790 so that the root device can be compared with the destination
11792 When embedding the core image, if the root and destination devices
11793 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
11795 When not embedding, set ROOT_DRIVE to 0xFF.
11797 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
11799 Add support for having a grub directory in a different drive. This
11800 is still only the data handling part.
11802 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
11803 (codestart): Save %dh in GRUB_ROOT_DRIVE.
11804 (grub_root_drive): New variable.
11806 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
11807 instead of GRUB_BOOT_DRIVE to construct a device name. Set
11808 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
11811 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
11813 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
11815 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
11817 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
11818 is bogus, because PXE booting does not specify any drive
11821 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
11822 am not sure if this is really correct.
11824 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
11825 is always identical to the boot drive when booting from a CD.
11827 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
11829 (root_drive): New variable.
11830 (real_start): Unconditionally set %dh to ROOT_DRIVE.
11831 (setup_sectors): Push %dx right after popping it, because %dh will
11833 (copy_buffer): Restore %dx.
11835 2008-02-03 Robert Millan <rmh@aybabtu.com>
11837 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
11838 use `cdboot.img' for cdrom images.
11840 2008-02-03 Robert Millan <rmh@aybabtu.com>
11842 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
11843 only setup gfxterm when `font' command has succeeded.
11845 2008-02-03 Robert Millan <rmh@aybabtu.com>
11847 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
11848 (grub_rescue_cmd_multiboot_loader)
11849 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
11851 2008-02-03 Pavel Roskin <proski@gnu.org>
11853 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
11854 %edx and %esi from stack only after grub_gate_a20() is called.
11855 grub_gate_a20() clobbers %edx.
11857 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
11859 * configure.ac (AC_INIT): Bumped to 1.96.
11861 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
11862 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
11863 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
11864 video/readers/png.c.
11866 2008-02-03 Bean <bean123ch@gmail.com>
11868 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
11869 (cdboot_img_SOURCES): New variable.
11870 (cdboot_img_ASFLAGS): New variable.
11871 (cdboot_img_LDFLAGS): New variable.
11873 * boot/i386/pc/cdboot.S: New file.
11875 * disk/i386/pc/biosdisk.c (cd_start): New variable.
11876 (cd_count): Likewise.
11877 (grub_biosdisk_get_drive): Add support for cd device.
11878 (grub_biosdisk_call_hook): Likewise.
11879 (grub_biosdisk_iterate): Likewise.
11880 (grub_biosdisk_open): Likewise.
11881 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
11882 (grub_biosdisk_rw): Support reading from cd device.
11883 (GRUB_MOD_INIT): Iterate cd devices.
11885 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
11886 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
11887 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
11889 * kern/i386/pc/init.c (make_install_device): Check for cd device.
11891 2008-02-02 Robert Millan <rmh@aybabtu.com>
11893 * commands/read.c: New file.
11894 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
11895 (read_mod_SOURCES): New variable.
11896 (read_mod_CFLAGS): Likewise.
11897 (read_mod_LDFLAGS): Likewise.
11899 2008-02-02 Robert Millan <rmh@aybabtu.com>
11901 * normal/main.c (grub_normal_execute): Check for `menu->size' when
11902 determining whether menu has to be displayed.
11904 2008-02-02 Marco Gerards <marco@gnu.org>
11906 * bus/pci.c: New file.
11908 * include/grub/pci.h: Likewise.
11910 * include/grub/i386/pc/pci.h: Likewise.
11912 * commands/lspci.c: Likewise.
11914 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
11916 (pci_mod_SOURCES): New variable.
11917 (pci_mod_CFLAGS): Likewise.
11918 (pci_mod_LDFLAGS): Likewise.
11919 (lspci_mod_SOURCES): Likewise.
11920 (lspci_mod_CFLAGS): Likewise.
11921 (lspci_mod_LDFLAGS): Likewise.
11923 2008-02-02 Bean <bean123ch@gmail.com>
11925 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
11926 (grub_ufs_get_file_block): Fix indirect block calculation problem.
11928 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
11929 (grub_xfs_btree_node): New structure.
11930 (grub_xfs_btree_root): New structure.
11931 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
11932 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
11933 (GRUB_XFS_EXTENT_BLOCK): Likewise.
11934 (GRUB_XFS_EXTENT_SIZE): Likewise.
11935 (grub_xfs_read_block): Support btree format type.
11936 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
11937 Use directory block as basic unit.
11939 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
11941 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
11942 __attribute__ ((__regparm__ (1))).
11944 2008-02-01 Robert Millan <rmh@aybabtu.com>
11946 Correct a mistake in previous commit.
11948 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
11950 (normal/command.c_DEPENDENCIES): New variable.
11952 2008-02-01 Robert Millan <rmh@aybabtu.com>
11954 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
11956 (normal/command.c_DEPENDENCIES): New variable.
11957 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
11958 * conf/i386-ieee1275.rmk: Likewise.
11959 * conf/i386-linuxbios.rmk: Likewise.
11960 * conf/i386-pc.rmk: Likewise.
11961 * conf/sparc64-ieee1275.rmk: Likewise.
11962 * conf/powerpc-ieee1275.rmk: Likewise.
11963 (grub_emu_SOURCES): Add `fs/fshelp.c'.
11965 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
11967 2008-02-01 Robert Millan <rmh@aybabtu.com>
11969 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
11970 call at beginning of function.
11972 2008-01-31 Pavel Roskin <proski@gnu.org>
11974 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
11975 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
11976 (grub_mkrescue_SOURCES): Likewise.
11977 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
11979 2008-01-30 Robert Millan <rmh@aybabtu.com>
11981 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
11982 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
11983 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
11984 (grub_probe_SOURCES): ... to here.
11986 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
11987 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
11988 * conf/i386-ieee1275.rmk: Likewise.
11989 * conf/i386-linuxbios.rmk: Likewise.
11990 * conf/powerpc-ieee1275.rmk: Likewise.
11992 2008-01-30 Tristan Gingold <gingold@free.fr>
11994 * kern/rescue.c: Silently accept empty lines.
11996 2008-01-29 Bean <bean123ch@gmail.com>
11998 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
11999 (real_code_2): Code cleanup and change comment style.
12000 (move_memory): Avoid using 32-bit address mode.
12002 2008-01-29 Bean <bean123ch@gmail.com>
12004 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
12005 (png_mod_SOURCES): New variable.
12006 (png_mod_CFLAGS): Likewise.
12007 (png_mod_LDFLAGS): Likewise.
12009 * video/readers/png.c: New file.
12011 2008-01-28 Robert Millan <rmh@aybabtu.com>
12013 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
12014 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
12015 `ifndef GRUB_MOD_GAP' hack.
12016 * util/elf/grub-mkimage.c (add_segments): Likewise.
12018 2008-01-27 Robert Millan <rmh@aybabtu.com>
12020 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
12021 `GRUB_MOD_GAP' for platforms in which it's not defined.
12022 * util/elf/grub-mkimage.c (add_segments): Likewise.
12024 2008-01-27 Robert Millan <rmh@aybabtu.com>
12026 Get grub-emu to build again (including parallel builds).
12028 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
12030 (util/grub-emu.c_DEPENDENCIES): ... this, ...
12031 (normal/execute.c_DEPENDENCIES): ... this, ...
12032 (grub-emu_DEPENDENCIES): ... and this.
12034 * conf/i386-efi.rmk: Likewise.
12035 * conf/i386-linuxbios.rmk: Likewise.
12036 * conf/i386-ieee1275.rmk: Likewise.
12037 * conf/powerpc-ieee1275.rmk: Likewise.
12038 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
12040 2008-01-27 Robert Millan <rmh@aybabtu.com>
12042 * NEWS: Add a few items.
12044 2008-01-27 Robert Millan <rmh@aybabtu.com>
12046 Fix parallel builds with grub-emu. Based on earlier commit for
12047 grub-probe and grub-setup.
12049 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
12050 (util/grub-emu.c_DEPENDENCIES): ... this.
12051 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
12052 (util/grub-emu.c_DEPENDENCIES): ... this.
12053 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
12054 (util/grub-emu.c_DEPENDENCIES): ... this.
12055 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
12056 (util/grub-emu.c_DEPENDENCIES): ... this.
12057 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
12058 (util/grub-emu.c_DEPENDENCIES): ... this.
12060 2008-01-27 Pavel Roskin <proski@gnu.org>
12062 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
12063 to create a gap between _end and the modules added to the image
12064 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
12065 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
12066 * util/elf/grub-mkimage.c (add_segments): Likewise.
12068 2008-01-26 Pavel Roskin <proski@gnu.org>
12070 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
12071 just return an error.
12073 2008-01-26 Bean <bean123ch@gmail.com>
12075 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
12076 (grub_reiserfs_get_item): Save offset of the next item.
12077 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
12079 2008-01-25 Robert Millan <rmh@aybabtu.com>
12081 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
12082 make all filesystem sources appear together (possibly fixing omissions
12084 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
12085 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12086 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
12087 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12089 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
12091 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
12092 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
12093 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
12094 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
12096 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
12097 (probe): Add a sanity check to make sure of our ability to read
12098 requested files when probing for filesystem type.
12100 * genmk.rb: Update copyright year (2007).
12102 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
12103 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
12104 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
12105 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
12106 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
12107 : Remove function prototypes.
12109 2008-01-25 Robert Millan <rmh@aybabtu.com>
12111 Revert my previous commits (based on wrong assumption of how grub_errno
12114 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
12115 * kern/file.c (grub_file_open): Likewise.
12117 2008-01-24 Pavel Roskin <proski@gnu.org>
12119 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
12120 that hang if GRUB tries to setup colors.
12121 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
12122 colors for firmwares that don't support it.
12123 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
12124 Recognize Open Hack'Ware, set flags to work around its
12127 2008-01-24 Robert Millan <rmh@aybabtu.com>
12129 * kern/file.c (grub_file_open): Do not account previous failures of
12130 unrelated functions when grub_errno is checked for.
12131 Reported by Oleg Strikov.
12133 2008-01-24 Bean <bean123ch@gmail.com>
12135 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
12136 (grub_ufs_sblock): New member volume name.
12137 (grub_ufs_find_file): Fix string copy bug.
12138 (grub_ufs_label): Implement this function properly.
12140 * fs/hfs.c (grub_hfs_cnid_type): New enum.
12141 (grub_hfs_iterate_records): Use the correct file number for extents
12142 and catalog file. Fix problem in next index calculation.
12143 (grub_hfs_find_node): Replace recursive function call with loop.
12144 (grub_hfs_iterate_dir): Replace recursive function call with loop.
12146 2008-01-23 Robert Millan <rmh@aybabtu.com>
12148 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
12149 `<grub/symbol.h>' and `<grub/multiboot.h>'.
12150 (grub_multiboot2_real_boot): New function prototype.
12152 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
12153 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
12155 * kern/i386/ieee1275/init.c (grub_os_area_addr)
12156 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
12158 2008-01-23 Robert Millan <rmh@aybabtu.com>
12160 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
12161 #ifdef'ed out grub_printf().
12163 2008-01-23 Robert Millan <rmh@aybabtu.com>
12165 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
12166 grub_dprintf calls, since they make "debug=all" mode unusable.
12167 (grub_console_checkkey): Likewise.
12169 2008-01-23 Robert Millan <rmh@aybabtu.com>
12171 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
12172 `term/i386/pc/at_keyboard.c'.
12173 (pkglib_MODULES): Add `serial.mod'.
12174 (serial_mod_SOURCES): New variable.
12175 (serial_mod_CFLAGS): Likewise.
12176 (serial_mod_LDFLAGS): Likewise.
12178 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
12179 `<grub/powerpc/ieee1275/console.h>'.
12180 (grub_keyboard_controller_init): New function prototype.
12181 (grub_console_checkkey): Likewise.
12182 (grub_console_getkey): Likewise.
12184 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
12187 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
12188 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
12190 2008-01-23 Robert Millan <rmh@aybabtu.com>
12192 * kern/i386/pc/init.c (make_install_device): When memdisk image is
12193 present, "(memdisk)/boot/grub" becomes the default prefix.
12195 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
12196 a memdisk tarball with all the modules. Add --overlay=DIR option that
12197 allows users to overlay additional files into the image.
12199 2008-01-23 Robert Millan <rmh@aybabtu.com>
12201 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
12202 and `machine/memory.h'.
12203 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
12204 (_multiboot_mod_SOURCES): New variable.
12205 (_multiboot_mod_CFLAGS): Likewise.
12206 (_multiboot_mod_LDFLAGS): Likewise.
12207 (multiboot_mod_SOURCES): Likewise.
12208 (multiboot_mod_CFLAGS): Likewise.
12209 (multiboot_mod_LDFLAGS): Likewise.
12211 * include/grub/i386/ieee1275/loader.h: New file.
12213 * include/grub/i386/ieee1275/machine.h: Likewise.
12215 * include/grub/i386/ieee1275/memory.h: Likewise.
12217 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
12218 variable declaration.
12219 (grub_os_area_size): Likewise.
12221 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
12222 (grub_lower_mem, grub_upper_mem): New variables.
12223 (grub_stop_floppy): New function (just to make
12224 grub_multiboot2_real_boot() happy).
12226 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
12227 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
12228 (grub_stop): New function.
12229 Include `"../realmode.S"' and `"../loader.S"'.
12231 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
12232 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
12234 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
12235 rely on grub_multiboot2_real_boot() for final boot.
12237 2008-01-22 Robert Millan <rmh@aybabtu.com>
12239 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
12240 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
12241 device that doesn't look like an SD card.
12242 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
12243 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
12244 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
12245 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
12248 2008-01-22 Robert Millan <rmh@aybabtu.com>
12250 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
12251 avoid claiming over our own code.
12253 2008-01-22 Bean <bean123ch@gmail.com>
12255 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
12256 (jpeg_mod_SOURCES): New variable.
12257 (jpeg_mod_CFLAGS): Likewise.
12258 (jpeg_mod_LDFLAGS): Likewise.
12260 * video/readers/jpeg.c : New file.
12262 2008-01-22 Bean <bean123ch@gmail.com>
12264 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
12265 there are no more items.
12267 2008-01-21 Robert Millan <rmh@aybabtu.com>
12269 * kern/mm.c (grub_mm_init_region): Improve debug message.
12271 2008-01-21 Robert Millan <rmh@aybabtu.com>
12273 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
12274 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
12276 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
12278 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
12279 Indicates start of upper memory.
12280 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
12281 (generate_image): Abort when image size is big enough to corrupt
12284 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
12285 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
12286 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
12287 instead of hardcoding 0xA0000.
12288 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
12289 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
12290 instead of hardcoding 0xA0000.
12292 2008-01-21 Robert Millan <rmh@aybabtu.com>
12294 * disk/memdisk.c (memdisk_size): New variable.
12295 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
12297 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
12298 image to dynamic memory.
12299 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
12300 `memdisk_size'. Free memdisk block.
12302 2008-01-21 Robert Millan <rmh@aybabtu.com>
12304 Fix detection of very small filesystems (like tar).
12306 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
12307 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
12308 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
12309 a problem with this disk).
12311 2008-01-21 Robert Millan <rmh@aybabtu.com>
12313 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
12314 on grub_biosdisk_rw_standard() error.
12316 2008-01-21 Robert Millan <rmh@aybabtu.com>
12318 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
12320 * kern/elf.c: Likewise.
12321 * kern/ieee1275/ieee1275.c: Likewise.
12322 * kern/powerpc/ieee1275/openfw.c: Likewise.
12323 * term/ieee1275/ofconsole.c: Likewise.
12325 2008-01-21 Robert Millan <rmh@aybabtu.com>
12327 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
12329 * include/grub/kernel.h (grub_arch_memdisk_addr)
12330 (grub_arch_memdisk_size): Moved from here ...
12332 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
12333 (grub_arch_memdisk_size): ... to here.
12335 2008-01-21 Robert Millan <rmh@aybabtu.com>
12337 Mostly based on bugfix from Bean.
12339 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
12340 attribute with hook() parameter.
12341 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
12343 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
12344 attribute with hook() parameter.
12345 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
12348 2008-01-21 Robert Millan <rmh@aybabtu.com>
12350 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
12351 (pkglib_MODULES): Add `memdisk.mod'.
12352 (memdisk_mod_SOURCES): New variable.
12353 (memdisk_mod_CFLAGS): Likewise.
12354 (memdisk_mod_LDFLAGS): Likewise.
12356 * disk/memdisk.c: New file.
12358 * include/grub/disk.h (grub_disk_dev_id): Add
12359 `GRUB_DISK_DEVICE_MEMDISK_ID'.
12361 * include/grub/i386/pc/kernel.h
12362 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
12363 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
12364 (grub_kernel_image_size): New variable declaration.
12365 (grub_total_module_size): Likewise.
12366 (grub_memdisk_image_size): Likewise.
12368 * include/grub/i386/pc/memory.h
12369 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
12371 * include/grub/kernel.h: Include `<grub/symbol.h>'.
12372 (grub_arch_memdisk_addr): New variable declaration.
12373 (grub_arch_memdisk_size): Likewise.
12375 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
12376 (grub_arch_memdisk_size): Likewise.
12378 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
12379 (codestart): Replace hardcoded `0x100000' with
12380 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
12382 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
12383 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
12384 not NULL, append the contents of the file it refers to, at the end of
12385 the compressed kernel image. Initialize `grub_memdisk_image_size'
12386 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
12387 (options): Add "memdisk"|'m' option.
12388 (main): Parse --memdisk|-m option, and pass user-provided path as
12389 parameter to generate_image().
12391 2008-01-20 Robert Millan <rmh@aybabtu.com>
12393 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
12394 grub_dprintf() calls from here ...
12395 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
12397 2008-01-20 Robert Millan <rmh@aybabtu.com>
12399 Fix detection of "real mode" when /options/real-mode? doesn't exist.
12401 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
12403 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
12404 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
12405 `GRUB_IEEE1275_FLAG_REAL_MODE'.
12406 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
12408 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
12409 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
12411 2008-01-19 Robert Millan <rmh@aybabtu.com>
12413 Get rid of confusing function (superseded by
12414 `grub_ieee1275_get_integer_property')
12415 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
12417 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
12419 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
12420 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
12421 in native endianness from grub_ieee1275_get_integer_property().
12423 2008-01-19 Robert Millan <rmh@aybabtu.com>
12425 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
12426 command after "shut-down", since implementations differ on which
12427 the command for halt is.
12429 2008-01-19 Robert Millan <rmh@aybabtu.com>
12431 * include/grub/i386/linuxbios/console.h: Add header protection.
12432 (grub_keyboard_controller_init): New function prototype.
12433 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
12434 (KEYBOARD_COMMAND_READ): Likewise.
12435 (KEYBOARD_COMMAND_WRITE): Likewise.
12436 (KEYBOARD_SCANCODE_SET1): Likewise.
12437 (grub_keyboard_controller_write): New function.
12438 (grub_keyboard_controller_read): Likewise.
12439 (grub_keyboard_controller_init): Likewise.
12441 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
12442 (grub_console_init): On coreboot/LinuxBIOS, call
12443 grub_keyboard_controller_init().
12445 2008-01-19 Robert Millan <rmh@aybabtu.com>
12447 PowerPC changes provided by Pavel Roskin.
12449 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
12450 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
12451 don't rely on cmain() doing it.
12452 * kern/i386/ieee1275/startup.S (_start): Store %eax in
12453 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
12455 2008-01-16 Robert Millan <rmh@aybabtu.com>
12457 * include/grub/i386/linuxbios/memory.h
12458 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
12459 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
12460 receive `table_header' as argument. Instead, probe for it in the
12461 known memory ranges where it can be present.
12462 (grub_available_iterate): Do not pass a fixed `table_header' address
12463 to grub_linuxbios_table_iterate().
12465 2008-01-15 Robert Millan <rmh@aybabtu.com>
12467 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
12468 * conf/i386-ieee1275.rmk: New file.
12469 * include/grub/i386/ieee1275/console.h: Likewise.
12470 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
12471 * include/grub/i386/ieee1275/kernel.h: Likewise.
12472 * include/grub/i386/ieee1275/time.h: Likewise.
12473 * kern/i386/ieee1275/init.c: Likewise.
12474 * kern/i386/ieee1275/startup.S: Likewise.
12476 2008-01-15 Robert Millan <rmh@aybabtu.com>
12478 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
12479 when pointers are 32-bit (but still do set it to one when they are
12482 2008-01-15 Robert Millan <rmh@aybabtu.com>
12484 * include/grub/ieee1275/ieee1275.h
12485 (grub_ieee1275_get_integer_property): New function prototype.
12487 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
12488 (grub_ieee1275_get_integer_property): New function. Wraps around
12489 grub_ieee1275_get_property() to handle endianness.
12491 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
12492 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
12494 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
12495 (grub_map): Likewise.
12496 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
12498 2008-01-15 Bean <bean123ch@gmail.com>
12500 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
12501 (grub_script_execute_cmdline): Reset grub_errno.
12503 * normal/main.c (read_config_file): Reset grub_errno.
12505 * normal/parse.y (script_init): New.
12506 (script): Move function and menuentry here.
12508 (command): Add delimiter at the end of command.
12509 (commands): Adjust to match the new command.
12510 (commandblock): Remove grub_script_lexer_record_start.
12511 (menuentry): Add grub_script_lexer_record_start, use the new commands.
12512 (if): Use the new commands.
12514 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
12516 2008-01-15 Robert Millan <rmh@aybabtu.com>
12518 * normal/menu.c (run_menu): Move timeout message from here ...
12519 (print_timeout): ... to here.
12520 (run_menu): Use print_timeout() once during initial draw to print
12521 the whole message, and again in every clock tick to update only
12522 the number of seconds.
12524 2008-01-15 Robert Millan <rmh@aybabtu.com>
12526 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
12527 actual size of `available' from grub_ieee1275_get_property(), and
12528 restrict parsing to that bound.
12530 2008-01-15 Christian Franke <franke@computer.org>
12532 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
12533 (argp_program_version): Remove variable.
12534 (argp_program_bug_address): Likewise.
12535 (options): Convert from struct argp_option to struct option.
12536 (struct arguments): Remove.
12537 (parse_opt): Remove.
12538 (usage): New function.
12539 (main): Replace struct args members by simple variables.
12540 Replace argp_parse() by getopt_long().
12541 Add switch to evaluate options.
12542 Add missing "(...)" around root_dev in prefix string.
12544 2008-01-14 Robert Millan <rmh@aybabtu.com>
12546 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
12547 for grub_ieee1275_exit(), in order to improve portability.
12549 2008-01-14 Robert Millan <rmh@aybabtu.com>
12551 * util/grub.d/10_linux.in (prefix): Define.
12552 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
12554 2008-01-13 Pavel Roskin <proski@gnu.org>
12556 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
12557 grub_errno if no errors have been detected.
12559 2008-01-12 Robert Millan <rmh@aybabtu.com>
12561 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
12562 (grub_util_get_dev_abstraction): New function prototype.
12564 * util/getroot.c: Include `<grub/util/getroot.h>'
12565 (grub_util_get_grub_dev): Move detection of abstraction type to ...
12566 (grub_util_get_dev_abstraction): ... here (new function).
12568 * util/grub-probe.c: Convert PRINT_* to an enum. Add
12569 `PRINT_ABSTRACTION'.
12570 (probe): Probe for abstraction type when requested.
12571 (main): Understand `--target=abstraction'.
12573 * util/i386/efi/grub-install.in: Add abstraction module to core
12574 image when it is found to be necessary.
12575 * util/i386/pc/grub-install.in: Likewise.
12576 * util/powerpc/ieee1275/grub-install.in: Likewise.
12578 * util/update-grub_lib.in (font_path): Return system path without
12579 converting to GRUB path.
12580 * util/update-grub.in: Convert system path returned by font_path()
12581 to a GRUB path. Use `grub-probe -t abstraction' to determine what
12582 abstraction module is needed for loading fonts (if any). Export
12583 that as `GRUB_PRELOAD_MODULES'.
12584 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
12587 2008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
12589 Remove some unused code from reiserfs.
12591 * fs/reiserfs.c (struct grub_reiserfs_key)
12592 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
12593 (struct grub_reiserfs_node_body): Removed.
12594 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
12596 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
12598 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
12600 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
12602 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
12604 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
12606 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
12607 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
12608 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
12610 2008-01-10 Robert Millan <rmh@aybabtu.com>
12612 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
12613 Determines if a file is garbage left by packaging systems, etc.
12614 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
12615 for processing /etc/grub.d scripts.
12616 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
12617 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
12618 as a condition for processing Linux images.
12620 2008-01-10 Pavel Roskin <proski@gnu.org>
12622 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
12623 to compile reiserfs.c on PowerPC.
12625 2008-01-10 Robert Millan <rmh@aybabtu.com>
12627 * kern/device.c (grub_device_iterate): Do not abort device iteration
12628 when one of the devices cannot be opened.
12629 * kern/disk.c (grub_disk_open): Do not account previous failures of
12630 unrelated functions when grub_errno is checked for.
12632 2008-01-08 Robert Millan <rmh@aybabtu.com>
12634 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
12635 `! grub_linux_is_bzimage', change order of address comparison to make
12636 it more intuitive, and improve "too big zImage" error message.
12638 2008-01-08 Robert Millan <rmh@aybabtu.com>
12640 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
12641 `$(update-grub_DATA)'.
12642 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
12645 2008-01-07 Robert Millan <rmh@aybabtu.com>
12647 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
12648 which instruction is modified by grub-setup during installation
12649 (since it wasn't obvious by only looking at this file).
12651 2008-01-07 Robert Millan <rmh@aybabtu.com>
12653 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
12654 listing actual TODO items.
12656 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
12658 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
12660 (grub_reiserfs_get_key_offset): Likewise.
12661 (grub_reiserfs_set_key_offset): Likewise.
12662 (grub_reiserfs_set_key_type): Likewise.
12663 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
12665 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
12666 better to remove the bitfield version completely.
12668 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
12670 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
12671 allocated from the heap, due to the fshelp implementation.
12672 (grub_reiserfs_dir): Free NODE, due to the same reason.
12674 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
12676 Mostly from Vincent Pelletier:
12678 * fs/reiserfs.c: New file.
12680 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
12681 (reiserfs_mod_SOURCES): New variable.
12682 (reiserfs_mod_CFLAGS): Likewise.
12683 (reiserfs_mod_LDFLAGS): Likewise.
12685 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
12686 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
12687 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
12690 2008-01-06 Robert Millan <rmh@aybabtu.com>
12692 * normal/color.c: Remove `<grub/env.h>'.
12694 2008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
12696 * include/grub/normal.h: Include <grub/env.h>.
12698 2008-01-05 Robert Millan <rmh@aybabtu.com>
12700 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
12701 usage example with `(hd0,1)'.
12702 Reported by Samuel Thibault.
12704 2008-01-05 Robert Millan <rmh@aybabtu.com>
12706 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
12707 (grub_linux_boot_zimage): Rename to ...
12708 (grub_linux_boot): ... this.
12709 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
12710 (grub_linux_boot_zimage): Conditionalize zImage copy.
12712 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
12713 (grub_linux_boot_bzimage): Remove prototype.
12714 (grub_linux_boot_zimage): Rename to ...
12715 (grub_linux_boot): ... this.
12717 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
12718 (grub_linux_boot): Remove function.
12720 2008-01-05 Robert Millan <rmh@aybabtu.com>
12722 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
12723 (grub_env_write_color_highlight): Likewise.
12724 (grub_wait_after_message): Likewise.
12726 * normal/color.c: New file.
12728 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12729 (normal_mod_DEPENDENCIES): Likewise.
12731 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12732 (normal_mod_DEPENDENCIES): Likewise.
12734 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12735 (normal_mod_DEPENDENCIES): Likewise.
12737 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12738 (normal_mod_DEPENDENCIES): Likewise.
12740 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
12741 for waiting after a message is printed.
12742 * normal/main.c (read_config_file): Likewise.
12743 (grub_normal_init): Register grub_env_write_color_normal() and
12744 grub_env_write_color_highlight() hooks. Mark `color_normal' and
12745 `color_highlight' variables as global.
12747 * normal/menu.c (grub_wait_after_message): New function.
12748 (grub_color_menu_normal): New variable. Replaces ...
12749 (GRUB_COLOR_MENU_NORMAL): ... this macro.
12750 (grub_color_menu_highlight): New variable. Replaces ...
12751 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
12752 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
12753 `GRUB_TERM_COLOR_STANDARD'.
12754 (print_message): Use `grub_setcolorstate' to reload colors. Rename
12755 `normal_code' and `highlight_code' to `old_color_normal' and
12756 `old_color_highlight', respectively.
12757 (grub_menu_init_page): Update colors when drawing the menu, based on
12758 `menu_color_normal' and `menu_color_highlight' variables.
12759 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
12760 a message is printed.
12762 2008-01-05 Robert Millan <rmh@aybabtu.com>
12764 * kern/env.c (grub_env_context_open): Propagate hooks for global
12765 variables to new context.
12767 * kern/main.c (grub_set_root_dev): Export `root' variable.
12769 2008-01-05 Robert Millan <rmh@aybabtu.com>
12771 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
12772 discs unconditionally, since udev and others have options to provide
12775 2008-01-05 Robert Millan <rmh@aybabtu.com>
12777 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
12779 2008-01-04 Christian Franke <franke@computer.org>
12781 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
12784 2008-01-03 Pavel Roskin <proski@gnu.org>
12786 * kern/i386/linuxbios/init.c: Put "void" to all function
12787 declarations with no arguments.
12788 * kern/powerpc/ieee1275/init.c: Likewise.
12789 * term/i386/pc/at_keyboard.c: Likewise.
12790 * term/i386/pc/vga_text.c: Likewise.
12791 * util/grub-mkdevicemap.c: Likewise.
12793 2008-01-02 Robert Millan <rmh@aybabtu.com>
12795 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
12796 message when loaded image is out of bounds.
12797 (grub_multiboot_load_elf64): Likewise.
12799 2008-01-02 Pavel Roskin <proski@gnu.org>
12801 * util/grub.d/10_linux.in: Try version without ".old" when
12802 looking for initrd. It's better to use initrd from the newer
12803 kernel of the same version than no initrd at all.
12805 2008-01-01 Robert Millan <rmh@aybabtu.com>
12807 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
12809 2008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
12811 * include/grub/video.h: Added grub_video_unmap_color and
12812 grub_video_get_active_render_target.
12813 (grub_video_adapter): Added unmap_color and get_active_render_target.
12815 * video/video.c: Added grub_video_unmap_color and
12816 grub_video_get_active_render_target.
12817 (grub_video_get_info): Changed method to accept NULL pointer as an
12818 argument to allow detection of active video adapter.
12820 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
12821 grub_video_vbe_unmap_color_int.
12822 Added grub_video_vbe_unmap_color and
12823 grub_video_vbe_get_active_render_target.
12824 (grub_video_vbe_adapter): Added unmap_color and
12825 get_active_render_target.
12827 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
12828 with grub_video_vbe_unmap_color_int.
12830 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
12831 (DEFAULT_NORMAL_COLOR): Likewise.
12832 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
12833 (DEFAULT_FG_COLOR): Removed.
12834 (DEFAULT_BG_COLOR): Likewise.
12835 (DEFAULT_CURSOR_COLOR): Changed value.
12836 (grub_virtual_screen): Added standard_color_setting,
12837 normal_color_setting, highlight_color_setting and term_color.
12838 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
12839 (bitmap_width): Added.
12840 (bitmap_height): Likewise.
12841 (bitmap): Likewise.
12842 (set_term_color): Likewise.
12843 (grub_virtual_screen_setup): Changed to use new terminal coloring
12845 (grub_gfxterm_init): Added init for bitmap.
12846 (grub_gfxterm_fini): Added destroy for bitmap.
12847 (redraw_screen_rect): Updated to use background bitmap and new
12849 (scroll_up): Added optimization for case when there is no bitmap.
12850 (grub_gfxterm_cls): Fixed to use correct background color.
12851 (grub_virtual_screen_setcolorstate): Changed to use new terminal
12853 (grub_virtual_screen_setcolor): Likewise.
12854 (grub_virtual_screen_getcolor): Added.
12855 (grub_gfxterm_background_image_cmd): Likewise.
12856 (grub_video_term): Added setcolor and getcolor.
12857 (MOD_INIT): Added registration of background_image command.
12858 (MOD_TERM): Added unregistration for background_image command.
12860 2007-12-30 Pavel Roskin <proski@gnu.org>
12862 * loader/multiboot_loader.c: Fix multiboot command
12863 unregistration. Fix all typos in the word "multiboot".
12865 2007-12-29 Pavel Roskin <proski@gnu.org>
12867 * util/grub.d/10_linux.in: Refactor search for initrd. Add
12868 support for initrd names used in Fedora.
12870 2007-12-26 Bean <bean123ch@gmail.com>
12872 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
12873 (cpio_mod_SOURCES): New variable.
12874 (cpio_mod_CFLAGS): Likewise.
12875 (cpio_mod_LDFLAGS): Likewise.
12877 * fs/cpio.c: New file.
12879 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
12881 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
12883 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
12885 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12887 2007-12-25 Robert Millan <rmh@aybabtu.com>
12889 * include/grub/term.h (struct grub_term): Add `getcolor' function.
12890 (grub_getcolor): New function.
12892 * kern/term.c (grub_getcolor): New function.
12893 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
12894 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
12895 (print_entry): Set normal and highlight colors to
12896 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
12897 respectively, before printing and restore them to old
12899 (grub_menu_init_page): Likewise. Fill an additional colored space
12900 that would otherwise be left blank.
12902 * term/efi/console.c (grub_console_getcolor): New function.
12903 (struct grub_console_term.getcolor): New variable.
12904 * term/i386/pc/console.c (grub_console_getcolor): New function.
12905 (struct grub_console_term.getcolor): New variable.
12906 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
12907 (struct grub_console_term.getcolor): New variable.
12909 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
12910 (struct grub_console_term.setcolor): Remove variable.
12911 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
12912 (struct grub_console_term.setcolor): Remove variable.
12913 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
12914 (struct grub_console_term.setcolor): Remove variable.
12915 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
12916 (struct grub_console_term.setcolor): Remove variable.
12918 2007-12-25 Robert Millan <rmh@aybabtu.com>
12920 * configure.ac: Search for possible unifont.hex locations, and
12921 define UNIFONT_HEX if found.
12923 * Makefile.in (UNIFONT_HEX): Define variable.
12924 (DATA): Rename to ...
12925 (PKGLIB): ... this. Update all users.
12926 (PKGDATA): New variable.
12927 (pkgdata_IMAGES): Rename to ...
12928 (pkglib_IMAGES): ... this. Update all users.
12929 (pkgdata_MODULES): Rename to ...
12930 (pkglib_MODULES): ... this. Update all users.
12931 (pkgdata_PROGRAMS): Rename to ...
12932 (pkglib_PROGRAMS): ... this. Update all users.
12933 (pkgdata_DATA): Rename to ...
12934 (pkglib_DATA): ... this. Update all users.
12935 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
12936 (unicode.pff, ascii.pff): New rules.
12937 (all-local): Add `$(PKGDATA)' dependency.
12938 (install-local): Process `$(PKGDATA)'.
12940 * util/update-grub_lib.in (font_path): Search for *.pff files in
12941 a few more locations, including `${pkgdata}'.
12943 2007-12-23 Robert Millan <rmh@aybabtu.com>
12945 Patch from Bean <bean123ch@gmail.com>:
12946 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
12949 2007-12-21 Bean <bean123ch@gmail.com>
12951 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
12952 (ntfscomp_mod_SOURCES): New variable.
12953 (ntfscomp_mod_CFLAGS): Likewise.
12954 (ntfscomp_mod_LDFLAGS): Likewise.
12956 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
12957 (grub_probe_SOURCES): Likewise.
12958 (grub_emu_SOURCES): Likewise.
12960 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
12961 (grub_emu_SOURCES): Likewise.
12963 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
12964 (grub_emu_SOURCES): Likewise.
12966 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
12967 (grub_emu_SOURCES): Likewise.
12969 * fs/ntfs.c (grub_ntfscomp_func): New variable.
12970 (read_run_list): Renamed to grub_ntfs_read_run_list.
12971 (decomp_nextvcn): Moved to ntfscomp.c.
12972 (decomp_getch): Likewise.
12973 (decomp_get16): Likewise.
12974 (decomp_block): Likewise.
12975 (read_block): Likewise.
12976 (read_data): Partially moved to ntfscomp.c.
12977 (fixup): Change unsigned to grub_uint16_t.
12978 (read_mft): Change unsigned long to grub_uint32_t.
12979 (read_attr): Likewise.
12980 (read_data): Likewise.
12981 (read_run_data): Likewise.
12982 (read_run_list): Likewise.
12983 (read_mft): Likewise.
12985 * fs/ntfscomp.c: New file.
12987 * include/grub/ntfs.h: New file.
12989 2007-12-16 Robert Millan <rmh@aybabtu.com>
12991 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
12992 IDE disk check, since Linux is known to support 20 IDE disks.
12993 Reported by Colin Watson.
12995 2007-12-15 Bean <bean123ch@gmail.com>
12997 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
12998 (lnxboot_img_SOURCES): New variable.
12999 (lnxboot_img_ASFLAGS): Likewise.
13000 (lnxboot_img_LDFLAGS): Likewise.
13002 * boot/i386/pc/lnxboot.S: New file.
13004 2007-11-24 Pavel Roskin <proski@gnu.org>
13006 * configure.ac: Test if '--build-id=none' is supported by the
13007 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
13008 objcopy to generate incorrect binary files (binutils
13009 2.17.50.0.18-1 as shipped by Fedora 8).
13010 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
13011 linking, so that build ID doesn't break the test.
13013 2007-11-24 Pavel Roskin <proski@gnu.org>
13015 * include/grub/i386/time.h: use "void" in the argument list
13016 of grub_cpu_idle().
13017 * include/grub/powerpc/time.h: Likewise.
13018 * include/grub/sparc64/time.h: Likewise.
13020 2007-11-18 Christian Franke <franke@computer.org>
13022 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
13023 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
13024 This fixes the problem that function keys did not work in grub-emu.
13026 2007-11-18 Christian Franke <franke@computer.org>
13028 * disk/host.c (grub_host_open): Remove attribute unused from
13029 name parameter. Add check for "host". This fixes the problem
13030 that grub-emu does not find partitions.
13032 2007-11-18 Christian Franke <franke@computer.org>
13034 * util/hostfs.c (is_dir): New function.
13035 (grub_hostfs_dir): Handle missing dirent.d_type case.
13036 (grub_hostfs_read): Add missing fseek().
13037 (grub_hostfs_label): Clear label pointer. This fixes a crash
13038 of grub-emu on "ls (host)".
13040 2007-11-18 Christian Franke <franke@computer.org>
13042 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
13043 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
13044 to 64 bit boundary by default.
13046 2007-11-18 Bean <bean123ch@gmail.com>
13048 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
13049 (hexdump_mod_SOURCES): New variable.
13050 (hexdump_mod_CFLAGS): Likewise.
13051 (hexdump_mod_LDFLAGS): Likewise.
13053 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
13055 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
13057 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
13059 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
13061 * include/grub/hexdump.h: New file.
13063 * commands/hexdump.c: New file.
13065 2007-11-10 Robert Millan <rmh@aybabtu.com>
13067 * commands/i386/pc/play.c (beep_off): Switch order of arguments
13068 in grub_outb() calls.
13069 (beep_on): Likewise.
13071 2007-11-10 Christian Franke <franke@computer.org>
13073 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
13074 (grub_menu_run): Likewise.
13076 2007-11-10 Robert Millan <rmh@aybabtu.com>
13078 * include/grub/i386/efi/machine.h: New file.
13079 * include/grub/i386/linuxbios/machine.h: Likewise.
13080 * include/grub/i386/pc/machine.h: Likewise.
13081 * include/grub/powerpc/ieee1275/machine.h: Likewise.
13082 * include/grub/sparc64/ieee1275/machine.h: Likewise.
13084 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
13085 (serial_hw_io_addr): New variable.
13086 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
13087 instead of `(unsigned short *) 0x400'.
13089 2007-11-10 Bean <bean123ch@gmail.com>
13091 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
13093 2007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
13095 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
13096 (vga_mod_SOURCES): Added.
13097 (vga_mod_CFLAGS): Likewise.
13098 (vga_mod_LDFLAGS): Likewise.
13100 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
13102 (set_map_mask): Likewise.
13103 (set_read_map): Likewise.
13104 (set_read_address): Likewise.
13105 (vga_font): Removed variable.
13106 (get_vga_glyph): Removed function.
13107 (invalidate_char): Likewise.
13108 (write_char): Changed to use grub_font_get_glyph() for font
13110 (grub_vga_putchar): Likewise.
13111 (grub_vga_getcharwidth): Likewise.
13113 2007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
13115 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
13117 (pxeboot_img_LDFLAGS): Likewise.
13118 (diskboot_img_LDFLAGS): Likewise.
13119 (kernel_img_LDFLAGS): Likewise.
13121 2007-11-06 Robert Millan <rmh@aybabtu.com>
13123 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
13124 in grub_outb() calls.
13125 (serial_hw_init): Likewise.
13127 2007-11-05 Robert Millan <rmh@aybabtu.com>
13129 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
13130 spaces. Skip non-regular files.
13132 2007-11-05 Robert Millan <rmh@aybabtu.com>
13134 * kern/disk.c (grub_disk_firmware_fini)
13135 (grub_disk_firmware_is_tainted): New variables.
13137 * include/grub/disk.h (grub_disk_firmware_fini)
13138 (grub_disk_firmware_is_tainted): Likewise.
13140 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
13141 (grub_disk_biosdisk_fini): ... to here.
13142 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
13143 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
13144 is set. Register grub_disk_biosdisk_fini() in
13145 `grub_disk_firmware_fini'.
13147 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
13148 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
13149 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
13150 to finish existing firmware disk interface.
13152 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
13153 (ata_mod_SOURCES): New variable.
13154 (ata_mod_CFLAGS): Likewise.
13155 (ata_mod_LDFLAGS): Likewise.
13157 2007-11-05 Robert Millan <rmh@aybabtu.com>
13159 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
13160 (grub_ata_wait): Reimplement using grub_millisleep().
13162 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
13163 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
13165 2007-11-03 Marco Gerards <marco@gnu.org>
13167 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
13168 (CRTC_ADDR_PORT): New macro.
13169 (CRTC_DATA_PORT): Likewise.
13170 (CRTC_CURSOR): Likewise.
13171 (CRTC_CURSOR_ADDR_HIGH): Likewise.
13172 (CRTC_CURSOR_ADDR_LOW): Likewise.
13173 (update_cursor): New function.
13174 (grub_console_real_putchar): Call `update_cursor'.
13175 (grub_console_gotoxy): Likewise.
13176 (grub_console_cls): Set the default color when clearing the
13178 (grub_console_setcursor): Implemented.
13180 2007-11-03 Marco Gerards <marco@gnu.org>
13182 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
13184 (grub_ata_pio_write): Likewise.
13186 (grub_atapi_identify): Wait after issuing an ATA command.
13187 (grub_atapi_packet): Likewise.
13188 (grub_ata_identify): Likewise.
13189 (grub_ata_readwrite): Likewise.
13191 2007-11-03 Marco Gerards <marco@gnu.org>
13193 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
13194 (grub_ata_pio_write): Likewise.
13195 (grub_ata_readwrite): Use `grub_error', instead of
13196 returning `grub_errno'.
13198 2007-11-03 Marco Gerards <marco@gnu.org>
13200 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
13201 grub_ata_pio_write once for every single sector, instead of for
13204 2007-10-31 Robert Millan <rmh@aybabtu.com>
13206 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
13208 * conf/i386-linuxbios.rmk: New file.
13210 * kern/i386/pc/hardware.c: Likewise.
13211 * term/i386/pc/at_keyboard.c: Likewise.
13212 * term/i386/pc/vga_text.c: Likewise.
13214 * include/grub/i386/linuxbios/boot.h: Likewise.
13215 * include/grub/i386/linuxbios/console.h: Likewise.
13216 * include/grub/i386/linuxbios/init.h: Likewise.
13217 * include/grub/i386/linuxbios/kernel.h: Likewise.
13218 * include/grub/i386/linuxbios/loader.h: Likewise.
13219 * include/grub/i386/linuxbios/memory.h: Likewise.
13220 * include/grub/i386/linuxbios/serial.h: Likewise.
13221 * include/grub/i386/linuxbios/time.h: Likewise.
13223 * kern/i386/linuxbios/init.c: Likewise.
13224 * kern/i386/linuxbios/startup.S: Likewise.
13225 * kern/i386/linuxbios/table.c: Likewise.
13227 2007-10-31 Marco Gerards <marco@gnu.org>
13229 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
13230 (ata_mod_SOURCES): New variable.
13231 (ata_mod_CFLAGS): Likewise.
13232 (ata_mod_LDFLAGS): Likewise.
13234 * disk/ata.c: New file.
13236 * include/grub/disk.h (grub_disk_dev_id): Add
13237 `GRUB_DISK_DEV_ATA_ID'.
13239 2007-10-31 Robert Millan <rmh@aybabtu.com>
13241 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
13242 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
13244 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
13245 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
13247 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
13250 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
13252 2007-10-27 Robert Millan <rmh@aybabtu.com>
13254 * include/grub/types.h (ULONG_MAX): Define macro.
13256 2007-10-22 Robert Millan <rmh@aybabtu.com>
13258 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
13260 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
13262 2007-10-22 Robert Millan <rmh@aybabtu.com>
13264 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
13265 (pkgdata_MODULES): Add `biosdisk.mod'.
13266 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
13269 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
13270 (grub_biosdisk_init): Replace with ...
13271 (GRUB_MOD_INIT(biosdisk)): ... this.
13272 (grub_biosdisk_fini): Replace with ...
13273 (GRUB_MOD_FINI(biosdisk)): ... this.
13275 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
13276 (grub_machine_init): Remove call to grub_biosdisk_init().
13277 (grub_machine_fini): Remove call to grub_machine_fini().
13279 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
13281 2007-10-22 Robert Millan <rmh@aybabtu.com>
13283 * include/grub/time.h: New file.
13284 * include/grub/i386/time.h: Likewise.
13285 * include/grub/powerpc/time.h: Likewise.
13286 * include/grub/sparc64/time.h: Likewise.
13288 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
13290 (KERNEL_MACHINE_TIME_HEADER): ... this.
13291 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
13293 (KERNEL_MACHINE_TIME_HEADER): ... this.
13294 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
13296 (KERNEL_MACHINE_TIME_HEADER): ... this.
13298 * kern/i386/efi/init.c: Include `<grub/time.h>'.
13299 (grub_millisleep): New function.
13300 * kern/i386/pc/init.c: Include `<grub/time.h>'.
13301 (grub_millisleep): New function.
13302 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
13303 Remove `grub/machine/time.h' include.
13304 (grub_millisleep): New function.
13305 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
13306 Remove `grub/machine/time.h' include.
13307 (grub_millisleep): New function.
13309 * include/grub/misc.h (grub_div_roundup): New function.
13311 * kern/misc.c: Include `<grub/time.h>'.
13312 (grub_millisleep_generic): New function.
13314 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
13316 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
13318 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
13319 `machine/time.h'. Add `time.h'.
13320 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
13322 2007-10-21 Robert Millan <rmh@aybabtu.com>
13324 * include/grub/misc.h (grub_max): New function.
13326 2007-10-21 Robert Millan <rmh@aybabtu.com>
13328 * util/misc.c (grub_util_info): Call fflush() before returning.
13330 2007-10-20 Robert Millan <rmh@aybabtu.com>
13332 * genmk.rb (Image): Copy `extra_flags' from here ...
13333 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
13335 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
13336 to `argc' and `args' arguments.
13338 2007-10-17 Robert Millan <rmh@aybabtu.com>
13340 * kern/i386/loader.S: New file.
13342 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
13343 * kern/i386/loader.S (grub_linux_prot_size)... to here.
13344 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
13345 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
13346 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
13347 * kern/i386/loader.S (grub_linux_real_addr)... to here.
13348 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
13349 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
13350 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
13351 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
13352 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
13353 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
13354 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
13355 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
13357 * kern/i386/realmode.S: New file.
13359 * kern/i386/pc/startup.S (protstack): Moved from here ...
13360 * kern/i386/realmode.S (protstack)... to here.
13361 * kern/i386/pc/startup.S (gdt): Moved from here ...
13362 * kern/i386/realmode.S (gdt)... to here.
13363 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
13364 * kern/i386/realmode.S (prot_to_real)... to here.
13366 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
13367 `kern/i386/realmode.S'.
13369 2007-10-17 Robert Millan <rmh@aybabtu.com>
13371 * include/grub/i386/loader.h: New file.
13373 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
13374 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
13375 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
13376 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
13377 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
13378 * include/grub/i386/loader.h (grub_linux_prot_size)
13379 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
13380 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
13381 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
13382 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
13384 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
13386 2007-10-15 Robert Millan <rmh@aybabtu.com>
13388 * normal/misc.c (grub_normal_print_device_info): Do not probe for
13389 filesystem when dev->disk is unset.
13390 Do probe for filesystem even when dev->disk->has_partitions is set.
13391 In case a filesystem is found, always report it.
13392 In case it isn't, if dev->disk->has_partitions is set, report that
13393 a partition table was found instead of reporting that no filesystem
13394 could be identified.
13396 2007-10-12 Robert Millan <rmh@aybabtu.com>
13398 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
13399 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
13401 * include/grub/types.h (grub_host_to_target16): New macro.
13402 (grub_host_to_target32): Likewise.
13403 (grub_host_to_target64): Likewise.
13404 (grub_target_to_host16): Likewise.
13405 (grub_target_to_host32): Likewise.
13406 (grub_target_to_host64): Likewise.
13408 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
13409 Renamed from to ...
13410 (GRUB_MOD_ALIGN): ...this. Update all users.
13412 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
13413 grub_host_to_target32.
13414 Replace grub_be_to_cpu32 with grub_target_to_host32.
13415 (load_modules): Likewise.
13416 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
13417 Replace grub_be_to_cpu32 with grub_target_to_host32.
13418 Replace grub_cpu_to_be16 with grub_host_to_target16.
13419 Replace grub_cpu_to_be32 grub_host_to_target32.
13421 2007-10-12 Robert Millan <rmh@aybabtu.com>
13423 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
13424 * util/elf/grub-mkimage.c: ... here.
13426 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
13427 `util/powerpc/ieee1275/grub-mkimage.c'.
13429 2007-10-07 Robert Millan <rmh@aybabtu.com>
13431 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
13432 and make it easier to figure out.
13433 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
13434 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
13435 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
13436 leave us with less than HEAP_MIN_SIZE total heap.
13437 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
13439 2007-10-03 Robert Millan <rmh@aybabtu.com>
13441 * include/grub/i386/io.h: New file.
13442 * commands/i386/pc/play.c (inb): Removed.
13444 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
13446 * term/i386/pc/serial.c (inb): Removed.
13448 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
13450 * term/i386/pc/vga.c (inb): Removed.
13452 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
13455 2007-10-02 Robert Millan <rmh@aybabtu.com>
13457 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
13458 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
13459 Reported by Marcin Kurek.
13461 2007-09-07 Robert Millan <rmh@aybabtu.com>
13463 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
13464 SmartFirmware version updates (as released by Sven Luther), and avoid
13465 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
13466 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
13469 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
13471 From Hitoshi Ozeki:
13472 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
13473 when merging two regions.
13475 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
13477 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
13478 * normal/completion.c (grub_normal_do_completion): Likewise.
13479 Reported by Hitoshi Ozeki.
13481 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
13483 Do not use devices at boot in chainloading.
13485 * loader/i386/pc/chainloader.c (boot_drive): New variable.
13486 (boot_part_addr): Likewise.
13487 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
13488 with BOOT_DRIVE and BOOT_PART_ADDR.
13489 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
13490 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
13492 2007-08-29 Robert Millan <rmh@aybabtu.com>
13494 Patch from Simon Peter <dn.tlp@gmx.net>:
13495 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
13496 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
13497 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
13498 util/i386/pc/grub-setup.c_DEPENDENCIES.
13499 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
13500 util/grub-probe.c_DEPENDENCIES.
13501 * conf/powerpc-ieee1275.rmk: Likewise.
13503 2007-08-28 Robert Millan <rmh@aybabtu.com>
13505 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
13506 to tell grub-mkdevicemap how to name devices.
13507 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
13510 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
13511 util/i386/get_disk_name.c.
13512 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
13513 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
13514 util/ieee1275/get_disk_name.c.
13516 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
13518 * DISTLIST: Add util/i386/get_disk_name.c and
13519 util/ieee1275/get_disk_name.c.
13521 * util/grub-mkdevicemap.c: Replace device naming logic with
13522 grub_util_get_disk_name() calls.
13524 2007-08-20 Robert Millan <rmh@aybabtu.com>
13526 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
13527 (so that it works for both plural and singular quantities).
13529 2007-08-05 Robert Millan <rmh@aybabtu.com>
13531 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
13532 so that [xz] isn't taken into account when determining order.
13534 2007-08-02 Marco Gerards <marco@gnu.org>
13536 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
13537 `include/multiboot2.h', `include/grub/elfload.h',
13538 `include/multiboot.h', `include/grub/multiboot.h',
13539 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
13540 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
13541 `kern/elf.c', `loader/multiboot_loader.c',
13542 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
13543 `loader/i386/pc/multiboot2.c',
13544 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
13545 `util/i386/pc/grub-mkrescue.in'. Remove
13546 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
13547 `include/grub/i386/pc/util/biosdisk.h' and
13548 `include/grub/powerpc/ieee1275/multiboot.h'.
13550 2007-08-02 Bean <bean123ch@gmail.com>
13552 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
13553 (ntfs_mod_SOURCES): New variable.
13554 (ntfs_mod_CFLAGS): Likewise.
13555 (ntfs_mod_LDFLAGS): Likewise.
13557 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
13558 (grub_probe_SOURCES): Likewise.
13559 (grub_emu_SOURCES): Likewise.
13561 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
13562 (grub_emu_SOURCES): Likewise.
13564 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
13565 (grub_emu_SOURCES): Likewise.
13567 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
13569 * fs/ntfs.c: New file.
13571 2007-08-02 Bean <bean123ch@gmail.com>
13573 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
13575 * file.h (grub_file): Likewise.
13577 * fshelp.h (grub_fshelp_read_file): Likewise.
13579 * util/i386/pc/grub-setup.c (setup): Likewise.
13580 (save_first_sector): Likewise.
13581 (save_blocklists): Likewise.
13583 * fs/affs.c (grub_affs_read_file): Likewise.
13585 * fs/ext2.c (grub_ext2_read_file): Likewise.
13587 * fs/fat.c (grub_fat_read_data): Likewise.
13589 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
13591 * fs/hfs.c (grub_hfs_read_file): Likewise.
13593 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
13595 * fs/jfs.c (grub_jfs_read_file): Likewise.
13597 * fs/minix.c (grub_minix_read_file): Likewise.
13599 * fs/sfs.c (grub_sfs_read_file): Likewise.
13601 * fs/ufs.c (grub_ufs_read_file): Likewise.
13603 * fs/xfs.c (grub_xfs_read_file): Likewise.
13605 * command/blocklist.c (read_blocklist): Likewise.
13606 (print_blocklist): Likewise.
13608 2007-08-02 Marco Gerards <marco@gnu.org>
13610 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
13613 * disk/host.c: New file.
13615 * util/hostfs.c: Likewise.
13617 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
13618 return `GRUB_ERR_BAD_FS'.
13619 * fs/sfs.c (grub_sfs_mount): Likewise.
13620 * fs/xfs.c (grub_xfs_mount): Likewise.
13622 * include/grub/disk.h (enum grub_disk_dev_id): Add
13623 `GRUB_DISK_DEVICE_HOST_ID'.
13625 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
13627 2007-07-24 Jerone Young <jerone@gmail.com>
13629 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
13630 modules for compilation.
13631 * conf/powerpc-ieee1275.rmk: Likewise.
13633 * include/multiboot.h: Move multiboot definitions to one file. Rename
13634 many definitions to not get grub specific.
13635 * include/multiboot2.h: Create header with multiboot 2 definitions.
13636 * include/grub/multiboot.h: Header for grub specific function
13637 prototypes and definitions.
13638 * include/grub/multiboot2.h: Likewise.
13639 * include/grub/multiboot_loader.h: Likewise.
13640 * include/grub/i386/pc/multiboot.h: Removed.
13641 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
13643 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
13644 and 2 to allow for one multiboot and module commands.
13645 * loader/multiboot2.c: Add multiboot2 functionality.
13646 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
13647 and definition names.
13648 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
13650 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
13651 ieee1275 specific multiboot2 code.
13653 * kern/i386/pc/startup.S: Change headers and definition names for
13654 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
13656 2007-07-22 Robert Millan <rmh@aybabtu.com>
13658 * geninitheader.sh: Process file specified in first parameter rather
13659 than hardcoding grub_modules_init.lst.
13660 * geninit.sh: Likewise. Also, construct header name dynamically rather
13661 than hardcoding grub_modules_init.h.
13663 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
13664 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
13665 grub_probe_init.[ch] and grub_setup_init.[ch].
13667 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
13668 grub_modules_init.h with grub_emu_init.h.
13669 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
13670 grub_probe_init.[ch] files.
13671 * conf/i386-efi.rmk: Likewise.
13672 * conf/i386-pc.rmk: Likewise.
13673 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
13674 grub_setup_init.[ch] files.
13676 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
13677 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
13678 to initialize modules rather than a list of hardcoded functions.
13679 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
13680 grub_init_all() to initialize modules rather than a list of hardcoded
13683 2007-07-22 Robert Millan <rmh@aybabtu.com>
13685 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
13686 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
13688 2007-07-22 Robert Millan <rmh@aybabtu.com>
13690 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
13691 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
13692 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
13693 flag when running on SmartFirmware.
13694 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
13695 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
13698 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
13699 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
13700 rather than decreasing it.
13702 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
13703 there's not enough space to do it, fail in the same way as when it
13704 can't be done because there are no partitions.
13706 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
13707 when nvsetenv failed.
13709 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
13711 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
13712 because this rule is automatically generated.
13713 (grub-mkrescue): Removed for the same reason as above.
13715 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
13717 Migrate to GNU General Public License Version 3.
13719 * COPYING: Replaced with the plain text version of GPLv3.
13721 * config.guess: Updated from gnulib.
13722 * config.sub: Likewise.
13724 * geninit.sh: Output a GPLv3 copyright notice.
13725 * geninitheader.sh: Likewise.
13726 * genmodsrc.sh: Likewise.
13727 * gensymlist.sh.in: Likewise.
13729 * boot/i386/pc/boot.S: Upgraded to GPLv3.
13730 * boot/i386/pc/diskboot.S: Likewise.
13731 * boot/i386/pc/pxeboot.S: Likewise.
13732 * commands/blocklist.c: Likewise.
13733 * commands/boot.c: Likewise.
13734 * commands/cat.c: Likewise.
13735 * commands/cmp.c: Likewise.
13736 * commands/configfile.c: Likewise.
13737 * commands/echo.c: Likewise.
13738 * commands/help.c: Likewise.
13739 * commands/ls.c: Likewise.
13740 * commands/search.c: Likewise.
13741 * commands/terminal.c: Likewise.
13742 * commands/test.c: Likewise.
13743 * commands/videotest.c: Likewise.
13744 * commands/i386/cpuid.c: Likewise.
13745 * commands/i386/pc/halt.c: Likewise.
13746 * commands/i386/pc/play.c: Likewise.
13747 * commands/i386/pc/reboot.c: Likewise.
13748 * commands/i386/pc/vbeinfo.c: Likewise.
13749 * commands/i386/pc/vbetest.c: Likewise.
13750 * commands/ieee1275/halt.c: Likewise.
13751 * commands/ieee1275/reboot.c: Likewise.
13752 * commands/ieee1275/suspend.c: Likewise.
13753 * disk/loopback.c: Likewise.
13754 * disk/lvm.c: Likewise.
13755 * disk/raid.c: Likewise.
13756 * disk/efi/efidisk.c: Likewise.
13757 * disk/i386/pc/biosdisk.c: Likewise.
13758 * disk/ieee1275/ofdisk.c: Likewise.
13759 * font/manager.c: Likewise.
13760 * fs/affs.c: Likewise.
13761 * fs/ext2.c: Likewise.
13762 * fs/fat.c: Likewise.
13763 * fs/fshelp.c: Likewise.
13764 * fs/hfs.c: Likewise.
13765 * fs/hfsplus.c: Likewise.
13766 * fs/iso9660.c: Likewise.
13767 * fs/jfs.c: Likewise.
13768 * fs/minix.c: Likewise.
13769 * fs/sfs.c: Likewise.
13770 * fs/ufs.c: Likewise.
13771 * fs/xfs.c: Likewise.
13772 * hello/hello.c: Likewise.
13773 * include/grub/acorn_filecore.h: Likewise.
13774 * include/grub/arg.h: Likewise.
13775 * include/grub/bitmap.h: Likewise.
13776 * include/grub/boot.h: Likewise.
13777 * include/grub/cache.h: Likewise.
13778 * include/grub/device.h: Likewise.
13779 * include/grub/disk.h: Likewise.
13780 * include/grub/dl.h: Likewise.
13781 * include/grub/elfload.h: Likewise.
13782 * include/grub/env.h: Likewise.
13783 * include/grub/err.h: Likewise.
13784 * include/grub/file.h: Likewise.
13785 * include/grub/font.h: Likewise.
13786 * include/grub/fs.h: Likewise.
13787 * include/grub/fshelp.h: Likewise.
13788 * include/grub/gzio.h: Likewise.
13789 * include/grub/hfs.h: Likewise.
13790 * include/grub/kernel.h: Likewise.
13791 * include/grub/loader.h: Likewise.
13792 * include/grub/lvm.h: Likewise.
13793 * include/grub/misc.h: Likewise.
13794 * include/grub/mm.h: Likewise.
13795 * include/grub/net.h: Likewise.
13796 * include/grub/normal.h: Likewise.
13797 * include/grub/parser.h: Likewise.
13798 * include/grub/partition.h: Likewise.
13799 * include/grub/pc_partition.h: Likewise.
13800 * include/grub/raid.h: Likewise.
13801 * include/grub/rescue.h: Likewise.
13802 * include/grub/script.h: Likewise.
13803 * include/grub/setjmp.h: Likewise.
13804 * include/grub/symbol.h: Likewise.
13805 * include/grub/term.h: Likewise.
13806 * include/grub/terminfo.h: Likewise.
13807 * include/grub/tparm.h: Likewise.
13808 * include/grub/types.h: Likewise.
13809 * include/grub/video.h: Likewise.
13810 * include/grub/efi/api.h: Likewise.
13811 * include/grub/efi/chainloader.h: Likewise.
13812 * include/grub/efi/console.h: Likewise.
13813 * include/grub/efi/console_control.h: Likewise.
13814 * include/grub/efi/disk.h: Likewise.
13815 * include/grub/efi/efi.h: Likewise.
13816 * include/grub/efi/pe32.h: Likewise.
13817 * include/grub/efi/time.h: Likewise.
13818 * include/grub/i386/linux.h: Likewise.
13819 * include/grub/i386/setjmp.h: Likewise.
13820 * include/grub/i386/types.h: Likewise.
13821 * include/grub/i386/efi/kernel.h: Likewise.
13822 * include/grub/i386/efi/loader.h: Likewise.
13823 * include/grub/i386/efi/time.h: Likewise.
13824 * include/grub/i386/pc/biosdisk.h: Likewise.
13825 * include/grub/i386/pc/boot.h: Likewise.
13826 * include/grub/i386/pc/chainloader.h: Likewise.
13827 * include/grub/i386/pc/console.h: Likewise.
13828 * include/grub/i386/pc/init.h: Likewise.
13829 * include/grub/i386/pc/kernel.h: Likewise.
13830 * include/grub/i386/pc/loader.h: Likewise.
13831 * include/grub/i386/pc/memory.h: Likewise.
13832 * include/grub/i386/pc/multiboot.h: Likewise.
13833 * include/grub/i386/pc/serial.h: Likewise.
13834 * include/grub/i386/pc/time.h: Likewise.
13835 * include/grub/i386/pc/vbe.h: Likewise.
13836 * include/grub/i386/pc/vbeblit.h: Likewise.
13837 * include/grub/i386/pc/vbefill.h: Likewise.
13838 * include/grub/i386/pc/vbeutil.h: Likewise.
13839 * include/grub/i386/pc/vga.h: Likewise.
13840 * include/grub/ieee1275/ieee1275.h: Likewise.
13841 * include/grub/ieee1275/ofdisk.h: Likewise.
13842 * include/grub/powerpc/libgcc.h: Likewise.
13843 * include/grub/powerpc/setjmp.h: Likewise.
13844 * include/grub/powerpc/types.h: Likewise.
13845 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
13846 * include/grub/powerpc/ieee1275/console.h: Likewise.
13847 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
13848 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
13849 * include/grub/powerpc/ieee1275/loader.h: Likewise.
13850 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
13851 * include/grub/powerpc/ieee1275/time.h: Likewise.
13852 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
13853 * include/grub/sparc64/libgcc.h: Likewise.
13854 * include/grub/sparc64/setjmp.h: Likewise.
13855 * include/grub/sparc64/types.h: Likewise.
13856 * include/grub/sparc64/ieee1275/console.h: Likewise.
13857 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
13858 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
13859 * include/grub/sparc64/ieee1275/time.h: Likewise.
13860 * include/grub/util/biosdisk.h: Likewise.
13861 * include/grub/util/getroot.h: Likewise.
13862 * include/grub/util/lvm.h: Likewise.
13863 * include/grub/util/misc.h: Likewise.
13864 * include/grub/util/raid.h: Likewise.
13865 * include/grub/util/resolve.h: Likewise.
13866 * io/gzio.c: Likewise.
13867 * kern/device.c: Likewise.
13868 * kern/disk.c: Likewise.
13869 * kern/dl.c: Likewise.
13870 * kern/elf.c: Likewise.
13871 * kern/env.c: Likewise.
13872 * kern/err.c: Likewise.
13873 * kern/file.c: Likewise.
13874 * kern/fs.c: Likewise.
13875 * kern/loader.c: Likewise.
13876 * kern/main.c: Likewise.
13877 * kern/misc.c: Likewise.
13878 * kern/mm.c: Likewise.
13879 * kern/parser.c: Likewise.
13880 * kern/partition.c: Likewise.
13881 * kern/rescue.c: Likewise.
13882 * kern/term.c: Likewise.
13883 * kern/efi/efi.c: Likewise.
13884 * kern/efi/init.c: Likewise.
13885 * kern/efi/mm.c: Likewise.
13886 * kern/i386/dl.c: Likewise.
13887 * kern/i386/efi/init.c: Likewise.
13888 * kern/i386/efi/startup.S: Likewise.
13889 * kern/i386/pc/init.c: Likewise.
13890 * kern/i386/pc/lzo1x.S: Likewise.
13891 * kern/i386/pc/startup.S: Likewise.
13892 * kern/ieee1275/ieee1275.c: Likewise.
13893 * kern/powerpc/cache.S: Likewise.
13894 * kern/powerpc/dl.c: Likewise.
13895 * kern/powerpc/ieee1275/cmain.c: Likewise.
13896 * kern/powerpc/ieee1275/crt0.S: Likewise.
13897 * kern/powerpc/ieee1275/init.c: Likewise.
13898 * kern/powerpc/ieee1275/openfw.c: Likewise.
13899 * kern/sparc64/cache.S: Likewise.
13900 * kern/sparc64/dl.c: Likewise.
13901 * kern/sparc64/ieee1275/init.c: Likewise.
13902 * kern/sparc64/ieee1275/openfw.c: Likewise.
13903 * loader/efi/chainloader.c: Likewise.
13904 * loader/efi/chainloader_normal.c: Likewise.
13905 * loader/i386/efi/linux.c: Likewise.
13906 * loader/i386/efi/linux_normal.c: Likewise.
13907 * loader/i386/pc/chainloader.c: Likewise.
13908 * loader/i386/pc/chainloader_normal.c: Likewise.
13909 * loader/i386/pc/linux.c: Likewise.
13910 * loader/i386/pc/linux_normal.c: Likewise.
13911 * loader/i386/pc/multiboot.c: Likewise.
13912 * loader/i386/pc/multiboot_normal.c: Likewise.
13913 * loader/powerpc/ieee1275/linux.c: Likewise.
13914 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
13915 * normal/arg.c: Likewise.
13916 * normal/cmdline.c: Likewise.
13917 * normal/command.c: Likewise.
13918 * normal/completion.c: Likewise.
13919 * normal/execute.c: Likewise.
13920 * normal/function.c: Likewise.
13921 * normal/lexer.c: Likewise.
13922 * normal/main.c: Likewise.
13923 * normal/menu.c: Likewise.
13924 * normal/menu_entry.c: Likewise.
13925 * normal/misc.c: Likewise.
13926 * normal/parser.y: Likewise.
13927 * normal/script.c: Likewise.
13928 * normal/i386/setjmp.S: Likewise.
13929 * normal/powerpc/setjmp.S: Likewise.
13930 * normal/sparc64/setjmp.S: Likewise.
13931 * partmap/acorn.c: Likewise.
13932 * partmap/amiga.c: Likewise.
13933 * partmap/apple.c: Likewise.
13934 * partmap/gpt.c: Likewise.
13935 * partmap/pc.c: Likewise.
13936 * partmap/sun.c: Likewise.
13937 * term/gfxterm.c: Likewise.
13938 * term/terminfo.c: Likewise.
13939 * term/efi/console.c: Likewise.
13940 * term/i386/pc/console.c: Likewise.
13941 * term/i386/pc/serial.c: Likewise.
13942 * term/i386/pc/vesafb.c: Likewise.
13943 * term/i386/pc/vga.c: Likewise.
13944 * term/ieee1275/ofconsole.c: Likewise.
13945 * util/biosdisk.c: Likewise.
13946 * util/console.c: Likewise.
13947 * util/genmoddep.c: Likewise.
13948 * util/getroot.c: Likewise.
13949 * util/grub-emu.c: Likewise.
13950 * util/grub-mkdevicemap.c: Likewise.
13951 * util/grub-probe.c: Likewise.
13952 * util/lvm.c: Likewise.
13953 * util/misc.c: Likewise.
13954 * util/raid.c: Likewise.
13955 * util/resolve.c: Likewise.
13956 * util/update-grub.in: Likewise.
13957 * util/update-grub_lib.in: Likewise.
13958 * util/grub.d/00_header.in: Likewise.
13959 * util/grub.d/10_hurd.in: Likewise.
13960 * util/grub.d/10_linux.in: Likewise.
13961 * util/i386/efi/grub-install.in: Likewise.
13962 * util/i386/efi/grub-mkimage.c: Likewise.
13963 * util/i386/pc/grub-install.in: Likewise.
13964 * util/i386/pc/grub-mkimage.c: Likewise.
13965 * util/i386/pc/grub-mkrescue.in: Likewise.
13966 * util/i386/pc/grub-setup.c: Likewise.
13967 * util/i386/pc/misc.c: Likewise.
13968 * util/powerpc/ieee1275/grub-install.in: Likewise.
13969 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
13970 * util/powerpc/ieee1275/misc.c: Likewise.
13971 * video/bitmap.c: Likewise.
13972 * video/video.c: Likewise.
13973 * video/i386/pc/vbe.c: Likewise.
13974 * video/i386/pc/vbeblit.c: Likewise.
13975 * video/i386/pc/vbefill.c: Likewise.
13976 * video/i386/pc/vbeutil.c: Likewise.
13977 * video/readers/tga.c: Likewise.
13979 2007-07-02 Robert Millan <rmh@aybabtu.com>
13981 * conf/i386-efi.rmk: Replace obsolete reference to
13982 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
13983 with util/getroot.c.
13984 * conf/powerpc-ieee1275.rmk: Likewise.
13985 * conf/sparc64-ieee1275.rmk: Likewise.
13987 * util/grub-emu.c (main): Fix unchecked pointer handling.
13989 2007-07-02 Robert Millan <rmh@aybabtu.com>
13991 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
13992 invocation to fail, in order to support partition-less media.
13994 * util/i386/pc/grub-install.in: Likewise.
13996 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
13997 which fs or partmap modules are needed (akin to its sister scripts).
13999 Also use grub-probe to get rid of unportable /proc/mounts check.
14001 Print the same informational message that the other scripts do, before
14004 2007-06-23 Robert Millan <rmh@aybabtu.com>
14006 * util/update-grub_lib.in (font_path): New function. Determine whether
14007 a font file can be found and, if so, echo the GRUB path to it.
14009 * util/update-grub.in: Handle multiple terminals depending on user
14010 input, platform availability and font file presence. Propagate
14011 variables of our findings to /etc/grub.d/ children.
14013 * util/grub.d/00_header.in: Handle multiple terminals, based on
14014 environment setup by update-grub.
14016 2007-06-23 Robert Millan <rmh@aybabtu.com>
14018 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
14020 2007-06-21 Robert Millan <rmh@aybabtu.com>
14022 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
14023 indicate end of data section in kernel image.
14024 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
14025 GRUB_KERNEL_MACHINE_DATA_END.
14027 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
14029 * kern/i386/efi/startup.S: Likewise.
14031 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
14032 during image generation. Implement --prefix option to override this
14034 * util/i386/efi/grub-mkimage.c: Likewise.
14036 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
14037 code to make path relative to its root into a separate function.
14039 * util/i386/pc/grub-install.in: Use newly provided
14040 make_system_path_relative_to_its_root() to convert ${grubdir}, then
14041 pass the result to grub-install --prefix.
14043 2007-06-13 Robert Millan <rmh@aybabtu.com>
14045 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
14046 DEFAULT_DEVICE_MAP.
14047 * util/grub-emu.c: Use above definitions from misc.h instead of
14049 * util/grub-mkdevicemap.c: Likewise.
14050 * util/i386/pc/grub-setup.c: Likewise.
14051 * util/grub-probe.c: Likewise.
14052 (probe): Abort with grub_util_error() when either
14053 grub_guess_root_device or grub_util_get_grub_dev fails.
14055 2007-06-12 Robert Millan <rmh@aybabtu.com>
14057 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
14058 "pager" assignment.
14059 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
14061 * util/grub-probe.c (probe): Likewise for "drive_name".
14063 2007-06-11 Robert Millan <rmh@aybabtu.com>
14065 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
14066 not just the cdrom one.
14068 2007-06-11 Robert Millan <rmh@aybabtu.com>
14070 * util/i386/pc/grub-mkrescue.in: Add "set -e".
14071 Add --pkglibdir=DIR option to override pkglibdir.
14072 Mention --image-type=TYPE in help output.
14073 Fix --grub-mkimage (it was a no-op).
14074 Abort gracefully when no parameter is given.
14076 2007-06-11 Robert Millan <rmh@aybabtu.com>
14078 * util/i386/pc/grub-mkrescue.in: New file.
14079 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
14080 * Makefile.in: Handle bin_SCRIPTS.
14082 2007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
14084 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
14085 list of video modes.
14087 2007-06-06 Robert Millan <rmh@aybabtu.com>
14089 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
14090 file doesn't exist, or if it is in a filesystem grub can't read.
14092 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
14093 not abort if GRUB_DRIVE could not be defined. Rearrange generated
14094 header comment to fit in 80 columns when the variables are resolved.
14096 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
14097 could be identified by update-grub. Remove redundant check for
14098 unifont.pff existence (since convert_system_path_to_grub_path now
14101 2007-06-04 Robert Millan <rmh@aybabtu.com>
14103 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
14105 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
14107 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
14109 2007-06-04 Robert Millan <rmh@aybabtu.com>
14111 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
14113 * include/grub/partition.h: Declare grub_apple_partition_map_init and
14114 grub_apple_partition_map_fini.
14117 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
14118 to access >2 TiB disks).
14120 Print disk->total_sectors with %llu instead of %lu, since this
14121 variable is always 64-bit (prevents wrong disk size from being displayed
14122 on either >2 TiB disk or big-endian CPU).
14124 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
14125 into a generic case that supports all (sane) partition maps.
14127 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
14130 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
14131 and grub_apple_partition_map_fini() after that.
14133 2007-06-01 Robert Millan <rmh@aybabtu.com>
14135 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
14137 * util/grub.d/00_header.in: Only enable gfxterm when
14138 convert_system_path_to_grub_path() succeeds.
14140 2007-05-20 Robert Millan <rmh@aybabtu.com>
14142 * util/update-grub_lib.in: New file.
14143 * DISTLIST: Add update-grub_lib.in.
14144 * conf/common.rmk: Generate update-grub_lib and install it in
14146 * Makefile.in: Add install routine for $(lib_DATA).
14148 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
14149 function provided by update-grub_lib to support arbitrary paths of
14151 * util/update-grub.in: Use convert_system_path_to_grub_path() to
14152 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
14154 2007-05-19 Robert Millan <rmh@aybabtu.com>
14156 * commands/i386/cpuid.c: New module.
14157 * DISTLIST: Add it.
14158 * conf/i386-efi.rmk: Enable cpuid.mod.
14159 * conf/i386-pc.rmk: Likewise.
14161 2007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
14163 * kern/disk.c (grub_disk_read): Check return value of
14166 2007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
14168 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
14170 * disk/raid.c (grub_raid_open): Likewise.
14172 2007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
14174 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
14175 stack instead of on the heap.
14177 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
14178 before doing a read on it.
14180 * configure.ac: Only use -fno-stack-protector for the target
14183 2007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
14185 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
14186 __attribute_ ((unused)) to mode_type argument.
14188 * util/getroot.c (grub_guess_root_device): Fix #endif.
14190 * kern/misc.c (memcmp): Fix prototype.
14192 * include/grub/partition.h [GRUB_UTIL]
14193 (grub_gpt_partition_map_init): Add prototype.
14194 (grub_gpt_partition_map_fini): Likewise.
14196 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
14197 at the right place.
14199 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
14200 (grub_fat_read_data): Likewise.
14201 (grub_fat_find_dir): Likewise.
14203 * font/manager.c (find_glyph): Make table a const.
14204 (grub_font_get_glyph): Remove bitmap from if statement.
14206 2007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
14208 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
14209 code, first search for device in /dev/mapper, then in /dev.
14210 (grub_util_get_grub_dev): New function.
14211 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
14213 * util/grub-probe.c (probe): Remove check for RAID, call
14214 grub_util_get_grub_dev() instead of
14215 grub_util_biosdisk_get_grub_dev().
14216 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
14217 grub_util_biosdisk_get_grub_dev().
14218 * util/i386/pc/grub-setup.c (main): Likewise.
14220 2007-05-16 Robert Millan <rmh@aybabtu.com>
14222 * DISTLIST: Update for the latest changes.
14223 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
14224 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
14225 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
14226 grub/util/biosdisk.h.
14227 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
14228 grub/util/biosdisk.h.
14230 2007-05-16 Robert Millan <rmh@aybabtu.com>
14232 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
14234 2007-05-16 Robert Millan <rmh@aybabtu.com>
14236 * util/i386/efi/grub-install.in: New.
14237 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
14238 newly added grub-install.
14239 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
14241 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
14242 grub/util/biosdisk.h.
14243 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
14244 grub/util/biosdisk.h.
14246 2007-05-16 Robert Millan <rmh@aybabtu.com>
14248 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
14249 * include/grub/util/biosdisk.h: ... here.
14250 * util/i386/pc/biosdisk.c: Moved to ...
14251 * util/biosdisk.c: ... here.
14252 * util/i386/pc/getroot.c: Moved to ...
14253 * util/getroot.c: ... here.
14254 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
14255 * util/grub-mkdevicemap.c: ... here.
14256 * util/i386/pc/grub-probe.c: Moved to ...
14257 * util/grub-probe.c: ... here.
14259 2007-05-15 Robert Millan <rmh@aybabtu.com>
14261 * util/update-grub.in: Remove duplicated line in grub.cfg header
14264 2007-05-13 Robert Millan <rmh@aybabtu.com>
14266 * util/update-grub.in: Fix a few assumptions about the devices holding
14267 /, /boot and /boot/grub being the same.
14268 * util/grub.d/00_header.in: Likewise.
14269 * util/grub.d/10_hurd.in: Likewise.
14270 * util/grub.d/10_linux.in: Likewise.
14272 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
14273 patterns. Use that to define the `.old' suffix as older than `'.
14275 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
14277 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
14278 the grub.cfg header message.
14280 2007-05-11 Robert Millan <rmh@aybabtu.com>
14282 * util/update-grub.in: Create device.map if it doesn't already exist,
14283 before attempting to run grub-probe.
14284 Check for grub-probe and grub-mkdevicemap with the same code
14285 grub-install is using.
14288 2007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
14290 * Makefile.in: Add the datarootdir autoconf variable.
14292 2007-05-09 Robert Millan <rmh@aybabtu.com>
14294 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
14295 fail gracefully if dev->disk->partition == NULL.
14297 2007-05-07 Robert Millan <rmh@aybabtu.com>
14299 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
14300 determine partition map module.
14301 * util/i386/pc/grub-install.in: Use this feature to decide which
14302 partition module to load, instead of hardcoding pc and gpt.
14304 2007-05-07 Robert Millan <rmh@aybabtu.com>
14306 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
14307 source directory differs from build directory.
14309 2007-05-05 Robert Millan <rmh@aybabtu.com>
14311 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
14314 2007-05-05 Robert Millan <rmh@aybabtu.com>
14316 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
14318 2007-05-05 Robert Millan <rmh@aybabtu.com>
14320 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
14321 command-line arguments via ${GRUB_CMDLINE_LINUX}.
14323 2007-05-05 Robert Millan <rmh@aybabtu.com>
14325 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
14326 (grub_probe_SOURCES): Likewise.
14327 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
14328 GPT and initialize dos_part and bsd_part accordingly.
14329 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
14331 (main): Activate gpt module for use during partition identification,
14332 and deactivate it afterwards.
14333 * util/i386/pc/grub-install.in: Add gpt module to core.img.
14334 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
14335 partition identification, and deactivate it afterwards.
14337 2007-05-05 Robert Millan <rmh@aybabtu.com>
14339 * term/i386/pc/console.c (grub_console_fini): Call
14340 grub_term_set_current() before grub_term_unregister().
14342 2007-05-04 Robert Millan <rmh@aybabtu.com>
14344 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
14345 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
14346 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
14347 and update-grub_DATA.
14348 * conf/common.rmk: Build and install update-grub components.
14349 * conf/common.mk: Regenerate.
14350 * util/update-grub.in: New. Core of update-grub.
14351 * util/grub.d/00_header.in: New. Generates grub.cfg header.
14352 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
14353 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
14354 * util/grub.d/README: New. Document grub.d directory layout.
14356 2007-05-01 Robert Millan <rmh@aybabtu.com>
14358 * util/grub-emu.c: Move initialization functions
14359 grub_util_biosdisk_init() and grub_init_all() before
14360 grub_util_biosdisk_get_grub_dev(), which relies on them.
14362 2007-04-19 Robert Millan <rmh@aybabtu.com>
14364 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
14367 2007-04-18 Jerone Young <jerone@gmail.com>
14369 * kernel/elf.c: Add missing parenthesis for conditional statement
14372 2007-04-10 Jerone Young <jerone@gmail.com>
14374 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
14375 continue on and look for device node with real device name.
14377 2007-04-10 Jerone Young <jerone@gmail.com>
14379 * configure.ac: Add argument for autoconf to use transformation
14381 * Makefile.in: Add autoconf package transformation code.
14382 * util/i386/pc/grub-install.in: Likewise.
14383 * util/powerpc/ieee1275/grub-install.in: Likewise.
14385 2007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
14387 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
14388 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
14389 (EXT2_REVISION): Likewise.
14390 (EXT2_INODE_SIZE): Likewise.
14391 (struct grub_ext2_block_group): Added a missing member
14393 (grub_ext2_read_inode): Divide by the inode size in a superblock
14394 instead of 128 to obtain INODES_PER_BLOCK.
14395 Use the macro EXT2_INODE_SIZE instead of directly using
14396 SBLOCK->INODE_SIZE.
14398 2007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
14400 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
14401 superblock instead of the structure size to compute an
14402 offset. This fixes the problem that GRUB could not read a
14403 filesystem when inode size is different from 128-byte.
14405 2007-03-05 Marco Gerards <marco@gnu.org>
14407 * normal/main.c (read_config_file): When "menu" is not set, create
14408 an initial context.
14410 2007-02-21 Hollis Blanchard <hollis@penguinppc.org>
14412 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
14413 (HEAP_LIMIT): New macro.
14414 (grub_claim_heap): Claim memory up to `heaplimit'.
14416 2007-02-21 Hollis Blanchard <hollis@penguinppc.org>
14418 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
14419 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
14420 (_start): Likewise.
14421 (grub_arch_modules_addr): Return address after `_end'.
14422 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
14423 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
14424 (add_segments): Calculate `_end' from phdr size and location.
14425 (ALIGN_UP): Moved to ...
14426 * include/grub/misc.h: here.
14427 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
14429 (GRUB_IEEE1275_MODULE_BASE): Removed.
14431 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
14433 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
14436 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
14438 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
14440 (grub_elf64_load_hook_t): Likewise.
14441 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
14444 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
14446 * kern/mm.c: Update copyright.
14447 (grub_mm_debug): Correct syntax error.
14448 (grub_mm_dump_free): New function.
14449 (grub_debug_free): Call `grub_free'.
14450 * include/grub/mm.h: Update copyright.
14451 (grub_mm_dump_free): Add declaration.
14453 2007-02-12 Hollis Blanchard <hollis@penguinppc.org>
14455 * include/grub/ieee1275/ieee1275.h: Update copyright.
14456 * kern/powerpc/ieee1275/init.c: Likewise.
14457 * kern/powerpc/ieee1275/openfw.c: Likewise.
14459 * loader/powerpc/ieee1275/linux.c: Likewise.
14460 * include/grub/elfload.h: Likewise.
14461 * kern/elf.c: Likewise.
14462 (grub_elf32_load): Pass `base' and `size' parameters. Update all
14464 (grub_elf64_load): Likewise.
14465 (grub_elf32_load_segment): Move to a nested function.
14466 (grub_elf64_load_segment): Likewise.
14468 2007-02-12 Hollis Blanchard <hollis@penguinppc.org>
14470 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
14472 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
14473 (grub_heap_len): Likewise.
14474 (HEAP_SIZE): New macro.
14475 (grub_claim_heap): New function.
14476 (grub_machine_init): Don't claim heap directly. Call
14478 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
14479 (grub_available_iterate): New function.
14481 2007-02-03 Thomas Schwinge <tschwinge@gnu.org>
14483 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
14484 * configure.ac: Use it for testing the HOST and TARGET compilers.
14486 2006-12-13 Thomas Schwinge <tschwinge@gnu.org>
14488 * Makefile.in (enable_grub_emu): New variable.
14489 * configure.ac (--enable-grub-emu): New option.
14490 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
14491 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
14492 * conf/i386-pc.rmk: Likewise.
14493 * conf/powerpc-ieee1275.rmk: Likewise.
14494 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
14496 2006-12-12 Marco Gerards <marco@gnu.org>
14498 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
14500 * kern/env.c (grub_env_unset): Don't free the member `value' when
14501 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
14504 * normal/main.c (current_menu): Removed.
14505 (free_menu): Unset the `menu' environment variable.
14506 (grub_normal_menu_addentry): Make use of the environment variable
14507 `menu', instead of using the global `current_menu'. Allocate
14508 memory for the sourcecode of this entry.
14509 (read_config_file): New argument `nested', changed all callers.
14510 Only in the case of a new context, initialize a new menu. Set the
14511 `menu' environment variable.
14512 (grub_normal_execute): Don't set and unset the environment
14513 variable `menu' here anymore. Only free the menu when leaving the
14516 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
14519 2006-12-11 Marco Gerards <marco@gnu.org>
14521 * normal/menu_entry.c (run): Fix off by one bug so the last line
14522 is executed. Move the loader check to outside the loop.
14524 2006-12-08 Hollis Blanchard <hollis@penguinppc.org>
14526 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
14528 2006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
14530 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
14531 the number of sectors. Reported by Andrey Shuvikov
14532 <mr_hyro@yahoo.com>.
14534 2006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
14536 * kern/disk.c (grub_disk_read): When there is a read error, always
14537 try to read only the necessary data.
14539 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
14541 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
14543 [GRUB_UTIL] (grub_raid_fini): Likewise.
14544 [GRUB_UTIL] (grub_lvm_init): Likewise.
14545 [GRUB_UTIL] (grub_lvm_fini): Likewise.
14546 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
14547 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
14548 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
14549 and grub_raid_fini().
14551 2006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
14553 * include/grub/types.h (__unused): Rename to UNUSED.
14554 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
14555 (grub_elf64_size): Likewise.
14557 2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
14559 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
14560 grub_error_push and grub_error_pop in the error-handling path.
14561 (grub_elf32_load_segment): Only call grub_file_read with non-zero
14564 2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
14566 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
14567 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
14568 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
14569 (kernel_elf_SOURCES): Likewise.
14570 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
14571 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
14572 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
14573 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
14574 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
14575 (elf_mod_SOURCES): New variable.
14576 (elf_mod_CFLAGS): Likewise.
14577 (elf_mod_LDFLAGS): Likewise.
14578 * include/grub/types.h (__unused): New macro.
14579 * include/grub/elfload.h: New file.
14580 * kern/elf.c: Likewise.
14581 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
14582 (ELF32_LOADMASK): New macro.
14583 (ELF64_LOADMASK): Likewise.
14584 (vmlinux): Removed.
14585 (grub_linux_load32): New function.
14586 (grub_linux_load64): Likewise.
14587 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
14588 Use grub_elf_t instead of grub_file_t.
14590 2006-11-02 Hollis Blanchard <hollis@penguinppc.org>
14592 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
14593 `catch_result' to struct set_color_args.
14595 2006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
14597 * normal/menu.c: Include grub/script.h.
14598 * normal/menu_entry.c: Likewise.
14599 * include/grub/normal.h: Do not include grub/script.h.
14601 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
14603 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
14605 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
14607 * kern/disk.c (grub_disk_open): Print debug messages when opening a
14609 (grub_disk_close): Print debug messages when closing a disk.
14610 (grub_disk_read): Print debug messages when disk read fails.
14611 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
14613 * kern/partition.c: Include misc.h.
14614 (grub_partition_iterate): Print debug messages when detecting
14617 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
14619 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
14621 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
14623 2006-10-26 Hollis Blanchard <hollis@penguinppc.org>
14625 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
14626 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
14628 2006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
14630 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
14631 instead of sizeof(lv). Patch by Michael Guntsche.
14633 2006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
14635 * disk/lvm.c: Rename VGS to VG_LIST.
14636 (grub_lvm_iterate): Change VGS->LV to VG-LV.
14637 (grub_lvm_open): Likewise.
14638 Thanks to Michael Guntsche for finding this bug.
14640 2006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
14642 * configure.ac (AC_INIT): Bumped to 1.95.
14644 2006-10-14 Robert Millan <rmh@aybabtu.com>
14646 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
14647 with "/dev/.static/dev/md".
14649 2006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
14651 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
14652 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
14653 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
14654 DRIVE_NAME are always freed.
14656 * util/i386/pc/biosdisk.c (make_device_name): Add one into
14657 DOS_PART, as a DOS partition is counted from one instead of zero
14658 now. Reported by Robert Millan.
14660 2006-10-14 Robert Millan <rmh@aybabtu.com>
14662 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
14663 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
14664 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
14665 string returned by grub_guess_root_device.
14666 * util/i386/pc/grub-setup.c: Likewise.
14667 * util/i386/pc/grub-probefs.c: Likewise.
14669 * util/i386/pc/grub-probefs.c: Rename to ...
14670 * util/i386/pc/grub-probe.c: ... this.
14671 * DISTLIST: Remove grub-probefs, add grub-probe.
14672 * conf/i386-efi.rmk: Likewise.
14673 * conf/i386-pc.rmk: Likewise.
14674 * util/i386/pc/grub-install.in: Likewise.
14676 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
14677 choose which information we want to print.
14679 2006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
14681 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
14682 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
14683 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
14684 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
14685 video/readers/tga.c and video/i386/pc/vbeutil.c.
14687 2006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
14689 Added support for RAID and LVM.
14691 * disk/lvm.c: New file.
14692 * disk/raid.c: Likewise.
14693 * include/grub/lvm.h: Likewise.
14694 * include/grub/raid.h: Likewise.
14695 * include/grub/util/lvm.h: Likewise.
14696 * include/grub/util/raid.h: Likewise.
14697 * util/lvm.c: Likewise.
14698 * util/raid.c: Likewise.
14700 * include/grub/disk.h (grub_disk_dev_id): Add
14701 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
14702 (grub_disk_get_size): New prototype.
14703 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
14704 returns a partition.
14705 (grub_disk_get_size): New function.
14707 * kern/i386/pc/init.c (make_install_device): Copy the prefix
14708 verbatim if grub_install_dos_part is -2.
14710 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
14713 * util/i386/pc/grub-setup.c (setup): New argument
14714 MUST_EMBED. Force embedding of GRUB when the argument is
14715 true. Close FILE before returning.
14716 (main): Add support for RAID and LVM.
14718 * conf/common.rmk: Add RAID and LVM modules.
14719 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
14721 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
14723 * kern/misc.c (grub_strstr): New function.
14724 * include/grub/misc.h (grub_strstr): New prototype.
14726 2006-10-10 Tristan Gingold <tristan.gingold@bull.net>
14728 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
14730 2006-10-05 Tristan Gingold <tristan.gingold@bull.net>
14732 * kern/misc.c (grub_strtoull): Guess the base only if not
14735 2006-10-01 Hollis Blanchard <hollis@penguinppc.org>
14737 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
14740 2006-10-01 Hollis Blanchard <hollis@penguinppc.org>
14742 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
14744 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
14745 Remove `flags' argument. All callers changed.
14746 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
14747 (IEEE1275_IHANDLE_INVALID): New variable.
14748 (IEEE1275_CELL_INVALID): New variable.
14749 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
14750 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
14751 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
14752 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
14753 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
14754 codes from Open Firmware. All callers updated.
14755 (grub_ieee1275_next_property): Directly return Open Firmware return
14757 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
14758 Standardize error checking from `grub_ieee1275_get_property'.
14759 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
14760 `devalias' to `aliases'. Correct comments. Consolidate error paths.
14762 2006-10-01 Hollis Blanchard <hollis@penguinppc.org>
14764 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
14765 `instance_to_package_args' to `instance_to_path_args'.
14767 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
14768 `grub_ieee1275_chosen'.
14770 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
14771 `grub_ieee1275_interpret'.
14773 2006-09-25 Hollis Blanchard <hollis@penguinppc.org>
14775 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
14777 2006-09-25 Hollis Blanchard <hollis@penguinppc.org>
14779 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
14780 (__cmpdi): Likewise.
14782 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
14783 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
14786 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
14788 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
14789 to type `grub_ssize_t'.
14790 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
14792 2006-09-22 Marco Gerards <marco@gnu.org>
14794 * normal/script.c (grub_script_create_cmdmenu): Skip leading
14797 2006-09-22 Marco Gerards <marco@gnu.org>
14799 * commands/echo.c: New file.
14801 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
14803 * conf/common.rmk (echo_mod_SOURCES): New variable.
14804 (echo_mod_CFLAGS): Likewise.
14805 (echo_mod_LDFLAGS): Likewise.
14807 2006-09-22 Marco Gerards <marco@gnu.org>
14809 * normal/main.c (get_line): Malloc memory instead of using
14810 preallocated memory. Removed the arguments `cmdline' and
14811 `max_len'. Updated all callers.
14813 2006-09-22 Marco Gerards <marco@gnu.org>
14815 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
14816 (normal_mod_DEPENDENCIES): Likewise.
14818 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
14819 (normal_mod_DEPENDENCIES): Likewise.
14821 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
14823 2006-09-22 Johan Rydberg <jrydberg@gnu.org>
14825 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
14827 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
14828 (normal_mod_DEPENDENCIES): Likewise.
14829 * conf/i386-pc.mk: Regenerate.
14830 * conf/i386-efi.mk: Likewise
14831 * conf/common.mk: Likewise.
14832 * conf/powerpc-ieee1275.mk: Likewise.
14833 * conf/sparc64-ieee1275.mk: Likewise.
14835 2006-09-22 Robert Millan <rmh@aybabtu.com>
14837 Sync with i386 version.
14838 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
14839 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
14841 2006-09-21 Robert Millan <rmh@aybabtu.com>
14843 Import from GRUB Legacy (lib/device.c):
14844 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
14845 (init_device_map) [__linux__]: Add support for I2O devices.
14847 2006-09-14 Marco Gerards <marco@gnu.org>
14849 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
14852 2006-09-14 Robert Millan <rmh@aybabtu.com>
14854 * util/i386/pc/grub-install.in: Skip menu.lst when removing
14857 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
14859 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
14860 before adding it to device.map.
14862 2006-08-15 Johan Rydberg <jrydberg@gnu.org>
14864 * genmk.rb: Let GCC generate dependencies the first time it
14865 compiles a file; using the -MD option.
14866 * conf/common.mk: Regenerate.
14867 * conf/i386-pc.mk: Likewise.
14868 * conf/i386-efi.mk: Likewise.
14869 * conf/powerpc-ieee1275.mk: Likewise.
14870 * conf/sparc64-ieee1275.mk: Likewise.
14872 2006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
14874 Move the prototypes of grub_setjmp and grub_longjmp to
14875 cpu/setjmp.h, so that each architecture may specify different
14878 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
14879 (grub_longjmp): Likewise.
14880 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
14881 (grub_longjmp): Likewise.
14882 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
14883 (grub_longjmp): Likewise.
14885 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
14886 [!GRUB_UTIL] (grub_longjmp): Removed.
14888 2006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
14890 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
14891 "color!" method does not return any value.
14893 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
14895 * include/grub/bitmap.h: New file.
14897 * include/grub/i386/pc/vbeutil.h: Likewise.
14899 * video/bitmap.c: Likewise.
14901 * video/readers/tga.c: Likewise.
14903 * video/i386/pc/vbeutil.c: Likewise.
14905 * commands/videotest.c: Code cleanup and updated to reflect to new
14908 * term/gfxterm.c: Likewise.
14910 * video/video.c: Likewise.
14912 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
14913 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
14914 (bitmap_mod_SOURCES): New entry.
14915 (bitmap_mod_CFLAGS): Likewise.
14916 (bitmap_mod_LDFLAGS): Likewise.
14917 (tga_mod_SOURCES): Likewise.
14918 (tga_mod_CFLAGS): Likewise.
14919 (tga_mod_LDFLAGS): Likewise.
14921 * include/grub/video.h (grub_video_blit_operators): New enum type.
14922 (grub_video_render_target): Changed as forward declaration and moved
14923 actual definition to be video driver specific.
14924 (grub_video_adapter.blit_bitmap): Added blitting operator.
14925 (grub_video_adapter.blit_render_target): Likewise.
14926 (grub_video_blit_bitmap): Likewise.
14927 (grub_video_blit_render_target): Likewise.
14929 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
14930 driver specific render target definition.
14931 (grub_video_vbe_map_rgba): Added driver internal helper.
14932 (grub_video_vbe_unmap_color): Updated to use
14933 grub_video_i386_vbeblit_info.
14934 (grub_video_vbe_get_video_ptr): Likewise.
14936 * include/grub/i386/pc/vbeblit.h
14937 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
14938 grub_video_i386_vbeblit_info.
14939 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
14940 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
14941 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
14942 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
14943 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
14944 (grub_video_i386_vbeblit_index_index): Likewise.
14945 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
14946 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
14947 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
14948 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
14950 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
14953 * video/i386/pc/vbeblit.c: Updated to reflect changes on
14954 include/grub/i386/pc/vbeblit.h.
14956 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
14957 Updated to use grub_video_i386_vbeblit_info.
14958 (grub_video_i386_vbefill_R8G8B8): Likewise.
14959 (grub_video_i386_vbefill_index): Likewise.
14960 (grub_video_i386_vbefill): Added generic filler.
14962 * video/i386/pc/vbefill.c: Updated to reflect changes on
14963 include/grub/i386/pc/vbefill.h.
14965 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
14966 grub_video_i386_vbeblit_info.
14967 (grub_video_vbe_unmap_color): Likewise.
14968 (grub_video_vbe_blit_glyph): Likewise.
14969 (grub_video_vbe_scroll): Likewise.
14970 (grub_video_vbe_draw_pixel): Removed function.
14971 (grub_video_vbe_get_pixel): Likewise.
14972 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
14973 updated code to use it.
14974 (common_blitter): Added common blitter for render target and bitmap.
14975 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
14976 (grub_video_vbe_blit_render_target): Likewise.
14978 2006-07-30 Johan Rydberg <jrydberg@gnu.org>
14980 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
14981 is in text mode if there is no console control protocol instance
14984 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
14986 * include/grub/video.h: Code cleanup.
14988 * include/grub/i386/pc/vbe.h: Likewise.
14990 * video/i386/pc/vbe.c: Likewise.
14992 * video/i386/pc/vbeblit.c: Likewise.
14994 * video/i386/pc/vbefill.c: Likewise.
14996 * video/video.c: Likewise. Also added more comments.
14998 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
15000 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
15001 (struct grub_biosdisk_dap): Likewise.
15003 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
15004 linkage settings for all functions.
15006 2006-07-12 Marco Gerards <marco@gnu.org>
15008 * configure.ac (--enable-mm-debug): Fix typo.
15010 * genkernsyms.sh.in: Use proper quoting for `CC'.
15012 2006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
15014 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
15015 (normal_mod_ASFLAGS): Remove "-m32".
15017 2006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
15019 * util/misc.c: Include config.h.
15020 [!HAVE_MEMALIGN]: Do not include malloc.h.
15021 (grub_memalign): Use posix_memalign, if present. Then, use
15022 memalign, if present. Otherwise, emit an error.
15024 * util/grub-emu.c: Do not include malloc.h.
15026 * include/grub/util/misc.h: Include unistd.h. This is required for
15027 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
15028 D. Eades III <hde@foobar-qux.org>.
15030 * configure.ac (AC_GNU_SOURCE): Added.
15031 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
15034 2006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
15036 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
15037 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
15039 2006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
15041 * include/grub/types.h (grub_host_addr_t): Rename to
15042 grub_target_addr_t.
15043 (grub_host_off_t): Rename to grub_target_off_t.
15044 (grub_host_size_t): Rename to grub_target_size_t.
15045 (grub_host_ssize_t): Rename to grub_target_ssize_t.
15046 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
15048 * include/grub/kernel.h (struct grub_module_header): Change type
15049 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
15050 (grub_module_info): Likewise.
15052 2006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
15054 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
15055 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
15056 Velazquez <jesus.velazquez@gmail.com>.
15058 2006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
15060 Count partitions from 1 instead of 0 in the string representation
15061 of partitions. Still use 0-based internally.
15063 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
15064 (sun_partition_map_iterate): Use grub_partition_t instead of
15065 struct grub_partition *. Cast DESC->START_CYLINDER to
15066 grub_uint64_t after converting the endian.
15067 (sun_partition_map_probe): Subtract 1 for PARTNUM.
15068 (sun_partition_map_get_name): Add 1 to P->INDEX.
15070 * partmap/pc.c (grub_partition_parse): Subtract 1 for
15072 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
15074 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
15075 zero instead of one.
15076 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
15077 (gpt_partition_map_get_name): Add 1 into P->INDEX.
15079 * partmap/apple.c (apple_partition_map_iterate): Change the type
15080 of POS to unsigned.
15081 (apple_partition_map_probe): Subtract 1 for PARTNUM.
15082 (apple_partition_map_get_name): Add 1 into P->INDEX.
15084 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
15085 of POS to unsigned.
15086 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
15087 calculate the offset of a partition.
15088 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
15089 (amiga_partition_map_get_name): Add 1 into P->INDEX.
15091 * partmap/acorn.c (acorn_partition_map_find): Change the type of
15092 SECTOR to grub_disk_addr_t.
15093 (acorn_partition_map_iterate): Likewise.
15094 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
15095 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
15097 (acorn_partition_map_get_name): Add 1 into P->INDEX.
15099 * kern/i386/pc/init.c (make_install_device): Add 1 into
15100 GRUB_INSTALL_DOS_PART.
15102 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
15105 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
15107 Clean up the code to support 64-bit addressing in disks and
15108 files. This change is not enough for filesystems yet.
15110 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
15111 type of "start" to grub_uint64_t.
15112 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
15113 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
15114 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
15117 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
15118 to grub_disk_addr_t.
15120 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
15123 * partmap/pc.c (pc_partition_map_iterate): Likewise.
15125 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
15128 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
15130 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
15132 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
15134 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
15135 to grub_off_t, to detect an error from grub_file_seek.
15136 (grub_multiboot_load_elf32): Likewise.
15138 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
15139 maximum unsigned long value when an overflow is detected.
15140 (grub_strtoull): New function.
15141 (grub_divmod64): Likewise.
15142 (grub_lltoa): use grub_divmod64.
15144 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
15146 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
15147 the pointer to next character. Use grub_strtoull instead of
15149 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
15150 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
15153 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
15154 return value is signed.
15155 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
15156 test if OFFSET is less than zero, as OFFSET is unsigned now.
15158 * kern/disk.c (struct grub_disk_cache): Change the type of
15159 "sector" to grub_disk_addr_t.
15160 (grub_disk_cache_get_index): Change the type of SECTOR to
15161 grub_disk_addr_t. Calculate the hash with SECTOR casted to
15162 unsigned after shifting.
15163 (grub_disk_cache_invalidate): Change the type of SECTOR to
15165 (grub_disk_cache_unlock): Likewise.
15166 (grub_disk_cache_store): Likewise.
15167 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
15168 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
15169 grub_disk_addr_t and grub_uint64_t, respectively.
15170 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
15171 body, as the value of OFFSET is tweaked by
15172 grub_disk_check_range. Change the types of START_SECTOR, LEN and
15173 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
15175 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
15176 body, as the value of OFFSET is tweaked by
15177 grub_disk_check_range. Change the types of LEN and N to
15180 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
15181 and "saved_offset" to grub_off_t.
15182 (test_header): Cast BUF to char *.
15183 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
15185 (grub_gzio_read): Change the types of OFFSET and SIZE to
15186 grub_off_t and grub_size_t, respectively.
15188 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
15190 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
15191 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
15192 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
15193 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
15194 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
15196 * include/grub/types.h (grub_off_t): Unconditionally set to
15198 (grub_disk_addr_t): Changed to grub_uint64_t.
15200 * include/grub/partition.h (struct grub_partition): Change the
15201 types of "start", "len" and "offset" to grub_disk_addr_t,
15202 grub_uint64_t and grub_disk_addr_t, respectively.
15203 (grub_partition_get_start): Return grub_disk_addr_t.
15204 (grub_partition_get_len): Return grub_uint64_t.
15206 * include/grub/misc.h (grub_strtoull): New prototype.
15207 (grub_divmod64): Likewise.
15209 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
15210 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
15211 grub_off_t, respectively.
15212 All callers and references changed.
15214 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
15215 grub_size_t in "read".
15216 All callers and references changed.
15218 * include/grub/file.h (struct grub_file): Change the types of
15219 "offset" and "size" to grub_off_t and grub_off_t,
15220 respectively. Change the type of SECTOR to grub_disk_addr_t in
15222 (grub_file_read): Change the type of LEN to grub_size_t.
15223 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
15225 (grub_file_size): Return grub_off_t.
15226 (grub_file_tell): Likewise.
15227 All callers and references changed.
15229 * include/grub/disk.h (struct grub_disk_dev): Change the types of
15230 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
15232 (struct grub_disk): Change the type of "total_sectors" to
15233 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
15235 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
15236 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
15237 (grub_disk_write): Likewise.
15238 All callers and references changed.
15240 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
15241 char * for grub_strncmp to silence gcc.
15242 (grub_iso9660_mount): Likewise.
15243 (grub_iso9660_mount): Likewise.
15244 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
15246 (grub_iso9660_iterate_dir): Likewise.
15247 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
15249 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
15250 LEN to grub_disk_addr_t and grub_size_t, respectively.
15252 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
15254 * fs/jfs.c (grub_jfs_read_file): Likewise.
15256 * fs/minix.c (grub_jfs_read_file): Likewise.
15258 * fs/sfs.c (grub_jfs_read_file): Likewise.
15260 * fs/ufs.c (grub_jfs_read_file): Likewise.
15262 * fs/xfs.c (grub_jfs_read_file): Likewise.
15264 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
15265 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
15268 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
15269 BLKNR to -1 instead of returning GRUB_ERRNO.
15270 (grub_ext2_read_file): Change the types of SECTOR and
15271 LEN to grub_disk_addr_t and grub_size_t, respectively.
15273 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
15274 LEN to grub_disk_addr_t and grub_size_t, respectively.
15276 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
15279 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
15280 string. Do not cast SECTOR explicitly.
15282 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
15283 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
15284 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
15285 grub_disk_addr_t and grub_size_t, respectively. If the sector is
15286 over 2TB and LBA mode is not supported, raise an error.
15287 (get_safe_sectors): New function.
15288 (grub_biosdisk_read): Use get_safe_sectors.
15289 (grub_biosdisk_write): Likewise.
15291 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
15292 (grub_efidisk_write): Likewise.
15294 * disk/loopback.c (delete_loopback): Cosmetic changes.
15295 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
15297 (grub_loopback_open): Likewise.
15298 (grub_loopback_read): Likewise. Also, change the type of POS to
15299 grub_off_t, and fix the usage of grub_memset.
15301 * commands/i386/pc/play.c: Include grub/machine/time.h.
15303 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
15306 * commands/configfile.c: Include grub/env.h.
15308 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
15309 GRUB_ERRNO directly instead. Change the type of POS to
15310 grub_off_t. Follow the coding standard.
15312 * commands/blocklist.c: Include grub/partition.h.
15313 (grub_cmd_blocklist): Return an error if the underlying device is
15314 not a disk. Take the starting sector of a partition into account,
15315 if a partition is used.
15317 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
15319 (lba_mode): Support 64-bit addresses.
15320 (chs_mode): Likewise.
15321 (copy_buffer): Adapted to the new offsets of a length field and a
15323 (blocklist_default_start): Allocate 64-bit space.
15325 * boot/i386/pc/boot.S (force_lba): Removed.
15326 (boot_drive): Moved to under KERNEL_SECTOR.
15327 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
15329 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
15331 (lba_mode): Refactored to support a 64-bit address. More size
15333 (setup_sectors): Likewise.
15335 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
15337 * DISTLIST: Added include/grub/i386/linux.h. Removed
15338 include/grub/i386/pc/linux.h
15340 * configure.ac (AC_INIT): Bumped to 1.94.
15342 * config.guess: Updated from gnulib.
15343 * config.sub: Likewise.
15344 * install-sh: Likewise.
15345 * mkinstalldirs: Likewise.
15347 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
15349 * conf/common.rmk (grub_modules_init.lst): Depended on
15350 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
15353 * genmk.rb (PModule::rule): Reverted the previous change.
15355 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
15357 * conf/common.rmk (grub_modules_init.lst): Depends on
15358 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
15359 that the target does not exist before producing.
15360 (grub_modules_init.h): Remove the target before generating.
15361 (grub_emu_init.c): Likewise.
15363 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
15365 2006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
15367 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
15368 for the target-specific tests. Make sure that we also have the
15369 up-to-date target variables for those tests.
15371 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
15373 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
15374 (PModule::rule): Likewise.
15376 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
15378 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
15379 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
15380 target-specific flags should be prefixed.
15381 (PModule::rule): Likewise.
15383 2006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
15385 * configure.ac (CMP): Check if cmp is available explicitly.
15387 2006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
15389 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
15390 (target_cpu): New variable.
15391 (pkglibdir): Use target_cpu instead of host_cpu.
15393 * util/i386/pc/grub-install.in (host_cpu): Removed.
15394 (target_cpu): New variable.
15395 (pkglibdir): Use target_cpu instead of host_cpu.
15397 * util/genmoddep.c: Removed.
15399 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
15400 instead of GRUB_HOST_SIZEOF_VOID_P.
15401 * kern/dl.c: Likewise.
15403 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
15405 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
15406 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
15407 (GRUB_TARGET_SIZEOF_LONG): ... this.
15408 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
15409 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
15410 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
15412 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
15413 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
15414 (GRUB_TARGET_SIZEOF_LONG): ... this.
15415 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
15416 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
15417 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
15419 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
15420 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
15421 (GRUB_TARGET_SIZEOF_LONG): ... this.
15422 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
15423 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
15425 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
15426 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
15427 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
15428 instead of GRUB_HOST_SIZEOF_LONG.
15429 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
15430 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
15431 GRUB_CPU_WORDS_BIGENDIAN.
15432 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
15433 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
15436 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
15437 (genmoddep_SOURCES): Likewise.
15438 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
15439 (genmoddep_SOURCES): Likewise.
15440 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
15441 (genmoddep_SOURCES): Likewise.
15442 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
15444 (genmoddep_SOURCES): Likewise.
15446 * genmoddep.awk: New file.
15448 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
15449 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
15450 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
15451 (PModule::rule): Likewise.
15452 (Program::rule): Likewise.
15453 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
15454 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
15457 * configure.ac: Rewritten intensively to use host and target
15458 instead of build and host, respectively.
15460 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
15461 (host_cpu): Removed.
15462 (target_cpu): New variable.
15463 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
15464 (BUILD_CC): Removed.
15465 (BUILD_CFLAGS): Likewise.
15466 (BUILD_CPPFLAGS): Likewise.
15467 (TARGET_CC): New variable.
15468 (TARGET_CFLAGS): Likewise.
15469 (TARGET_CPPFLAGS): Likewise.
15470 (TARGET_LDFLAGS): Likewise.
15472 (include): Use target_cpu instead of host_cpu.
15473 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
15475 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
15477 2006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
15479 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
15480 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
15481 field 'false' to 'exec_on_false'.
15482 (grub_script_create_cmdif): Renamed argument names to reflect above
15485 * normal/execute.c (grub_script_execute_cmdif): Likewise.
15487 * normal/script.c (grub_script_create_cmdif): Likewise.
15489 2006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
15491 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
15493 (grub_hfsplus_btree_recptr): Likewise.
15494 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
15495 FILEBLOCK both to pass a block number and store next block
15497 (grub_hfsplus_read_block): Rewritten heavily to support an extent
15498 overflow file correctly. Specify errors appropriately, because
15499 fshelp expects that GRUB_ERRNO is set when fails. Reuse
15500 grub_hfsplus_btree_recptr to get the pointer to a found key.
15501 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
15504 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
15506 (_linux_mod_SOURCES): New variable.
15507 (_linux_mod_CFLAGS): Likewise.
15508 (_linux_mod_LDFLAGS): Likewise.
15509 (linux_mod_SOURCES): Likewise.
15510 (linux_mod_CFLAGS): Likewise.
15511 (linux_mod_LDFLAGS): Likewise.
15513 * DISTLIST: Added loader/i386/efi/linux.c,
15514 loader/i386/efi/linux_normal.c and
15515 include/grub/i386/efi/loader.h.
15517 * loader/i386/efi/linux.c: New file.
15518 * loader/i386/efi/linux_normal.c: Likewise.
15519 * include/grub/i386/efi/loader.h: Likewise.
15521 2006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
15523 * commands/blocklist.c: New file.
15525 * DISTLIST: Added commands/blocklist.c.
15527 * term/efi/console.c (grub_console_highlight_color): Use a lighter
15528 color for the background, and a darker color for the foreground.
15529 (grub_console_checkkey): Return READ_KEY.
15530 (grub_console_cls): Set the background to
15531 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
15533 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
15535 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
15536 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
15538 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
15541 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
15542 BG. The spec is wrong again.
15544 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
15546 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
15548 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15549 commands/blocklist.c.
15550 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
15552 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
15553 (blocklist_mod_SOURCES): New variable.
15554 (blocklist_mod_CFLAGS): Likewise.
15555 (blocklist_mod_LDFLAGS): Likewise.
15557 2006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
15559 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
15561 (lba_mode): Use %eax more intensively to reduce the code size.
15563 2006-05-20 Marco Gerards <marco@gnu.org>
15565 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
15567 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
15569 (script): Accept leading newlines.
15570 (newlines): New rule to describe 0 or more newlines.
15571 (commands): Accept `command' with trailing newline. Fixed the
15572 order in which arguments were passed to `grub_script_add_cmd'.
15573 Accept commands separated by newlines.
15574 (function): Changed to accept newlines.
15575 (menuentry) Rewritten.
15577 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
15578 front of the list, instead of to the end.
15580 2006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
15582 * util/i386/pc/grub-install.in (bindir): New variable.
15583 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
15584 Shaver <lbgwjl@gmail.com>.
15586 2006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
15588 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
15589 grub/machine/linux.h
15590 * loader/i386/pc/linux.c: Likewise.
15592 * include/grub/i386/pc/linux.h: Moved to ...
15593 * include/grub/i386/linux.h: ... here.
15595 * include/grub/i386/linux.h (struct linux_kernel_params): New
15598 2006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
15600 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
15602 (grub_video_vbe_blit_glyph): Likewise.
15603 (grub_video_vbe_blit_bitmap): Likewise.
15604 (grub_video_vbe_blit_render_target): Likewise.
15606 2006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
15608 * configure.ac (--with-platform): Properly quote the square
15611 2006-05-08 Marco Gerards <marco@gnu.org>
15613 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
15615 (kernel_elf_HEADERS): ...to this. Updated all users.
15616 (grubof_symlist.c): Renamed from this...
15617 (kernel_elf_symlist.c): ...to this. Updated all users.
15618 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
15619 (grubof_SOURCES): Renamed from this...
15620 (kernel_elf_SOURCES): ...to this.
15621 (grubof_HEADERS): Renamed from this...
15622 (kernel_elf_HEADERS): ...to this.
15623 (grubof_CFLAGS): Renamed from this...
15624 (kernel_elf_CFLAGS): ...to this.
15625 (grubof_ASFLAGS): Renamed from this...
15626 (kernel_elf_ASFLAGS): ...to this.
15627 (grubof_LDFLAGS): Renamed from this...
15628 (kernel_elf_LDFLAGS): ...to this.
15630 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
15632 (kernel_elf_HEADERS): ...to this. Updated all users.
15633 (grubof_symlist.c): Renamed from this...
15634 (kernel_elf_symlist.c): ...to this. Updated all users.
15635 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
15636 (grubof_SOURCES): Renamed from this...
15637 (kernel_elf_SOURCES): ...to this.
15638 (grubof_HEADERS): Renamed from this...
15639 (kernel_elf_HEADERS): ...to this.
15640 (grubof_CFLAGS): Renamed from this...
15641 (kernel_elf_CFLAGS): ...to this.
15642 (grubof_ASFLAGS): Renamed from this...
15643 (kernel_elf_ASFLAGS): ...to this.
15644 (grubof_LDFLAGS): Renamed from this...
15645 (kernel_elf_LDFLAGS): ...to this.
15647 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
15648 `kernel.elf' instead of `grubof'.
15650 2006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
15652 Add --with-platform to configure. Use pkglibdir instead of
15653 pkgdatadir. This is reported by Roger Leigh.
15655 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
15656 (host_vendor): Likewise.
15657 (host_os): Likewise.
15658 (pkgdatadir): Likewise.
15659 (platform): New variable.
15660 (pkglibdir): Likewise.
15661 Use PKGLIBDIR instead of PKGDATADIR.
15663 * util/i386/pc/grub-install.in (datadir): Removed.
15664 (host_vendor): Likewise.
15665 (host_os): Likewise.
15666 (pkgdatadir): Likewise.
15667 (platform): New variable.
15668 (pkglibdir): Likewise.
15669 Use PKGLIBDIR instead of PKGDATADIR.
15671 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
15672 instead of GRUB_DATADIR.
15674 * util/i386/pc/grub-mkimage.c (usage): Likewise.
15676 * util/i386/efi/grub-mkimage.c (usage): Likewise.
15679 * configure.ac (--with-platform): New option.
15680 Use PLATFORM instead of HOST_VENDOR to specify a platform.
15682 * Makefile.in: Include a makefile based on PLATFORM instead of
15684 (pkgdatadir): Not appended by the machine type.
15685 (pkglibdir): Appended by the machine type.
15686 (host_vendor): Removed.
15687 (platform): New variable.
15688 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
15689 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
15690 (uninstall): Likewise.
15692 2006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
15694 Use the environment context in the menu. Remove the commands
15695 "default" and "timeout", and use variables instead.
15697 * normal/menu.c: Include grub/env.h.
15698 (print_entry): Cast TITLE to silence gcc.
15699 (get_timeout): New function.
15700 (set_timeout): Likewise.
15701 (get_entry_number): Likewise.
15702 (run_menu): Use a default entry, a fallback entry and a timeout
15703 in the environment variables "default", "fallback" and
15704 "timeout". Also, tweak the default entry if it is not within the
15705 current menu entries.
15706 (grub_menu_run): Use a fallback entry in the environment variable
15709 * normal/main.c (read_config_file): Do not initialize
15710 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
15712 (grub_normal_execute): Use a data slot to store the menu.
15714 * include/grub/normal.h (struct grub_menu): Removed default_entry,
15715 fallback_entry and timeout.
15716 (struct grub_menu_list): Removed.
15717 (grub_menu_list_t): Likewise.
15718 (struct grub_context): Likewise.
15719 (grub_context_t): Likewise.
15720 (grub_context_get): Likewise.
15721 (grub_context_get_current_menu): Likewise.
15722 (grub_context_push_menu): Likewise.
15723 (grub_context_pop_menu): Likewise.
15724 (grub_default_init): Likewise.
15725 (grub_default_fini): Likewise.
15726 (grub_timeout_init): Likewise.
15727 (grub_timeout_fini): Likewise.
15729 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
15731 (normal_mod_SOURCES): Removed normal/context.c.
15733 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
15734 commands/default.c, commands/timeout.c and normal/context.c.
15735 (normal_mod_SOURCES): Removed normal/context.c.
15737 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
15738 commands/timeout.c and normal/context.c.
15739 (normal_mod_SOURCES): Removed normal/context.c.
15741 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
15742 commands/default.c, commands/timeout.c and normal/context.c.
15743 (normal_mod_SOURCES): Removed normal/context.c.
15745 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
15747 (default_mod_SOURCES): Removed.
15748 (default_mod_CFLAGS): Likewise.
15749 (default_mod_LDFLAGS): Likewise.
15750 (timeout_mod_SOURCES): Removed.
15751 (timeout_mod_CFLAGS): Likewise.
15752 (timeout_mod_LDFLAGS): Likewise.
15754 * DISTLIST: Removed commands/default.c, commands/timeout.c and
15757 * commands/default.c: Removed.
15758 * commands/timeout.c: Likewise.
15759 * normal/context.c: Likewise.
15761 2006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
15763 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
15765 2006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
15767 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
15768 "next" to "prev" for readability.
15769 (struct grub_env_sorted_var): New struct.
15770 (grub_env_context): Renamed to ...
15771 (initial_context): ... this.
15772 (grub_env_var_context): Renamed to ...
15773 (current_context): ... this.
15774 (grub_env_find): Look only at CURRENT_CONTEXT.
15775 (grub_env_context_open): Rewritten to copy exported variables from
15777 (grub_env_context_close): Rewritten according to the new
15778 scheme. Also, add an assertion to prevent the initial context from
15780 (grub_env_insert): Removed the code for the sorted list.
15781 (grub_env_remove): Likewise.
15782 (grub_env_export): Simply mark the variable with
15783 GRUB_ENV_VAR_GLOBAL.
15784 (grub_env_set): A cosmetic change for naming consistency.
15785 (grub_env_get): Likewise.
15786 (grub_env_unset): Likewise.
15787 (grub_env_iterate): Rewritten to sort variables within this
15789 (grub_register_variable_hook): Fixed for naming consistency. Call
15790 grub_env_find again, only if NAME is not found at the first time.
15791 (mangle_data_slot_name): New function.
15792 (grub_env_set_data_slot): Likewise.
15793 (grub_env_get_data_slot): Likewise.
15794 (grub_env_unset_data_slot): Likewise.
15796 * include/grub/env.h (grub_env_var_type): New enum.
15797 (GRUB_ENV_VAR_LOCAL): New constant.
15798 (GRUB_ENV_VAR_GLOBAL): Likewise.
15799 (GRUB_ENV_VAR_DATA): Likewise.
15800 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
15802 (grub_env_set): Replace VAR with NAME for consistency.
15803 (grub_register_variable_hook): Likewise.
15804 (grub_env_export): Specify the name of the argument.
15805 (grub_env_set_data_slot): New prototype.
15806 (grub_env_get_data_slot): Likewise.
15807 (grub_env_unset_data_slot): Likewise.
15809 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
15811 Extend the loader so that GRUB can accept a loader which comes
15812 back to GRUB when a loaded image exits. Also, this change adds
15813 support for a chainloader on EFI.
15815 * term/efi/console.c: Include grub/misc.h.
15816 (grub_console_checkkey): Display a scan code on the top for
15817 debugging. This will be removed once the EFI port gets stable.
15818 Correct the scan code mapping.
15820 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
15821 allocate memory from larger regions, in order to reduce the number
15822 of allocated regions. Otherwise, the MacOSX loader panics.
15823 (filter_memory_map): Avoid less than 1MB for compatibility with
15825 (add_memory_regions): Allocate from the tail of a region, if
15826 possible, to avoid allocating a region near to 1MB, for the MacOSX
15829 * kern/efi/init.c (grub_efi_set_prefix): Specify
15830 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
15832 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
15833 argument IMAGE_HANDLE and specify it to get a loaded image.
15834 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
15835 grub_efi_get_loaded_image.
15836 (grub_efi_get_filename): Divide the length by the size of
15838 (grub_efi_get_device_path): New function.
15839 (grub_efi_print_device_path): Print End Device Path nodes. Divide
15840 the length by the size of grub_efi_char16_t for a file path device
15843 * kern/loader.c (grub_loader_noreturn): New variable.
15844 (grub_loader_set): Accept a new argument NORETURN. Set
15845 GRUB_LOADER_NORETURN to NORETURN.
15846 All callers changed.
15847 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
15850 * include/grub/efi/efi.h (grub_efi_get_device_path): New
15852 (grub_efi_get_loaded_image): Take an argument to specify an image
15855 * include/grub/loader.h (grub_loader_set): Added one more argument
15858 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
15859 instead of grub_efi_open_protocol.
15860 (grub_efidisk_get_device_name): Likewise.
15861 (grub_efidisk_close): Print a newline.
15862 (grub_efidisk_get_device_handle): Fixed to use
15863 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
15864 GRUB_EFI_DEVICE_PATH_TYPE.
15866 * disk/efi/efidisk.c (device_path_guid): Moved to ...
15867 * kern/efi/efi.c (device_path_guid): ... here.
15869 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
15871 (kernel_mod_HEADERS): Added efi/disk.h.
15872 (_chain_mod_SOURCES): New variable.
15873 (_chain_mod_CFLAGS): Likewise.
15874 (_chain_mod_LDFLAGS): Likewise.
15875 (chain_mod_SOURCES): Likewise.
15876 (chain_mod_CFLAGS): Likewise.
15877 (chain_mod_LDFLAGS): Likewise.
15879 * DISTLIST: Added include/grub/efi/chainloader.h,
15880 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
15882 * include/grub/efi/chainloader.h: New file.
15883 * loader/efi/chainloader.c: Likewise.
15884 * loader/efi/chainloader_normal.c: Likewise.
15886 2006-04-30 Marco Gerards <marco@gnu.org>
15888 * commands/configfile.c (grub_cmd_source): New function.
15889 (GRUB_MOD_INIT): Register the commands `source' and `.'.
15890 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
15892 2006-04-30 Marco Gerards <marco@gnu.org>
15894 * normal/execute.c (grub_script_execute_cmd): Change the return
15895 type to `grub_err_t'. Correctly return the error.
15896 (grub_script_execute_cmdline): In case a command line is not a
15897 command or a function, try to interpret it as an assignment.
15899 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
15901 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
15902 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
15903 skip a node whose name is obviously invalid as UTF-16,
15904 i.e. contains a NUL character. Stop the iteration when the last
15905 directory entry is found. Instead of using the return value of
15906 grub_hfsplus_btree_iterate_node, store the value in RET and use
15907 it, because the iterator can be stopped by the last directory
15910 2006-04-30 Marco Gerards <marco@gnu.org>
15912 * include/grub/env.h (grub_env_export): New prototype. Reported
15913 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
15915 2006-04-30 Marco Gerards <marco@gnu.org>
15917 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
15918 size of the extents in a catalog file record.
15920 2006-04-29 Marco Gerards <marco@gnu.org>
15922 * commands/configfile.c (grub_cmd_configfile): Execute the
15923 configfile within its own context.
15925 * include/grub/env.h (grub_env_context_open): New prototype.
15926 (grub_env_context_close): Likewise.
15928 * kern/env.c (grub_env): Removed.
15929 (grub_env_sorted): Likewise.
15930 (grub_env_context): New variable.
15931 (grub_env_var_context): Likewise.
15932 (grub_env_find): Search both the active context and the global
15934 (grub_env_context_open): New function.
15935 (grub_env_context_close): Likewise.
15936 (grub_env_insert): Likewise.
15937 (grub_env_remove): Likewise.
15938 (grub_env_export): Likewise.
15939 (grub_env_set): Changed to use helper functions to avoid code
15941 (grub_env_iterate): Rewritten so both the current context and the
15942 global context are being used.
15944 * normal/command.c (export_command): New function.
15945 (grub_command_init): Register the `export' function.
15947 2006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
15949 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
15950 explicitly to suppress gcc's warnings.
15951 * fs/fat.c (grub_fat_find_dir): Likewise.
15952 (grub_fat_label): Likewise.
15953 * fs/xfs.c (grub_xfs_read_inode): Likewise.
15954 (grub_xfs_mount): Likewise.
15955 (grub_xfs_label): Likewise.
15956 * fs/affs.c (grub_affs_mount): Likewise.
15957 (grub_affs_label): Likewise.
15958 (grub_affs_iterate_dir): Likewise.
15959 * fs/sfs.c (grub_sfs_mount): Likewise.
15960 (grub_sfs_iterate_dir): Likewise.
15961 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
15962 * fs/hfs.c (grub_hfs_mount): Likewise.
15963 (grub_hfs_cmp_catkeys): Likewise.
15964 (grub_hfs_find_dir): Likewise.
15965 (grub_hfs_dir): Likewise.
15966 (grub_hfs_label): Likewise.
15967 * fs/jfs.c (grub_jfs_mount): Likewise.
15968 (grub_jfs_opendir): Likewise.
15969 (grub_jfs_getent): Likewise.
15970 (grub_jfs_lookup_symlink): Likewise.
15971 (grub_jfs_label): Likewise.
15972 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
15973 (grub_hfsplus_iterate_dir): Likewise.
15974 (grub_hfsplus_btree_iterate_node): Made static.
15976 * util/grub-emu.c (prefix): New variable.
15977 (grub_machine_set_prefix): New function.
15978 (main): Do not set the environment variable "prefix" here. Only
15979 set PREFIX, which is used later by grub_machine_set_prefix.
15981 * include/grub/video.h: Do not include grub/symbol.h.
15982 (grub_video_register): Not exported. This symbol is not defined in
15984 (grub_video_unregister): Likewise.
15985 (grub_video_iterate): Likewise.
15986 (grub_video_setup): Likewise.
15987 (grub_video_restore): Likewise.
15988 (grub_video_get_info): Likewise.
15989 (grub_video_get_blit_format): Likewise.
15990 (grub_video_set_palette): Likewise.
15991 (grub_video_get_palette): Likewise.
15992 (grub_video_set_viewport): Likewise.
15993 (grub_video_get_viewport): Likewise.
15994 (grub_video_map_color): Likewise.
15995 (grub_video_map_rgb): Likewise.
15996 (grub_video_map_rgba): Likewise.
15997 (grub_video_fill_rect): Likewise.
15998 (grub_video_blit_glyph): Likewise.
15999 (grub_video_blit_bitmap): Likewise.
16000 (grub_video_blit_render_target): Likewise.
16001 (grub_video_scroll): Likewise.
16002 (grub_video_swap_buffers): Likewise.
16003 (grub_video_create_render_target): Likewise.
16004 (grub_video_delete_render_target): Likewise.
16005 (grub_video_set_active_render_target): Likewise.
16007 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
16009 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
16011 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
16012 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
16013 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
16014 instead of $(srcdir)/genkernsyms.sh.
16016 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
16017 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
16018 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
16019 instead of $(srcdir)/genkernsyms.sh.
16021 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
16022 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
16023 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
16024 instead of $(srcdir)/genkernsyms.sh.
16026 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
16027 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
16028 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
16029 instead of $(srcdir)/genkernsyms.sh.
16031 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
16034 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
16036 (gensymlist.sh): New target.
16037 (genkernsyms.sh): Likewise.
16039 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
16040 genkernsyms.sh.in and gensymlist.sh.in.
16042 * genkernsyms.sh: Removed.
16043 * gensymlist.sh: Likewise.
16045 * genkernsyms.sh.in: New file.
16046 * gensymlist.sh.in: Likewise.
16048 2006-04-25 Hollis Blanchard <hollis@penguinppc.org>
16050 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
16051 clobber "prefix", since we may have already set it manually.
16053 2006-04-25 Hollis Blanchard <hollis@penguinppc.org>
16055 * kern/misc.c (abort): New alias for grub_abort.
16057 2006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
16059 A new machine-specific function "grub_machine_set_prefix" is
16060 defined. This is called after loading modules, so that a prefix
16061 initialization can use modules. Also, this change adds an
16062 intensive debugging feature for the memory manager via the
16063 configure option "--enable-mm-debug".
16065 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
16068 * kern/sparc64/ieee1275/init.c (abort): Removed.
16069 (grub_stop): Likewise.
16070 (grub_exit): New function.
16071 (grub_set_prefix): Renamed to ...
16072 (grub_machine_set_prefix): ... this.
16073 (grub_machine_init): Do not call grub_set_prefix.
16075 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
16076 (grub_machine_set_prefix): ... this.
16077 (grub_machine_init): Do not call grub_set_prefix.
16079 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
16080 (grub_machine_init): Do not set the prefix here.
16082 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
16084 * kern/efi/init.c: Include grub/mm.h.
16085 (grub_efi_set_prefix): New function.
16087 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
16088 (grub_efi_get_filename): New function.
16089 (grub_print_device_path): Renamed to ...
16090 (grub_efi_print_device_path): ... this.
16092 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
16093 [MM_DEBUG] (grub_realloc): Likewise.
16094 [MM_DEBUG] (grub_free): Likewise.
16095 [MM_DEBUG] (grub_memalign): Likewise.
16096 [MM_DEBUG] (grub_mm_debug): New variable.
16097 [MM_DEBUG] (grub_debug_malloc): New function.
16098 [MM_DEBUG] (grub_debug_free): New function.
16099 [MM_DEBUG] (grub_debug_realloc): New function.
16100 [MM_DEBUG] (grub_debug_memalign): New function.
16102 * kern/misc.c (grub_abort): Print a newline to distinguish
16105 * kern/main.c (grub_main): Call grub_machine_set_prefix and
16106 grub_set_root_dev after loading modules. This is necessary when
16107 setting a prefix depends on modules.
16109 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
16110 (grub_efi_print_device_path): ... this.
16111 (grub_efi_get_filename): New prototype.
16112 (grub_efi_set_prefix): Likewise.
16114 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
16116 (grub_efidisk_get_device_handle): New prototype.
16117 (grub_efidisk_get_device_name): Likewise.
16119 * include/grub/mm.h: Include config.h.
16120 (MM_DEBUG): Removed.
16121 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
16122 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
16123 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
16124 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
16125 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
16126 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
16127 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
16128 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
16129 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
16131 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
16133 * disk/efi/efidisk.c: Include grub/partition.h.
16134 (iterate_child_devices): New function.
16135 (add_device): First, compare only last device path nodes, so that
16136 devices are sorted by the types.
16137 (grub_efidisk_get_device_handle): New function.
16138 (grub_efidisk_get_device_name): Likewise.
16140 * configure.ac (--enable-mm-debug): New option to enable the
16141 memory manager debugging feature. This makes the binary much
16142 bigger, so is disabled by default.
16144 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
16146 Use grub_abort instead of grub_stop, and grub_exit must be
16147 define in each architecture now. Also, this change adds support
16150 * util/i386/pc/grub-probefs.c: Include grub/term.h.
16151 (grub_getkey): New function.
16152 (grub_term_get_current): Likewise.
16154 * util/i386/pc/grub-setup.c: Include grub/term.h.
16155 (grub_getkey): New function.
16156 (grub_term_get_current): Likewise.
16158 * util/misc.c (grub_stop): Renamed to ...
16159 (grub_exit): ... this.
16161 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
16162 (grub_exit): ... this.
16163 (grub_machine_init): Use grub_abort instead of abort.
16164 (grub_stop): Removed.
16166 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
16169 * kern/i386/pc/startup.S (grub_exit): New function.
16170 (cold_reboot): New label.
16172 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
16173 (grub_efi_init): Call grub_efidisk_init.
16174 (grub_efi_fini): Call grub_efidisk_fini.
16176 * kern/efi/efi.c: Include grub/mm.h.
16177 (grub_efi_console_control_guid): Renamed to ...
16178 (console_control_guid): ... this.
16179 (grub_efi_loaded_image_guid): Renamed to ...
16180 (loaded_image_guid): ... this.
16181 (grub_efi_locate_handle): New function.
16182 (grub_efi_open_protocol): Likewise.
16183 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
16184 GRUB_EFI_CONSOLE_CONTROL_GUID.
16185 (grub_efi_exit): Removed.
16186 (grub_stop): Likewise.
16187 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
16188 (grub_exit): New function.
16189 (grub_print_device_path): Likewise.
16191 * kern/rescue.c (grub_rescue_cmd_exit): New function.
16192 (grub_enter_rescue_mode): Register "exit".
16194 * kern/misc.c (grub_real_dprintf): A cosmetic change.
16195 (grub_abort): New function.
16197 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
16199 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
16201 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
16203 * include/grub/efi/efi.h (grub_efi_exit): Removed.
16204 (grub_print_device_path): New prototype.
16205 (grub_efi_locate_handle): Likewise.
16206 (grub_efi_open_protocol): Likewise.
16208 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
16209 * disk/efi/efidisk.c: Likewise.
16211 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
16213 * include/grub/efi/console_control.h
16214 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
16216 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
16217 last 8 bytes as an array.
16218 (GRUB_EFI_DISK_IO_GUID): New macro.
16219 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
16220 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
16221 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
16223 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
16224 (struct grub_efi_device_path): Rename the member "sub_type" to
16226 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
16227 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
16228 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
16229 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
16230 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
16231 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
16232 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
16233 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
16234 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
16235 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
16236 (struct grub_efi_pci_device_path): New structure.
16237 (grub_efi_pci_device_path_t): New type.
16238 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
16239 (struct grub_efi_pccard_device_path): New structure.
16240 (grub_efi_pccard_device_path_t): New type.
16241 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
16242 (struct grub_efi_memory_mapped_device_path): New structure.
16243 (grub_efi_memory_mapped_device_path_t): New type.
16244 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
16245 (struct grub_efi_vendor_device_path): New structure.
16246 (grub_efi_vendor_device_path_t): New type.
16247 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
16248 (struct grub_efi_controller_device_path): New structure.
16249 (grub_efi_controller_device_path_t): New type.
16250 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
16251 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
16252 (struct grub_efi_acpi_device_path): New structure.
16253 (grub_efi_acpi_device_path_t): New type.
16254 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
16255 (struct grub_efi_expanded_acpi_device_path): New structure.
16256 (grub_efi_expanded_acpi_device_path_t): New type.
16257 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
16258 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
16259 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
16260 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
16261 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
16262 (struct grub_efi_atapi_device_path): New structure.
16263 (grub_efi_atapi_device_path_t): New type.
16264 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
16265 (struct grub_efi_fibre_channel_device_path): New structure.
16266 (grub_efi_fibre_channel_device_path_t): New type.
16267 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
16268 (struct grub_efi_1394_device_path): New structure.
16269 (grub_efi_1394_device_path_t): New type.
16270 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
16271 (struct grub_efi_usb_device_path): New structure.
16272 (grub_efi_usb_device_path_t): New type.
16273 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
16274 (struct grub_efi_usb_class_device_path): New structure.
16275 (grub_efi_usb_class_device_path_t): New type.
16276 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
16277 (struct grub_efi_i2o_device_path): New structure.
16278 (grub_efi_i2o_device_path_t): New type.
16279 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
16280 (struct grub_efi_mac_address_device_path): New structure.
16281 (grub_efi_mac_address_device_path_t): New type.
16282 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
16283 (struct grub_efi_ipv4_device_path): New structure.
16284 (grub_efi_ipv4_device_path_t): New type.
16285 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
16286 (struct grub_efi_ipv6_device_path): New structure.
16287 (grub_efi_ipv6_device_path_t): New type.
16288 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
16289 (struct grub_efi_infiniband_device_path): New structure.
16290 (grub_efi_infiniband_device_path_t): New type.
16291 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
16292 (struct grub_efi_uart_device_path): New structure.
16293 (grub_efi_uart_device_path_t): New type.
16294 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
16295 (struct grub_efi_vendor_messaging_device_path): New structure.
16296 (grub_efi_vendor_messaging_device_path_t): New type.
16297 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
16298 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
16299 (struct grub_efi_hard_drive_device_path): New structure.
16300 (grub_efi_hard_drive_device_path_t): New type.
16301 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
16302 (struct grub_efi_cdrom_device_path): New structure.
16303 (grub_efi_cdrom_device_path_t): New type.
16304 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
16305 (struct grub_efi_vendor_media_device_path): New structure.
16306 (grub_efi_vendor_media_device_path_t): New type.
16307 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
16308 (struct grub_efi_file_path_device_path): New structure.
16309 (grub_efi_file_path_device_path_t): New type.
16310 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
16311 (struct grub_efi_protocol_device_path): New structure.
16312 (grub_efi_protocol_device_path_t): New type.
16313 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
16314 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
16315 (struct grub_efi_bios_device_path): New structure.
16316 (grub_efi_bios_device_path_t): New type.
16317 (struct grub_efi_disk_io): New structure.
16318 (grub_efi_disk_io_t): New type.
16319 (struct grub_efi_block_io_media): New structure.
16320 (grub_efi_block_io_media_t): New type.
16321 (struct grub_efi_block_io): New structure.
16322 (grub_efi_block_io_t): New type.
16324 * include/grub/misc.h (grub_stop): Removed.
16325 (grub_exit): New prototype.
16326 (grub_abort): Likewise.
16328 * include/grub/disk.h (enum grub_disk_dev_id): Added
16329 GRUB_DISK_DEVICE_EFIDISK_ID.
16331 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
16332 disk/efi/efidisk.c.
16333 (kernel_syms.lst): Remove the target if an error occurs.
16335 2006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
16337 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
16338 as it was simply too buggy.
16340 2006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
16342 * kern/misc.c (grub_lltoa): New function.
16343 (grub_vsprintf): Added support for the long long suffix,
16346 2006-04-20 Hollis Blanchard <hollis@penguinppc.org>
16348 * Makefile.in (LDFLAGS): Add variable.
16349 (LD): Remove variable.
16350 * configure.ac: Add -m32 to LDFLAGS.
16351 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
16352 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
16353 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
16354 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
16355 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
16357 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
16358 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
16359 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
16361 2006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
16363 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
16364 length for unknown glyph.
16366 2006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
16368 Add support for pre-loaded modules into the EFI port.
16370 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
16371 completely. Accept one more argument DIR. The caller has changed.
16373 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
16375 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
16376 (grub_efi_loaded_image_guid): New variable.
16377 (grub_efi_get_loaded_image): New function.
16378 (grub_arch_modules_addr): Likewise.
16380 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
16383 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
16384 (struct grub_efi_loaded_image): New structure.
16385 (grub_efi_loaded_image_t): New type.
16387 2006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
16389 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
16390 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
16391 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
16393 2006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
16395 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
16397 2006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
16399 * DISTLIST: Added include/grub/efi/console.h,
16400 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
16401 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
16403 * include/grub/efi/console.h: New file.
16404 * include/grub/efi/time.h: Likewise.
16405 * include/grub/i386/efi/kernel.h: Likewise.
16406 * kern/efi/init.c: Likewise.
16407 * kern/efi/mm.c: Likewise.
16408 * term/efi/console.c: Likewise.
16410 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
16411 (grub_stop): Removed.
16412 (grub_get_rtc): Likewise.
16413 (grub_machine_init): Simply call grub_efi_init.
16414 (grub_machine_fini): Call grub_efi_fini.
16416 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
16417 (grub_efi_output_string): Removed.
16418 (grub_efi_stall): New function.
16419 (grub_stop): Likewise.
16420 (grub_get_rtc): Likewise.
16422 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
16423 (grub_efi_stall): New prototype.
16424 (grub_efi_allocate_pages): Likewise.
16425 (grub_efi_free_pages): Likewise.
16426 (grub_efi_get_memory_map): Likewise.
16427 (grub_efi_mm_init): Likewise.
16428 (grub_efi_mm_fini): Likewise.
16429 (grub_efi_init): Likewise.
16430 (grub_efi_fini): Likewise.
16432 * include/grub/i386/efi/time.h: Do not include
16433 grub/symbol.h. Include grub/efi/time.h.
16434 (GRUB_TICKS_PER_SECOND): Removed.
16435 (grub_get_rtc): Likewise.
16437 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
16438 Added padding. The EFI spec is buggy.
16439 (GRUB_EFI_BLACK): New macro.
16440 (GRUB_EFI_BLUE): Likewise.
16441 (GRUB_EFI_GREEN): Likewise.
16442 (GRUB_EFI_CYAN): Likewise.
16443 (GRUB_EFI_RED): Likewise.
16444 (GRUB_EFI_MAGENTA): Likewise.
16445 (GRUB_EFI_BROWN): Likewise.
16446 (GRUB_EFI_LIGHTGRAY): Likewise.
16447 (GRUB_EFI_BRIGHT): Likewise.
16448 (GRUB_EFI_DARKGRAY): Likewise.
16449 (GRUB_EFI_LIGHTBLUE): Likewise.
16450 (GRUB_EFI_LIGHTGREEN): Likewise.
16451 (GRUB_EFI_LIGHTCYAN): Likewise.
16452 (GRUB_EFI_LIGHTRED): Likewise.
16453 (GRUB_EFI_LIGHTMAGENTA): Likewise.
16454 (GRUB_EFI_YELLOW): Likewise.
16455 (GRUB_EFI_WHITE): Likewise.
16456 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
16457 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
16458 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
16459 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
16460 (GRUB_EFI_BACKGROUND_RED): Likewise.
16461 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
16462 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
16463 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
16464 (GRUB_EFI_TEXT_ATTR): Likewise.
16466 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
16467 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
16468 (kernel_mod_HEADERS): Added efi/time.h.
16470 2006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
16472 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
16473 include/grub/efi/api.h, include/grub/efi/console_control.h,
16474 include/grub/efi/efi.h, include/grub/efi/pe32.h,
16475 include/grub/i386/efi/time.h, kern/efi/efi.c,
16476 kern/i386/efi/init.c, kern/i386/efi/startup.S,
16477 and util/i386/efi/grub-mkimage.c.
16479 * Makefile.in (RMKFILES): Added i386-efi.rmk.
16481 * genmk.rb (PModule#rule): Do not export symbols if
16482 #{prefix}_EXPORTS is set to "no".
16484 * conf/i386-efi.mk: New file.
16485 * conf/i386-efi.rmk: Likewise.
16486 * include/grub/efi/api.h: Likewise.
16487 * include/grub/efi/console_control.h: Likewise.
16488 * include/grub/efi/efi.h: Likewise.
16489 * include/grub/efi/pe32.h: Likewise.
16490 * include/grub/i386/efi/time.h: Likewise.
16491 * kern/efi/efi.c: Likewise.
16492 * kern/i386/efi/init.c: Likewise.
16493 * kern/i386/efi/startup.S: Likewise.
16494 * util/i386/efi/grub-mkimage.c: Likewise.
16496 2006-04-17 Marco Gerards <marco@gnu.org>
16498 * include/grub/script.h: Include <grub/parser.h> and
16499 "grub_script.tab.h".
16500 (struct grub_lexer_param): New struct.
16501 (struct grub_parser_param): Likewise.
16502 (grub_script_create_arglist): Pass the state in an argument.
16503 (grub_script_add_arglist): Likewise.
16504 (grub_script_create_cmdline): Likewise.
16505 (grub_script_create_cmdblock): Likewise.
16506 (grub_script_create_cmdif): Likewise.
16507 (grub_script_create_cmdmenu): Likewise.
16508 (grub_script_add_cmd): Likewise.
16509 (grub_script_arg_add): Likewise.
16510 (grub_script_lexer_ref): Likewise.
16511 (grub_script_lexer_deref): Likewise.
16512 (grub_script_lexer_record_start): Likewise.
16513 (grub_script_lexer_record_stop): Likewise.
16514 (grub_script_mem_record): Likewise.
16515 (grub_script_mem_record_stop): Likewise.
16516 (grub_script_malloc): Likewise.
16517 (grub_script_yylex): Likewise.
16518 (grub_script_yyparse): Likewise.
16519 (grub_script_yyerror): Likewise.
16520 (grub_script_yylex): Likewise.
16521 (grub_script_lexer_init): Return the state.
16523 * normal/lexer.c (grub_script_lexer_state): Removed variable.
16524 (grub_script_lexer_done): Likewise.
16525 (grub_script_lexer_getline): Likewise.
16526 (grub_script_lexer_refs): Likewise.
16527 (script): Likewise.
16528 (newscript): Likewise.
16529 (record): Likewise.
16530 (recording): Likewise.
16531 (recordpos): Likewise.
16532 (recordlen): Likewise.
16533 (grub_script_lexer_init): Return the state instead of setting
16535 (grub_script_lexer_ref): Use the newly added argument for state
16536 instead of globals.
16537 (grub_script_lexer_deref): Likewise.
16538 (grub_script_lexer_record_start): Likewise.
16539 (grub_script_lexer_record_stop): Likewise.
16540 (recordchar): Likewise.
16541 (nextchar): Likewise.
16542 (grub_script_yylex2): Likewise.
16543 (grub_script_yylex): Likewise.
16544 (grub_script_yyerror): Likewise.
16546 * normal/parser.y (func_mem): Removed variable.
16547 (menu_entry): Likewise.
16549 (%lex-param): New parser option.
16550 (%parse-param): Likewise.
16551 (script): Always return the AST.
16552 (argument): Pass the state around.
16553 (arguments): Likewise.
16554 (grubcmd): Likewise.
16555 (commands): Likewise.
16556 (function): Likewise.
16557 (menuentry): Likewise.
16558 (if_statement): Likewise.
16561 * normal/script.c (grub_script_memused): Removed variable.
16562 (grub_script_parsed): Likewise.
16563 (grub_script_malloc): Added a state argument. Use that instead of
16565 (grub_script_mem_record): Likewise.
16566 (grub_script_mem_record_stop): Likewise.
16567 (grub_script_arg_add): Likewise.
16568 (grub_script_add_arglist): Likewise.
16569 (grub_script_create_cmdline): Likewise.
16570 (grub_script_create_cmdif): Likewise.
16571 (grub_script_create_cmdmenu): Likewise.
16572 (grub_script_add_cmd): Likewise.
16573 (grub_script_parse): Setup the state before calling the parser.
16575 2006-04-16 Marco Gerards <marco@gnu.org>
16577 * normal/command.c (grub_command_init): Remove the title command.
16579 * normal/lexer.c (grub_script_yylex): Renamed from this...
16580 (grub_script_yylex2): ... to this.
16581 (grub_script_yylex): New function. Temporary
16582 introduced to filter some tokens.
16583 (grub_script_yyerror): Print a newline.
16585 * normal/main.c (read_config_file): Output information about the
16586 lines that contain errors. Wait for a key after all lines have
16587 been processed. Don't return an empty menu.
16589 * normal/parser.y (func_mem): Don't initialize.
16590 (menu_entry): Likewise.
16591 (err): New variable.
16592 (script): Don't return anything when an error was encountered.
16593 (ws, returns): Removed rules.
16594 (argument): Disabled concatenated variable support.
16595 (arguments): Remove explicit separators.
16596 (grubcmd): Likewise.
16597 (function): Likewise.
16598 (menuentry): Likewise.
16600 (commands): Likewise. Add error handling.
16602 * normal/script.c (grub_script_create_cmdline): If
16603 `grub_script_parsed' is 0, assume the parser encountered an error.
16605 2006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
16607 * configure.ac: Add support for EFI. Fix the typo
16608 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
16610 2006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
16612 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
16613 foreign multibyte characters should be shown correctly.
16615 2006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
16617 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
16619 (read_config_file): Made it to close file before returning.
16621 2006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
16623 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
16624 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
16625 video/i386/pc/vbefill.c.
16627 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
16628 video/i386/pc/vbefill.c.
16630 * include/grub/video.h (grub_video_blit_format): New enum.
16631 (grub_video_mode_info): Added new member blit_format.
16632 (grub_video_get_blit_format): New function prototype.
16634 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
16635 function prototype.
16636 (grub_video_vbe_map_rgb): Likewise.
16637 (grub_video_vbe_unmap_color): Likewise.
16639 * include/grub/i386/pc/vbeblit.h: New file.
16641 * include/grub/i386/pc/vbefill.h: New file.
16643 * video/video.c (grub_video_get_blit_format): New function.
16644 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
16645 (grub_video_vbe_map_rgb): Likewise.
16646 (grub_video_vbe_unmap_color): Likewise.
16648 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
16650 (grub_video_vbe_blit_render_target): Changed to use more optimized
16652 (grub_video_vbe_setup): Added detection for optimized settings.
16653 (grub_video_vbe_create_render_target): Likewise.
16655 * video/i386/pc/vbeblit.c: New file.
16657 * video/i386/pc/vbefill.c: New file.
16659 2006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
16661 * font/manager.c (grub_font_get_glyph): Removed font fixup from
16664 * util/unifont2pff.rb: ... and moved it to here. Improved argument
16665 parsing to support both hex and dec ranges. If filename was missing
16666 show usage information.
16668 2006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
16670 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
16671 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
16673 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
16674 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
16675 (video_mod_SOURCES): Added.
16676 (video_mod_CFLAGS): Likewise.
16677 (video_mod_LDFLAGS): Likewise.
16678 (gfxterm_mod_SOURCES): Likewise.
16679 (gfxterm_mod_CFLAGS): Likewise.
16680 (gfxterm_mod_LDFLAGS): Likewise.
16681 (videotest_mod_SOURCES): Likewise.
16682 (videotest_mod_CFLAGS): Likewise.
16683 (videotest_mod_LDFLAGS): Likewise.
16684 (vesafb_mod_SOURCES): Removed.
16685 (vesafb_mod_CFLAGS): Likewise.
16686 (vesafb_mod_LDFLAGS): Likewise.
16687 (vga_mod_SOURCES): Likewise.
16688 (vga_mod_CFLAGS): Likewise.
16689 (vga_mod_LDFLAGS): Likewise.
16691 * commands/videotest.c: New file.
16693 * font/manager.c (fill_with_default_glyph): Modified to use
16695 (grub_font_get_glyph): Likewise.
16696 (fontmanager): Renamed from this...
16697 (font_manager): ... to this.
16699 * include/grub/font.h (grub_font_glyph): Added new structure.
16700 (grub_font_get_glyph): Modified to use grub_font_glyph.
16702 * include/grub/misc.h (grub_abs): Added as inline function.
16704 * include/grub/video.h: New file.
16706 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
16707 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
16708 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
16709 (grub_vbe_get_controller_info): Renamed from this...
16710 (grub_vbe_bios_get_controller_info): ... to this.
16711 (grub_vbe_get_mode_info): Renamed from this...
16712 (grub_vbe_bios_get_mode_info): ... to this.
16713 (grub_vbe_set_mode): Renamed from this...
16714 (grub_vbe_bios_set_mode): ... to this.
16715 (grub_vbe_get_mode): Renamed from this...
16716 (grub_vbe_bios_get_mode): ... to this.
16717 (grub_vbe_set_memory_window): Renamed from this...
16718 (grub_vbe_bios_set_memory_window): ... to this.
16719 (grub_vbe_get_memory_window): Renamed from this...
16720 (grub_vbe_bios_get_memory_window): ... to this.
16721 (grub_vbe_set_scanline_length): Renamed from this...
16722 (grub_vbe_set_scanline_length): ... to this.
16723 (grub_vbe_get_scanline_length): Renamed from this...
16724 (grub_vbe_bios_get_scanline_length): ... to this.
16725 (grub_vbe_set_display_start): Renamed from this...
16726 (grub_vbe_bios_set_display_start): ... to this.
16727 (grub_vbe_get_display_start): Renamed from this...
16728 (grub_vbe_bios_get_display_start): ... to this.
16729 (grub_vbe_set_palette_data): Renamed from this...
16730 (grub_vbe_bios_set_palette_data): ... to this.
16731 (grub_vbe_set_pixel_rgb): Removed.
16732 (grub_vbe_set_pixel_index): Likewise.
16734 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
16736 (grub_vbe_bios_get_controller_info): ... to this.
16737 (grub_vbe_get_mode_info): Renamed from this...
16738 (grub_vbe_bios_get_mode_info): ... to this.
16739 (grub_vbe_set_mode): Renamed from this...
16740 (grub_vbe_bios_set_mode): ... to this.
16741 (grub_vbe_get_mode): Renamed from this...
16742 (grub_vbe_bios_get_mode): ... to this.
16743 (grub_vbe_set_memory_window): Renamed from this...
16744 (grub_vbe_bios_set_memory_window): ... to this.
16745 (grub_vbe_get_memory_window): Renamed from this...
16746 (grub_vbe_bios_get_memory_window): ... to this.
16747 (grub_vbe_set_scanline_length): Renamed from this...
16748 (grub_vbe_set_scanline_length): ... to this.
16749 (grub_vbe_get_scanline_length): Renamed from this...
16750 (grub_vbe_bios_get_scanline_length): ... to this.
16751 (grub_vbe_set_display_start): Renamed from this...
16752 (grub_vbe_bios_set_display_start): ... to this.
16753 (grub_vbe_get_display_start): Renamed from this...
16754 (grub_vbe_bios_get_display_start): ... to this.
16755 (grub_vbe_set_palette_data): Renamed from this...
16756 (grub_vbe_bios_set_palette_data): ... to this.
16757 (grub_vbe_bios_get_controller_info): Fixed problem with registers
16758 getting corrupted after calling it. Added more pushes and pops.
16759 (grub_vbe_bios_set_mode): Likewise.
16760 (grub_vbe_bios_get_mode): Likewise.
16761 (grub_vbe_bios_get_memory_window): Likewise.
16762 (grub_vbe_bios_set_scanline_length): Likewise.
16763 (grub_vbe_bios_get_scanline_length): Likewise.
16764 (grub_vbe_bios_get_display_start): Likewise.
16765 (grub_vbe_bios_set_palette_data): Likewise.
16767 * normal/cmdline.c (cl_set_pos): Refresh the screen.
16768 (cl_insert): Likewise.
16769 (cl_delete): Likewise.
16771 * term/gfxterm.c: New file.
16773 * term/i386/pc/vesafb.c: Removed file.
16775 * video/video.c: New file.
16777 * video/i386/pc/vbe.c (real2pm): Added new function.
16778 (grub_video_vbe_draw_pixel): Likewise.
16779 (grub_video_vbe_get_video_ptr): Likewise.
16780 (grub_video_vbe_get_pixel): Likewise
16781 (grub_video_vbe_init): Likewise.
16782 (grub_video_vbe_fini): Likewise.
16783 (grub_video_vbe_setup): Likewise.
16784 (grub_video_vbe_get_info): Likewise.
16785 (grub_video_vbe_set_palette): Likewise.
16786 (grub_video_vbe_get_palette): Likewise.
16787 (grub_video_vbe_set_viewport): Likewise.
16788 (grub_video_vbe_get_viewport): Likewise.
16789 (grub_video_vbe_map_color): Likewise.
16790 (grub_video_vbe_map_rgb): Likewise.
16791 (grub_video_vbe_map_rgba): Likewise.
16792 (grub_video_vbe_unmap_color): Likewise.
16793 (grub_video_vbe_fill_rect): Likewise.
16794 (grub_video_vbe_blit_glyph): Likewise.
16795 (grub_video_vbe_blit_bitmap): Likewise.
16796 (grub_video_vbe_blit_render_target): Likewise.
16797 (grub_video_vbe_scroll): Likewise.
16798 (grub_video_vbe_swap_buffers): Likewise.
16799 (grub_video_vbe_create_render_target): Likewise.
16800 (grub_video_vbe_delete_render_target): Likewise.
16801 (grub_video_vbe_set_active_render_target): Likewise.
16802 (grub_vbe_set_pixel_rgb): Remove function.
16803 (grub_vbe_set_pixel_index): Likewise.
16804 (index_color_mode): Remove static variable.
16805 (active_mode): Likewise.
16806 (framebuffer): Likewise.
16807 (bytes_per_scan_line): Likewise.
16808 (grub_video_vbe_adapter): Added new static variable.
16809 (framebuffer): Likewise.
16810 (render_target): Likewise.
16811 (initial_mode): Likewise.
16812 (mode_in_use): Likewise.
16813 (mode_list): Likewise.
16815 2006-03-10 Marco Gerards <marco@gnu.org>
16817 * configure.ac (AC_INIT): Bumped to 1.93.
16819 * DISTLIST: Added `include/grub/hfs.h'.
16821 2006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
16823 * boot/i386/pc/boot.S (general_error): Before looping, try INT
16824 18H, which might help the BIOS falling back to next boot media.
16826 2006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
16828 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
16829 Poe Chen <poe.poechen@gmail.com>.
16831 2006-01-17 Marco Gerards <marco@gnu.org>
16833 * include/grub/normal.h: Include <grub/script.h>.
16834 (grub_command_list): Removed struct.
16835 (grub_command_list_t): Removed type.
16836 (grub_menu_entry): Remove members `num' and `command_list'. Add
16837 members `commands' and `sourcecode'.
16838 * include/grub/script.h: Add inclusion guards.
16839 (grub_script_cmd_menuentry): New struct.
16840 (grub_script_execute_menuentry): New prototype.
16841 (grub_script_lexer_record_start): Likewise.
16842 (grub_script_lexer_record_stop): Likewise.
16843 * normal/execute.c (grub_script_execute_menuentry): New function.
16844 * normal/lexer.c (record, recording, recordpos, recordlen): New
16846 (grub_script_lexer_record_start): New function.
16847 (grub_script_lexer_record_stop): Likewise.
16848 (recordchar): Likewise.
16849 (nextchar): Likewise.
16850 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
16851 2048 as the buffer size. Add the tokens `menuentry' and `@'.
16852 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
16853 (current_menu): New variable.
16854 (free_menu): Mainly rewritten.
16855 (grub_normal_menu_addentry): New function.
16856 (read_config_file): Rewritten.
16857 * normal/menu.c (run_menu_entry): Mainly rewritten.
16858 * normal/menu_entry.c (make_screen): Rewritten the code to insert
16860 (run): Mainly rewritten.
16861 * normal/parser.y (menu_entry): New variable.
16862 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
16863 (menuentry): New rule.
16864 (command): Add `menuentry'.
16865 (if_statement): Allow additional returns before `fi'.
16866 * normal/script.c (grub_script_create_cmdmenu): New function.
16868 2006-01-03 Marco Gerards <marco@gnu.org>
16870 * INSTALL: GNU Bison is required.
16871 * configure.ac: Rewritten the test to detect Bison.
16872 * Makefile.in (YACC): New variable. Reported by Xun Sun
16873 <xun.sun.cn@gmail.com>.
16875 2006-01-03 Marco Gerards <marco@gnu.org>
16877 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
16878 the HFS+ filesystem to filesystem blocks.
16879 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
16880 GCC warning is silenced.
16882 2006-01-03 Marco Gerards <marco@gnu.org>
16884 * partmap/apple.c (apple_partition_map_iterate): Convert the data
16885 read from disk from big endian to host byte order.
16887 2006-01-03 Hollis Blanchard <hollis@penguinppc.org>
16889 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
16891 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
16892 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
16893 embedded HFS+ filesystem.
16894 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
16895 (grub_hfs_sblock): Move from here...
16896 * include/grub/hfs.h: To here... New file.
16897 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
16899 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
16901 (grub_hfsplus_volheader): Change type of member `magic' to
16903 (grub_hfsplus_data): Add new member `embedded_offset'.
16904 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
16906 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
16907 Calculate the offset.
16909 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16911 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
16913 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
16915 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16917 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
16918 ENV->NAME is NULL after allocating ENV->VALUE.
16920 2005-12-25 Marco Gerards <marco@gnu.org>
16922 * kern/env.c (grub_env_set): Rewritten the error handling code.
16924 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16926 * geninit.sh: Made more robust, and more portable.
16928 2005-12-25 Marco Gerards <marco@gnu.org>
16930 Add support for Apple HFS+ filesystems.
16932 * fs/hfsplus.c: New file.
16934 * DISTLIST: Added `fs/hfsplus.c'.
16936 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
16937 (hfsplus_mod_SOURCES): New variable.
16938 (hfsplus_mod_CFLAGS): Likewise.
16939 (hfsplus_mod_LDFLAGS): Likewise.
16940 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
16941 (grub_setup_SOURCES): Likewise.
16942 (grub_mkdevicemap_SOURCES): Likewise.
16943 (grub_emu_SOURCES): Likewise.
16944 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
16946 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
16948 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
16950 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16952 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
16953 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
16954 include/grub/parser.h, include/grub/script.h, kern/parser.c,
16955 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
16956 normal/lexer.c, normal/parser.y, normal/script.c, and
16958 Removed kern/sparc64/cache.c.
16960 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
16961 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
16964 * configure.ac (AC_INIT): Bumped to 1.92.
16966 2005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
16968 * kern/err.c (grub_error_push): Added new function to support error
16970 (grub_error_pop): Likewise.
16971 (grub_error_stack_items): New local variable to support error stacks.
16972 (grub_error_stack_pos): Likewise.
16973 (grub_error_stack_assert): Likewise.
16974 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
16976 (grub_print_error): Added support to print errors from error stack.
16978 * include/grub/err.h (grub_error_push): Added function prototype.
16979 (grub_error_pop): Likewise.
16981 2005-12-09 Hollis Blanchard <hollis@penguinppc.org>
16983 * configure.ac: Accept `powerpc64' as host_cpu.
16984 (amd64): Rename to `biarch32'.
16986 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
16987 non-cacheline-aligned addresses.
16989 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
16990 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
16991 if `size' is non-zero.
16993 2005-12-03 Marco Gerards <mgerards@xs4all.nl>
16995 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
16996 and `cd' to make sure the filename is not prefixed with a
16998 (pkgdata_MODULES): Add `gpt.mod'.
16999 (gpt_mod_SOURCES): New variable.
17000 (gpt_mod_CFLAGS): Likewise.
17001 (gpt_mod_LDFLAGS): Likewise.
17003 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
17005 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
17008 * partmap/gpt.c: New file.
17010 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
17011 GPT partition map is detected.
17013 2005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
17015 * commands/i386/pc/play.c: New file.
17016 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
17017 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
17020 2005-11-27 Marco Gerards <mgerards@xs4all.nl>
17022 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
17023 ((unused))' to silence gcc warning.
17025 2005-11-26 Hollis Blanchard <hollis@penguinppc.org>
17027 * configure.ac: Correct `AC_PROG_YACC' test.
17029 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
17031 * util/powerpc/ieee1275/grub-install.in: Run the mount point
17032 check before installing files.
17034 2005-11-22 Mike Small <smallm@panix.com>
17036 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
17037 number regex so multidigit numbers are recognized correctly.
17039 2005-11-22 Mike Small <smallm@panix.com>
17041 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
17042 debugging message before attempting to claim memory.
17043 (grub_rescue_cmd_initrd): Add a claim debugging message and try
17044 multiple addresses in case of failure.
17046 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
17048 * term/tparm.c (get_space): Remove empty `if' statement.
17050 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
17052 * kern/parser.c (check_varstate): Rename `state' to 's'.
17054 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
17056 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
17057 variable definitions to the beginning of each function. Sort stack
17059 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
17060 `buf' argument to `char *'.
17062 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
17064 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
17065 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
17066 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
17067 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
17068 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
17069 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
17070 configfile.mod, search.mod, gzio.mod and test.mod.
17071 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
17072 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
17073 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
17074 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
17075 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
17076 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
17077 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
17078 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
17079 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
17080 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
17081 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
17082 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
17083 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
17084 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
17085 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
17086 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
17087 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
17088 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
17089 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
17090 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
17091 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
17092 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
17093 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
17095 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
17097 (pkgdata_MODULES): Add test.mod.
17099 2005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
17101 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
17102 appending to variables with "+=".
17103 (PModule): Use full pathname to generate *.lst filenames.
17105 * Makefile.in: Fixed list rules moved from genmk.rb.
17106 (.DELETE_ON_ERROR): New special target.
17107 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
17109 * conf/i386-pc.rmk: Include conf/common.mk.
17110 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
17111 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
17112 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
17113 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
17114 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
17115 configfile.mod, search.mod, gzio.mod and test.mod.
17116 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
17117 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
17118 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
17119 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
17120 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
17121 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
17122 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
17123 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
17124 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
17125 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
17126 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
17127 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
17128 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
17129 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
17130 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
17131 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
17132 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
17133 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
17134 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
17135 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
17136 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
17137 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
17138 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
17140 * conf/common.rmk: ... to here. New file.
17142 * conf/common.mk: New file.
17144 2005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
17146 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
17147 (grub_script.tab.c): ... here.
17149 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
17150 (grub_script.tab.c): ... here.
17152 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
17153 (grub_script.tab.c): ... here.
17155 * normal/command.c (grub_command_find): Fixed a memory leak of
17156 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
17158 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
17160 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
17161 "@" which marks the start of a comment on ARM.
17162 (VARIABLE): Likewise.
17164 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
17166 Add support for Linux/ADFS partition tables.
17168 * partmap/acorn.c: New file.
17170 * include/grub/acorn_filecore.h: Likewise.
17172 * DISTLIST: Added `partmap/acorn.c' and
17173 `include/grub/acorn_filecore.h'.
17175 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
17177 (pkgdata_MODULES): Add `acorn.mod'.
17178 (acorn_mod_SOURCES): New variable.
17179 (acorn_mod_CFLAGS): Likewise.
17181 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
17183 (pkgdata_MODULES): Add `acorn.mod'.
17184 (acorn_mod_SOURCES): New variable.
17185 (acorn_mod_CFLAGS): Likewise.
17187 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
17188 (pkgdata_MODULES): Add `acorn.mod'.
17189 (acorn_mod_SOURCES): New variable.
17190 (acorn_mod_CFLAGS): Likewise.
17191 (acorn_mod_LDFLAGS): Likewise.
17193 * include/types.h (grub_disk_addr_t): New typedef.
17195 2005-11-13 Marco Gerards <mgerards@xs4all.nl>
17197 * geninit.sh: New file.
17199 * geninitheader.sh: Likewise.
17201 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
17202 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
17203 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
17204 * commands/configfile.c (grub_configfile_init)
17205 (grub_configfile_fini): Likewise.
17206 * commands/default.c (grub_default_init, grub_default_fini):
17208 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
17209 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
17210 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
17211 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
17213 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
17214 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
17216 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
17217 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
17219 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
17221 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
17223 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
17224 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
17225 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
17226 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
17227 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
17228 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
17229 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
17230 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
17231 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
17232 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
17233 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
17234 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
17235 * partmap/amiga.c (grub_amiga_partition_map_init)
17236 (grub_amiga_partition_map_fini): Likewise.
17237 * partmap/apple.c (grub_apple_partition_map_init)
17238 (grub_apple_partition_map_fini): Likewise.
17239 * partmap/pc.c (grub_pc_partition_map_init)
17240 (grub_pc_partition_map_fini): Likewise.
17241 * partmap/sun.c (grub_sun_partition_map_init,
17242 grub_sun_partition_map_fini): Likewise.
17243 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
17246 * util/grub-emu.c: Include <grub_modules_init.h>.
17247 (main): Don't initialize and de-initialize any modules directly,
17248 use `grub_init_all' and `grub_fini_all' instead.
17250 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
17251 `grub_vesafb_mod_init'.
17252 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
17254 * term/i386/pc/vga.c (grub_vga_init): Renamed to
17255 `grub_vga_mod_init'. Updated all users.
17256 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
17258 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
17259 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
17262 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
17263 Generate a function to initialize the module in utilities.
17264 Updated all callers.
17265 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
17266 initialize the module in utilities. Updated all callers.
17268 2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
17270 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
17271 escape sequence and a literal ^L to clear the screen.
17273 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
17274 when returning from Open Firmware.
17276 2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
17278 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
17279 (grub_ofconsole_height): Likewise.
17280 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
17281 manually insert a '\n'.
17282 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
17283 `grub_ofconsole_height'. Return early if these are already set.
17285 2005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
17287 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
17288 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
17289 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
17290 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
17291 and `normal/script.c'.
17292 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
17293 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
17294 (test_mod_SOURCES): New variable.
17295 (test_mod_CFLAGS): Likewise.
17296 (test_mod_LDFLAGS): Likewise.
17297 (pkgdata_MODULES): Add `test.mod'.
17298 (grub_script.tab.c): New rule.
17299 (grub_script.tab.h): Likewise.
17301 2005-11-07 Marco Gerards <mgerards@xs4all.nl>
17303 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
17304 `commands/test.c', `normal/execute.c', `normal/lexer.c',
17305 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
17306 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
17307 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
17308 (test_mod_SOURCES): New variable.
17309 (test_mod_CFLAGS): Likewise.
17310 (pkgdata_MODULES): Add `test.mod'.
17311 (grub_script.tab.c): New rule.
17312 (grub_script.tab.h): Likewise.
17314 2005-11-06 Marco Gerards <mgerards@xs4all.nl>
17316 Add initial scripting support.
17318 * commands/test.c: New file.
17319 * include/grub/script.h: Likewise.
17320 * normal/execute.c: Likewise.
17321 * normal/function.c: Likewise.
17322 * normal/lexer.c: Likewise.
17323 * normal/parser.y: Likewise.
17324 * normal/script.c: Likewise.
17326 * configure.ac: Add `AC_PROG_YACC' test.
17328 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
17329 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
17330 `normal/function.c' and `normal/script.c'.
17331 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
17332 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
17333 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
17335 (pkgdata_MODULES): Add `test.mod'.
17336 (grub_script.tab.c): New rule.
17337 (grub_script.tab.h): Likewise.
17339 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
17341 * include/grub/normal.h (grub_test_init): New prototype.
17342 (grub_test_fini): Likewise.
17344 * normal/command.c: Include <grub/script.h>.
17345 (grub_command_execute): Rewritten.
17347 * util/grub-emu.c (main): Call `grub_test_init' and
17350 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
17352 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
17354 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
17355 there are no pending characters.
17357 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
17359 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
17360 `grub_strndup' to drop device arguments. Replace unnecessary
17361 `grub_strndup' with `grub_strdup'.
17363 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
17365 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
17366 `debug' environment variable has been set.
17368 2005-11-02 Hollis Blanchard <hollis@penguinppc.org>
17370 * Makefile.in (install-local): Use $(DATA).
17371 (uninstall): Likewise.
17372 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
17373 (sbin_UTILITIES): ... to here.
17374 (sbin_SCRIPTS): New variable.
17375 (grub_install_SOURCES): New variable.
17376 * util/powerpc/ieee1275/grub-install.in: New file.
17377 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
17379 (add_segments): Call `grub_util_get_path'.
17381 2005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
17383 From Timothy Baldwin:
17384 * commands/ls.c (grub_ls_list_files): Close FILE with
17386 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
17388 2005-10-24 Marco Gerards <mgerards@xs4all.nl>
17390 * include/grub/parser.h: New file.
17392 * kern/parser.c: Likewise.
17394 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
17395 (grub_setup_SOURCES): Likewise.
17396 (grub_probefs_SOURCES): Likewise.
17397 (grub_emu_SOURCES): Likewise.
17398 (kernel_img_HEADERS): Add `parser.h'.
17400 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
17401 (grub_emu_SOURCES): Add `kern/parser.c'.
17402 (grubof_SOURCES): Likewise.
17404 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
17405 (grubof_SOURCES): Add `kern/parser.c'.
17407 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
17409 * kern/misc.c (grub_split_cmdline): Removed function.
17411 * kern/rescue.c: Include <grub/parser.h>.
17412 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
17413 of `grub_split_cmdline'.
17415 * normal/command.c: Include <grub/parser.h>.
17416 (grub_command_execute): Use `grub_parser_split_cmdline' instead
17417 of `grub_split_cmdline'.
17419 * normal/completion.c: Include <grub/parser.h>.
17420 (cmdline_state): New variable.
17421 (iterate_dir): End the filename with a quote depending on the
17422 command line state.
17423 (get_state): new function.
17424 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
17425 split the arguments and determine the current argument. When the
17426 argument string is not quoted, escape all spaces.
17428 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
17430 * normal/sparc64/setjmp.S: New file.
17432 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
17434 * include/grub/sparc64/libgcc.h: New file.
17435 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
17436 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
17437 normal/sparc64/setjmp.c.
17439 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
17441 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
17442 * kern/sparc64/cache.S: New file.
17443 * kern/sparc64/cache.c: Removed.
17444 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
17445 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
17447 (COMMON_LDFLAGS): Add -melf64_sparc.
17448 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
17449 (grubof_SOURCES): Use cache.S instead of cache.c.
17450 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
17451 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
17452 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
17454 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
17455 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
17456 (linux_mod_CFLAGS): Commented out.
17457 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
17458 out because module isn't built.
17459 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
17460 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
17461 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
17462 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
17463 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
17464 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
17465 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
17466 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
17467 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
17468 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
17469 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
17470 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
17471 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
17472 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
17474 2005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
17476 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
17477 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
17478 longer, because HFS should not be used on PC.
17480 2005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
17482 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
17483 consistently within the loop.
17485 2005-10-15 Marco Gerards <mgerards@xs4all.nl>
17487 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
17488 directory can not be read.
17490 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
17492 * configure.ac (AC_INIT): Increase the version number to 1.91.
17494 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
17495 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
17496 term/i386/pc/serial.c.
17498 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
17500 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
17501 file size must be permitted.
17503 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
17504 between %ah and %al.
17506 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
17508 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
17510 Call the hook with a NUL-terminated filename.
17511 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
17514 * kern/term.c (cursor_state): New variable.
17515 (grub_term_set_current): Reset the cursor state on a new
17517 (grub_setcursor): Rewritten to use CURSOR_STATE.
17518 (grub_getcursor): New function.
17520 * include/grub/term.h (grub_getcursor): New prototype.
17522 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
17523 integers on ARM. Reported by Timothy Baldwin
17524 <T.E.Baldwin99@members.leeds.ac.uk>.
17526 2005-10-11 Marco Gerards <mgerards@xs4all.nl>
17528 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
17530 (grub_sfs_dir): Likewise.
17532 2005-10-09 Marco Gerards <mgerards@xs4all.nl>
17534 Add support for the SFS filesystem.
17536 * fs/sfs.c: New file.
17538 * DISTLIST: Added `fs/sfs.c'.
17540 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
17541 (grub_probefs_SOURCES): Likewise.
17542 (grub_emu_SOURCES): Likewise.
17543 (pkgdata_MODULES): Add `sfs.mod'.
17544 (sfs_mod_SOURCES): New variable.
17545 (sfs_mod_CFLAGS): Likewise.
17546 (sfs_mod_LDFLAGS): Likewise.
17548 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
17549 (pkgdata_MODULES): Add `sfs.mod'.
17550 (sfs_mod_SOURCES): New variable.
17551 (sfs_mod_CFLAGS): Likewise.
17553 * util/grub-emu.c (main): Call `grub_sfs_init' and
17556 * include/grub/fs.h (grub_sfs_init): New prototype.
17557 (grub_sfs_fini): Likewise.
17559 2005-10-07 Marco Gerards <mgerards@xs4all.nl>
17561 Add support for the AFFS filesystem.
17563 * fs/affs.c: New file.
17565 * DISTLIST: Added `fs/affs.c'.
17567 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
17568 (grub_probefs_SOURCES): Likewise.
17569 (grub_emu_SOURCES): Likewise.
17570 (pkgdata_MODULES): Add `affs.mod'.
17571 (affs_mod_SOURCES): New variable.
17572 (affs_mod_CFLAGS): Likewise.
17573 (affs_mod_LDFLAGS): Likewise.
17575 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
17576 (pkgdata_MODULES): Add `affs.mod'.
17577 (affs_mod_SOURCES): New variable.
17578 (affs_mod_CFLAGS): Likewise.
17580 * util/grub-emu.c (main): Call `grub_affs_init' and
17583 * include/grub/fs.h (grub_affs_init): New prototype.
17584 (grub_affs_fini): Likewise.
17586 2005-10-01 Marco Gerards <mgerards@xs4all.nl>
17588 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
17590 2005-10-01 Marco Gerards <mgerards@xs4all.nl>
17592 * configure.ac: Accept `x86_64' as host_cpu. In that case add
17595 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
17598 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
17599 (COMMON_LDFLAGS): New variable.
17600 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
17601 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
17602 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
17603 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
17604 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
17605 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
17606 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
17607 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
17608 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
17609 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
17610 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
17611 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
17612 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
17613 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
17614 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
17616 (normal_mod_ASFLAGS): Add `-m32'.
17618 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
17619 (grub_host_size_t, grub_host_ssize_t): New types.
17620 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
17621 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
17622 `GRUB_HOST_SIZEOF_VOID_P'.
17624 * include/grub/kernel.h (struct grub_module_header): Type of
17625 member offset changed to `grub_host_off_t'. Type of member size
17626 changed to `grub_host_size_t'.
17627 (struct grub_module_info): Type of member offset changed to
17628 `grub_host_off_t'. Type of member size changed to
17629 `grub_host_size_t'.
17631 2005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
17633 Make GRUB's kernel compliant to Multiboot Specification.
17635 * kern/i386/pc/startup.S (multiboot_header): New label.
17636 (multiboot_entry): Likewise.
17637 (multiboot_trampoline): Likewise.
17639 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
17640 Increased to 0x4A0.
17642 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
17643 put parentheses after a question mark.
17644 [!GRUB_UTIL] (my_mod): New variable.
17646 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
17648 2005-09-28 Marco Gerards <mgerards@xs4all.nl>
17650 Adds support for the XFS filesystem. Btrees are not supported
17653 * fs/xfs.c: New file.
17655 * DISTLIST: Added `fs/xfs.c'.
17657 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
17658 (grub_probefs_SOURCES): Likewise.
17659 (grub_emu_SOURCES): Likewise.
17660 (pkgdata_MODULES): Add `xfs.mod'.
17661 (xfs_mod_SOURCES): New variable.
17662 (xfs_mod_CFLAGS): Likewise.
17664 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
17665 (pkgdata_MODULES): Add `xfs.mod'.
17666 (xfs_mod_SOURCES): New variable.
17667 (xfs_mod_CFLAGS): Likewise.
17669 * util/grub-emu.c (main): Call `grub_xfs_init' and
17672 * include/grub/fs.h (grub_xfs_init): New prototype.
17673 (grub_xfs_fini): Likewise.
17676 2005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
17678 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
17679 color modes, allow greater than 16 colors to be configured as
17682 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
17684 * normal/completion.c (complete_arguments): Add the qualifier
17685 const into OPTIONS.
17687 From Omniflux <omniflux+lists@omniflux.com>:
17688 * include/grub/terminfo.h: New file.
17689 * include/grub/tparm.h: Likewise.
17690 * include/grub/i386/pc/serial.h: Likewise.
17691 * term/terminfo.c: Likewise.
17692 * term/tparm.c: Likewise.
17693 * term/i386/pc/serial.c: Likewise.
17694 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
17696 (terminfo_mod_SOURCES): New variable.
17697 (terminfo_mod_CFLAGS): Likewise.
17698 (serial_mod_SOURCES): Likewise.
17699 (serial_mod_CFLAGS): Likewise.
17701 2005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
17703 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
17704 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
17705 and kern/powerpc/ieee1275/cmain.c, respectively.
17707 * boot/powerpc/ieee1275/crt0.S: Moved to ...
17708 * kern/powerpc/ieee1275/crt0.S: ... here.
17710 * boot/powerpc/ieee1275/cmain.c: Moved to ...
17711 * kern/powerpc/ieee1275/cmain.c: ... here.
17713 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
17714 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
17715 instead of boot/powerpc/ieee1275/crt0.S and
17716 boot/powerpc/ieee1275/cmain.c, respectively.
17718 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
17719 sectors. It was not used anyway.
17721 2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
17723 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
17724 `unused parameter' warning.
17726 2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
17728 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
17730 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
17733 2005-08-28 Marco Gerards <metgerards@student.han.nl>
17735 * include/grub/normal.h (enum grub_completion_type): Added
17736 `GRUB_COMPLETION_TYPE_ARGUMENT'.
17738 * normal/cmdline.c (print_completion): Handle
17739 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
17740 * normal/menu_entry.c (store_completion): Likewise.
17742 * normal/completion.c (complete_arguments): New function.
17743 (grub_normal_do_completion): Call `complete_arguments' when the
17744 current words start with a dash.
17746 2005-08-27 Marco Gerards <metgerards@student.han.nl>
17748 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
17749 `gzio.mod' instead of `io.mod').
17751 2005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
17753 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
17754 (DISTDIRS): Added io and video.
17755 Rewrite the search routine to make an output consistently.
17757 * DISTLIST: Added conf/sparc64-ieee1275.mk,
17758 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
17759 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
17760 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
17761 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
17762 util/powerpc/ieee1275/misc.c.
17764 * include/grub/gzio.h: New file.
17765 * io/gzio.c: Likewise.
17767 * kern/file.c (grub_file_close): Call grub_device_close only if
17768 FILE->DEVICE is not NULL.
17770 * include/grub/mm.h [!NULL] (NULL): New macro.
17772 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
17774 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
17775 (pkgdata_MODULES): Added gzio.mod.
17776 (gzio_mod_SOURCES): New variable.
17777 (gzio_mod_CFLAGS): Likewise.
17779 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
17780 (pkgdata_MODULES): Added gzio.mod.
17781 (gzio_mod_SOURCES): New variable.
17782 (gzio_mod_CFLAGS): Likewise.
17784 * commands/cat.c: Include grub/gzio.h.
17785 (grub_cmd_cat): Use grub_gzfile_open instead of
17788 * commands/cmp.c: Include grub/gzio.h.
17789 (grub_cmd_cmp): Use grub_gzfile_open instead of
17792 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
17793 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
17795 (grub_rescue_cmd_module): Likewise.
17797 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
17799 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
17800 kern/sparc64/ieee1275/init.c because it contains _start.
17801 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
17803 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
17805 * configure.ac: Add support for sparc64 host with ieee1275
17807 * configure: Generated from configure.ac.
17808 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
17810 (grub_ofdisk_read): Likewise.
17811 (grub_ofdisk_open): Use %p to print pointer values, and cast the
17812 pointers as (void *) to remove a warning.
17813 (grub_ofdisk_close): Likewise.
17814 (grub_ofdisk_read): Likewise.
17815 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
17816 returns, so make it return void to remove a warning.
17817 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
17818 Corresponding prototype change.
17819 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
17820 values, and cast the pointers as (void *) to remove a warning.
17821 (grub_mm_dump): Likewise.
17822 * conf/sparc64-ieee1275.mk: New file.
17823 * conf/sparc64-ieee1275.rmk: Likewise.
17824 * include/grub/sparc64/setjmp.h: Likewise.
17825 * include/grub/sparc64/types.h: Likewise.
17826 * include/grub/sparc64/ieee1275/console.h: Likewise.
17827 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
17828 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
17829 * include/grub/sparc64/ieee1275/time.h: Likewise.
17830 * kern/sparc64/cache.c: Likewise.
17831 * kern/sparc64/dl.c: Likewise.
17832 * kern/sparc64/ieee1275/init.c: Likewise.
17833 * kern/sparc64/ieee1275/openfw.c: Likewise.
17835 2005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
17837 * util/console.c (grub_ncurses_putchar): If C is greater than
17838 0x7f, set C to a question mark.
17839 (grub_ncurses_getcharwidth): New function.
17840 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
17843 * normal/menu.c (print_entry): Made aware of Unicode. First,
17844 convert TITLE to UCS-4, and predict the cursor position by
17847 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
17849 * kern/misc.c (grub_utf16_to_utf8): Likewise.
17851 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
17853 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
17854 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
17857 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
17858 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
17859 grub_strcpy and grub_strlen. Take it into account that a space
17860 character is inserted as a delimiter.
17862 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
17864 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
17865 invalid magic in the error.
17867 * commands/search.c: New file.
17869 * util/grub-emu.c (main): Call grub_search_init and
17872 * kern/rescue.c (grub_rescue_print_disks): Removed.
17873 (grub_rescue_print_devices): New function.
17874 (grub_rescue_cmd_ls): Use grub_device_iterate with
17875 grub_rescue_print_devices instead of grub_disk_dev_iterate with
17876 grub_rescue_print_disks.
17878 * kern/partition.c (grub_partition_iterate): Return the result of
17879 PARTMAP->ITERATE instead of GRUB_ERRNO.
17881 * kern/device.c: Include grub/partition.h.
17882 (grub_device_iterate): New function.
17884 * include/grub/partition.h (grub_partition_iterate): Return int
17885 instead of grub_err_t.
17887 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
17889 [GRUB_UTIL] (grub_search_fini): Likewise.
17891 * include/grub/device.h (grub_device_iterate): New prototype.
17893 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
17895 (pkgdata_MODULES): Added search.mod.
17896 (search_mod_SOURCES): New variable.
17897 (search_mod_CFLAGS): Likewise.
17899 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
17900 (pkgdata_MODULES): Added search.mod.
17901 (search_mod_SOURCES): New variable.
17902 (search_mod_CFLAGS): Likewise.
17904 * commands/ls.c (grub_ls_list_disks): Renamed to ...
17905 (grub_ls_list_devices): ... this, and use grub_device_iterate.
17906 All callers changed.
17908 * DISTLIST: Added commands/search.c.
17910 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
17912 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
17914 (grub_getcharwidth): New function.
17916 * kern/misc.c (grub_utf8_to_ucs4): New function.
17918 * include/grub/term.h (struct grub_term): Added a new member
17920 (grub_getcharwidth): New prototype.
17922 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
17924 * term/i386/pc/console.c (map_char): New function. Segregated from
17925 grub_console_putchar.
17926 (grub_console_putchar): Use map_char.
17927 (grub_console_getcharwidth): New function.
17928 (grub_console_term): Specified grub_console_getcharwidth as
17931 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
17932 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
17934 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
17936 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
17937 on grub_strtoul completely.
17938 (write_char): Declare local variables in the beginning of the
17940 (grub_vesafb_getcharwidth): New function.
17941 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
17944 2005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
17946 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
17947 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
17948 commands/i386/pc/vbetest.c.
17950 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
17951 call grub_vbe_get_controller_info again, because the returned
17952 information is volatile.
17953 (grub_vbe_set_video_mode): Mostly rewritten.
17954 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
17955 grub_vbe_status_t correctly.
17956 (grub_vbe_get_video_mode_info): Likewise.
17957 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
17958 several if statements.
17960 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
17961 * commands/i386/pc/vbeinfo.c: ... this.
17963 * commands/i386/pc/vbe_test.c: Renamed to ...
17964 * commands/i386/pc/vbetest.c: ... this.
17966 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
17968 (grub_cmd_vbeinfo): ... this. Save video modes before
17969 iterating. Skip a video mode, if it is not available, not enough
17970 information is given or it is monochrome. Show the memory
17971 model. Leave the interpretation of MODEVAR to grub_strtoul
17973 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
17974 (GRUB_MOD_FINI): Likewise.
17976 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
17977 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
17978 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
17979 duplicated grub_env_get. Leave the interpretation of MODEVAR to
17980 grub_strtoul completely.
17981 (real2pm): Removed.
17982 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
17983 (GRUB_MOD_FINI): Likewise.
17985 * normal/misc.c: Include grub/mm.h.
17987 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
17988 vbe_list_modes with vbetest.mod and vbeinfo.mod.
17989 (vbe_list_modes_mod_SOURCES): Removed.
17990 (vbe_list_modes_mod_CFLAGS): Likewise.
17991 (vbe_test_mod_SOURCES): Likewise.
17992 (vbe_test_mod_CFLAGS): Likewise.
17993 (vbeinfo_mod_SOURCES): New variable.
17994 (vbeinfo_mod_CFLAGS): Likewise.
17995 (vbetest_mod_SOURCES): Likewise.
17996 (vbetest_mod_CFLAGS): Likewise.
17998 2005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
18000 * normal/misc.c: New file.
18002 * DISTLIST: Added normal/misc.c.
18004 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
18005 DISK to HOOK. Call HOOK with DISK.
18006 * partmap/apple.c (apple_partition_map_iterate): Likewise.
18007 * partmap/pc.c (pc_partition_map_iterate): Likewise.
18008 * partmap/sun.c (sun_partition_map_iterate): Likewise.
18010 * normal/menu_entry.c (struct screen): Added a new member
18011 "completion_shown".
18012 (completion_buffer): New global variable.
18013 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
18014 (store_completion): New function.
18015 (complete): Likewise.
18016 (clear_completions): Likewise.
18017 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
18018 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
18019 a tab, call complete.
18021 * normal/completion.c (disk_dev): Removed.
18022 (print_simple_completion): Likewise.
18023 (print_partition_completion): Likewise.
18024 (print_func): New global variable.
18025 (add_completion): Do not take the arguments WHAT or PRINT any
18026 longer. Added a new argument TYPE. Instead of printing directly,
18027 call PRINT_FUNC if not NULL.
18028 All callers changed.
18029 (complete_device): Use a local variable DEV instead of
18030 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
18031 (grub_normal_do_completion): Take a new argument HOOK. Do not
18032 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
18033 empty string, return NULL instead.
18034 All callers changed.
18036 * normal/cmdline.c (print_completion): New function.
18038 * kern/partition.c (grub_partition_iterate): Add an argument DISK
18040 All callers changed.
18042 * kern/disk.c (grub_print_partinfo): Removed.
18044 * include/grub/partition.h (struct grub_partition_map): Add a new
18045 argument DISK into HOOK of ITERATE.
18046 (grub_partition_iterate): Add a new argument DISK to HOOK.
18048 * include/grub/normal.h (enum grub_completion_type): New enum.
18049 (grub_completion_type_t): New type.
18050 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
18051 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
18052 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
18053 (GRUB_COMPLETION_TYPE_FILE): Likewise.
18054 (grub_normal_do_completion): Added a new argument HOOK.
18055 (grub_normal_print_device_info): New prototype.
18057 * include/grub/disk.h (grub_print_partinfo): Removed.
18059 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
18060 (normal_mod_SOURCES): Likewise.
18061 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
18062 (normal_mod_SOURCES): Likewise.
18064 * commands/ls.c (grub_ls_list_disks): Use
18065 grub_normal_print_device_info instead of grub_print_partinfo. Free
18067 (grub_ls_list_files): Use grub_normal_print_device_info instead of
18068 duplicating the code.
18070 2005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
18072 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
18073 follow GCS more precisely.
18074 * commands/i386/pc/vbe_test.c: Likewise.
18075 * include/grub/i386/pc/vbe.h: Likewise.
18076 * term/i386/pc/vesafb.c: Likewise.
18077 * video/i386/pc/vbe.c: Likewise.
18079 2005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
18081 * DISTLIST: Added term/i386/pc/vesafb.c
18082 DISTLIST: Added video/i386/pc/vbe.c
18083 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
18084 DISTLIST: Added commands/i386/pc/vbe_test.c.
18085 * commands/i386/pc/vbe_list_modes.c: New file.
18086 * commands/i386/pc/vbe_test.c: Likewise.
18087 * term/i386/pc/vesafb.c: Likewise.
18088 * video/i386/pc/vbe.c: Likewise.
18089 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
18090 (grub_vbe_probe) Added prototype.
18091 (grub_vbe_set_video_mode) Likewise.
18092 (grub_vbe_get_video_mode) Likewise.
18093 (grub_vbe_get_video_mode_info) Likewise.
18094 (grub_vbe_set_pixel_rgb) Likewise.
18095 (grub_vbe_set_pixel_index) Likewise.
18096 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
18097 (pkgdata_MODULES): Added vesafb.mod.
18098 (pkgdata_MODULES): Added vbe_list_modes.mod.
18099 (pkgdata_MODULES): Added vbe_test.mod.
18100 (vbe_mod_SOURCES): Added.
18101 (vbe_mod_CFLAGS): Likewise.
18102 (vesafb_mod_SOURCES): Likewise.
18103 (vesafb_mod_CFLAGS): Likewise.
18104 (vbe_list_modes_mod_SOURCES): Likewise.
18105 (vbe_list_modes_mod_CFLAGS): Likewise.
18106 (vbe_test_mod_SOURCES): Likewise.
18107 (vbe_test_mod_CFLAGS): Likewise.
18109 2005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
18111 * normal/command.c (grub_command_execute): If INTERACTIVE is
18112 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
18113 CMDLINE. Disable the pager if INTERACTIVE is true.
18114 All callers are changed.
18116 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
18117 before reading a config file.
18118 * normal/main.c (read_config_file): Even if a command is not
18119 found, register it if it is within an entry.
18121 * util/grub-emu.c: Include sys/types.h and unistd.h.
18122 (options): Added --hold.
18123 (struct arguments): Added a new member "hold".
18124 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
18126 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
18127 cleared by a debugger, if it is not zero.
18129 * include/grub/normal.h (grub_command_execute): Add an argument
18132 2005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
18134 * DISTLIST: Added include/grub/i386/pc/vbe.h.
18136 2005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
18138 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
18139 program with another one, because the old one didn't detect a bug
18140 in gcc-3.4. Always use regparm 2, because the new test is still
18141 not enough for gcc-4.0. Someone must investigate a simple test
18142 case which detects a bug in gcc-4.0.
18144 2005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
18146 * DISTLIST: Added normal/completion.c.
18148 * normal/completion.c: New file.
18150 * term/i386/pc/console.c (grub_console_getwh): New function.
18151 (grub_console_term): Assign grub_console_getwh to getwh.
18153 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
18154 function is defined in normal/completion.c as
18155 grub_normal_do_completion.
18156 (grub_cmdline_get): Use grub_normal_do_completion instead of
18159 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
18160 returns non-zero, otherwise return 0.
18161 (grub_partition_iterate): First, probe the partition map. Then,
18162 call ITERATE only for this partition map.
18164 * kern/misc.c (grub_strncmp): Rewritten.
18166 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
18167 returns non-zero. Otherwise return 0.
18169 * include/grub/partition.h (grub_partition_map_iterate): Return
18170 int instead of void.
18172 * include/grub/normal.h (grub_normal_do_completion): New prototype.
18174 * include/grub/misc.h (grub_strncmp): Change the type of N to
18177 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
18180 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
18181 unsigned explicitly before comparing it with I.
18183 * kern/main.c (grub_env_write_root): Add the attribute unused into
18186 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
18187 normal/completion.c.
18188 (normal_mod_SOURCES): Likewise.
18189 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
18190 (normal_mod_SOURCES): Likewise.
18192 * normal/command.c (grub_iterate_commands): If ITERATE returns
18193 non-zero, return one immediately.
18195 2005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
18197 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
18198 * kern/i386/pc/startup.S: Updated Global Descriptor table's
18200 (grub_vbe_get_controller_info): New function.
18201 (grub_vbe_get_mode_info): Likewise.
18202 (grub_vbe_set_mode): Likewise.
18203 (grub_vbe_get_mode): Likewise.
18204 (grub_vbe_set_memory_window): Likewise.
18205 (grub_vbe_get_memory_window): Likewise.
18206 (grub_vbe_set_scanline_length): Likewise.
18207 (grub_vbe_get_scanline_length): Likewise.
18208 (grub_vbe_set_display_start): Likewise.
18209 (grub_vbe_get_display_start): Likewise.
18210 (grub_vbe_set_palette_data): Likewise.
18211 * include/grub/i386/pc/vbe.h: New file.
18213 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
18215 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
18216 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
18217 * DISTLIST: Likewise.
18218 * kern/ieee1275/of.c: Moved to ...
18219 * kern/ieee1275/ieee1275.c: ... here.
18221 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
18223 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
18224 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
18225 Pass 0 as `end' parameter to grub_strtoul().
18227 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
18229 * include/grub/powerpc/ieee1275/console.h: Do not include
18230 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
18232 (grub_console_cur_color): Remove i386-specific prototype.
18233 (grub_console_real_putchar): Likewise.
18234 (grub_console_checkkey): Likewise.
18235 (grub_console_getkey): Likewise.
18236 (grub_console_getxy): Likewise.
18237 (grub_console_gotoxy): Likewise.
18238 (grub_console_cls): Likewise.
18239 (grub_console_setcursor): Likewise.
18240 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
18241 Include <grub/machine/console.h>.
18242 * term/ieee1275/ofconsole.c: Likewise.
18244 2005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
18246 * Makefile.in (LIBLZO): New variable.
18248 * configure.ac: Check for LZO version 2.
18250 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
18251 lzo/lzo1x.h instead of lzo1x.h.
18253 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
18256 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
18257 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
18259 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
18260 copying the data from PARTITION to P.
18262 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
18264 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
18265 negative, unload the module.
18267 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
18268 map is "pc_partition_map" but not "pc".
18269 (usage): Fix the description. The options are --boot-image and
18270 --core-image but not --boot-file or --core-file.
18271 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
18272 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
18275 * util/i386/pc/grub-install.in: Do not specify --boot-file or
18276 --core-file. Specify INSTALL_DEVICE as an argument.
18278 * util/console.c: Include config.h.
18279 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
18280 [HAVE_NCURSES_H]: Include ncurses.h.
18281 [HAVE_CURSES_H]: Include curses.h.
18282 [!A_NORMAL] (A_NORMAL): Defined as zero.
18283 [!A_STANDOUT] (A_STANDOUT): Likewise.
18285 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
18287 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
18289 * configure.ac: Check for curses libraries and headers.
18291 * Makefile.in (LIBCURSES): New variable.
18293 * genmk.rb (Script::rule): Set the executable bits.
18295 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
18296 name of the PC partition map is "pc_partition_map" but not "pc".
18298 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
18300 * util/i386/pc/grub-install.in (grub_probefs): New variable.
18301 (modules): Likewise.
18302 (usage): Added descriptions for --modules and --grub-probefs.
18303 Handle --modules and --grub-probefs. Save the arguments in MODULES
18304 and GRUB_PROBEFS, respectively.
18305 Auto-detect a filesystem module against GRUBDIR. If the result is
18306 empty and modules are not specified explicitly, abort the
18307 installation. Add the result to MODULES.
18309 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
18310 disk/powerpc/ieee1275/ofdisk.c,
18311 include/grub/powerpc/ieee1275/init.h and
18312 term/powerpc/ieee1275/ofconsole.c.
18313 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
18314 term/ieee1275/ofconsole.c.
18316 * include/grub/powerpc/ieee1275/console.h: Resurrected.
18318 * COPYING: Upgraded to the latest version. Only the address of the
18319 FSF office has changed.
18321 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
18323 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
18324 kern/ieee1275.c with kern/ieee1275/of.c.
18326 * kern/ieee1275.c: Moved to ...
18327 * kern/ieee1275/of.c: ... here.
18329 2005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
18331 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
18334 * config.guess: Updated to the latest version from gnulib.
18335 * config.sub: Likewise.
18336 * install.sh: Likewise.
18337 * mkinstalldirs: Likewise.
18339 * include/grub/console.h: Removed. This file is arch-specific. Do
18340 not put this in include/grub.
18342 * include/grub/i386/pc/console.h: Resurrected.
18344 * util/console.c: Include grub/machine/console.h instead of
18346 * util/grub-emu.c: Likewise.
18348 2005-08-04 Marco Gerards <metgerards@student.han.nl>
18350 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
18353 From Vincent Pelletier <subdino2004@yahoo.fr>
18354 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
18355 Redefined to use grub_getwh.
18356 (grub_term): New member named getwh.
18357 (grub_getwh): New prototype.
18358 * kern/term.c (grub_getwh): New function.
18359 * term/i386/pc/console.c (grub_console_getwh): New function.
18360 (grub_console_term): New member `getwh'.
18361 * term/i386/pc/vga.c (grub_vga_getwh): New function.
18362 (grub_vga_term): New member `getwh'.
18363 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
18365 (grub_ofconsole_getw): New function.
18366 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
18367 (grub_ofconsole_term): New field named getwh and new initial
18370 2005-08-03 Hollis Blanchard <hollis@penguinppc.org>
18372 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
18373 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
18374 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
18375 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
18376 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
18377 of <grub/machine/ieee1275.h>.
18378 * commands/ieee1275/reboot.c: Likewise.
18379 * boot/powerpc/ieee1275/ieee1275.c: Move ...
18380 * kern/ieee1275.c: ... to here. All users updated. Change all
18381 parameter structs to use new type `grub_ieee1275_cell_t'.
18382 * term/powerpc/ieee1275/ofconsole.c: Move ...
18383 * term/ieee1275/ofconsole.c: ... to here. All users updated.
18384 * disk/powerpc/ieee1275/ofdisk.c: Move ...
18385 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
18386 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
18388 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
18389 Remove unused prototypes. All users updated.
18390 * include/grub/powerpc/ieee1275/console.h: Removed.
18391 * include/grub/powerpc/ieee1275/ieee1275.h: Define
18392 `grub_ieee1275_cell_t'.
18393 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
18394 Cast comparisons with -1 to the correct type.
18395 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
18396 type to match `grub_ieee1275_entry_fn'.
18398 2005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
18400 * DISTLIST: Added util/i386/pc/grub-probefs.c.
18402 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
18403 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
18405 (grub_probefs_SOURCES): New variable.
18407 * util/i386/pc/grub-probefs.c: New file.
18409 * util/i386/pc/grub-setup.c (main): Call
18410 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
18411 grub_hfs_init and grub_jfs_init to initialize the system. Call
18412 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
18413 grub_pc_partition_map_fini to finish the system.
18415 2005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
18417 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
18419 (grub_multiboot_load_elf32): Likewise.
18420 (grub_multiboot_is_elf64): Likewise.
18421 (grub_multiboot_load_elf64): Likewise.
18422 (grub_multiboot_load_elf): Likewise.
18423 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
18424 an ELF32 or ELF64 file.
18425 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
18427 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
18428 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
18429 NULL before calling FS->LABEL.
18430 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
18431 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
18432 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
18433 before calling FS->LABEL.
18435 2005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
18437 * util/i386/pc/grub-install.in (datadir): New variable.
18439 (pkgdatadir): New variable.
18440 (pkglibdir): Removed.
18442 2005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
18444 * DISTLIST: Added util/i386/pc/grub-install.in.
18446 * util/i386/pc/grub-install.in: New file.
18448 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
18449 (grub_install_SOURCES): Likewise.
18451 * genmk.rb: Added support for scripts.
18452 (Script): New class.
18453 (scripts): New variable.
18455 * Makefile.in (install-local): Install sbin_SCRIPTS by
18457 (uninstall): Remove sbin_SCRIPTS.
18459 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
18460 device, try to get a GRUB device by
18461 grub_util_biosdisk_get_grub_dev.
18464 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
18465 description for --device-map.
18467 2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
18469 Change the semantics of variable hooks. They now return strings
18470 instead of error values.
18472 * util/i386/pc/grub-setup.c: Include grub/env.h.
18473 (setup): Use grub_device_set_root instead of grub_env_set.
18475 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
18476 grub_env_get instead of grub_device_set_root and
18477 grub_device_get_root, respectively.
18479 * kern/main.c (grub_env_write_root): New function.
18480 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
18481 grub_env_set instead of grub_device_set_root.
18483 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
18485 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
18486 rather than calling ENV->WRITE_HOOK afterwards.
18487 (grub_env_get): Return the result of ENV->READ_HOOK rather than
18488 passing a pointer of a pointer.
18489 (grub_register_variable_hook): Change the types of "read_hook" and
18490 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
18492 Allocate the default empty string on the heap, because this string
18493 may be freed later.
18495 * kern/device.c: Include grub/env.h.
18496 (grub_device_set_root): Removed.
18497 (grub_device_get_root): Likewise.
18498 (grub_device_open): Use grub_env_get instead of
18499 grub_device_get_root.
18501 * include/grub/env.h (grub_env_read_hook_t): New type.
18502 (grub_env_write_hook_t): Likewise.
18503 (grub_env_var): Change the types of "read_hook" and "write_hook"
18504 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
18505 (grub_register_variable_hook): Likewise.
18507 * include/grub/device.h (grub_device_set_root): Removed.
18508 (grub_device_set_root): Likewise.
18510 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
18511 make sure that DIRNAME terminates with '/', so that
18512 grub_fat_find_dir will fail if PATH is not a directory.
18514 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
18516 Use the qualifier auto for print_files and print_files_long.
18517 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
18519 Put a newline only if there is no error.
18520 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
18523 2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
18525 * kern/partition.c (grub_partition_probe): Initialize PART to
18526 NULL. Otherwise, when no partition map is registered, this returns
18529 2005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
18531 * partmap/apple.c (apple_partition_map_iterate): Check if POS
18532 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
18535 2005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
18537 * commands/ls.c (grub_ls_list_disks): Print the filesystem
18538 information on each device, if it does not have partitions. Print
18539 "Device" instead of "Disk", because this function is not specific
18542 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
18543 static to ensure that it is put on the memory rather than a
18546 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
18548 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
18549 (grub_cat_init): Likewise.
18550 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
18551 (options): Likewise.
18552 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
18553 (grub_configfile_init): Likewise.
18554 * font/manager.c (GRUB_MOD_INIT): Likewise.
18555 * commands/help.c (GRUB_MOD_INIT): Likewise.
18556 (grub_help_init): Likewise.
18557 * normal/command.c (grub_command_init): Likewise.
18558 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
18559 * disk/loopback.c (grub_loop_init): Likewise.
18560 (GRUB_MOD_INIT): Likewise.
18561 * commands/ls.c (grub_ls_init): Likewise.
18562 (GRUB_MOD_INIT): Likewise.
18563 (options): Likewise.
18564 * commands/boot.c (grub_boot_init): Likewise.
18565 (GRUB_MOD_INIT): Likewise.
18566 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
18567 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
18568 (GRUB_MOD_INIT): Likewise.
18569 * commands/cmp.c (grub_cmp_init): Likewise.
18570 (GRUB_MOD_INIT): Likewise.
18572 * normal/arg.c: Use <> instead of "" to include header files.
18573 (SHORT_ARG_HELP): New macro.
18574 (SHORT_ARG_USAGE): Likewise.
18575 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
18576 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
18578 (find_short): Check if C is 'h' or 'u' explicitly.
18579 (grub_arg_show_help): Use space characters instead of tabs. Treat
18580 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
18581 are shown with --help and --usage only if they are not used for
18582 the command itself.
18583 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
18586 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
18587 const into "longarg". Change the type of "shortarg" to int.
18589 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
18591 * boot/i386/pc/boot.S (boot_drive_check): New label.
18593 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
18596 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
18597 which do not pass a boot drive correctly. Copied from GRUB Legacy.
18599 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
18601 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
18602 When turning off Gate A20, skip the check and return immediately,
18603 because this is not fatal usually.
18605 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
18607 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
18608 be 0x7C00 instead of 0x8000.
18610 * boot/i386/pc/pxeboot.S: Rewritten.
18612 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
18614 (gate_a20_check_state): Read a byte from 0x108000. Invert the
18617 2005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
18619 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
18620 robustness. This routine now supports a BIOS call and System
18621 Control Port A to modify the gate A20.
18623 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
18624 Increased to 0x440.
18626 2005-07-12 Hollis Blanchard <hollis@penguinppc.org>
18628 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
18629 device path and resulting ihandle.
18630 (grub_ofdisk_close): dprintf the ihandle being closed.
18631 (grub_ofdisk_read): dprintf function parameters.
18632 * kern/mm.c (grub_mm_init_region): Likewise.
18633 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
18634 (grub_linux_boot): dprintf the Linux entry point, initrd address and
18635 size, and boot arguments.
18636 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
18637 before loading into memory.
18638 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
18639 before loading into memory.
18641 2005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
18643 * kern/mm.c: Added much documentation.
18644 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
18645 8, set to 5 instead of 8.
18647 2005-07-10 Yoshinori Okuji <okuji@enbug.org>
18649 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
18651 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
18652 (grub_mkdevicemap_SOURCES): New variable.
18654 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
18655 lib/device.c of GRUB Legacy.
18657 2005-07-10 Yoshinori Okuji <okuji@enbug.org>
18659 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
18660 instead of PATH is NULL.
18662 2005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
18664 * commands/cmp.c (BUFFER_SIZE): New macro.
18665 (grub_cmd_cmp): Close the right file at the right time. Compare
18666 only data just read. Don't report files of different size as
18667 identical. Dynamically allocate buffers. Move variable
18668 declarations at the beginning of function.
18670 2005-07-09 Yoshinori Okuji <okuji@enbug.org>
18672 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
18675 2004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
18677 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
18678 when backspace is pressed at beginning of line.
18680 2005-07-03 Yoshinori Okuji <okuji@enbug.org>
18682 * DISTLIST: Added genfslist.sh.
18684 * normal/main.c (fs_module_list): New variable.
18685 (autoload_fs_module): New function.
18686 (read_fs_list): Likewise.
18687 (grub_normal_execute): Call read_fs_list.
18689 * kern/fs.c (grub_fs_autoload_hook): New variable.
18690 (grub_fs_probe): Added support for auto-loading.
18692 * include/grub/normal.h (struct grub_fs_module_list): New struct.
18693 (grub_fs_module_list_t): New type.
18695 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
18696 (grub_fs_autoload_hook): New prototype.
18698 * genfslist.sh: New file.
18700 * genmk.rb: Added a rule to generate a filesystem list.
18702 2005-06-30 Marco Gerards <metgerards@student.han.nl>
18704 * configure.ac: Fix the test for cross-compiling.
18706 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
18707 define GRUB_UTIL anymore.
18709 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
18710 so this function works on other systems than just big endian.
18711 (load_modules): Likewise.
18712 (add_segments): Likewise.
18714 2005-06-23 Hollis Blanchard <hollis@penguinppc.org>
18716 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
18717 contains `l' modifier, get a long from va_arg().
18719 2005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
18721 * kern/mm.c (grub_free): If the next free block which is being
18722 merged is the first free block, set the first block to the block
18724 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
18726 2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
18728 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
18729 `grub_ieee1275_chosen'.
18731 2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
18733 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
18734 (grub_ieee1275_chosen): New variable.
18735 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
18737 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
18738 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
18739 Rename first argument to `phandle' for consistency.
18740 (grub_ieee1275_get_property_length): Likewise.
18741 (grub_ieee1275_next_property): Likewise. Change type of first argument
18742 to grub_ieee1275_phandle_t.
18743 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
18744 Move export next to declaration.
18745 (grub_ieee1275_chosen): New variable.
18746 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
18747 Correct cosmetic typo.
18748 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
18749 `grub_ieee1275_chosen'.
18750 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
18751 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
18752 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
18753 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
18754 `grub_ieee1275_chosen'.
18756 2005-05-10 Hollis Blanchard <hollis@penguinppc.org>
18758 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
18760 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
18761 /chosen/bootargs as "variable=value" pairs.
18763 2005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
18765 * include/grub/misc.h (grub_dprintf): New macro.
18766 (grub_real_dprintf): New prototype.
18767 (grub_strword): Likewise.
18768 (grub_iswordseparator): Likewise.
18769 * kern/misc.c (grub_real_dprintf): New function.
18770 (grub_strword): Likewise.
18771 (grub_iswordseparator): Likewise.
18773 2005-04-30 Hollis Blanchard <hollis@penguinppc.org>
18775 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
18776 (roundup): Remove macro.
18777 (grub_ieee1275_flags): Make static.
18778 (grub_ieee1275_realmode): Remove.
18779 (grub_ieee1275_test_flag): New function.
18780 (grub_ieee1275_set_flag): Likewise.
18781 (find_options): Rename to `grub_ieee1275_find_options'; update
18782 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
18783 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
18784 (cmain): New prototype.
18785 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
18786 `grub_ieee1275_flags' directly.
18787 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
18788 machine/biosdisk.h.
18789 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
18790 Don't include grub/machine/init.h.
18791 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
18792 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
18794 (grub_ieee1275_realmode): Likewise.
18795 (grub_ieee1275_flag): New enum.
18796 (grub_ieee1275_test_flag): New prototype.
18797 (grub_ieee1275_set_flag): New prototype.
18798 * include/grub/powerpc/ieee1275/init.h: Remove file.
18799 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
18800 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
18801 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
18802 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
18804 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
18805 `grub_ieee1275_test_flag'.
18806 (grub_ieee1275_encode_devname): Likewise.
18808 2005-04-21 Hollis Blanchard <hollis@penguinppc.org>
18810 * include/grub/powerpc/ieee1275/ieee1275.h
18811 (grub_ieee1275_encode_devname): New prototype.
18812 (grub_ieee1275_get_filename): Likewise.
18813 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
18815 (grub_set_prefix): Likewise.
18816 (grub_machine_init): Call grub_set_prefix.
18817 * kern/powerpc/ieee1275/openfw.c: Fix typos.
18818 (grub_parse_type): New enum.
18819 (grub_ieee1275_get_devargs): New function.
18820 (grub_ieee1275_get_devname): Likewise.
18821 (grub_ieee1275_parse_args): Likewise.
18822 (grub_ieee1275_get_filename): Likewise.
18823 (grub_ieee1275_encode_devname): Likewise.
18825 2005-03-30 Marco Gerards <metgerards@student.han.nl>
18827 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
18828 `grub_loader_unset'.
18830 2005-03-26 Hollis Blanchard <hollis@penguinppc.org>
18832 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
18833 instead of grub_ieee1275_interpret.
18834 (grub_halt_init): New function.
18835 (grub_halt_fini): Likewise.
18836 (GRUB_MOD_INIT): Correct message grammar.
18837 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
18838 instead of grub_ieee1275_interpret.
18839 (grub_reboot_init): New function.
18840 (grub_reboot_fini): Likewise.
18841 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
18842 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
18843 util/i386/pc/misc.c with commands/ieee1275/halt.c,
18844 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
18845 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
18847 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
18849 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
18851 (grub_halt): Likewise.
18852 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
18853 (cmain): Remove __attribute__((unused)).
18854 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
18855 (grub_heap_len): Likewise.
18856 (grub_machine_fini): New function.
18857 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
18858 (grub_halt): Likewise.
18859 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
18861 * util/powerpc/ieee1275/misc.c: New file.
18863 2005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
18865 * DISTLIST: New file.
18866 * gendistlist.sh: Likewise.
18868 * Makefile.in (COMMON_DISTFILES): Removed.
18869 (BOOT_DISTFILES): Likewise.
18870 (CONF_DISTFILES): Likewise.
18871 (DISK_DISTFILES): Likewise.
18872 (FS_DISTFILES): Likewise.
18873 (INCLUDE_DISTFILES): Likewise.
18874 (KERN_DISTFILES): Likewise.
18875 (LOADER_DISTFILES): Likewise.
18876 (TERM_DISTFILES): Likewise.
18877 (UTIL_DISTFILES): Likewise.
18878 (DISTFILES): Likewise.
18879 (uninstall): Uninstall files in $(pkgdata_DATA).
18880 (DISTLIST): New target.
18881 (distdir): Use the contents of the file DISTLIST to get a list of
18884 2005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
18886 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
18887 descriptor. This is ported from GRUB Legacy.
18889 * gencmdlist.sh: Added an extra semicolon to make it work with
18890 old sed versions. Reported by Robert Bihlmeyer
18891 <robbe@orcus.priv.at>.
18893 2005-03-08 Yoshinori Okuji <okuji@enbug.org>
18895 Automatic loading of commands is supported.
18897 * normal/main.c (read_command_list): New function.
18898 (grub_normal_execute): Call read_command_list.
18900 * normal/command.c (grub_register_command): Return zero or CMD.
18901 Allocate CMD->NAME from the heap.
18902 Initialize CMD->MODULE_NAME to zero.
18903 Find the same name as well. If the same command is found and it is
18904 a dummy command, overwrite members. If it is not a dummy command,
18906 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
18907 (grub_command_find): If a dummy command is found, load a module
18908 and retry to find a command only once.
18910 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
18911 make sure that each command is loaded.
18913 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
18915 (struct grub_command): Remove const from the member `name'.
18916 Add a new member `module_name'.
18917 (grub_register_command): Return grub_command_t.
18919 * commands/help.c (grub_cmd_help): Call grub_command_find to make
18920 sure that each command is loaded.
18922 * genmk.rb (PModule::rule): Specify a module name without the
18923 suffix ".mod" to gencmdlist.sh.
18925 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
18927 * gencmdlist.sh: New file.
18929 * genmk.rb (PModule::rule): Generate a rule for a command list.
18931 Generate command.lst from $(COMMANDFILES).
18933 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
18934 (DATA): Added $(pkgdata_DATA).
18935 (install-local): Install files in $(pkgdata_DATA).
18937 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
18939 * term/i386/pc/vga.c (debug_command): Removed.
18940 (GRUB_MOD_INIT): Do not register the command "debug".
18942 From Hollis Blanchard:
18943 * commands/configfile.c: New file.
18944 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
18945 commands/configfile.c.
18946 (pkgdata_MODULES): Added configfile.mod.
18947 (configfile_mod_SOURCES): New variable.
18948 (configfile_mod_CFLAGS): Likewise.
18949 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
18950 commands/configfile.c.
18951 (pkgdata_MODULES): Added configfile.mod.
18952 (configfile_mod_SOURCES): New variable.
18953 (configfile_mod_CFLAGS): Likewise.
18954 * util/grub-emu.c (main): Call grub_configfile_init and
18955 grub_configfile_fini.
18956 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
18958 [GRUB_UTIL] (grub_configfile_fini): Likewise.
18960 2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
18962 * normal/arg.c (grub_arg_show_help): Do not show the bug report
18965 * commands/help.c (grub_cmd_help): Do not print newlines after
18966 the last command in print_command_help.
18968 2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
18970 * commands/default.h: New file.
18971 * commands/timeout.h: Likewise.
18972 * normal/context.c: Likewise.
18974 * util/misc.c: Do not include sys/times.h.
18975 Include sys/time.h and grub/machine/time.h.
18976 (grub_get_rtc): Rewritten with gettimeofday.
18978 * util/grub-emu.c (main): Call grub_default_init and
18979 grub_timeout_init before grub_normal_init, and call
18980 grub_timeout_fini and grub_default_fini after grub_main.
18982 * util/console.c (grub_ncurses_checkkey): Return the read
18985 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
18988 * normal/main.c (read_config_file): Push MENU. If this fails,
18989 print an error and wait for a user input.
18990 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
18991 If a menu is empty or an error occurs, pop MENU.
18992 (grub_normal_execute): Pop and free MENU after grub_menu_run
18995 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
18997 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
18999 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
19001 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
19003 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
19006 * include/grub/normal.h (struct grub_menu_list): New struct.
19007 (grub_menu_list_t): New type.
19008 (struct grub_context): New struct.
19009 (grub_context_t): New type.
19010 (grub_register_command): Got rid of EXPORT_FUNC.
19011 (grub_unregister_command): Likewise.
19012 (grub_context_get): New prototype.
19013 (grub_context_get_current_menu): Likewise.
19014 (grub_context_push_menu): Likewise.
19015 (grub_context_pop_menu): Likewise.
19016 [GRUB_UTIL] (grub_default_init): Likewise.
19017 [GRUB_UTIL] (grub_default_fini): Likewise.
19018 [GRUB_UTIL] (grub_timeout_init): Likewise.
19019 [GRUB_UTIL] (grub_timeout_fini): Likewise.
19021 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
19022 commands/timeout.c and normal/context.c.
19023 (pkgdata_MODULES): Added default.mod and timeout.mod.
19024 (normal_mod_SOURCES): Added normal/context.c.
19025 (default_mod_SOURCES): New variable.
19026 (default_mod_CFLAGS): Likewise.
19027 (timeout_mod_SOURCES): Likewise.
19028 (timeout_mod_CFLAGS): Likewise.
19029 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
19031 (pkgdata_MODULES): Added default.mod and timeout.mod.
19032 (normal_mod_SOURCES): Added normal/context.c.
19033 (default_mod_SOURCES): New variable.
19034 (default_mod_CFLAGS): Likewise.
19035 (timeout_mod_SOURCES): Likewise.
19036 (timeout_mod_CFLAGS): Likewise.
19038 * Makefile.in (all-local): Added $(MKFILES).
19040 2005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
19042 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
19043 (grub_emu_SOURCES): Likewise.
19044 (pkgdata_MODULES): Add `sun.mod'.
19045 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
19046 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
19048 (pkgdata_MODULES): Add `sun.mod'.
19049 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
19050 * include/grub/partition.h (grub_sun_partition_map_init): New
19052 (grub_sun_partition_map_fini): Likewise.
19053 * partmap/sun.c: New file.
19054 * util/grub-emu.c (main): Initialize and de-initialize the sun
19055 partitionmap support.
19057 2005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
19059 This implements an Emacs-like menu entry editor.
19061 * normal/menu_entry.c: New file.
19063 * util/console.c (grub_ncurses_putchar): Translate some Unicode
19064 characters to ASCII.
19065 (saved_char): New variable.
19066 (grub_ncurses_checkkey): Rewritten completely.
19067 (grub_ncurses_getkey): Likewise.
19068 (grub_ncurses_init): Call raw instead of cbreak.
19070 * normal/menu.c (print_entry): Do not put a space.
19071 (init_page): Renamed to ...
19072 (grub_menu_init_page): ... this. All callers changed.
19073 (edit_menu_entry): Removed.
19074 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
19076 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
19078 * kern/misc.c (grub_vprintf): Call grub_refresh.
19080 * normal/menu.c (DISP_LEFT): Renamed to ...
19081 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
19082 * normal/menu.c (DISP_UP): Renamed to ...
19083 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
19084 * normal/menu.c (DISP_RIGHT): Renamed to ...
19085 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
19086 * normal/menu.c (DISP_DOWN): Renamed to ...
19087 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
19088 * normal/menu.c (DISP_HLINE): Renamed to ...
19089 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
19090 * normal/menu.c (DISP_VLINE): Renamed to ...
19091 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
19092 * normal/menu.c (DISP_UL): Renamed to ...
19093 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
19094 * normal/menu.c (DISP_UR): Renamed to ...
19095 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
19096 * normal/menu.c (DISP_LL): Renamed to ...
19097 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
19098 * normal/menu.c (DISP_LR): Renamed to ...
19099 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
19100 * normal/menu.c (TERM_WIDTH): Renamed to ...
19101 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
19102 * normal/menu.c (TERM_HEIGHT): Renamed to ...
19103 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
19104 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
19105 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
19106 * normal/menu.c (TERM_MARGIN): Renamed to ...
19107 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
19108 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
19109 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
19110 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
19111 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
19112 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
19113 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
19114 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
19115 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
19116 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
19117 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
19118 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
19119 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
19120 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
19121 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
19122 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
19123 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
19124 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
19125 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
19126 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
19127 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
19128 All callers changed.
19130 * include/grub/normal.h: New prototype.
19132 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
19133 normal/menu_entry.c.
19134 (normal_mod_SOURCES): Likewise.
19135 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
19136 (normal_mod_SOURCES): Likewise.
19138 2005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
19140 * include/grub/normal.h (grub_halt_init): New prototype.
19141 (grub_halt_fini): Likewise.
19142 (grub_reboot_init): Likewise.
19143 (grub_reboot_fini): Likewise.
19145 * util/grub-emu.c: Include signal.h.
19146 (main_env): New global variable.
19147 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
19149 (grub_machine_fini): New function.
19150 (main): Call grub_halt_init and grub_reboot_init before
19151 grub_main, and grub_reboot_fini and grub_halt_fini after it.
19152 Call setjmp with MAIN_ENV to go back afterwards.
19153 Call grub_machine_fini right before return.
19155 * include/grub/util/misc.h: Include setjmp.h.
19156 (main_env): New prototype.
19158 * include/grub/kernel.h (grub_machine_fini): New prototype.
19159 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
19160 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
19162 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
19163 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
19164 * term/i386/pc/console.c (grub_console_fini): Likewise.
19166 * util/i386/pc/misc.c: New file.
19168 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
19169 util/i386/pc/misc.c, commands/i386/pc/halt.c and
19170 commands/i386/pc/reboot.c.
19172 2005-02-14 Guillem Jover <guillem@hadrons.org>
19174 * include/grub/dl.h (grub_dl_check_header): New prototype.
19175 (grub_arch_dl_check_header): Change return type to grub_err_t,
19176 remove size parameter and export function. Update all callers.
19177 * kern/dl.c (grub_dl_check_header): New function.
19178 (grub_dl_load_core): Use `grub_dl_check_header' instead of
19179 `grub_arch_dl_check_header'. Check ELF type. Check if sections
19180 are inside the core.
19181 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
19182 independent ELF header checks.
19183 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
19184 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
19185 `grub_dl_check_header' instead of explicit checks. Check for the
19187 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
19188 `grub_dl_check_header' instead of explicit checks. Remove arch
19189 specific ELF header checks.
19191 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
19194 2005-02-13 Hollis Blanchard <hollis@penguinppc.org>
19196 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
19197 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
19199 2005-02-12 Hollis Blanchard <hollis@penguinppc.org>
19201 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
19202 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
19203 (part_map_iterate): Clear `grub_errno' and return 0 if
19204 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
19205 * partmap/amiga.c (amiga_partition_map_iterate): Return
19206 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
19207 * partmap/apple.c (apple_partition_map_iterate): Likewise.
19209 2005-02-01 Guillem Jover <guillem@hadrons.org>
19211 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
19214 2005-01-31 Marco Gerards <metgerards@student.han.nl>
19216 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
19218 (grub_rescue_cmd_linux): New prototype.
19219 (grub_rescue_cmd_initrd): Likewise.
19220 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
19222 (grub_linux_release_mem): Release the memory for the initrd.
19223 (grub_load_linux): Renamed from this...
19224 (grub_rescue_cmd_linux): ...To this. Changed all callers.
19225 Changed `entry' not to be static. Loop over memory regions to
19226 find another one when the default fails.
19227 (grub_rescue_cmd_initrd): New function.
19228 (grub_linux_init): Remove function.
19229 (grub_linux_fini): Likewise.
19230 (GRUB_MOD_INIT): Register `initrd'.
19231 (GRUB_MOD_FINI): Unregister `initrd'.
19232 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
19234 (grub_linux_normal_fini): Likewise.
19235 (GRUB_MOD_INIT): Register `initrd'.
19236 (GRUB_MOD_FINI): Unregister `initrd'.
19238 2005-01-31 Marco Gerards <metgerards@student.han.nl>
19240 * commands/help.c: New file.
19241 * normal/arg.c (show_help): Renamed to...
19242 (grub_arg_show_help): ... this.
19243 * commands/i386/pc/halt.c: New file.
19244 * commands/i386/pc/reboot.c: Likewise.
19245 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
19246 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
19247 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
19248 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
19250 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
19252 (pkgdata_MODULES): Add `help.mod'.
19253 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
19254 * grub/i386/pc/init.h (grub_reboot): New prototype.
19255 (grub_halt): Likewise.
19256 * include/grub/normal.h (grub_arg_show_help): New prototype.
19257 (grub_help_init): Likewise.
19258 (grub_help_fini): Likewise.
19259 * util/grub-emu.c (main): Initialize and deinitialize the help
19262 * normal/cmdline.c (grub_cmdline_get): Doc fix.
19264 * normal/command.c (grub_command_init): Fixed the description of
19265 the `set' and `unset' commands.
19267 2005-01-31 Marco Gerards <metgerards@student.han.nl>
19269 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
19271 * commands/ieee1275/halt.c: New file.
19272 * commands/ieee1275/reboot.c: Likewise.
19273 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
19274 `__attribute__ ((unused))'. Some GCS related fixed.
19275 (grub_suspend_init) [GRUB_UTIL]: Function removed.
19276 (grub_suspend_fini): Likewise.
19277 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
19279 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
19280 (halt_mod_CFLAGS): New variables.
19281 * include/grub/powerpc/ieee1275/ieee1275.h
19282 (grub_ieee1275_interpret): New prototype.
19284 2005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
19286 * include/grub/misc.h (memmove): New prototype.
19287 (memcpy): Likewise.
19289 2005-01-22 Hollis Blanchard <hollis@penguinppc.org>
19291 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
19292 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
19294 2005-01-22 Marco Gerards <metgerards@student.han.nl>
19296 * kern/misc.c (grub_strndup): Function rewritten.
19298 2005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
19300 * normal/menu.c (TERM_WIDTH): Macro redefined.
19301 (TERM_TOP_BORDER_Y): Likewise.
19302 (draw_border): Replaced while-loop by a for-loop. Make the number
19303 of lines consistent with the number of lines displayed in
19304 print_entries. Added a margin below the rectangle.
19305 (print_entry): Make the entry fit in the rectangle.
19306 (print_entries): Display the scroll arrows next to the right
19309 2005-01-21 Marco Gerards <metgerards@student.han.nl>
19311 * fs/minix.c (grub_minix_find_file): Reserve more space for
19312 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
19313 `grub_strncpy' to copy `path' into it.
19315 2005-01-21 Marco Gerards <metgerards@student.han.nl>
19317 Add the loopback device, a device via which files can be accessed
19320 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
19321 (pkgdata_MODULES): Add loopback.mod.
19322 (loopback_mod_SOURCES): New variable.
19323 (loopback_mod_CFLAGS): Likewise.
19324 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
19326 (pkgdata_MODULES): Add loopback.mod.
19327 (loopback_mod_SOURCES): New variable.
19328 (loopback_mod_CFLAGS): Likewise.
19329 * disk/loopback.c: new file.
19330 * include/grub/normal.h (grub_loop_init): New prototype.
19331 (grub_loop_fini): New prototype.
19332 * util/grub-emu.c (main): Initialize and de-initialize loopback
19334 * include/grub/disk.h (grub_disk_dev_id): Add
19335 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
19337 2005-01-20 Hollis Blanchard <hollis@penguinppc.org>
19339 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
19341 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
19342 (suspend_mod_SOURCES): New variable.
19343 (suspend_mod_CFLAGS): Likewise.
19344 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
19346 * commands/ieee1275/suspend.c: New file.
19348 2005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
19350 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
19351 ((unused))' to `__attribute__ ((used))'.
19352 (GRUB_MOD_FINI): Likewise.
19353 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
19354 * genmk.rb (PModule): Assign space to common symbols when linking
19357 2005-01-20 Marco Gerards <metgerards@student.han.nl>
19359 * include/grub/mm.h (grub_mm_init_region): Change the type of the
19360 `unsigned' arguments to `grub_size_t'.
19361 (grub_malloc): Likewise.
19362 (grub_realloc): Likewise.
19363 (grub_memalign): Likewise.
19364 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
19365 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
19366 * util/misc.c (grub_malloc): Likewise.
19367 (grub_realloc): Likewise.
19368 * kern/mm.c (get_header_from_pointer): Change the casts to
19369 `unsigned' into a cast to `grub_size_t'.
19371 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
19372 point to `currnode' when `currnode' is changed.
19374 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
19375 Schottelius <nico-linux@schottelius.org>.
19377 2005-01-09 Hollis Blanchard <hollis@penguinppc.org>
19379 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
19380 (note_path): Remove variable.
19381 (GRUB_IEEE1275_NOTE_NAME): New macro.
19382 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
19383 (grub_ieee1275_note_hdr): New structure.
19384 (grub_ieee1275_note_desc): Likewise.
19385 (grub_ieee1275_note): Likewise.
19386 (load_note): Remove `dir' argument. All callers updated. Remove
19387 `note_img' and `path'. Do not load a file from `note_path'.
19388 Initialize a struct grub_ieee1275_note and write that to `out'.
19389 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
19391 2005-01-05 Marco Gerards <metgerards@student.han.nl>
19393 * util/misc.c (grub_util_read_image): Revert last change. It
19394 called `grub_util_read_at', which seeks from the beginning of the
19397 2005-01-04 Hollis Blanchard <hollis@penguinppc.org>
19399 * TODO: Add note about endianness in grub-mkimage.
19400 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
19402 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
19403 (grub_mkimage_SOURCES): New target.
19404 * include/grub/kernel.h (grub_start_addr): Remove variable.
19405 (grub_end_addr): Likewise.
19406 (grub_total_module_size): Likewise.
19407 (grub_kernel_image_size): Likewise.
19408 (GRUB_MODULE_MAGIC): New constant.
19409 (grub_module_info): New structure.
19410 (grub_arch_modules_addr): New prototype.
19411 (grub_get_end_addr): Remove prototype.
19412 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
19413 * include/grub/powerpc/ieee1275/kernel.h: New file.
19414 * include/grub/util/misc.h (grub_util_get_fp_size): New
19416 (grub_util_read_at): Likewise.
19417 (grub_util_write_image_at): Likewise.
19418 * kern/main.c (grub_get_end_addr): Remove function.
19419 (grub_load_modules): Call grub_arch_modules_addr instead of using
19420 grub_end_addr. Look for a grub_module_info struct in memory. Use
19421 the grub_module_info fields instead of calling grub_get_end_addr
19422 as loop conditions. Move grub_add_unused_region code here.
19423 (grub_add_unused_region): Remove function.
19424 * kern/i386/pc/init.c: Include grub/cache.h.
19425 (grub_machine_init): Remove call to grub_get_end_addr. Remove
19426 one call to add_mem_region.
19427 (grub_arch_modules_addr): New function.
19428 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
19429 (grub_total_module_size): Likewise.
19430 Include grub/machine/kernel.h.
19431 (grub_arch_modules_addr): New function.
19432 * util/grub-emu.c (grub_end_addr): Remove variable.
19433 (grub_total_module_size): Likewise.
19434 (grub_arch_modules_addr): New function.
19435 * util/misc.c: Include unistd.h.
19436 (grub_util_get_fp_size): New function.
19437 (grub_util_read_at): Likewise.
19438 (grub_util_write_image_at): Likewise.
19439 (grub_util_read_image): Call grub_util_read_at.
19440 (grub_util_write_image): Call grub_util_write_image_at.
19441 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
19442 additional memory in kernel_img for a struct grub_module_info.
19443 Fill in that grub_module_info.
19444 * util/powerpc/ieee1275/grub-mkimage.c: New file.
19446 2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
19448 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
19450 * include/grub/powerpc/ieee1275/ieee1275.h
19451 (grub_ieee1275_milliseconds): New prototype.
19452 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
19454 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
19455 grub_ieee1275_milliseconds.
19457 2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
19459 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
19461 (find_options): New function.
19462 (cmain): Call find_options.
19463 * include/grub/powerpc/ieee1275/ieee1275.h
19464 (grub_ieee1275_realmode): New extern variable.
19465 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
19466 grub_map if grub_ieee1275_realmode is false.
19468 2004-12-29 Marco Gerards <metgerards@student.han.nl>
19470 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
19471 lines are inserted and make it work like readline. Reported by
19472 Vincent Pelletier <subdino2004@yahoo.fr>.
19474 2004-12-28 Marco Gerards <metgerards@student.han.nl>
19476 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
19478 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
19479 `kern/powerpc/cache.S'.
19481 2004-12-27 Marco Gerards <metgerards@student.han.nl>
19483 * genmk.rb: Handle the `Program' class in the main loop. Written
19484 by Johan Rydberg <jrydberg@gnu.org>.
19485 (Program): New class.
19486 (programs): New variable.
19487 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
19488 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
19489 instead of "grub/kernel.h". Include <grub/machine/init.h>.
19490 (help_arch): Function removed.
19491 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
19492 `powerpc/libgcc.h' and `loader.h'.
19493 (pkgdata_PROGRAMS): New variable.
19494 (sbin_UTILITIES): Variable removed.
19495 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
19496 (grubof_SOURCES): Variable re-defined so it only includes the
19497 core functionality.
19498 (grubof_CFLAGS): Remove `-DGRUBOF'.
19499 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
19500 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
19501 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
19502 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
19503 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
19504 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
19505 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
19506 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
19507 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
19508 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
19509 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
19510 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
19511 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
19512 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
19513 (pc_mod_CFLAGS): New variables.
19514 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
19515 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
19516 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
19517 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
19519 * include/grub/i386/pc/init.h (grub_os_area_addr)
19520 (rub_os_area_size): ... to here.
19521 * include/grub/powerpc/ieee1275/ieee1275.h
19522 (grub_ieee1275_entry_fn): Export symbol.
19523 * include/grub/powerpc/ieee1275/init.h: New file.
19524 * include/grub/powerpc/libgcc.h: Likewise.
19525 * include/grub/cache.h: Likewise.
19526 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
19527 <hollis@penguinppc.org>.
19528 * kern/dl.c: Include <grub/cache.h>.
19529 (grub_dl_flush_cache): New function.
19530 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
19532 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
19533 (grub_console_init): Removed prototypes.
19534 (grub_machine_init): Don't initialize the modules anymore.
19535 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
19537 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
19538 Macro undef removed.
19539 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
19540 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
19541 relocation `R_PPC_REL32'. Return an error when the relocation is
19543 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
19544 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
19545 * util/misc.c (grub_arch_sync_caches): Likewise.
19547 2004-12-19 Marco Gerards <metgerards@student.han.nl>
19549 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
19550 `symlist.c', add `grubof_symlist.c'.
19551 (symlist.c): Variable removed.
19552 (grubof_HEADERS): Variable added.
19553 (grubof_symlist.c): New target.
19554 (kernel_syms.lst): Use `grubof_HEADERS' instead of
19555 `kernel_img_HEADERS'.
19556 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
19557 * kern/powerpc/dl.c: New file.
19558 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
19560 (grub_arch_dl_relocate_symbols): Likewise.
19561 (grub_register_exported_symbols): Likewise.
19563 2004-12-13 Marco Gerards <metgerards@student.han.nl>
19565 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
19566 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
19567 to fail instead. Reported by Vincent Pelletier
19568 <subdino2004@yahoo.fr>.
19570 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
19571 it is not allocated. Reported by Vincent Pelletier
19572 <subdino2004@yahoo.fr>.
19574 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
19575 output so the output looks better.
19577 2004-12-04 Marco Gerards <metgerards@student.han.nl>
19579 Modulize the partition map support and add support for the amiga
19582 * commands/ls.c: Include <grub/partition.h> instead of
19583 <grub/machine/partition.h>.
19584 * kern/disk.c: Likewise.
19585 * kern/rescue.c: Likewise.
19586 * loader/i386/pc/chainloader.c: Likewise.
19587 * normal/cmdline.c: Likewise.
19588 * kern/powerpc/ieee1275/init.c: Likewise.
19589 (grub_machine_init): Call `grub_pc_partition_map_init',
19590 `grub_amiga_partition_map_init' and
19591 `grub_apple_partition_map_init'.
19592 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
19593 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
19594 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
19595 `partition.h' and `pc_partition.h'.
19596 (grub_setup_SOURCES): Remove
19597 `disk/i386/pc/partition.c'. Add `kern/partition.c',
19598 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
19599 (grub_emu_SOURCES): Likewise.
19600 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
19601 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
19602 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
19603 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
19604 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
19605 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
19606 (grubof_SOURCES): Likewise.
19607 * disk/i386/pc/partition.c: File removed.
19608 * disk/powerpc/ieee1275/partition.c: Likewise.
19609 * include/grub/powerpc/ieee1275/partition.h: Likewise.
19610 * include/grub/i386/pc/partition.h: Likewise.
19611 * kern/partition.c: New file.
19612 * partmap/amiga.c: Likewise.
19613 * partmap/apple.c: Likewise.
19614 * partmap/pc.c: Likewise.
19615 * include/grub/partition.h: Likewise..
19616 * include/grub/pc_partition.h: Likewise.
19617 * util/grub-emu.c: Include <grub/partition.h> instead of
19618 <grub/machine/partition.h>.
19619 (main): Call `grub_pc_partition_map_init',
19620 `grub_amiga_partition_map_init' and
19621 `grub_apple_partition_map_init' and deinitialize afterwards.
19622 * util/i386/pc/biosdisk.c: Include `#include
19623 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
19624 `<grub/machine/partition.h>'.
19625 * util/i386/pc/grub-setup.c: Likewise.
19626 * util/i386/pc/biosdisk.c: Likewise.
19627 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
19628 partition information in case of a PC partition.
19629 * util/i386/pc/grub-setup.c: Include `#include
19630 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
19631 `<grub/machine/partition.h>'.
19632 (setup): Only access the PC specific partition information in case
19635 2004-11-17 Hollis Blanchard <hollis@penguinppc.org>
19637 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
19638 (grub_longjmp): Likewise.
19639 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
19641 * normal/powerpc/setjmp.S: New file.
19642 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
19643 `normal/powerpc/setjmp.S'.
19644 (grubof_CFLAGS): Add `-DGRUBOF'.
19645 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
19646 [GRUB_UTIL && !GRUBOF].
19648 2004-11-16 Marco Gerards <metgerards@student.han.nl>
19650 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
19651 property named `name'. Correctly handle the error returned by
19652 `grub_ieee1275_finddevice' if a device can not be opened.
19654 2004-11-02 Hollis Blanchard <hollis@penguinppc.org>
19656 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
19657 `actual' for negativity.
19658 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
19661 2004-11-01 Marco Gerards <metgerards@student.han.nl>
19663 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
19664 (PAGE_OFFSET): New macro.
19665 (CRTC_ADDR_PORT): Likewise.
19666 (CRTC_DATA_PORT): Likewise.
19667 (START_ADDR_HIGH_REGISTER): Likewise.
19668 (START_ADDR_LOW_REGISTER): Likewise.
19669 (GRAPHICS_ADDR_PORT): Likewise.
19670 (GRAPHICS_DATA_PORT): Likewise.
19671 (READ_MAP_REGISTER): Likewise.
19672 (INPUT_STATUS1_REGISTER): Likewise.
19673 (INPUT_STATUS1_VERTR_BIT): Likewise.
19674 (page): New variable.
19675 (wait_vretrace): New function.
19676 (set_read_map): Likewise.
19677 (set_start_address): Likewise.
19678 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
19680 (check_vga_mem): Take the page into account.
19681 (write_char): Likewise.
19682 (write_cursor): Likewise.
19683 (scroll_up): Likewise. Copy the page to the page that is not
19684 shown and switch between both pages.
19685 (grub_vga_putchar): Fix off by one error.
19686 (grub_vga_cls): Wait for the vertical retrace. Take the page into
19689 2004-11-01 Marco Gerards <metgerards@student.han.nl>
19691 Add support for iso9660 (including rockridge).
19693 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
19694 (iso9660_mod_SOURCES): New variable.
19695 (iso9660_mod_CFLAGS): Likewise.
19696 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
19697 * include/grub/fs.h (grub_iso9660_init): New prototype.
19698 * util/grub-emu.c (main): Call `grub_iso9660_init'.
19699 * fs/iso9660.c: New file.
19701 * include/grub/misc.h (grub_strncat): New prototype.
19702 * kern/misc.c (grub_strncat): New function.
19704 * fs/hfs.c (grub_hfs_mount): Translate the error
19705 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
19706 * fs/jfs.c (grub_jfs_mount): Likewise.
19707 * fs/ufs.c (grub_ufs_mount): Likewise.
19709 2004-10-28 Hollis Blanchard <hollis@penguinppc.org>
19711 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
19712 which initialized BAT registers.
19713 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
19714 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
19716 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
19717 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
19719 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
19720 (grub_mapclaim): Likewise.
19721 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
19722 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
19725 2004-10-19 Hollis Blanchard <hollis@penguinppc.org>
19727 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
19728 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
19729 -ffreestanding and -msoft-float.
19731 2004-10-15 Hollis Blanchard <hollis@penguinppc.org>
19733 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
19734 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
19735 set in grub_ieee1275_flags.
19737 2004-10-14 Hollis Blanchard <hollis@penguinppc.org>
19739 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
19741 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
19742 grub_console_init first.
19743 Change the memory range used for grub_ieee1275_claim and
19744 grub_mm_init_region.
19745 Print an error message if the claim fails.
19746 Include <grub/misc.h>.
19748 2004-10-13 Hollis Blanchard <hollis@penguinppc.org>
19750 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
19751 Call grub_children_iterate for device nodes of type `scsi',
19753 (grub_ofdisk_open): Remove manual device alias resolution.
19754 Fix memory leak when device cannot be opened.
19755 * include/grub/powerpc/ieee1275/ieee1275.h
19756 (grub_children_iterate): New prototype.
19757 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
19759 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
19760 Return -1 if args.size was -1.
19762 2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
19764 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
19765 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
19766 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
19767 Open Firmware's memory for it; claim memory from _start to _end.
19768 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
19769 (_end): New extern.
19770 (_start): Zero BSS from __bss_start to _end.
19771 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
19773 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
19775 2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
19777 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
19778 -1 if args.base was -1.
19780 2004-10-08 Hollis Blanchard <hollis@penguinppc.org>
19782 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
19783 escape sequence instead of a literal ^L. Also call
19784 grub_ofconsole_gotoxy.
19786 2004-10-03 Hollis Blanchard <hollis@penguinppc.org>
19788 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
19789 void * arguments to grub_addr_t. All callers updated. Also make
19790 the `result' argument optional.
19791 (grub_ieee1275_release): change void * arguments to grub_addr_t.
19792 All callers updated.
19794 2004-09-22 Hollis Blanchard <hollis@penguinppc.org>
19796 * commands/ls.c (grub_ls_list_files): Use the string following the
19797 initial ')', if present, as the filesystem path.
19798 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
19800 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
19802 2004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
19804 Make the source code of the menu interface more readable.
19806 * normal/menu.c: Include grub/mm.h.
19807 (TERM_WIDTH): New macro.
19808 (TERM_HEIGHT): Likewise.
19809 (TERM_INFO_HEIGHT): Likewise.
19810 (TERM_MARGIN): Likewise.
19811 (TERM_SCROLL_WIDTH): Likewise.
19812 (TERM_TOP_BORDER_Y): Likewise.
19813 (TERM_LEFT_BORDER_X): Likewise.
19814 (TERM_BORDER_WIDTH): Likewise.
19815 (TERM_MESSAGE_HEIGHT): Likewise.
19816 (TERM_BORDER_HEIGHT): Likewise.
19817 (TERM_NUM_ENTRIES): Likewise.
19818 (TERM_FIRST_ENTRY_Y): Likewise.
19819 (TERM_ENTRY_WIDTH): Likewise.
19820 (TERM_CURSOR_X): Likewise.
19821 (draw_border): Use macros instead of magic numbers.
19822 (print_entry): Likewise.
19823 (print_entries): Likewise.
19824 (run_menu): Likewise. Also, handle the key 'e'.
19825 (run_menu_entry): Ignore empty command lines.
19826 (print_message): Added a new argument EDIT. If EDIT is true,
19827 print a different message.
19828 (init_page): Likewise.
19829 (edit_menu_entry): New function. Not implemented yet.
19831 2004-09-17 Marco Gerards <metgerards@student.han.nl>
19833 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
19834 can be loaded from normal mode.
19836 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
19838 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
19839 (multiboot_mod_CFLAGS): New variables.
19840 * loader/i386/pc/linux_normal.c: New file.
19841 * loader/i386/pc/multiboot_normal.c: Likewise.
19843 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
19844 attribute `unused'.
19846 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
19847 `fdiro' to read the mode information from instead of `diro'.
19849 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
19850 looking up a symlink.
19852 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
19854 * normal/command.c (grub_command_execute): Don't parse the
19855 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
19856 flags of the command.
19858 * normal/menu.c (grub_menu_run): Fix typo.
19860 2004-09-14 Hollis Blanchard <hollis@penguinppc.org>
19862 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
19864 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
19865 `y + 1' instead of `y - 1'.
19867 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
19869 2004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
19871 From Hollis Blanchard <hollis@penguinppc.org>:
19872 * kern/misc.c (memmove): New alias for grub_memmove.
19873 (memcmp): New alias for grub_memcmp.
19874 (memset): New alias for grub_memset.
19875 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
19876 Change "int handle" to "grub_ieee1275_phandle_t handle".
19877 * include/grub/powerpc/ieee1275/ieee1275.h
19878 (grub_ieee1275_get_property): Likewise.
19880 2004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
19882 Added normal mode command `chainloader' as module chain.mod, which
19883 depends on normal.mod and _chain.mod.
19885 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
19886 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
19887 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
19889 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
19890 but arguments parsing moved to ...
19891 (grub_chainloader_cmd): ... here. New function.
19892 * include/grub/i386/pc/chainloader.h: New file.
19893 * loader/i386/pc/chainloader_normal.c: Likewise.
19895 2004-09-11 Marco Gerards <metgerards@student.han.nl>
19897 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
19898 (grub_mkimage_LDFLAGS): Likewise.
19899 (grub_emu_SOURCES): Likewise.
19900 (kernel_img_HEADERS): Added fshelp.h.
19901 * fs/ext2.c: Include <grub/fshelp.h>.
19902 (FILETYPE_REG): New macro.
19903 (FILETYPE_INO_REG): Likewise.
19904 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
19906 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
19908 (grub_fshelp_node): New struct.
19909 (grub_ext2_data): Added member `diropen'. Changed member `inode'
19911 (grub_ext2_get_file_block): Removed function.
19912 (grub_ext2_read_block): New function.
19913 (grub_ext2_read_file): Replaced parameter `data' by `node'.
19914 This function was written.
19915 (grub_ext2_mount): Read the root inode. Create a diropen struct.
19916 (grub_ext2_find_file): Removed function.
19917 (grub_ext2_read_symlink): New function.
19918 (grub_ext2_iterate_dir): Likewise.
19919 (grub_ext2_open): Rewritten.
19920 (grub_ext2_dir): Rewritten.
19921 * include/grub/fshelp.h: New file.
19922 * fs/fshelp.c: Likewise.
19924 2004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
19926 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
19927 (print_message): Add a missing newline.
19928 (run_menu): Added timeout support.
19929 (run_menu_entry): New local function.
19930 (grub_menu_run): Added support for booting.
19932 * kern/loader.c (grub_loader_is_loaded): New function.
19934 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
19935 (grub_get_rtc): Exported.
19937 * include/grub/i386/pc/time.h: Include grub/symbol.h.
19938 (grub_get_rtc): Exported.
19940 * include/grub/normal.h (struct grub_command_list): Remove
19941 constant from the member `command'.
19943 * include/grub/loader.h (grub_loader_is_loaded): Declared.
19945 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
19947 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
19949 2004-08-28 Marco Gerards <metgerards@student.han.nl>
19951 Add support for the JFS filesystem.
19953 * fs/jfs.c: New file.
19954 * include/grub/fs.h (grub_jfs_init): New prototype.
19955 (grub_jfs_fini): New prototype.
19956 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
19957 (grub_emu_SOURCES): Likewise.
19958 (pkgdata_MODULES): Add jfs.mod.
19959 (jfs_mod_SOURCES): New variable.
19960 (jfs_mod_CFLAGS): Likewise.
19961 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
19962 (grubof_SOURCES): Likewise.
19963 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
19965 * fs/fat.c (grub_fat_find_dir): Convert the filename little
19966 endian to the host endian.
19967 (grub_fat_utf16_to_utf8): Move function from there...
19968 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
19969 the endianness of the source string anymore.
19970 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
19972 2004-08-24 Marco Gerards <metgerards@student.han.nl>
19974 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
19975 (grub_boot_fini) [GRUB_UTIL]: Likewise.
19976 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
19977 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
19979 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
19980 (grub_hfs_iterate_dir): Make the function static. Add prototypes
19981 for `node_found' and `it_dir'.
19982 (grub_hfs_dir): Add prototype for `dir_hook'.
19984 * fs/minix.c (grub_minix_get_file_block): Add prototype for
19985 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
19986 and `indir32' to silence a gcc warning.
19988 * include/grub/fs.h (grub_hfs_init): New prototype.
19989 (grub_hfs_fini): Likewise.
19992 2004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
19994 Each disk device has its own id now. This is useful to make use
19995 of multiple disk devices.
19997 * include/grub/disk.h (grub_disk_dev_id): New enum.
19998 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
19999 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
20001 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
20002 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
20004 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
20005 GRUB_DISK_DEVICE_OFDISK_ID as an id.
20007 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
20008 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
20010 * include/grub/disk.h (struct grub_disk_dev): Added a new member
20011 "id" which is used by the cache manager.
20013 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
20016 2004-08-18 Marco Gerards <metgerards@student.han.nl>
20018 * fs/hfs.c: New file.
20019 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
20020 (grub_emu_SOURCES): Likewise.
20021 (pkgdata_MODULES): Add hfs.mod.
20022 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
20023 (grubof_SOURCES): Likewise.
20024 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
20026 * include/grub/misc.h (grub_strncasecmp): Add prototype.
20027 * kern/misc.c (grub_strncasecmp): Add function.
20029 2004-08-14 Marco Gerards <metgerards@student.han.nl>
20031 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
20034 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
20035 (grub_ext2_dir): In case the directory entry type is unknown, read
20038 2004-08-02 Peter Bruin <pjbruin@dds.nl>
20040 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
20041 grub_load_linux instead of grub_rescue_cmd_linux as second
20042 argument of grub_rescue_register_command.
20044 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
20046 2004-07-27 Marco Gerards <metgerards@student.han.nl>
20048 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
20050 * commands/boot.c: Remove the check for `GRUB_UTIL'.
20051 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
20052 `loader/powerpc/ieee1275/linux.c',
20053 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
20054 * include/grub/powerpc/ieee1275/ieee1275.h
20055 (grub_ieee1275_release): New prototype.
20056 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
20057 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
20058 normal, boot, linux and linux_normal.
20059 * loader/powerpc/ieee1275/linux.c: New file.
20060 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
20062 2004-07-12 Marco Gerards <metgerards@student.han.nl>
20064 * normal/arg.c (grub_arg_parse): Correct error handling after
20065 reallocating the argumentlist (check if `argl' is not null instead
20066 of checking if `args' is not null).
20067 * kern/mm.c (grub_realloc): Return the same pointer when using the
20068 same region, instead of returning the header address.
20070 2004-07-11 Marco Gerards <metgerards@student.han.nl>
20072 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
20073 one block instead of two when looking for the initial partition.
20074 (grub_partition_probe): Initialize the local variable `p' with 0.
20075 Use base 10 for the grub_strtoul call.
20076 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
20077 need for one local variable.
20078 (grub_strtoul): Don't add the new value to `num', instead of that
20081 2004-07-11 Marco Gerards <metgerards@student.han.nl>
20083 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
20084 (pxeboot_img_SOURCES): New variable.
20085 (pxeboot_img_ASFLAGS): Likewise.
20086 (pxeboot_img_LDFLAGS): Likewise.
20087 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
20088 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
20089 <lode_leroy@hotmail.com>.
20091 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
20093 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
20094 there was no input.
20096 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
20098 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
20099 the history buffer logic.
20101 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
20103 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
20104 (FILETYPE_INO_SYMLINK): New macros.
20105 (grub_ext2_find_file): Check if the node is a directory using the
20106 inode stat information instead of using the filetype in the
20107 dirent. Exclude the first character of an absolute symlink.
20108 (grub_ext2_dir): Mask out the filetype part of the mode member of
20111 2004-05-24 Marco Gerards <metgerards@student.han.nl>
20113 Add support for UFS version 1 and 2. Add support for the minix
20114 filesystem version 1 and 2, both the variants with 14 and 30 long
20117 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
20119 (grub_emu_SOURCES): Likewise.
20120 (pkgdata_MODULES): Add ufs.mod and minix.mod.
20121 (ufs_mod_SOURCES): New variable.
20122 (ufs_mod_CFLAGS): Likewise.
20123 (minix_mod_SOURCES): Likewise.
20124 (minix_mod_CFLAGS): Likewise.
20125 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
20127 (grubof_SOURCES): Likewise.
20128 * fs/ufs.c: New file.
20129 * fs/minix.c: New file.
20130 * include/grub/fs.h (grub_ufs_init): New prototype.
20131 (grub_ufs_fini): Likewise.
20132 (grub_minix_init): Likewise.
20133 (grub_minix_fini): Likewise.
20134 * util/grub-emu.c (main): Initialize and deinitialize UFS and
20137 2004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
20139 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
20140 commands/ls.c, commands/terminal.c, commands/boot.c,
20141 commands/cmp.c and commands/cat.c.
20142 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
20144 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
20147 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
20149 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
20150 and grub_, respectively. Because the conversion is trivial and
20151 mechanical, I omit the details here. Please refer to the CVS
20152 if you need more information.
20154 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
20156 * include/pupa: Renamed to ...
20157 * include/grub: ... this.
20158 * util/i386/pc/pupa-mkimage.c: Renamed to ...
20159 * util/i386/pc/grub-mkimage.c: ... this.
20160 * util/i386/pc/pupa-setup.c: Renamed to ...
20161 * util/i386/pc/grub-setup.c: ... this.
20162 * util/pupa-emu.c: Renamed to ...
20163 * util/grub-emu.c: ... this.
20165 2004-03-29 Marco Gerards <metgerards@student.han.nl>
20167 Add support for the newworld apple macintosh (PPC). This has been
20168 tested on the powerbook 2000 only. It only adds support for
20169 generic ieee1275 functions, console and disk support. This should
20170 be easy to port to other architectures with support for Open
20173 * configure.ac: Accept the powerpc as host_cpu. In the case of
20174 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
20175 specific tests are only executed while building for the i386.
20176 Inverse test for crosscompile.
20177 * genmk.rb (Utility): Allow assembler files.
20178 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
20179 * conf/powerpc-ieee1275.rmk: New file.
20180 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
20181 * disk/powerpc/ieee1275/partition.c: Likewise.
20182 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
20183 * include/pupa/powerpc/ieee1275/console.h: Likewise.
20184 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
20185 * include/pupa/powerpc/ieee1275/time.h: Likewise.
20186 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
20187 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
20188 * include/pupa/powerpc/ieee1275/loader.h
20189 * include/pupa/powerpc/setjmp.h: Likewise.
20190 * include/pupa/powerpc/types.h: Likewise.
20191 * kern/powerpc/ieee1275/init.c: Likewise.
20192 * kern/powerpc/ieee1275/openfw.c: Likewise.
20193 * term/powerpc/ieee1275/ofconsole.c: Likewise.
20195 These files were written by Johan Rydberg
20196 (jrydberg@night.trouble.net) and I only modified them slightly.
20198 * boot/powerpc/ieee1275/cmain.c: New file.
20199 * boot/powerpc/ieee1275/crt0.S: Likewise.
20200 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
20201 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
20203 2004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
20205 * Makefile.in: Update copyright.
20206 * genmodsrc.sh: Likewise.
20207 * gensymlist.sh: Likewise.
20208 * term/i386/pc/vga.c: Indent correctly.
20210 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
20211 bugreporting address.
20212 * util/i386/pc/pupa-setup.c (usage): Likewise,
20213 (main): Call pupa_ext2_init and pupa_ext2_fini.
20215 * fs/fat.c (log2): Renamed to ...
20216 (fat_log2): ... this.
20217 All callers changed.
20218 * kern/misc.c (memcpy): Alias to pupa_memmove.
20219 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
20221 * util/console.c (pupa_ncurses_fini): Return 0.
20223 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
20224 Move fail label here.
20225 [__GNU__]: Don't warn when using stat.
20226 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
20227 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
20228 long int. Use strtol instead of strtoul.
20230 2004-03-14 Marco Gerards <metgerards@student.han.nl>
20232 * commands/boot.c: New file.
20233 * commands/cat.c: Likewise.
20234 * commands/cmp.c: Likewise.
20235 * commands/ls.c: Likewise.
20236 * commands/terminal.c: Likewise.
20237 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
20238 (pupa_register_command): Changed interface to match the new
20240 (pupa_command_execute): Changed (almost rewritten) so it uses
20241 pupa_split_command. Added support for setting variables using the
20243 (rescue_command): Changed to work with the new argument parser.
20244 (terminal_command): Moved from here to commands/terminal.c.
20245 (set_command): New function.
20246 (unset_command): New function.
20247 (insmod_command): New function.
20248 (rmmod_command): New function.
20249 (lsmod_command): New function.
20250 (pupa_command_init): Don't initialize the command terminal
20251 anymore. Initialize the commands set, unset, insmod, rmmod and
20253 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
20254 (kernel_img_HEADERS): Add arg.h and env.h.
20255 (pupa_mkimage_LDFLAGS): Add kern/env.c.
20256 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
20257 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
20259 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
20261 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
20262 (boot_mod_SOURCES): New variable.
20263 (terminal_mod_SOURCES): Likewise.
20264 (ls_mod_SOURCES): Likewise.
20265 (cmp_mod_SOURCES): Likewise.
20266 (cat_mod_SOURCES): Likewise.
20268 * normal/arg.c: New file.
20269 * kern/env.c: Likewise.
20270 * include/pupa/arg.h: Likewise.
20271 * include/pupa/env.h: Likewise.
20272 * font/manager.c (font_command): Changed to match argument parsing
20274 (PUPA_MOD_INIT): Likewise.
20275 * hello/hello.c (pupa_cmd_hello): Likewise.
20276 (PUPA_MOD_INIT): Likewise.
20277 * include/pupa/disk.h: Include <pupa/device.h>.
20278 (pupa_print_partinfo): New prototype.
20279 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
20280 (pupa_dl_get_prefix): Likewise.
20281 * include/pupa/misc.h: Include <pupa/err.h>.
20282 (pupa_isgraph): New prototype.
20283 (pupa_isdigit): Likewise.
20284 (pupa_split_cmdline): Likewise.
20285 * include/pupa/normal.h: Include <pupa/arg.h>.
20286 (pupa_command): Changed the prototype of the member `func' to
20287 match the argument parsing interface. Added member `options'.
20288 (pupa_register_command): Updated to match function.
20289 (pupa_arg_parse): New prototype.
20290 (pupa_hello_init) [PUPA_UTIL]: New prototype.
20291 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
20292 (pupa_ls_init) [PUPA_UTIL]: Likewise.
20293 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
20294 (pupa_cat_init) [PUPA_UTIL]: Likewise.
20295 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
20296 (pupa_boot_init) [PUPA_UTIL]: Likewise.
20297 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
20298 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
20299 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
20300 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
20301 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
20302 * kern/disk.c: Include <pupa/file.h>.
20303 (pupa_print_partinfo): New function.
20304 * kern/dl.c: Include <pupa/env.h>.
20305 (pupa_dl_dir): Variable removed.
20306 (pupa_dl_load): Use the environment variable `prefix' instead of
20307 the variable pupa_dl_dir.
20308 (pupa_dl_set_prefix): Function removed.
20309 (pupa_dl_get_prefix): Likewise.
20310 * kern/i386/pc/init.c: Include <pupa/env.h>.
20311 (pupa_machine_init): Use the environment variable `prefix' instead of
20312 using pupa_dl_set_prefix to set the prefix.
20313 * kern/main.c: Include <pupa/env.h>.
20314 (pupa_set_root_dev): Use the environment variable `prefix' instead of
20315 using pupa_dl_get_prefix to get the prefix.
20316 * kern/misc.c: Include <pupa/env.h>.
20317 (pupa_isdigit): New function.
20318 (pupa_isgraph): Likewise.
20319 (pupa_ftoa): Likewise.
20320 (pupa_vsprintf): Added support for printing values of the type
20321 `double'. Make it possible to format variable output when using
20322 formatting like `%1.2%f'.
20323 (pupa_split_cmdline): New function.
20324 * kern/rescue.c: Include <pupa/env.h>.
20325 (next_word): Removed function.
20326 (pupa_rescue_cmd_prefix): Likewise.
20327 (pupa_rescue_cmd_set): New function.
20328 (pupa_rescue_cmd_unset): New function.
20329 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
20330 split the command line instead of splitting it here. Added
20331 support for setting variables using the syntax `foo=bar'. Don't
20332 initialize the prefix command anymore. Initialized the set and
20334 * normal/cmdline.c: Include <pupa/env.h>.
20335 (pupa_tab_complete): Added prototypes for print_simple_completion,
20336 print_partition_completion, add_completion, iterate_commands,
20337 iterate_dev, iterate_part and iterate_dir. Moved code to print
20338 partition information from here to kern/disk.c.
20339 (pupa_cmdline_run): Don't check if the function exists anymore.
20340 * normal/main.c: Include <pupa/env.h>.
20341 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
20342 instead of using pupa_dl_get_prefix to get the prefix.
20343 * term/i386/pc/vga.c: Include <pupa/arg.h>.
20344 (check_vga_mem): Cast pointers to `void *' to silence a gcc
20346 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
20347 (pupa_vga_setcolor): Declare unused variables with `__attribute__
20348 ((unused))' to silence a gcc warning.
20349 (pupa_vga_setcolor): Likewise.
20350 (debug_command): Changed to match argument parsing
20352 * util/pupa-emu.c: Include <pupa/env.h>.
20353 (options): Added 0's for unused fields to silence a gcc warning.
20355 (main): Use the environment variable `prefix' instead of using
20356 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
20357 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
20360 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
20361 * util/misc.c: Include <malloc.h>.
20362 (pupa_malloc): Rewritten so errors are correctly reported.
20363 (pupa_realloc): Likewise.
20364 (pupa_memalign): Likewise.
20365 (pupa_mm_init_region): Declare unused variables with
20366 `__attribute__ ((unused))' to silence a gcc warning.
20367 * normal/i386/setjmp.S: Remove tab at the end of the file to
20368 silence a gcc warning.
20369 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
20370 variables with `__attribute__ ((unused))' to silence a gcc
20372 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
20373 local variable i unsigned to silence a gcc warning.
20375 * kern/term.c: Include <pupa/misc.h>.
20376 (pupa_more_lines): New variable.
20377 (pupa_more): Likewise.
20378 (pupa_putcode): When the pager is active pause at the end of every
20380 (pupa_set_more): New function.
20381 * include/pupa/term.h (pupa_set_more): New prototype.
20384 2004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
20386 Now this project is GRUB 2 rather than PUPA. The location of
20387 the CVS repository was moved to GRUB's.
20389 * configure.ac: Use bug-grub as the reporting address.
20390 Use GRUB instead of PUPA.
20391 Change the version number to 1.90.
20393 2004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
20395 * genkernsyms.sh: Updated copyright information.
20396 * genmk.rb: Likewise.
20397 * genmodsrc.sh: Likewise.
20398 * gensymlist.sh: Likewise.
20399 * boot/i386/pc/boot.S: Likewise.
20400 * boot/i386/pc/diskboot.S: Likewise.
20401 * disk/i386/pc/biosdisk.c: Likewise.
20402 * disk/i386/pc/partition.c: Likewise.
20403 * font/manager.c: Likewise.
20404 * fs/ext2.c: Likewise.
20405 * fs/fat.c: Likewise.
20406 * include/pupa/boot.h: Likewise.
20407 * include/pupa/device.h: Likewise.
20408 * include/pupa/disk.h: Likewise.
20409 * include/pupa/dl.h: Likewise.
20410 * include/pupa/elf.h: Likewise.
20411 * include/pupa/err.h: Likewise.
20412 * include/pupa/file.h: Likewise.
20413 * include/pupa/font.h: Likewise.
20414 * include/pupa/fs.h: Likewise.
20415 * include/pupa/kernel.h: Likewise.
20416 * include/pupa/loader.h: Likewise.
20417 * include/pupa/misc.h: Likewise.
20418 * include/pupa/mm.h: Likewise.
20419 * include/pupa/net.h: Likewise.
20420 * include/pupa/normal.h: Likewise.
20421 * include/pupa/rescue.h: Likewise.
20422 * include/pupa/setjmp.h: Likewise.
20423 * include/pupa/symbol.h: Likewise.
20424 * include/pupa/term.h: Likewise.
20425 * include/pupa/types.h: Likewise.
20426 * include/pupa/i386/setjmp.h: Likewise.
20427 * include/pupa/i386/types.h: Likewise.
20428 * include/pupa/i386/pc/biosdisk.h: Likewise.
20429 * include/pupa/i386/pc/boot.h: Likewise.
20430 * include/pupa/i386/pc/console.h: Likewise.
20431 * include/pupa/i386/pc/init.h: Likewise.
20432 * include/pupa/i386/pc/kernel.h: Likewise.
20433 * include/pupa/i386/pc/linux.h: Likewise.
20434 * include/pupa/i386/pc/loader.h: Likewise.
20435 * include/pupa/i386/pc/memory.h: Likewise.
20436 * include/pupa/i386/pc/multiboot.h: Likewise.
20437 * include/pupa/i386/pc/partition.h: Likewise.
20438 * include/pupa/i386/pc/time.h: Likewise.
20439 * include/pupa/i386/pc/vga.h: Likewise.
20440 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
20441 * include/pupa/util/getroot.h: Likewise.
20442 * include/pupa/util/misc.h: Likewise.
20443 * include/pupa/util/resolve.h: Likewise.
20444 * kern/device.c: Likewise.
20445 * kern/disk.c: Likewise.
20446 * kern/dl.c: Likewise.
20447 * kern/err.c: Likewise.
20448 * kern/file.c: Likewise.
20449 * kern/fs.c: Likewise.
20450 * kern/loader.c: Likewise.
20451 * kern/main.c: Likewise.
20452 * kern/misc.c: Likewise.
20453 * kern/mm.c: Likewise.
20454 * kern/rescue.c: Likewise.
20455 * kern/term.c: Likewise.
20456 * kern/i386/dl.c: Likewise.
20457 * kern/i386/pc/init.c: Likewise.
20458 * kern/i386/pc/lzo1x.S: Likewise.
20459 * kern/i386/pc/startup.S: Likewise.
20460 * loader/i386/pc/chainloader.c: Likewise.
20461 * loader/i386/pc/linux.c: Likewise.
20462 * loader/i386/pc/multiboot.c: Likewise.
20463 * normal/cmdline.c: Likewise.
20464 * normal/command.c: Likewise.
20465 * normal/main.c: Likewise.
20466 * normal/menu.c: Likewise.
20467 * normal/i386/setjmp.S: Likewise.
20468 * term/i386/pc/console.c: Likewise.
20469 * term/i386/pc/vga.c: Likewise.
20470 * util/console.c: Likewise.
20471 * util/genmoddep.c: Likewise.
20472 * util/misc.c: Likewise.
20473 * util/pupa-emu.c: Likewise.
20474 * util/resolve.c: Likewise.
20475 * util/unifont2pff.rb: Likewise.
20476 * util/i386/pc/biosdisk.c: Likewise.
20477 * util/i386/pc/getroot.c: Likewise.
20478 * util/i386/pc/pupa-mkimage.c: Likewise.
20479 * util/i386/pc/pupa-setup.c: Likewise.
20481 2004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
20483 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
20484 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
20485 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
20486 reading and reset it after reading.
20487 (pupa_ext2_close): Return PUPA_ERR_NONE.
20489 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
20491 (struct linux_kernel_header): Add kernel_version and
20493 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
20494 pupa_file_read succeeds.
20495 (pupa_rescue_cmd_initrd): Implement.
20497 2003-12-03 Marco Gerards <metgerards@student.han.nl>
20499 * fs/ext2.c (pupa_ext2_label): New function.
20500 (pupa_ext2_fs): Added label.
20501 * fs/fat.c (pupa_fat_label): New function.
20502 (pupa_fat_fs): Added label.
20503 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
20505 * kern/misc.c (pupa_strndup): New function.
20506 * include/pupa/misc.h (pupa_strndup): New prototype.
20508 * include/pupa/normal.h: Include <pupa/err.h>.
20509 (pupa_set_history): New prototype.
20510 (pupa_iterate_commands): New prototype.
20511 * normal/cmdline.c: Include <pupa/machine/partition.h>,
20512 <pupa/disk.h>, <pupa/file.h>.
20513 (hist_size): New variable.
20514 (hist_lines): Likewise.
20515 (hist_end): Likewise.
20516 (hist_used): Likewise.
20517 (pupa_set_history): New function.
20518 (pupa_history_get): Likewise.
20519 (pupa_history_add): Likewise.
20520 (pupa_history_replace): Likewise.
20521 (pupa_tab_complete): Likewise.
20522 (pupa_cmdline_run): Added tab completion and history buffer. Tab
20523 completion shows partitionnames while completing partitions, this
20524 feature was suggested by Jeff Bailey.
20525 * normal/command.c (pupa_iterate_commands): New function.
20526 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
20527 (pupa_normal_init): Initialize history buffer.
20528 (PUPA_MOD_INIT): Likewise.
20529 (pupa_normal_fini): Free the history buffer.
20530 (PUPA_MOD_FINI): Likewise.
20532 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
20535 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
20536 * configure.ac [i386]: Check for regparam bug.
20537 (NESTED_FUNC_ATTR) [! i386]: Defined.
20539 2003-11-17 Marco Gerards <metgerards@student.han.nl>
20541 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
20542 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
20543 (pupa_emu_SOURCES): New variable.
20544 (pupa_emu_LDFLAGS): Likewise.
20545 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
20546 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
20547 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
20548 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
20549 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
20550 (pupa_jmp_buf): New typedef.
20551 (pupa_setjmp) [PUPA_UTIL]: New macro.
20552 (pupa_longjmp) [PUPA_UTIL]: Likewise.
20553 * include/pupa/term.h (struct pupa_term): New member `refresh'.
20554 (pupa_refresh): New prototype.
20555 * include/pupa/util/getroot.h: New file.
20556 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
20558 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
20559 (pupa_rescue_cmd_cat): Likewise.
20560 (pupa_rescue_cmd_ls): Likewise.
20561 (pupa_rescue_cmd_testload): Likewise.
20562 (pupa_rescue_cmd_lsmod): Likewise.
20563 * normal/cmdline.c (pupa_cmdline_get): Likewise.
20564 * normal/menu.c (run_menu): Likewise.
20565 * kern/term.c (pupa_cls): Likewise.
20566 (pupa_refresh): New function.
20567 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
20568 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
20569 * util/console.c: New file.
20571 * util/i386/pc/getroot.c: New file.
20572 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
20573 (pupa_putchar): New function.
20574 (pupa_refresh): Likewise.
20575 (xgetcwd): Function moved to ...
20576 (strip_extra_slashes): Likewise.
20577 (get_prefix): Likewise.
20578 * util/i386/pc/getroot.c: ... here.
20579 (find_root_device): Function moved and renamed to...
20580 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
20581 Changed all callers.
20582 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
20584 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
20585 Changed all callers.
20586 * util/misc.c (pupa_memalign): New function.
20587 (pupa_mm_init_region): Likewise.
20588 (pupa_register_exported_symbols): Likewise.
20589 (pupa_putchar): Function removed.
20590 * util/pupa-emu.c: New file.
20592 2003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
20594 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
20595 (_multiboot_mod_SOURCES): New variable.
20596 (_multiboot_mod_CFLAGS): Likewise.
20597 * loader/i386/pc/multiboot.c: New file.
20598 * include/pupa/i386/pc/multiboot.h: Likewise.
20599 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
20600 (pupa_multiboot_real_boot): New function.
20601 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
20602 (pupa_multiboot_real_boot): New prototype.
20603 (pupa_rescue_cmd_multiboot): Likewise
20604 (pupa_rescue_cmd_module): Likewise.
20606 * kern/loader.c (pupa_loader_set): Continue when
20607 pupa_loader_unload_func() fails.
20608 (pupa_loader_unset): New function.
20609 * include/pupa/loader.h (pupa_loader_unset): New prototype.
20611 * kern/misc.c (pupa_stpcpy): New function.
20612 * include/pupa/misc.h (pupa_stpcpy): New prototype.
20614 2003-11-12 Marco Gerards <metgerards@student.han.nl>
20616 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
20617 for available extensions.
20619 * include/pupa/i386/pc/time.h: New file.
20620 * kern/disk.c: Include <pupa/machine/time.h>.
20621 (PUPA_CACHE_TIMEOUT): New macro.
20622 (pupa_last_time): New variable.
20623 (pupa_disk_open): Flush the cache when there was a timeout.
20624 (pupa_disk_close): Reset the timer.
20625 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
20627 * util/misc.c: Include <sys/times.h>
20628 (pupa_get_rtc): New function.
20630 2003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
20632 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
20634 (pupa_ext2_get_file_block): Use blocks member.
20636 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
20637 first block. Return -1 instead of pupa_errno on error.
20639 2003-10-27 Marco Gerards <metgerards@student.han.nl>
20641 * README: In the pupa-mkimage example use _chain instead of chain
20642 and ext2 instead of fat.
20643 * TODO: Replace ext2fs with jfs as an example. Add an item for
20644 adding journal playback for ext2fs.
20645 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
20646 (pkgdata_MODULES): Added ext2.mod.
20647 (ext2_mod_SOURCES): New variable.
20648 (ext2_mod_CFLAGS): Likewise.
20649 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
20650 * include/pupa/misc.h (pupa_strncpy): New prototype.
20651 (pupa_strcat): Likewise.
20652 (pupa_strncmp): Likewise.
20653 * kern/misc.c (pupa_strcat): Enable function.
20654 (pupa_strncpy): New function.
20655 (pupa_strncmp): Likewise.
20656 * fs/ext2.c: New file.
20658 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
20659 when the read failed before retrying.
20660 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
20661 (_FILE_OFFSET_BITS): Likewise.
20662 * configure.ac: Added AC_SYS_LARGEFILE.
20664 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
20666 * genmk.rb (PModule#rule): Make sure to get only symbol names
20667 from the output of nm.
20668 Reported by Robert Millan <zeratul2@wanadoo.es>.
20670 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
20672 I forgot to check in these changes for a long time. This adds
20673 incomplete support for VGA console, and this is still very
20674 buggy. Also, a lot of consideration is required for I18N,
20675 UNICODE, and VGA font issues. Therefore, assume that this is
20676 such that "better than nothing".
20678 * font/manager.c: New file.
20679 * include/pupa/font.h: Likewise.
20680 * include/pupa/i386/pc/vga.h: Likewise.
20681 * term/i386/pc/vga.c: Likewise.
20682 * util/unifont2pff.rb: Likewise.
20684 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
20685 (pkgdata_MODULES): Added vga.mod and font.mod.
20686 (vga_mod_SOURCES): New variables.
20687 (vga_mod_CFLAGS): Likewise.
20688 (font_mod_SOURCES): Likewise.
20689 (font_mod_CFLAGS): Likewise.
20691 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
20693 * include/pupa/term.h: Include pupa/err.h.
20694 (struct pupa_term): Added init and fini.
20695 Changed the argument of putchar to pupa_uint32_t.
20697 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
20698 (pupa_console_real_putchar): New prototype.
20699 (pupa_console_putchar): Removed.
20700 (pupa_console_checkkey): Exported.
20701 (pupa_console_getkey): Likewise.
20703 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
20706 * kern/term.c (pupa_term_set_current): Rewritten.
20707 (pupa_putchar): Likewise.
20708 (pupa_putcode): New function.
20710 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
20711 (pupa_console_real_putchar): ... this.
20712 (pupa_vga_set_mode): New function.
20713 (pupa_vga_get_font): Likewise.
20715 * normal/command.c: Include pupa/term.h.
20716 (terminal_command): New function.
20717 (pupa_command_init): Register the command "terminal".
20719 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
20720 (DISP_UP): Likewise.
20721 (DISP_RIGHT): Likewise.
20722 (DISP_DOWN): Likewise.
20723 (DISP_HLINE): Likewise.
20724 (DISP_VLINE): Likewise.
20725 (DISP_UL): Likewise.
20726 (DISP_UR): Likewise.
20727 (DISP_LL): Likewise.
20728 (DISP_LR): Likewise.
20730 * term/i386/pc/console.c (pupa_console_putchar): New function.
20732 2003-02-08 NIIBE Yutaka <gniibe@m17n.org>
20734 * util/resolve.c (pupa_util_resolve_dependencies): BUG
20735 FIX. Reverse the path_list.
20737 * include/pupa/normal.h: Export pupa_register_command and
20738 pupa_unregister_command.
20740 * hello/hello.c (pupa_cmd_hello): New module.
20741 * conf/i386-pc.rmk: Added hello.mod.
20743 2003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
20745 * kern/i386/pc/lzo1x.S: New file.
20747 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
20748 (compress_kernel): New variable.
20749 (generate_image): Heavily modified to support compressing a
20750 large part of the core image.
20752 * util/misc.c (pupa_util_read_image): Fix a file descriptor
20754 (pupa_util_load_image): New function.
20756 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
20757 (pupa_compressed_size): New variable.
20758 (codestart): Enable Gate A20 here.
20759 Decompress the compressed part of the core image.
20760 Rearrange the code to put functions and variables which are
20761 required for initialization in the non-compressed part.
20764 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
20767 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
20769 * include/pupa/i386/pc/kernel.h
20770 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
20771 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
20772 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
20773 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
20774 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
20776 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
20778 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
20779 (Utility#rule): Likewise.
20781 * configure.ac: Check if LZO is available.
20783 2003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
20785 * include/pupa/normal.h: New file.
20786 * include/pupa/setjmp.h: Likewise.
20787 * include/pupa/i386/setjmp.h: Likewise.
20788 * normal/cmdline.c: Likewise.
20789 * normal/command.c: Likewise.
20790 * normal/main.c: Likewise.
20791 * normal/menu.c: Likewise.
20792 * normal/i386/setjmp.S: Likewise.
20794 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
20795 (pupa_rescue_cmd_initrd): Likewise.
20797 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
20800 * kern/i386/pc/startup.S (translation_table): New variable.
20801 (translate_keycode): New function.
20802 (pupa_console_getkey): Call translate_keycode.
20804 * kern/rescue.c (attempt_normal_mode): New function.
20805 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
20806 it failed, print a message.
20808 * kern/mm.c (pupa_real_malloc): Print more information when a
20809 free magic is broken.
20810 (pupa_free): If the first free header is not free actually, set
20813 * kern/main.c (pupa_load_normal_mode): Just load the module
20815 (pupa_main): Don't print the message
20816 "Entering into rescue mode..." here.
20818 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
20820 (pupa_rescue_cmd_initrd): Likewise.
20821 (pupa_rescue_cmd_initrd): Likewise.
20823 * include/pupa/symbol.h (FUNCTION): Specify the type.
20824 (VARIABLE): Likewise.
20826 * include/pupa/err.h (pupa_err_t): Added
20827 PUPA_ERR_UNKNOWN_COMMAND.
20829 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
20830 (pupa_dl_get_prefix): Likewise.
20832 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
20833 Added _chain.mod and _linux.mod instead of chain.mod and
20835 (chain_mod_SOURCES): Renamed to ...
20836 (_chain_mod_SOURCES): ... this.
20837 (chain_mod_CFLAGS): Renamed to ...
20838 (_chain_mod_CFLAGS): ... this.
20839 (linux_mod_SOURCES): Renamed to ...
20840 (_linux_mod_SOURCES): ... this.
20841 (linux_mod_CFLAGS): Renamed to ...
20842 (_linux_mod_CFLAGS): ... this.
20843 (normal_mod_SOURCES): New variable.
20844 (normal_mod_CFLAGS): Likewise.
20845 (normal_mod_ASFLAGS): Likewise.
20847 2003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
20849 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
20852 * kern/dl.c (pupa_dl_ref): Refer depending modules
20854 (pupa_dl_unref): Unrefer depending modules recursively.
20855 Don't call pupa_dl_unload implicitly, because PUPA can crash if
20856 a module is unloaded before one depending on that module is
20858 (pupa_dl_unload): Unload depending modules explicitly,
20861 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
20863 * include/pupa/i386/pc/linux.h: New file.
20864 * loader/i386/pc/linux.c: Likewise.
20866 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
20868 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
20869 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
20870 of PUPA_CHAINLOADER_BOOT_SECTOR.
20872 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
20873 (pupa_linux_prot_size): New variable.
20874 (pupa_linux_tmp_addr): Likewise.
20875 (pupa_linux_real_addr): Likewise.
20876 (pupa_linux_boot_zimage): New function.
20877 (pupa_linux_boot_bzimage): Likewise.
20879 * kern/i386/pc/init.c (struct mem_region): New structure.
20880 (MAX_REGIONS): New macro.
20881 (mem_regions): New variable.
20882 (num_regions): Likewise.
20883 (pupa_os_area_addr): Likewise.
20884 (pupa_os_area_size): Likewise.
20885 (pupa_lower_mem): Likewise.
20886 (pupa_upper_mem): Likewise.
20887 (add_mem_region): New function.
20888 (compact_mem_regions): Likewise.
20889 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
20890 the size of the conventional memory and that of so-called upper
20891 memory (before the first memory hole).
20892 Instead of adding each found region to free memory, use
20893 add_mem_region and add them after removing overlaps.
20894 Also, add only 1/4 of the upper memory to free memory. The rest
20895 is used for loading OS images. Maybe this is ad hoc, but this
20896 makes it much easier to relocate OS images when booting.
20898 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
20899 (pupa_enter_rescue_mode): Don't register initrd and module.
20901 * kern/mm.c: Include pupa/dl.h.
20903 * kern/main.c: Include pupa/file.h and pupa/device.h.
20905 * kern/loader.c (pupa_loader_load_module_func): Removed.
20906 (pupa_loader_load_module): Likewise.
20908 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
20911 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
20912 (pupa_linux_tmp_addr): Likewise.
20913 (pupa_linux_real_addr): Likewise.
20914 (pupa_linux_boot_zimage): Likewise.
20915 (pupa_linux_boot_bzimage): Likewise.
20917 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
20918 (pupa_upper_mem): Likewise.
20919 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
20920 module is too dangerous.
20922 * include/pupa/loader.h (pupa_os_area_addr): Declared.
20923 (pupa_os_area_size): Likewise.
20924 (pupa_loader_set): Remove the first argument. Loader doesn't
20925 manage modules or initrd any longer.
20926 (pupa_loader_load_module): Removed.
20928 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
20929 (linux_mod_SOURCES): New variable.
20930 (linux_mod_CFLAGS): Likewise.
20932 2003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
20934 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
20935 the length of a blocklist correctly.
20937 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
20938 Use ioctl only if the OS file is a block device.
20939 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
20940 not very useful for normal files.
20942 * kern/main.c (pupa_set_root_dev): New function.
20943 (pupa_load_normal_mode): Likewise.
20944 (pupa_main): Call those above.
20946 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
20949 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
20951 2003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
20953 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
20954 (setup): Configure the installed partition information and the
20957 * loader/i386/pc/chainloader.c (my_mod): New variable.
20958 (pupa_chainloader_unload): New function.
20959 (pupa_rescue_cmd_chainloader): Refer itself.
20960 (PUPA_MOD_INIT): Save its own module in MY_MOD.
20962 * kern/i386/pc/startup.S (install_partition): Removed.
20963 (version_string): Likewise.
20964 (config_file): Likewise.
20965 (pupa_install_dos_part): New variable.
20966 (pupa_install_bsd_part): Likewise.
20967 (pupa_prefix): Likewise.
20968 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
20970 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
20972 (make_install_device): New function.
20973 (pupa_machine_init): Set the dl prefix.
20975 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
20976 (buf): Renamed to ...
20977 (linebuf): ... this.
20978 (pupa_rescue_cmd_prefix): New function.
20979 (pupa_rescue_cmd_insmod): Likewise.
20980 (pupa_rescue_cmd_rmmod): Likewise.
20981 (pupa_rescue_cmd_lsmod): Likewise.
20982 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
20985 * kern/mm.c (pupa_memalign): If failed even after invalidating
20986 disk caches, unload unneeded modules and retry.
20988 * kern/misc.c (pupa_memmove): New function.
20989 (pupa_memcpy): Removed.
20990 (pupa_strcpy): New function.
20991 (pupa_itoa): Made static.
20993 * kern/dl.c (pupa_dl_iterate): New function.
20994 (pupa_dl_ref): Likewise.
20995 (pupa_dl_unref): Likewise.
20996 (pupa_dl_unload): Return if succeeded or not.
20997 (pupa_dl_unload_unneeded): New function.
20998 (pupa_dl_unload_all): Likewise.
20999 (pupa_dl_init): Renamed to ...
21000 (pupa_dl_set_prefix): ... this.
21001 (pupa_dl_get_prefix): New function.
21003 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
21004 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
21005 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
21006 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
21007 (pupa_install_dos_part): Declared.
21008 (pupa_install_bsd_part): Likewise.
21009 (pupa_prefix): Likewise.
21010 (pupa_boot_drive): Likewise.
21012 * include/pupa/types.h: Fix a typo.
21014 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
21016 (pupa_memmove): Declared.
21017 (pupa_strcpy): Likewise.
21019 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
21020 pupa_mod_init takes one argument, its own module.
21021 (pupa_dl_unload_unneeded): Declared.
21022 (pupa_dl_unload_all): Likewise.
21023 (pupa_dl_ref): Likewise.
21024 (pupa_dl_unref): Likewise.
21025 (pupa_dl_iterate): Likewise.
21026 (pupa_dl_init): Renamed to ...
21027 (pupa_dl_set_prefix): ... this.
21028 (pupa_dl_get_prefix): Declared.
21030 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
21031 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
21033 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
21034 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
21036 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
21037 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
21039 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
21041 * util/i386/pc/pupa-setup.c (setup): Define the internal
21042 function find_first_partition_start at the top level, because GCC
21043 3.0.x cannot compile internal functions in deeper scopes
21045 (find_root_device): Use lstat instead of stat.
21046 Don't follow symbolic links.
21047 Fix the path-constructing code.
21049 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
21050 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
21051 by a BLKGETSIZE ioctl first, because block devices don't fill
21052 the member st_mode of the structure stat on Linux.
21053 [__linux__] (linux_find_partition): Use a temporary buffer
21054 REAL_DEV for the working space. Copy it to DEV before returning.
21055 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
21056 buffer cache consistent.
21057 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
21058 strncmp. The previous value was merely wrong.
21059 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
21061 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
21062 FAT size is 12. The previous value was merely wrong.
21064 * kern/main.c (pupa_main): Don't split the starting message from
21067 * kern/term.c (pupa_putchar): Put CR after LF instead of before
21068 LF, because BIOS goes crazy about character attributes in this
21071 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
21073 * include/i386/pc/util/biosdisk.h: New file.
21074 * util/i386/pc/biosdisk.c: Likewise.
21075 * util/i386/pc/pupa-setup.c: Likewise.
21077 * Makefile.in (INCLUDE_DISTFILES): Added
21078 include/pupa/i386/pc/util/biosdisk.h.
21079 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
21080 directory util/i386/pc.
21081 (install-local): Added a rule for sbin_UTILITIES.
21082 (uninstall): Likewise.
21084 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
21086 * util/misc.c (xrealloc): New function.
21087 (pupa_malloc): Likewise.
21088 (pupa_free): Likewise.
21089 (pupa_realloc): Likewise.
21090 (pupa_stop): Likewise.
21091 (pupa_putchar): Likewise.
21093 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
21095 * include/pupa/util/misc.h (xrealloc): Declared.
21097 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
21099 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
21100 (PUPA_BOOT_MACHINE_BPB_END): ... this.
21102 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
21103 [PUPA_UTIL] (pupa_fat_fini): Likewise.
21105 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
21106 way should be implemented.
21107 [PUPA_UTIL] (pupa_fat_fini): Likewise.
21109 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
21110 the size of NAME for safety.
21111 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
21114 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
21115 (pupa_setup_SOURCES): Likewise.
21117 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
21119 2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
21121 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
21122 bunch of pushl's from pusha, because this destroys the return
21125 2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
21127 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
21128 This means that any missing prototypes could be fatal. Also, you
21129 must take care when writing assembly code. See the comments at
21130 the beginning of startup.S, for more details.
21132 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
21133 compilation mechanism.
21134 (pupa_chainloader_real_boot): Likewise.
21135 (pupa_biosdisk_rw_int13_extensions): Likewise.
21136 (pupa_biosdisk_rw_standard): Likewise.
21137 (pupa_biosdisk_check_int13_extensions): Likewise.
21138 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
21139 (pupa_biosdisk_get_diskinfo_standard): Likewise.
21140 (pupa_get_memsize): Likewise.
21141 (pupa_get_mmap_entry): Likewise.
21142 (pupa_console_putchar): Likewise.
21143 (pupa_console_setcursor): Likewise.
21144 (pupa_getrtsecs): Use pushl instead of push.
21146 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
21147 memory instead of the stack for a mmap entry, because some
21148 BIOSes may ignore the maximum size and overflow.
21150 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
21152 * genmk.rb (PModule#rule): Compile automatically generated
21153 sources with module-specific CFLAGS as well as other sources.
21155 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
21157 * configure.ac: Check ld.
21158 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
21159 respectively, before checking endianness and sizes.
21161 * Makefile.in (LD): New variable.
21163 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
21165 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
21167 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
21169 * Changelog: New file.