2010-05-18 Justus Winter <4winter@informatik.uni-hamburg.de>
[grub.git] / ChangeLog
blobe8bb242bfc48a1e68668527039b98ebfb12b2a20
1 2010-05-18  Justus Winter  <4winter@informatik.uni-hamburg.de>
3         * util/grub.d/10_hurd.in: Include all gnumach* kernels, not only
4         gnumach and gnumach.gz.
6 2010-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
8         * include/grub/i18n.h (gettext): Inline instead of using #define.
9         (grub_gettext): Likewise.
10         (_): Likewise.
12 2010-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
14         * Makefile.in (CPPFLAGS): Replace -DGRUB_LIBDIR with
15         -DGRUB_PKGLIBROOTDIR= and prepend @PACKAGE_TARNAME@. All users updated.
16         * util/grub-mkimage.c (image_targets): Add i386-multiboot.
17         (main): Add a slash after pkglibdirroot.
19 2010-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
21         * util/grub-install.in: Add missing "in" keyword.
23 2010-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
25         * util/grub-mkrescue.in: Remove -O i386-pc duplication.
26         Reported by: Seth Goldberg.
28 2010-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
30         * po/POTFILES: Rename util/grub-mkrawimage.c to util/grub-mkimage.c.
32 2010-05-18  Colin Watson  <cjwatson@ubuntu.com>
34         * configure.ac: Check for Linux device-mapper support.
36         * util/hostdisk.c (device_is_mapped): New function.
37         (find_partition_start): New function, partly broken out from
38         linux_find_partition and grub_util_biosdisk_get_grub_dev but with
39         device-mapper support added.
40         (linux_find_partition): Use find_partition_start.
41         (convert_system_partition_to_system_disk): Add `st' argument.
42         Support Linux /dev/mapper/* devices if device-mapper support is
43         available; only DM-RAID devices are understood at present.
44         (find_system_device): Add `st' argument.  Pass it to
45         convert_system_partition_to_system_disk.
46         (grub_util_biosdisk_get_grub_dev): Pass stat result to
47         find_system_device and convert_system_partition_to_system_disk.  Use
48         find_partition_start.
50         * conf/common.rmk (grub_mkdevicemap_SOURCES): Add kern/env.c,
51         kern/err.c, kern/list.c, kern/misc.c, and kern/emu/mm.c.
52         * util/deviceiter.c [__linux__]: Define MINOR.
53         (grub_util_iterate_devices): Add support for DM-RAID disk devices.
54         * util/mkdevicemap.c (grub_putchar): New function.
55         (grub_getkey): New function.
56         (grub_refresh): New function.
57         (main): Set debug=all if -v -v is used.
59 2010-05-18  Colin Watson  <cjwatson@ubuntu.com>
61         Fix build with non-GNU libcs.
63         * util/misc.c (canonicalize_file_name): Move to ...
64         * kern/emu/misc.c (canonicalize_file_name): ... here.  Needed by
65         grub_make_system_path_relative_to_its_root.
67 2010-05-18  Colin Watson  <cjwatson@ubuntu.com>
69         * util/grub-mkrescue.in: Sync up with grub-install in terms of how
70         we handle finding grub-mkimage.  Default to finding grub-mkimage in
71         ${bindir} with program_transform_name applied, and provide a
72         --grub-mkimage option to override this.
74 2010-05-17  Vladimir Serbinenko  <phcoder@gmail.com>
76         Remove grub-mkisofs.
78         * conf/common.rmk (bin_UTILITIES): Remove grub-mkisofs.
79         (grub_mkisofs_SOURCES): Removed.
80         (grub_mkisofs_CFLAGS): Removed.
81         * util/mkisofs/defaults.h: Removed.
82         * util/mkisofs/eltorito.c: Likewise.
83         * util/mkisofs/exclude.h: Likewise.
84         * util/mkisofs/hash.c: Likewise.
85         * util/mkisofs/include/: Likewise.
86         * util/mkisofs/include/fctldefs.h: Likewise.
87         * util/mkisofs/include/mconfig.h: Likewise.
88         * util/mkisofs/include/prototyp.h: Likewise.
89         * util/mkisofs/include/statdefs.h: Likewise.
90         * util/mkisofs/iso9660.h: Likewise.
91         * util/mkisofs/joliet.c: Likewise.
92         * util/mkisofs/match.c: Likewise.
93         * util/mkisofs/match.h: Likewise.
94         * util/mkisofs/mkisofs.c: Likewise.
95         * util/mkisofs/mkisofs.h: Likewise.
96         * util/mkisofs/msdos_partition.h: Likewise.
97         * util/mkisofs/multi.c: Likewise.
98         * util/mkisofs/name.c: Likewise.
99         * util/mkisofs/rock.c: Likewise.
100         * util/mkisofs/tree.c: Likewise.
101         * util/mkisofs/write.c: Likewise.
103 2010-05-17  Vladimir Serbinenko  <phcoder@gmail.com>
105         Unify grub-mkimage accross platforms.
107         * Makefile.in (CPPFLAGS): Set GRUB_LIBDIR to $(libdir).
108         * conf/common.rmk (bin_UTILITIES): Removed grub-mkelfimage.
109         (grub_mkelfimage_SOURCES): Removed.
110         (util/elf/grub-mkimage.c_DEPENDENCIES): Renamed to ..
111         (util/grub-mkimage.c_DEPENDENCIES): .. this.
112         (bin_UTILITIES): Add grub-mkimage.
113         (grub_mkimage_SOURCES): New variable.
114         (kernel_img_HEADERS): Remove machine/kernel.h.
115         * conf/i386-pc.rmk (pkglib_IMAGES): Remove kernel.img.
116         (pkglib_PROGRAMS): Add kernel.img.
117         (kernel_img_HEADERS): Add machine/kernel.h.
118         (kernel_img_FORMAT): Removed.
119         (bin_UTILITIES): Remove grub-mkimage.
120         (grub_mkimage_SOURCES): Removed.
121         (grub_mkimage_CFLAGS): Likewise.
122         (util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
123         * conf/i386-qemu.rmk (pkglib_IMAGES): Remove kernel.img.
124         (pkglib_PROGRAMS): Add kernel.img.
125         (bin_UTILITIES): Remove grub-mkimage.
126         (grub_mkimage_SOURCES): Removed.
127         (grub_mkimage_CFLAGS): Likewise.
128         (util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
129         * conf/mips-qemu-mips.rmk (pkglib_IMAGES): Remove kernel.img.
130         (pkglib_PROGRAMS): Add kernel.img.
131         * conf/mips-yeeloong.rmk (pkglib_IMAGES): Remove kernel.img.
132         (pkglib_PROGRAMS): Add kernel.img.
133         * conf/mips.rmk (bin_UTILITIES): Remove grub-mkimage.
134         (grub_mkimage_SOURCES): Removed.
135         (grub_mkimage_CFLAGS): Likewise.
136         (util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
137         * conf/sparc64-ieee1275.rmk (pkglib_IMAGES): Remove kernel.img.
138         (pkglib_PROGRAMS): Add kernel.img.
139         (bin_UTILITIES): Remove grub-mkimage.
140         (grub_mkimage_SOURCES): Removed.
141         (grub_mkimage_CFLAGS): Likewise.
142         (util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
143         * conf/x86-efi.rmk (bin_UTILITIES): Remove grub-mkimage.
144         (grub_mkimage_SOURCES): Removed.
145         (grub_mkimage_CFLAGS): Likewise.
146         (util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
147         * configure.ac (machine_CFLAGS): Add "-DMACHINE".
148         * include/grub/efi/pe32.h (grub_pe32_optional_header): Split into ...
149         (grub_pe32_optional_header): ... this.
150         (grub_pe64_optional_header): ... and this. All users updated.
151         (GRUB_PE32_PE32_MAGIC): Split into ..
152         (GRUB_PE32_PE32_MAGIC): .. this.
153         (GRUB_PE32_PE64_MAGIC): .. and this.
154         (GRUB_PE32_SIGNATURE_SIZE): New definition.
155         * include/grub/elf.h (PT_GNU_STACK): New definition.
156         * include/grub/i386/coreboot/kernel.h: Merged into include/grub/offsets.h. All users updated.
157         * include/grub/i386/efi/kernel.h: Likewise.
158         * include/grub/i386/kernel.h: Likewise.
159         * include/grub/i386/pc/kernel.h: Likewise.
160         * include/grub/i386/qemu/boot.h: Likewise.
161         * include/grub/mips/kernel.h: Likewise.
162         * include/grub/mips/qemu-mips/kernel.h: Likewise.
163         * include/grub/powerpc/ieee1275/kernel.h: Likewise.
164         * include/grub/powerpc/kernel.h: Likewise.
165         * include/grub/sparc64/ieee1275/boot.h: Likewise.
166         * include/grub/sparc64/ieee1275/kernel.h: Likewise.
167         * include/grub/sparc64/kernel.h: Likewise.
168         * include/grub/x86_64/efi/kernel.h: Likewise.
169         * include/grub/x86_64/kernel.h: Likewise.
170         * include/grub/offsets.h: New file.
171         * include/grub/kernel.h (grub_module_info): Split into ...
172         (grub_module_info32): ... this.
173         (grub_module_info64): ... and this.
174         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_KERNEL_SEG): Moved from here ...
175         * include/grub/offsets.h (GRUB_BOOT_I386_PC_KERNEL_SEG): ... here.
176         (grub_boot_blocklist): Moved from here ...
177         * include/grub/offsets.h (grub_pc_bios_boot_blocklist): ... here.
178         * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): Moved from here.
179         * include/grub/offsets.h (GRUB_MEMORY_I386_PC_UPPER): .. here.
180         * include/grub/types.h (grub_target_to_host16): Removed.
181         (grub_target_to_host32): Likewise.
182         (grub_target_to_host64): Likewise.
183         (grub_host_to_target16): Likewise.
184         (grub_host_to_target32): Likewise.
185         (grub_host_to_target64): Likewise.
186         (grub_host_to_target_addr): Likewise.
188         Support grub-mkrescue for efi, coreboot and qemu.
190         * conf/x86-efi.rmk (bin_SCRIPTS): Add grub-mkrescue.
191         * kern/efi/init.c (grub_efi_set_prefix): Handle baked in prefix.
192         * util/elf/grub-mkimage.c: Merged into util/grub-mkimage.c.
193         * util/grub-mkrawimage.c: Moved from here ...
194         * util/grub-mkimage.c: ... here. All users updated.
195         (ALIGN_ADDR): Use image_target.
196         (TARGET_NO_FIELD): New const.
197         (image_target_desc): New type.
198         (image_targets): New array.
199         (grub_target_to_host64): Use image_target.
200         (grub_target_to_host32): Likewise.
201         (grub_target_to_host16): Likewise.
202         (grub_host_to_target64): Likewise.
203         (grub_host_to_target32): Likewise.
204         (grub_host_to_target16): Likewise.
205         (grub_host_to_target_addr): Likewise.
206         (generate_image): Handle multiimage.
207         (main): Require -O parameter. All users updated.
208         * util/grub-mkimagexx.c: New file. Based on util/grub-mkrawimage.c and
209         util/efi/grub-mkimage.c
210         * util/grub-mkrescue.in: Handle coreboot, efi and qemu.
211         New option --rom-directory.
212         Use xorriso.
213         * util/i386/efi/grub-mkimage.c: Removed.
214         * util/i386/pc/grub-setup.c (grub_target_to_host16): New definition.
215         (grub_target_to_host32): Likewise.
216         (grub_target_to_host64): Likewise.
217         (grub_host_to_target16): Likewise.
218         (grub_host_to_target32): Likewise.
219         (grub_host_to_target64): Likewise.
220         * util/sparc64/ieee1275/grub-setup.c (grub_target_to_host16): New definition.
221         (grub_target_to_host32): Likewise.
222         (grub_target_to_host64): Likewise.
223         (grub_host_to_target16): Likewise.
224         (grub_host_to_target32): Likewise.
225         (grub_host_to_target64): Likewise.
227 2010-05-17  BVK Chaitanya  <bvk.groups@gmail.com>
229         Source tree is reorganized for emu build.
231         * include/grub/util/console.h: Move from here...
232         * include/grub/emu/console.h: ...to here.
233         * include/grub/util/getroot.h: Move from here...
234         * include/grub/emu/getroot.h: ...to here.
235         * include/grub/util/hostdisk.h: Move from here...
236         * include/grub/emu/hostdisk.h: ...to here.
237         * util/console.c: Move from here...
238         * kern/emu/console.c: ...to here.
239         * util/getroot.c: Move from here...
240         * kern/emu/getroot.c: ...to here.
241         * util/grub-emu.c: Move from here...
242         * kern/emu/main.c: ...to here.
243         * util/hostdisk.c: Move from here...
244         * kern/emu/hostdisk.c: ...to here.
245         * util/hostfs.c: Move from here...
246         * kern/emu/hostfs.c: ...to here.
247         * util/mm.c: Move from here...
248         * kern/emu/mm.c: ...to here.
249         * util/pci.c: Move from here...
250         * bus/emu/pci.c: ...to here.
251         * util/sdl.c: Move from here...
252         * video/emu/sdl.c: ...to here.
253         * util/time.c: Move from here...
254         * kern/emu/time.c: ...to here.
255         * util/usb.c: Move from here...
256         * bus/usb/emu/usb.c: ...to  here.
258         * include/grub/emu/misc.h: New header for grub-emu functions.
259         * kern/emu/misc.c: grub-emu functions separated from util/misc.c
261         * conf/any-emu.rmk: Rule updates for above renames.
262         * conf/common.rmk: Likewise.
263         * conf/i386-pc.rmk: Likewise.
264         * conf/i386-qemu.rmk: Likewise.
265         * conf/mips.rmk: Likewise.
266         * conf/sparc64-ieee1275.rmk: Likewise.
267         * conf/x86-efi.rmk: Likewise.
269         * disk/lvm.h: #include updates for above renames.
270         * util/grub-mkrelpath.c: Likewise.
271         * util/grub-probe.c: Likewise.
272         * util/i386/pc/grub-setup.c: Likewise.
273         * util/sparc64/ieee1275/grub-setup.c: Likewise.
274         * kern/emu/console.c: Likewise.
275         * kern/emu/getroot.c: Likewise.
276         * kern/emu/hostdisk.c: Likewise.
277         * kern/emu/main.c: Likewise. (was grub-emu.c earlier)
279         * include/grub/dl.h: Remove grub_dl_{ref,unref}.
280         * include/grub/util/misc.h: Move grub-emu functions to emu/misc.h.
281         * kern/dl.c: Handle null mod in grub_dl_{ref,unref}.
282         * util/misc.c: Remove grub-emu functions.
284 2010-05-13  Vladimir Serbinenko  <phcoder@gmail.com>
286         Fix gfxmenu crash.
287         Reported by: Thorsten Grützmacher.
289         * gfxmenu/gui_circular_progress.c (circprog_destroy): Unregister
290         timeout hook.
291         (circprog_set_property): Register and unregister timeout hook.
292         * gfxmenu/gui_label.c (grub_gui_label): New fields template and value.
293         (label_destroy): Free template. and unregister hook.
294         (label_set_state): New function.
295         (label_set_property): Handle templates and hooks.
296         * gfxmenu/gui_progress_bar.c (progress_bar_destroy): Unregister
297         timeout hook.
298         (progress_bar_set_property): Register and unregister timeout hook.
299         * gfxmenu/view.c (TIMEOUT_COMPONENT_ID): Move from here ...
300         * include/grub/gui.h (GRUB_GFXMENU_TIMEOUT_COMPONENT_ID): ...to here
301         * gfxmenu/view.c (grub_gfxmenu_timeout_notifications): New variable.
302         (update_timeout_visit): Removed.
303         (update_timeouts): New function.
304         (redraw_timeouts): Likewise.
305         (grub_gfxmenu_print_timeout): Use update_timeouts and redraw_timeouts.
306         (grub_gfxmenu_clear_timeout): Likewise.
307         * include/grub/gui.h (grub_gfxmenu_set_state_t): New type.
308         (grub_gfxmenu_timeout_notify): Likewise.
309         (grub_gfxmenu_timeout_notifications): New external variable.
310         (grub_gfxmenu_timeout_register): New function.
311         (grub_gfxmenu_timeout_unregister): Likewise.
313 2010-05-09  Vladimir Serbinenko  <phcoder@gmail.com>
315         Transform (broken) vga terminal into (working) vga video driver.
317         * conf/i386-pc.rmk (vga_mod_SOURCES): Change term/i386/pc/vga.c to
318         video/i386/pc/vga.c.
319         * include/grub/video.h (grub_video_driver_id):
320         Add GRUB_VIDEO_DRIVER_VGA.
321         * term/i386/pc/vga.c: Renamed to ...
322         * video/i386/pc/vga.c: ...this
323         (DEBUG_VGA): Removed.
324         (CHAR_WIDTH): Likewise.
325         (CHAR_HEIGHT): Likewise.
326         (TEXT_WIDTH): Likewise.
327         (TEXT_HEIGHT): Likewise.
328         (DEFAULT_FG_COLOR): Likewise.
329         (DEFAULT_BG_COLOR): Likewise.
330         (colored_char): Likewise.
331         (xpos): Likewise.
332         (ypos): Likewise.
333         (cursor_state): Likewise.
334         (fg_color): Likewise.
335         (bg_color): Likewise.
336         (text_buf): Likewise.
337         (page): Likewise.
338         (font): Likewise.
339         (framebuffer): New variable.
340         (set_read_map): Disabled.
341         (setup): New variable.
342         (is_target): Likewise.
343         (grub_vga_mod_init): Likewise.
344         (grub_vga_mod_fini): Likewise.
345         (check_vga_mem): Likewise.
346         (write_char): Likewise.
347         (write_cursor): Likewise.
348         (scroll_up): Likewise.
349         (grub_vga_putchar): Likewise.
350         (grub_vga_getcharwidth): Likewise.
351         (grub_vga_getwh): Likewise.
352         (grub_vga_getxy): Likewise.
353         (grub_vga_gotoxy): Likewise.
354         (grub_vga_cls): Likewise.
355         (grub_vga_setcolorstate): Likewise.
356         (grub_vga_setcursor): Likewise.
357         (grub_video_vga_init): New function.
358         (grub_video_vga_setup): Likewise.
359         (grub_video_vga_fini): Likewise.
360         (update_target): Likewise.
361         (grub_video_vga_blit_bitmap): Likewise.
362         (grub_video_vga_blit_render_target): Likewise.
363         (grub_video_vga_set_active_render_target): Likewise.
364         (grub_video_vga_get_active_render_target): Likewise.
365         (grub_video_vga_swap_buffers): Likewise.
366         (grub_video_vga_set_palette): Likewise.
367         (grub_video_vga_get_info_and_fini): Likewise.
368         (grub_vga_term): Removed.
369         (grub_video_vga_adapter): New variable.
370         (GRUB_MOD_INIT): Register a video driver instead of terminal.
371         (GRUB_MOD_FINI): Unrefister a video driver instead of terminal.
373 2010-05-05  Vladimir Serbinenko  <phcoder@gmail.com>
375         * video/readers/jpeg.c: Indented.
377 2010-05-05  Vladimir Serbinenko  <phcoder@gmail.com>
379         Various jpeg cleanups.
381         * video/readers/jpeg.c (grub_jpeg_get_huff_code): Use ARRAY_SIZE.
382         (grub_jpeg_decode_quan_table): Use sizeof.
383         (grub_jpeg_decode_du): Use ARRAY_SIZE.
385 2010-05-05  Peter Hurley <No e-mail available> (tiny change)
387         * video/readers/jpeg.c (grub_jpeg_decode_huff_table): Loop over all
388         tables. Ignore non-last ac bit.
389         (grub_jpeg_decode_quan_table): Likewise.
391 2010-05-05  Vladimir Serbinenko  <phcoder@gmail.com>
393         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New value
394         GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM.
395         * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
396         GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM on qemu.
397         * kern/ieee1275/init.c (grub_claim_heap): Don0t allocate below
398         1.5MiB if GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM is set.
400 2010-05-05  Vladimir Serbinenko  <phcoder@gmail.com>
402         * term/ieee1275/ofconsole.c (grub_ofconsole_getkey): Fix off-by-one
403         error.
405 2010-05-05  Vladimir Serbinenko  <phcoder@gmail.com>
407         * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Support C0 code.
409 2010-05-03  Vladimir Serbinenko  <phcoder@gmail.com>
411         * commands/parttool.c (grub_cmd_parttool): Fix #if !GRUB_NO_MODULES
412         condition.
414 2010-05-03  Vladimir Serbinenko  <phcoder@gmail.com>
416         * kern/mm.c (grub_real_malloc): Put magic and size assignment in common
417         part.
419 2010-05-03  Vladimir Serbinenko  <phcoder@gmail.com>
421         * kern/mm.c (grub_mm_init_region): Check for region size after aligning
422         pointers.
424 2010-05-03  Vladimir Serbinenko  <phcoder@gmail.com>
426         * kern/mm.c (grub_real_malloc): Fix size calculation when extra == 0.
428 2010-05-01  Christian Franke  <franke@computer.org>
430         * util/grub-mkconfig_lib.in (make_system_path_relative_to_its_root):
431         Remove broken Cygwin path conversion.
432         * util/misc.c: [__CYGWIN__] Add include and define.
433         [__CYGWIN__] (get_win32_path): Copy function from getroot.c, modify
434         for Cygwin 1.7.
435         (make_system_path_relative_to_its_root): Simplify loop, replace early
436         return by break.
437         [__CYGWIN__] Add conversion to win32 path.
438         Include "/" case in trailing slash removal.
440 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
442         * kern/main.c (grub_load_config): Fix copy-pasted comment.
443         Reported by: Seth Goldberg
445 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
447         * commands/help.c (grub_cmd_help): Fix a typo.
448         Reported by: Seth Goldberg
450 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
452         * commands/hashsum.c (GRUB_MOD_INIT): Remove duplication of command
453         name and add N_.
454         * commands/i386/pc/drivemap.c (GRUB_MOD_INIT): Likewise.
455         * commands/iorw.c (GRUB_MOD_INIT): Likewise.
456         * commands/password_pbkdf2.c (GRUB_MOD_INIT): Likewise.
457         * commands/regexp.c (GRUB_MOD_INIT): Likewise.
458         * commands/setpci.c (GRUB_MOD_INIT): Likewise.
459         * commands/terminal.c (GRUB_MOD_INIT): Likewise.
460         * efiemu/main.c (GRUB_MOD_INIT): Likewise.
461         * font/font_cmd.c (GRUB_MOD_INIT): Likewise.
462         * kern/corecmd.c (GRUB_MOD_INIT): Likewise.
463         * mmap/mmap.c (GRUB_MOD_INIT): Likewise.
464         * normal/context.c (GRUB_MOD_INIT): Likewise.
465         * normal/main.c (GRUB_MOD_INIT): Likewise.
466         * term/gfxterm.c (GRUB_MOD_INIT): Likewise.
467         * term/serial.c (GRUB_MOD_INIT): Likewise.
468         * term/terminfo.c (GRUB_MOD_INIT): Likewise.
470 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
472         * kern/mm.c (grub_real_malloc): Satisfy alignment requirement when
473         extra == 0.
475 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
477         * commands/iorw.c: New file.
478         * conf/i386.rmk (pkglib_MODULES): Add iorw.mod.
479         (iorw_mod_SOURCES): New variable.
480         (iorw_mod_CFLAGS): Likewise.
481         (iorw_mod_LDFLAGS): Likewise.
483 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
485         Hotkey support
487         * include/grub/menu.h (grub_menu_entry): New field 'hotkey'.
488         * normal/main.c (hotkey_aliases): New variable.
489         (grub_normal_add_menu_entry): Parse "--hotkey".
490         * normal/menu_text.c (run_menu): Handle hotkeys.
492 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
494         * kern/i386/coreboot/init.c (grub_machine_init): Call
495         grub_machine_mmap_init on qemu.
497 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
499         * boot/i386/qemu/boot.S: Add a missing .code16.
501 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
503         Use LBIO on coreboot.
505         * conf/i386-coreboot.rmk (kernel_img_SOURCES): Change
506         kern/i386/multiboot_mmap.c to kern/i386/coreboot/mmap.c.
507         * include/grub/i386/coreboot/memory.h (GRUB_LINUXBIOS_MEMBER_LINK):
508         New declaration.
509         * kern/i386/coreboot/init.c (grub_machine_init): Don't call
510         grub_machine_mmap_init on coreboot.
511         * kern/i386/coreboot/mmap.c (grub_linuxbios_table_iterate): Handle
512         GRUB_LINUXBIOS_MEMBER_LINK.
513         (grub_machine_mmap_iterate): Fix declaration.
514         * kern/i386/coreboot/startup.S: Don't save mbi location on coreboot.
516 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
518         Split coreboot and multiboot ports.
520         * conf/i386-multiboot.rmk: New file.
521         * configure.ac: Add multiboot port.
522         * include/grub/i386/multiboot/boot.h: New file.
523         * include/grub/i386/multiboot/console.h: Likewise.
524         * include/grub/i386/multiboot/init.h: Likewise.
525         * include/grub/i386/multiboot/kernel.h: Likewise.
526         * include/grub/i386/multiboot/loader.h: Likewise.
527         * include/grub/i386/multiboot/memory.h: Likewise.
528         * include/grub/i386/multiboot/serial.h: Likewise.
529         * include/grub/i386/multiboot/time.h: Likewise.
530         * include/grub/multiboot.h: Add GRUB_MACHINE_MULTIBOOT to ifdef.
531         * loader/multiboot.c: Likewise.
532         * loader/multiboot_mbi2.c: Likewise.
533         * util/grub-mkrescue.in: Generate multiboot rescue.
535 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
537         * kern/parser.c (grub_parser_execute): Cope with read-only config.
539 2010-05-01  Vladimir Serbinenko  <phcoder@gmail.com>
541         Merge handling of input and output terminals. Fix a hang.
543         * commands/terminal.c (abstract_terminal): New struct.
544         (handle_command): New function. Based on grub_cmd_terminal_input.
545         (grub_cmd_terminal_input): Use handle_command.
546         (grub_cmd_terminal_output): Use handle_command.
548 2010-05-01  BVK Chaitanya  <bvk.groups@gmail.com>
550         Fix comment handling.
552         * tests/grub_script_comments.in: New testcase.
553         * conf/tests.rmk: Rules for new testcase.
554         * script/yylex.l: Updated flex rules.
556 2010-04-28  Samuel Thibault  <samuel.thibault@ens-lyon.org>
558         * docs/grub.texi (play): Document that zero pitches produce rests.
559         * commands/i386/pc/play.c (grub_cmd_play): Call 'grub_file_open' only
560         if argc is 1.
562 2010-04-27  Vladimir Serbinenko  <phcoder@gmail.com>
564         * conf/x86-efi.rmk (linux_mod_SOURCES): Write explicitly to avoid
565         autogen issues.
567 2010-04-26  Christian Franke  <franke@computer.org>
569         * include/grub/util/getroot.h (grub_get_prefix): Remove prototype.
570         * util/getroot.c [__CYGWIN__] (get_win32_path): Remove function.
571         (grub_get_prefix): Remove function.
572         * util/grub-emu.c (main): Replace grub_get_prefix () call by
573         make_system_path_relative_to_its_root ().
574         * util/sparc64/ieee1275/grub-setup.c (main): Likewise.
576 2010-04-24  Christian Franke  <franke@computer.org>
578         * Makefile.in (TARGET_LDFLAGS): Add -static-libgcc.
579         (kernel_img_LDFLAGS): Remove -static-libgcc.
581 2010-04-24  Christian Franke  <franke@computer.org>
583         * configure.ac: Do not CHECK_BSS_START_SYMBOL
584         and CHECK_END_SYMBOL if grub-emu is built.
585         Unset TARGET_OBJ2ELF if grub-emu is built
586         without module support.
588 2010-04-24  Jiro SEKIBA <jir@unicus.jp>
590         Nilfs2 support.
592         * conf/common.rmk (grub_probe_SOURCES): Add fs/nilfs2.c.
593         (grub_fstest_SOURCES): Likewise.
594         (pkglib_MODULES): Add nilfs2.mod.
595         (nilfs2_mod_SOURCES): New variable.
596         (nilfs2_mod_CFLAGS): Likewise.
597         (nilfs2_mod_LDFLAGS): Likewise.
598         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/nilfs2.c.
599         * conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Add fs/nilfs2.c.
600         * fs/nilfs2.c: New file.
602 2010-04-21  Vladimir Serbinenko  <phcoder@gmail.com>
604         * configure.ac: Refuse to compile for x86_64-efi is mcmodel=large
605         is not supported.
607 2010-04-19  Grégoire Sutre  <gregoire.sutre@gmail.com>
609         Add grub-mkconfig support for NetBSD.
611         * util/grub.d/10_netbsd.in: grub-mkconfig helper script for NetBSD.
612         * util/grub-mkconfig.in: export new NetBSD specific variables.
613         * po/POTFILES-shell: added 10_netbsd.in.
614         * util/grub-mkconfig_lib.in: check for gettext binary, default to echo.
616 2010-04-19  BVK Chaitanya  <bvk.groups@gmail.com>
618         Fix emu build with grub-emu-pci and grub-emu-modules.
620         * include/grub/util/misc.h: Export grub_util_{info,error,warn}
621         functions.
622         * include/grub/libpciaccess.h: New file.
623         * conf/any-emu.rmk: Update kernel headers for emu build.
625 2010-04-19  Vladimir Serbinenko  <phcoder@gmail.com>
627         * fs/udf.c (grub_udf_iterate_dir): Silence a spurious warning.
629 2010-04-19  Vladimir Serbinenko  <phcoder@gmail.com>
631         * fs/udf.c (grub_udf_iterate_dir): Decode the Unicode filenames.
633 2010-04-18  Vladimir Serbinenko  <phcoder@gmail.com>
635         * boot/sparc64/ieee1275/boot.S: Various size-reducing changes.
636         Retrieve chosen/bootpath if bootpath isn't hardcoded.
637         * conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Add
638         util/ieee1275/ofpath.c.
639         * util/sparc64/ieee1275/grub-ofpathname.c: Renamed to ...
640         * util/ieee1275/grub-ofpathname.c: ... this. All users updated
641         * include/grub/sparc64/ieee1275/boot.h
642         (GRUB_BOOT_MACHINE_KERNEL_SECTOR): Renamed to ...
643         (GRUB_BOOT_MACHINE_KERNEL_BYTE): ...this. Moved 8 bytes lower.
644         * util/hostdisk.c (grub_util_biosdisk_get_osdev): New function.
645         * util/ieee1275/ofpath.c (grub_util_devname_to_ofpath): Make argument
646         const char *.
647         * util/sparc64/ieee1275/grub-setup.c (compute_dest_ofpath): Removed.
648         (setup): Use KERNEL_BYTE instead of KERNEL_SECTOR.
649         Use grub_util_devname_to_ofpath. Zero-fill boot_devpath on same disk
650         install.
652 2010-04-18  Grégoire Sutre  <gregoire.sutre@gmail.com>
654         * util/grub-mkconfig.in: Corrected two == equality tests.
655         Set grub_prefix as in grub-install for NetBSD and OpenBSD.
656         * configure.ac: All definitions and uses of TARGET_IMG_LDFLAGS_AC now
657         expect a number appended to it.
658         * acinclude.m4 (grub_PROG_OBJCOPY_ABSOLUTE): ${TARGET_IMG_LDFLAGS_AC}
659         expects a number appended to it.
661 2010-04-18  Vladimir Serbinenko  <phcoder@gmail.com>
663         * po/POTFILES: Renamed multiboot_loader.c to multiboot.c
665 2010-04-18  Vladimir Serbinenko  <phcoder@gmail.com>
667         * util/hostdisk.c (make_device_name): Change to new partition naming.
669 2010-04-17  Vladimir Serbinenko  <phcoder@gmail.com>
671         * disk/lvm.c (grub_lvm_memberlist): Issue an error if pv->disk = 0.
673 2010-04-17  Christian Franke  <franke@computer.org>
675         * Makefile.in: Add missing localedir setting.
677 2010-04-14  Colin Watson  <cjwatson@ubuntu.com>
679         Restore TEXTDOMAINDIR correction from r1889, lost apparently by
680         mistake in r2156.  Noticed by Anthony Fok.
682         * util/grub.d/10_kfreebsd.in (TEXTDOMAINDIR): Set to lowercased
683         @localedir@.
684         * util/grub.d/10_linux.in (TEXTDOMAINDIR): Likewise.
686 2010-04-14  BVK Chaitanya  <bvk.groups@gmail.com>
688         Fix a spurious, uninitialized variable warning.
690         * loader/i386/bsdXX.c (grub_freebsd_load_elfmodule_obj):
691         Initialize variable, shdr.
692         (grub_freebsd_load_elfmodule): Likewise.
693         (grub_freebsd_load_elf_meta): Likewise.
695 2010-04-13  BVK Chaitanya  <bvk.groups@gmail.com>
697         Fix for escaped dollar in double quoted strings.
699         * script/yylex.l: Updated flex rules.
700         * conf/tests.rmk: Rule for new testcase.
701         * tests/grub_script_dollar.in: New testcase.
703 2010-04-13  Carles Pina i Estany  <carles@pina.cat>
704 2010-04-13  Colin Watson  <cjwatson@ubuntu.com>
706         Enclose all translated strings in grub.cfg in single quotes, and
707         escape them appropriately (Ubuntu bug #552921).
709         * util/grub-mkconfig_lib.in (gettext_quoted): New function.
710         * util/grub.d/10_hurd.in: Use it.
711         * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
712         * util/grub.d/10_linux.in (linux_entry): Likewise.
714 2010-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
716         Fix cygwin compilation.
718         * configure.ac: Define NEED_REGISTER_FRAME_INFO.
719         * include/grub/misc.h (__register_frame_info)
720         [NEED_REGISTER_FRAME_INFO && !UTIL]: New export.
721         (__deregister_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: Likewise.
722         * kern/misc.c (__register_frame_info)
723         [NEED_REGISTER_FRAME_INFO && !UTIL]: New empty function.
724         (__deregister_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: Likewise.
726 2010-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
728         * configure.ac: Respect grub_cv_asm_uscore when defining dummy symbols.
730 2010-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
732         Unify libgcc processing.
734         * Makefile.in (kernel_img_LDFLAGS): New variable.
735         * conf/common.rmk (kernel_img_HEADERS): Add libgcc.h.
736         * conf/i386-coreboot.rmk (kernel_img_LDFLAGS): Append instead of
737         overwriting.
738         * conf/i386-ieee1275.rmk (kernel_img_LDFLAGS): Likewise.
739         * conf/i386-pc.rmk (kernel_img_LDFLAGS): Likewise.
740         * conf/i386-qemu.rmk (kernel_img_LDFLAGS): Likewise.
741         * conf/x86-efi.rmk (kernel_img_LDFLAGS): Likewise.
742         * conf/mips-qemu-mips.rmk (kernel_img_LDFLAGS): Append instead of
743         overwriting. Remove -lgcc and -static-libgcc
744         * conf/mips-yeeloong.rmk (kernel_img_LDFLAGS): Likewise.
745         * conf/mips.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
746         * conf/powerpc-ieee1275.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
747         (kernel_img_LDFLAGS): Append instead of overwriting.
748         Remove -lgcc and -static-libgcc
749         * conf/sparc64-ieee1275.rmk: Likewise.
750         * include/grub/powerpc/libgcc.h: Move to ...
751         * include/grub/libgcc.h: .. this.
752         * include/grub/libgcc.h: Don't export most of the function on x86.
753         (__bswapsi2): New export.
754         (__bswapdi2): Likewise.
755         * include/grub/mips/libgcc.h: Removed.
756         * include/grub/sparc64/libgcc.h: Likewise.
758 2010-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
760         * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Remove
761         disk_info_msg (conflicts with gettexting into languages with cases).
763 2010-04-10  Grégoire Sutre  <gregoire.sutre@gmail.com>
765         Add grub-probe support for NetBSD.
767         * util/getroot.c (find_root_device): Convert block device to
768         character device on NetBSD.
769         * util/probe.c (probe): Require character device on NetBSD.
770         * util/hostdisk.c: NetBSD specific headers.
771         (configure_device_driver): new function to tune device driver
772         parameters (currently only for NetBSD floppy driver).
773         (grub_util_biosdisk_open): NetBSD specific code (get disk size
774         via disklabel ioctl).
775         (open_device): call configure_device_driver on NetBSD.
776         (convert_system_partition_to_system_disk): NetBSD specific code.
777         (device_is_wholedisk): Likewise.
778         (grub_util_biosdisk_get_grub_dev): Likewise.
779         (make_device_name): Fixed a typo in bsd_part_str.
780         * configure.ac: check for opendisk() and getrawpartition() on
781         NetBSD and set LIBUTIL.
782         * Makefile.in: add LIBUTIL to LIBS.
784 2010-04-10  BVK Chaitanya  <bvk.groups@gmail.com>
786         Documentation fix.
788         * util/grub-script-check.c: Better help message.
790 2010-04-10  BVK Chaitanya  <bvk.groups@gmail.com>
792         Fix FreeBSD build.
794         * configure.ac: Flex version check.
795         * conf/common.rmk: Add -Wno-error to sh.mod.
796         * script/yylex.l: Remove all #pragma.
798 2010-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
800         * include/grub/util/misc.h (canonicalise_file_name): Add missing
801         prototype.
802         Reported by: Seth Goldberg.
804 2010-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
806         * loader/multiboot.c (GRUB_MOD_INIT) [GRUB_USE_MULTIBOOT2]:
807         Rename "module" to "module2".
808         Reported by: Seth Goldberg.
810 2010-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
812         * include/grub/efi/memory.h (grub_machine_mmap_iterate): Remove
813         EXPORT_FUNC.
814         Reported by: Seth Goldberg.
816 2010-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
818         * lib/posix_wrap/locale.h: Add missing file.
819         Reported by: Seth Goldberg.
821 2010-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
823         grub-emu module load support.
825         * Makefile.in (TARGET_NO_MODULES): New variable. All users of
826         NO_DYNAMIC_MODULES switched to this.
827         (TARGET_CFLAGS): Add -DGRUB_TARGET_NO_MODULES=1 if applicable.
828         (CFLAGS): Likewise.
829         * conf/any-emu.rmk: Generate symlist.
830         (kernel_img_HEADERS): Add util/datetime.h.
831         (kernel_img_HEADERS) [sdl]: Add sdl.h.
832         (kernel_img_HEADERS) [libusb]: Add libusb.h.
833         (kernel_img_SOURCES) [TARGET_NO_MODULES = no && !x86]: Add
834         kern/$(target_cpu)/cache.S.
835         * configure.ac (grub-emu-modules): New option.
836         * genmk.rb: Handle multiple source lists.
837         * include/grub/sdl.h: New file.
838         * include/grub/libusb.h: Likewise.
839         * util/grub-emu.c (main): Hanle (host) root.
840         * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Error with
841         GRUB_ERR_UNKNOWN_DEVICE.
842         * util/misc.c: Move mm functions to ...
843         * util/mm.c: ... here. All users updated.
845 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
847         * Makefile.in (RMKFILES): Search in srcdir and not current directory.
848         (MAINTAINER_CLEANFILES): Don't add $(srcdir) to MKFILES. Add few
849         missing files.
850         (maintainer-clean): Remove libgcrypt-grub.
852 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
854         * term/efi/console.c (grub_console_checkkey): Macroify key contants.
856 2010-04-09  EFI Coder <eficoder@hotmail.com>
858         * normal/menu_text.c (print_message): Clean up the message and show
859         the Fn information when on EFI
860         * term/efi/console.c (grub_console_checkkey): Add F4 support.
862 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
864         * normal/autofs.c (read_fs_list): New parameter 'prefix'.
865         All users updated.
866         * normal/crypto.c (read_crypto_list): Likewise.
867         * normal/dyncmd.c (read_command_list): Likewise.
868         * normal/term.c (read_terminal_list): Likewise.
869         * normal/main.c (read_lists): Use explicit prefix.
870         (read_lists_hook): Use read_lists.
871         (grub_normal_execute): Likewise.
873 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
875         * util/grub-mkrescue.in: Fix incorrect path in coreboot part.
876         Reported by: Thomas Schmitt.
877         Add -no-emul-boot to grub-mkisofs parameters.
879 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
881         * font/font.c: Indented.
883 2010-04-09  BVK Chaitanya  <bvk.groups@gmail.com>
885         Elif support to GRUB script (by Deepak Vankadaru).
887         * tests/grub_script_if.in: New testcase.
888         * conf/tests.rmk: Rule for new testcase.
889         * script/parser.y: Grammar rules for elif.
891 2010-04-09  BVK Chaitanya  <bvk.groups@gmail.com>
893         While and until loops support to GRUB script.
895         * include/grub/script_sh.h (grub_script_cmdwhile): New struct.
896         (grub_script_create_cmdwhile): New function prototype.
897         (grub_script_execute_cmdwhile): New function prototype.
898         * script/execute.c (grub_script_execute_cmdwhile): New function.
899         * script/parser.y (command): New commands.
900         (whilecmd): New grammar rule.
901         (untilcmd): New grammar rule.
902         * script/script.c (grub_script_create_cmdwhile): New function.
903         * util/grub-script-check.c (grub_script_execute_cmdwhile): New
904         function.
906         * tests/grub_script_while1.in: New testcase.
907         * conf/tests.rmk: Rule for new testcase.
909 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
911         * util/grub.d/00_header.in: Add few missing quotes. Recognise *.jpeg
912         as *.jpg.
914 2010-04-09  Mario Vazquez <mariovazq@gmail.com>
916         GRUB_BACKGROUND support.
918         * util/grub-mkconfig.in: Export GRUB_BACKGROUND.
919         * util/grub.d/00_header.in: Parse GRUB_BACKGROUND.
921 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
923         Load fonts and modules for gfxmenu in grub-mkconfig.
924         Idea by: Mario Vazquez
926         * util/grub.d/00_header.in: Load pf2 and image modules.
928 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
930         grub-mkconfig multiple terminal support.
932         * util/grub-mkconfig.in: Handle multiple terminals correctly.
933         * util/grub.d/00_header.in: Likewise.
935 2010-04-09  Vladimir Serbinenko  <phcoder@gmail.com>
937         * Makefile.in: Specify files explicitly instead of using $< and $@ since
938         we use cd $(srcdir).
940 2010-04-08  Colin Watson  <cjwatson@ubuntu.com>
942         * util/grub.d/10_linux.in: Only use the first word of
943         GRUB_DISTRIBUTOR for --class, to avoid problems if somebody puts
944         spaces in GRUB_DISTRIBUTOR.
945         * util/grub.d/10_kfreebsd.in: Likewise.
946         * util/grub.d/10_hurd.in: Likewise.
948 2010-04-06  BVK Chaitanya  <bvk.groups@gmail.com>
950         Fix unit testing framework for Qemu 0.12.
952         * tests/util/grub-shell.in: Remove -serial stdio option.
954 2010-04-06  Vladimir Serbinenko  <phcoder@gmail.com>
956         POSIX header file wrappers.
958         * lib/posix_wrap/assert.h: New file. Wrapper for its POSIX
959         equivalents.
960         * lib/posix_wrap/ctype.h: Likewise.
961         * lib/posix_wrap/errno.h: Likewise.
962         * lib/posix_wrap/langinfo.h: Likewise.
963         * lib/posix_wrap/limits.h: Likewise.
964         * lib/posix_wrap/localcharset.h: Likewise.
965         * lib/posix_wrap/stdint.h: Likewise.
966         * lib/posix_wrap/stdio.h: Likewise.
967         * lib/posix_wrap/stdlib.h: Likewise.
968         * lib/posix_wrap/string.h: Likewise.
969         * lib/posix_wrap/sys/types.h: Likewise.
970         * lib/posix_wrap/unistd.h: Likewise.
971         * lib/posix_wrap/wchar.h: Likewise.
972         * lib/posix_wrap/wctype.h: Likewise.
973         * conf/common.rmk (grub_script.yy.c): Remove #include elimination.
974         (grub_script.yy.h): Likewise.
975         * script/yylex.l: Remove POSIX emulation #defines.
976         * Makefile.in (POSIX_CFLAGS): New variable.
977         (GNULIB_UTIL_CFLAGS): Likewise.
979         Regexp support.
981         * conf/common.rmk (pkglib_MODULES): Add regexp.mod.
982         (regexp_mod_SOURCES): New variable.
983         (regexp_mod_CFLAGS): Likewise.
984         (regexp_mod_LDFLAGS): Likewise.
985         * commands/regexp.c: New file.
986         * gnulib/regcomp.c: New file. Imported from gnulib.
987         * gnulib/regex.c: Likewise.
988         * gnulib/regex_internal.c: Likewise.
989         * gnulib/regex_internal.h: Likewise.
990         * gnulib/regexec.c: Likewise.
991         * gnulib/regex.h: Likewise.
993 2010-04-05  Vladimir Serbinenko  <phcoder@gmail.com>
995         * loader/i386/multiboot_mbi.c (grub_multiboot_load): Correctly report
996         unsupported video mode types.
998 2010-04-05  Vladimir Serbinenko  <phcoder@gmail.com>
1000         * kern/i386/pc/startup.S (grub_getrtsecs): Removed (dead code).
1002 2010-04-05  Vladimir Serbinenko  <phcoder@gmail.com>
1004         * include/grub/i386/pc/init.h (grub_get_mmap_entry): Don't export.
1005         * conf/i386-pc.rmk (kernel_img_HEADERS): Remove machine/init.h.
1007 2010-04-04  Vladimir Serbinenko  <phcoder@gmail.com>
1009         Remove unused grub_vga_get_font.
1011         * kern/i386/pc/startup.S (grub_vga_get_font): Removed.
1012         * include/grub/i386/pc/vga.h (grub_vga_get_font): Likewise.
1014 2010-04-03  Grégoire Sutre  <gregoire.sutre@gmail.com>
1016         * kern/misc.c: Disable the __enable_execute_stack hack for utilities.
1017         * include/grub/misc.h: Likewise.
1019 2010-04-03  Grégoire Sutre  <gregoire.sutre@gmail.com>
1021         * util/grub-install.in: Add `|| exit 1' to all grub-probe calls
1022         for which failure is fatal.
1024 2010-04-03  Grégoire Sutre  <gregoire.sutre@gmail.com>
1026         * util/grub-install.in: Use mkdir -p to create grub directory.
1027         * util/i386/efi/grub-install.in: Likewise.
1028         * util/ieee1275/grub-install.in: Likewise.
1030 2010-04-03  Grégoire Sutre  <gregoire.sutre@gmail.com>
1032         * Makefile.in (LEX): new variable.
1034 2010-04-03  Grégoire Sutre  <gregoire.sutre@gmail.com>
1036         * util/i386/efi/grub-dumpdevtree: replaced the non-portable `==' by
1037         `=' and added double quotes on operands of this equality test.
1039 2010-04-03  Vladimir Serbinenko  <phcoder@gmail.com>
1041         * Makefile.in (uninstall): Remove a leftover debug echo.
1042         Reported by: Grégoire Sutre
1044 2010-04-03  Vladimir Serbinenko  <phcoder@gmail.com>
1046         MIPS multiboot2 support.
1048         * conf/mips.rmk (pkglib_MODULES): Add multiboot2.mod.
1049         (multiboot2_mod_SOURCES): New variable.
1050         (multiboot2_mod_CFLAGS): Likewise.
1051         (multiboot2_mod_LDFLAGS): Likewise.
1052         (multiboot2_mod_ASFLAGS): Likewise.
1053         * include/grub/i386/multiboot.h (MULTIBOOT_INITIAL_STATE): New
1054         definition.
1055         (MULTIBOOT_ENTRY_REGISTER): Likewise.
1056         (MULTIBOOT_MBI_REGISTER): Likewise.
1057         (MULTIBOOT_ARCHITECTURE_CURRENT): Likewise.
1058         (MULTIBOOT_ELF32_MACHINE): Likewise.
1059         (MULTIBOOT_ELF64_MACHINE): Likewise.
1060         * include/grub/mips/multiboot.h: New file.
1061         * include/grub/video.h (grub_video_driver_id): New type
1062         GRUB_VIDEO_DRIVER_SM712.
1063         (grub_video_get_info_and_fini): Export.
1064         (grub_video_get_palette): Likewise.
1065         (grub_video_get_driver_id): Likewise.
1066         * include/multiboot2.h: Resynced with spec.
1067         * loader/i386/multiboot.c: Moved from here ...
1068         * loader/multiboot.c: ... here. All users updated.
1069         (grub_multiboot_boot): Use platform-specific macros.
1070         * loader/i386/multiboot_elfxx.c: Moved from here ...
1071         * loader/multiboot_elfxx.c: ... here. All users updated.
1072         (E_MACHINE): Use MULTIBOOT_ELF32_MACHINE and MULTIBOOT_ELF64_MACHINE.
1073         * loader/i386/multiboot_mbi2.c (grub_multiboot_load): Check arcitecture.
1074         * video/sm712.c (grub_video_sm712_adapter): Add missing id field.
1076 2010-04-02  Vladimir Serbinenko  <phcoder@gmail.com>
1078         Import gnulib argp module.
1080         * gnulib/argp-ba.c: New file.
1081         * gnulib/argp-eexst.c: Likewise.
1082         * gnulib/argp-fmtstream.c: Likewise.
1083         * gnulib/argp-fmtstream.h: Likewise.
1084         * gnulib/argp-fs-xinl.c: Likewise.
1085         * gnulib/argp-help.c: Likewise.
1086         * gnulib/argp-namefrob.h: Likewise.
1087         * gnulib/argp-parse.c: Likewise.
1088         * gnulib/argp-pin.c: Likewise.
1089         * gnulib/argp-pv.c: Likewise.
1090         * gnulib/argp-pvh.c: Likewise.
1091         * gnulib/argp-version-etc.c: Likewise.
1092         * gnulib/argp-version-etc.h: Likewise.
1093         * gnulib/argp-xinl.c: Likewise.
1094         * gnulib/argp.h: Likewise.
1096 2010-03-31  Vladimir Serbinenko  <phcoder@gmail.com>
1098         * kern/device.c (grub_device_iterate): Clear errors after failed
1099         opening device.
1101 2010-03-31  Vladimir Serbinenko  <phcoder@gmail.com>
1103         * kern/ieee1275/openfw.c (grub_children_iterate): Skip device itself if
1104         returned by firmware.
1106 2010-03-30  Vladimir Serbinenko  <phcoder@gmail.com>
1108         * loader/i386/multiboot_mbi2.c (retrieve_video_parameters): Fix
1109         compilation on coreboot and qemu
1111 2010-03-28  Vladimir Serbinenko  <phcoder@gmail.com>
1113         * include/multiboot2.h: Resync with spec.
1115 2010-03-28  Vladimir Serbinenko  <phcoder@gmail.com>
1117         Multiboot2 tag support
1119         * conf/i386.rmk (multiboot2_mod_SOURCES): Replace
1120         loader/i386/multiboot_mbi.c with loader/i386/multiboot_mbi2.c.
1121         Remove loader/multiboot_loader.c.
1122         * include/grub/i386/multiboot.h (grub_multiboot_real_boot): Removed.
1123         (grub_multiboot2_real_boot): Likewise.
1124         * include/grub/multiboot.h (grub_multiboot_set_accepts_video): Removed.
1125         (grub_get_multiboot_mmap_count): New proto.
1126         (grub_fill_multiboot_mmap): Likewise.
1127         (grub_multiboot_set_video_mode): Likewise.
1128         (grub_multiboot_set_console): Likewise.
1129         (grub_multiboot_load): Likewise.
1130         (grub_multiboot_load_elf): Likewise.
1131         (GRUB_MULTIBOOT_CONSOLE_EGA_TEXT): New definition.
1132         (GRUB_MULTIBOOT_CONSOLE_FRAMEBUFFER): Likewise.
1133         * include/multiboot.h: Resynced with specification.
1134         * include/multiboot2.h: Resynced with specification.
1135         * loader/i386/multiboot_mbi.c (DEFAULT_VIDEO_MODE): Moved from here...
1136         * loader/i386/multiboot.c (DEFAULT_VIDEO_MODE): ... here.
1137         * loader/i386/multiboot_mbi.c (HAS_VGA_TEXT): Moved from here ..
1138         * include/grub/multiboot.h (GRUB_MACHINE_HAS_VGA_TEXT): ... here. All
1139         users updated.
1140         * loader/i386/multiboot_mbi.c (accepts_video): Moved from here...
1141         * loader/i386/multiboot.c (accepts_video): ... here. All users updated.
1142         * loader/i386/multiboot_mbi.c (grub_multiboot_set_accepts_video):
1143         Removed.
1144         * loader/i386/multiboot_mbi.c (grub_get_multiboot_mmap_len):
1145         Moved from here...
1146         * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): ... here.
1147         * loader/i386/multiboot_mbi.c (grub_fill_multiboot_mmap):
1148         Moved from here...
1149         * loader/i386/multiboot.c (grub_fill_multiboot_mmap): ... here.
1150         * loader/i386/multiboot_mbi.c (set_video_mode): Moved from here...
1151         * loader/i386/multiboot.c (grub_multiboot_set_video_mode): ... here.
1152         All users updated.
1153         * loader/i386/multiboot_mbi2.c: New file.
1155 2010-03-27  Vladimir Serbinenko  <phcoder@gmail.com>
1157         Resync with gnulib.
1159         * Makefile.in (GNULIB_CFLAGS): New variable.
1160         * conf/common.rmk (grub_mkisofs_CFLAGS): Add GNULIB_CFLAGS.
1161         (grub_script_check_CFLAGS): New variable.
1162         * gnulib/alloca.h: Resync with gnulib.
1163         * gnulib/error.c: Likewise.
1164         * gnulib/error.h: Likewise.
1165         * gnulib/fnmatch.c: Likewise.
1166         * gnulib/fnmatch_loop.c: Likewise.
1167         * gnulib/getdelim.c: Likewise.
1168         * gnulib/getline.c: Likewise.
1169         * gnulib/getopt.c: Likewise.
1170         * gnulib/getopt1.c: Likewise.
1171         * gnulib/getopt_int.h: Likewise.
1172         * gnulib/gettext.h: Likewise.
1173         * gnulib/progname.c: Likewise.
1174         * gnulib/progname.h: Likewise.
1176 2010-03-27  Grégoire Sutre  <gregoire.sutre@gmail.com>
1178         Fix a build failure (-Wundef -Werror) when ENABLE_NLS is not defined,
1179         which is the case with --disabled-nls.
1181         * include/grub/i18n.h: Use (defined(ENABLE_NLS)
1182         && ENABLE_NLS) instead of ENABLE_NLS in all #if preprocessor macros.
1183         * util/misc.c: Likewise.
1184         * util/mkisofs/mkisofs.c: Likewise.
1185         * util/mkisofs/mkisofs.h: Likewise.
1187 2010-03-27  Vladimir Serbinenko  <phcoder@gmail.com>
1189         Simplify Apple CC support.
1191         * commands/i386/pc/drivemap_int13h.S: Use LOCAL when possible.
1192         Add 0 byte at the end not to have a symbol with empty target.
1193         * mmap/i386/pc/mmap_helper.S: Likewise.
1194         * genmk.rb: Ignore errors 2030 and 2050.
1195         * kern/i386/pc/startup.S: Use LOCAL when possible.
1197 2010-03-26  BVK Chaitanya  <bvk.groups@gmail.com>
1199         Testcase and the fix for final semicolon on cmdline.
1201         * tests/grub_script_final_semicolon.in: New testcase.
1202         * conf/tests.rmk: Rules for the new testcase.
1203         * script/parser.y: Grammar fix.
1205 2010-03-26  BVK Chaitanya  <bvk@localhost>
1207         Blank lines testcase for GRUB script.
1209         * tests/grub_script_blanklines.in: New testcase.
1210         * conf/tests.rmk: Rules for the new testcase.
1212 2010-03-26  Vladimir Serbinenko  <phcoder@gmail.com>
1214         Don't use __FILE__.
1216         * genmk.rb: Add -DGRUB_FILE to all C targets.
1217         * fs/reiserfs.c: Replace __FILE__ with GRUB_FILE.
1218         * include/grub/list.h: Likewise.
1219         * include/grub/misc.h: Likewise.
1220         * include/grub/mm.h: Likewise.
1221         * include/grub/test.h: Likewise.
1222         * kern/mm.c: Likewise.
1223         * lib/libgcrypt_wrap/cipher_wrap.h: Likewise.
1225 2010-03-26  Vladimir Serbinenko  <phcoder@gmail.com>
1227         Sunpc partitions support.
1229         * conf/common.rmk (grub_probe_SOURCES): Add partmap/sunpc.c.
1230         (grub_fstest_SOURCES): Likewise.
1231         (pkglib_MODULES): Add part_sunpc.mod.
1232         (part_sunpc_mod_SOURCES): New variable.
1233         (part_sunpc_mod_CFLAGS): Likewise.
1234         (part_sunpc_mod_LDFLAGS): Likewise.
1235         * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/sunpc.c.
1236         * partmap/sunpc.c: New file.
1238 2010-03-26  BVK Chaitanya  <bvk@localhost>
1240         For loop support to GRUB script.
1242         * include/grub/script_sh.h (grub_script_cmdfor): New struct.
1243         (grub_script_create_cmdfor): New function prototype.
1244         (grub_script_execute_cmdfor): New function prototype.
1245         * script/execute.c (grub_script_execute_cmdfor): New function.
1246         * script/parser.y (command): New for command.
1247         (forcmd): New grammar rule.
1248         * script/script.c (grub_script_create_cmdfor): New function.
1249         * util/grub-script-check.c (grub_script_execute_cmdfor): New
1250         function.
1251         * tests/grub_script_for1.in: New testcase.
1252         * conf/tests.rmk: Rules for new testcase.
1254 2010-03-26  Vladimir Serbinenko  <phcoder@gmail.com>
1256         Nested partitions
1258         * commands/blocklist.c (grub_cmd_blocklist): Don't check whether
1259         'partition' is NULL, grub_partition_get_start already does that.
1260         * commands/loadenv.c (check_blocklists): Likewise.
1261         (write_blocklists): Likewise.
1262         * conf/common.rmk (grub_probe_SOURCES): Add partmap/bsdlabel.c.
1263         (grub_fstest_SOURCES): Likewise.
1264         (pkglib_MODULES): Add part_bsd.mod.
1265         (part_bsd_mod_SOURCES): New variable.
1266         (part_bsd_mod_CFLAGS): Likewise.
1267         (part_bsd_mod_LDFLAGS): Likewise.
1268         * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/bsdlabel.c.
1269         (grub_emu_SOURCES): Likewise.
1270         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1271         * include/grub/bsdlabel.h: New file.
1272         * include/grub/partition.h (grub_partition_map): Remove 'probe' and
1273         'get_name'.
1274         (grub_partition): Add 'parent' and 'number'. Remove 'data'.
1275         (grub_partition_map_list): New variable.
1276         (grub_partition_map_register): Inline.
1277         (grub_partition_map_unregister): Likewise.
1278         (FOR_PARTITION_MAPS): New macro.
1279         (grub_partition_map_iterate): Removed.
1280         (grub_partition_get_start): Handle nested partitions.
1281         * include/grub/msdos_partition.h: Remove bsd-related entries.
1282         (grub_pc_partition): Remove.
1283         * kern/disk.c (grub_disk_close): Free partition data.
1284         (grub_disk_adjust_range): Handle nested partitions.
1285         * kern/partition.c (grub_partition_map_probe): New function.
1286         (grub_partition_probe): Parse name to number, handle subpartitions.
1287         (get_partmap): New function.
1288         (grub_partition_iterate): Handle subpartitions.
1289         (grub_partition_get_name): Likewise.
1290         * loader/i386/pc/bsd.c (grub_bsd_get_device): Likewise.
1291         * loader/i386/multiboot.c (grub_multiboot_get_bootdev): Likewise.
1292         * loader/i386/pc/chainloader.c (grub_chainloader_cmd): Likewise.
1293         * partmap/acorn.c (acorn_partition_map_iterate): Don't force raw access.
1294         Set 'number'.
1295         (acorn_partition_map_probe): Remove.
1296         (acorn_partition_map_get_name): Likewise.
1297         * partmap/amiga.c (amiga_partition_map_iterate): Don't force raw access.
1298         Set 'number'.
1299         Set 'index' to 0 since there can be only one partition entry per sector.
1300         (amiga_partition_map_probe): Remove.
1301         (amiga_partition_map_get_name): Likewise.
1302         * partmap/apple.c (apple_partition_map_iterate): Don't force raw access.
1303         Set 'number'.
1304         Set 'offset' and 'index' to real positions of partitions.
1305         (apple_partition_map_probe): Remove.
1306         (apple_partition_map_get_name): Likewise.
1307         * partmap/bsdlabel.c: New file.
1308         * partmap/gpt.c (gpt_partition_map_iterate): Don't force raw access.
1309         Set 'number'.
1310         Allocate 'data' so it can be correctly freed.
1311         Set 'index' to offset inside sector.
1312         (gpt_partition_map_probe): Remove.
1313         (gpt_partition_map_get_name): Likewise.
1314         * partmap/msdos.c (grub_partition_parse): Remove.
1315         (pc_partition_map_iterate): Don't force raw access.
1316         Set 'number'.
1317         Make 'ext_offset' a local variable.
1318         (pc_partition_map_probe): Remove.
1319         (pc_partition_map_get_name): Remove.
1320         * partmap/sun.c (sun_partition_map_iterate): Don't force raw access.
1321         Set 'number'.
1322         (sun_partition_map_probe): Remove.
1323         (sun_partition_map_get_name): Likewise.
1324         * parttool/msdospart.c (grub_pcpart_boot): Handle nested partitions.
1325         (grub_pcpart_type): Likewise.
1326         * util/hostdisk.c (open_device): Handle new numbering scheme.
1327         (grub_util_biosdisk_get_grub_dev): Handle nested partitions.
1328         * util/i386/pc/grub-setup.c (setup): Handle new numbering scheme.
1329         * util/grub-probe.c (probe_partmap): Handle nested paritions.
1330         * util/grub-install.in: Insert all subpartition modules.
1331         * util/ieee1275/grub-install.in: Likewise.
1333 2010-03-24  Adrian Glaubitz  <glaubitz@physik.fu-berlin.de>
1335         * kern/dl.c (grub_dl_resolve_symbols): Improve error message
1336         grammar.
1338 2010-03-24  Colin Watson  <cjwatson@ubuntu.com>
1340         * .bzrignore: Add grub-bin2h, grub-reboot, and grub-set-default.
1342 2010-03-21  Colin Watson  <cjwatson@ubuntu.com>
1344         * util/grub-install.in: Copy .mo files from @datadir@/locale, to
1345         match where 'make install' puts them.
1346         * util/i386/efi/grub-install.in: Likewise.
1348 2010-03-19  Colin Watson  <cjwatson@ubuntu.com>
1350         * .bzrignore: Add gentrigtables, grub-script-check,
1351         grub_script_check_init.c, grub_script_check_init.h, and
1352         trigtables.c.
1354 2010-03-18  Vladimir Serbinenko  <phcoder@gmail.com>
1356         * kern/parser.c: Indented.
1358 2010-03-17  Vladimir Serbinenko  <phcoder@gmail.com>
1360         * term/i386/pc/vesafb.c: Removed (orphaned, deprecated and broken).
1362 2010-03-17  Vladimir Serbinenko  <phcoder@gmail.com>
1364         * video/fb/fbblit.c (grub_video_fbblit_blend_XXXA8888_1bit): Handle
1365         alpha_mask_size == 0 case.
1367 2010-03-14  BVK Chaitanya  <bvk.groups@gmail.com>
1369         GRUB shell lexer and parser improvements.
1371         * conf/any-emu.rmk: Build rule updates.
1372         * conf/common.rmk: Likewise.
1373         * conf/i386-coreboot.rmk: Likewise.
1374         * conf/i386-efi.rmk: Likewise.
1375         * conf/i386-ieee1275.rmk: Likewise.
1376         * conf/i386-pc.rmk: Likewise.
1377         * conf/powerpc-ieee1275.rmk: Likewise.
1378         * conf/x86_64-efi.rmk: Likewise.
1380         * configure.ac: Configure check for flex.
1382         * include/grub/script_sh.h (grub_script_arg_type_t): More argument
1383         types.
1384         (grub_lexer_param): Struct member updates.
1385         (grub_parser_param): Likewise.
1386         (GRUB_LEXER_TOKEN_MAX): Maximum token size.
1387         (GRUB_LEXER_RECORD_INCREMENT): Memory increments' size.
1388         (grub_script_lexer_init): Prototype update.
1389         (grub_script_lexer_record_start): Likewise.
1390         (grub_script_lexer_record_stop): Likewise.
1391         (grub_script_lexer_yywrap): New function prototype.
1392         (grub_script_lexer_fini): Likewise.
1393         (grub_script_execute_argument_to_string): Removed by...
1394         (grub_script_execute_argument_to_argv): ...better version.
1396         * script/execute.c (ROUND_UPTO): New macro.
1397         (grub_script_execute_cmdline): Out of memory fixes.
1398         (grub_script_execute_menuentry): Likewise.
1399         (grub_script_execute_argument_to_string): Removed. Update all
1400         users by...
1401         (grub_script_execute_argument_to_argv): ...better version.
1402         * script/function.c (grub_script_function_create): Use
1403         grub_script_execute_argument_to_argv instead of
1404         grub_script_execute_argument_to_string.
1406         * script/lexer.c (check_varstate): Removed.
1407         (check_textstate): Removed.
1408         (grub_script_lexer_record_start): Likewise.
1409         (grub_script_lexer_record_stop): Likewise.
1410         (recordchar): Replaced with...
1411         (grub_script_lexer_record): ...new function.
1412         (nextchar): Removed.
1413         (grub_script_lexer_init): Rewritten.
1414         (grub_script_yylex): Rewritten.
1415         (append_newline): New function.
1416         (grub_script_lexer_yywrap): New function.
1417         (grub_script_lexer_fini): New function.
1418         (grub_script_yyerror): Sets error flag.
1420         * script/yylex.l: New file.
1421         (grub_lexer_yyfree): Wrapper for flex yyffre.
1422         (grub_lexer_yyalloc): Likewise.
1423         (grub_lexer_yyrealloc): Likewise.
1424         * script/parser.y: Refactored.
1426         * script/script.c (grub_script_arg_add): Out of memory fixes.
1427         (grub_script_add_arglist): Likewise.
1428         (grub_script_create_cmdline): Likewise.
1429         (grub_script_create_cmdmenu): Likewise.
1430         (grub_script_add_cmd): Likewise.
1431         (grub_script_parse): Use grub_script_lexer_fini to deallocated.
1432         * util/grub-script-check.c (grub_script_execute_menuentry): Remove
1433         unnecessary code.
1435         * tests/grub_script_echo1.in: New testcase.
1436         * tests/grub_script_vars1.in: New testcase.
1437         * tests/grub_script_echo_keywords.in: New testcase.
1439 2010-03-14  Vladimir Serbinenko  <phcoder@gmail.com>
1441         Remove some redundancy in build system.
1443         * Makefile.in (TARGET_CFLAGS): Add -ffreestanding.
1444         (TARGET_ASFLAGS): Add -nostdinc -fno-builtin.
1445         (TARGET_LDFLAGS): Add -nostdlib.
1446         (TARGET_IMG_LDFLAGS): Likewise.
1447         * commands/lsmmap.c (grub_cmd_lsmmap) [GRUB_MACHINE_EMU]: Don't do
1448         anything since mmap isn't available.
1449         * conf/any-emu.rmk (kernel_img_SOURCES): Remove commands/boot.c.
1450         Add util/time.c.
1451         (pkglib_MODULES): Remove reboot.mod.
1452         (reboot_mod_SOURCES): Removed.
1453         (reboot_mod_CFLAGS): Likewise.
1454         (reboot_mod_LDFLAGS): Likewise.
1455         * conf/common.rmk (script/lexer.c_DEPENDENCIES): New variable.
1456         (MOSTLYCLEANFILES): Add symlist.c kernel_syms.lst.
1457         (DEFSYMFILES): Add kernel_syms.lst.
1458         (kernel_img_HEADERS): Add common headers.
1459         (symlist.c): New target.
1460         (kernel_syms.lst): Likewise.
1461         (pkglib_MODULES): Add memdisk.mod.
1462         (memdisk_mod_SOURCES): New variable.
1463         (memdisk_mod_CFLAGS): Likewise.
1464         (memdisk_mod_LDFLAGS): Likewise.
1465         (pkglib_MODULES): Add reboot.mod.
1466         (reboot_mod_SOURCES): New variable.
1467         (reboot_mod_CFLAGS): Likewise.
1468         (reboot_mod_LDFLAGS): Likewise.
1469         (pkglib_MODULES): Add date.mod.
1470         (date_mod_SOURCES): New variable.
1471         (date_mod_CFLAGS): Likewise.
1472         (date_mod_LDFLAGS): Likewise.
1473         (pkglib_MODULES): Add datehook.mod.
1474         (datehook_mod_SOURCES): New variable.
1475         (datehook_mod_CFLAGS): Likewise.
1476         (datehook_mod_LDFLAGS): Likewise.
1477         (pkglib_MODULES): Add lsmmap.mod.
1478         (lsmmap_mod_SOURCES): New variable.
1479         (lsmmap_mod_CFLAGS): Likewise.
1480         (lsmmap_mod_LDFLAGS): Likewise.
1481         (pkglib_MODULES): Add boot.mod.
1482         (boot_mod_SOURCES): New variable.
1483         (boot_mod_CFLAGS): Likewise.
1484         (boot_mod_LDFLAGS): Likewise.
1485         * conf/i386-coreboot.rmk: Removed redundant parts.
1486         * conf/i386-ieee1275.rmk: Likewise.
1487         * conf/i386-pc.rmk: Likewise.
1488         * conf/mips-yeeloong.rmk: Likewise.
1489         * conf/mips.rmk: Likewise.
1490         * conf/powerpc-ieee1275.rmk: Likewise.
1491         * conf/sparc64-ieee1275.rmk: Likewise.
1492         * conf/x86_64-efi.rmk: Likewise.
1493         * conf/i386-coreboot.rmk: Moved qemu parts ..
1494         * conf/i386-qemu.rmk: ... here
1495         * conf/i386-efi.rmk: Moved common parts to...
1496         * conf/x86-efi.rmk: ... here.
1497         * conf/i386.rmk: Added modules common to all x86 variants.
1498         * configure.ac: Add -m32/-m64 to TARGET_ASFLAGS.
1499         * disk/memdisk.c: Remove grub/machine/kernel.h.
1500         * gensymlist.sh.in: Include symbol.h.
1501         * hook/datehook.c: Correct module name.
1502         * include/grub/datetime.h (grub_get_datetime) [GRUB_MACHINE_EMU]: Export.
1503         (grub_set_datetime) [GRUB_MACHINE_EMU]: Likewise.
1504         * include/grub/i386/efi/serial.h: New file.
1505         * include/grub/x86_64/efi/serial.h: Likewise.
1506         * util/time.c: Likewise.
1507         * video/ieee1275.c (grub_video_ieee1275_setup): Handle 64-bit void *.
1509 2010-03-14  Colin King  <colin.king@ubuntu.com>
1510 2010-03-14  Colin Watson  <cjwatson@ubuntu.com>
1512         Shrink the pre-partition-table part of boot.img by eight bytes.
1514         * boot/i386/pc/boot.S (ERR): New macro.
1515         (chs_mode): Use ERR.
1516         (geometry_error): Likewise.
1517         (hd_probe_error): Remove.  This is only used once, so we wrwite
1518         it inline instead.
1519         (read_error): Instead of printing read_error_string, just set up
1520         %si and fall through to ...
1521         (error_message): ... this new function, also used by ERR.
1523 2010-03-14  Colin Watson  <cjwatson@ubuntu.com>
1525         Speed up consecutive hostdisk operations on the same device.
1527         * util/hostdisk.c (struct grub_util_biosdisk_data): New structure.
1528         (grub_util_biosdisk_open): Initialise disk->data.
1529         (struct linux_partition_cache): New structure.
1530         (linux_find_partition): Cache partition start positions; these are
1531         expensive to compute on every read and write.
1532         (open_device): Cache open file descriptor in disk->data, so that we
1533         don't have to reopen it and flush the buffer cache for consecutive
1534         operations on the same device.
1535         (grub_util_biosdisk_close): New function.
1536         (grub_util_biosdisk_dev): Set `close' member.
1538         * conf/common.rmk (grub_probe_SOURCES): Add kern/list.c.
1539         * conf/i386-efi.rmk (grub_setup_SOURCES): Likewise.
1540         * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
1541         * conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Likewise.
1542         * conf/x86_64-efi.rmk (grub_setup_SOURCES): Likewise.
1544 2010-03-14  Vladimir Serbinenko  <phcoder@gmail.com>
1546         Compile parts of grub-emu as modules.
1548         * Makefile.in (TARGET_CPPFLAGS) [emu]: Remove -nostdinc -isystem.
1549         (pkglib_DATA) [emu]: Remove moddep.lst command.lst fs.lst
1550         partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst.
1551         (all-local): Add $(GRUB_EMU).
1552         (install-local): Install $(GRUB_EMU).
1553         (uninstall): Uninstall $(GRUB_EMU).
1554         * commands/parttool.c: Replace GRUB_UTIL with GRUB_NO_MODULES.
1555         * kern/dl.c: Likewise.
1556         * commands/sleep.c: Not include machine/time.h.
1557         * conf/any-emu.rmk (COMMON_LDFLAGS): New variable.
1558         (COMMON_CFLAGS): Likewise.
1559         (sbin_UTILITIES): Remove grub-emu.
1560         (grub_emu_SOURCES): Removed.
1561         (kernel_img_RELOCATABLE): New variable.
1562         (pkglib_PROGRAMS): Add kernel.img.
1563         (kernel_img_SOURCES): New variable
1564         (kernel_img_CFLAGS): Likewise.
1565         (kernel_img_LDFLAGS): Likewise.
1566         (TARGET_NO_STRIP): Likewise.
1567         (TARGET_NO_DYNAMIC_MODULES): Likewise.
1568         (pkglib_MODULES): Add progname.mod, hostfs.mod, host.mod, reboot.mod,
1569         halt.mod, cpuid.mod, usb.mod, sdl.mod and pci.mod.
1570         (grub-emu): New target.
1571         (GRUB_EMU): New variable.
1572         * configure.ac: Whitelist -emu as possible x86_64 architecture.
1573         * efiemu/main.c: Replace GRUB_UTIL with GRUB_MACHINE_EMU.
1574         * loader/xnu.c: Likewise.
1575         * include/grub/pci.h: Likewise.
1576         * genemuinit.sh: New file.
1577         * genemuinitheader.sh: Likewise.
1578         * genmk.rb: Don't strip if TARGET_NO_STRIP is yes.
1579         Support TARGET_NO_DYNAMIC_MODULES.
1580         * include/grub/dl.h (GRUB_NO_MODULES): New variable.
1581         * commands/search.c: Fix GRUB_MOD_INIT and GRUB_MOD_FINI arguments.
1582         * disk/loopback.c: Likewise.
1583         * font/font_cmd.c: Likewise.
1584         * partmap/acorn.c: Likewise.
1585         * partmap/amiga.c: Likewise.
1586         * partmap/apple.c: Likewise.
1587         * partmap/gpt.c: Likewise.
1588         * partmap/msdos.c: Likewise.
1589         * partmap/sun.c: Likewise.
1590         * parttool/msdospart.c: Likewise.
1591         * term/gfxterm.c: Likewise.
1592         * video/bitmap.c: Likewise.
1593         * video/readers/jpeg.c: Likewise.
1594         * video/readers/png.c: Likewise.
1595         * video/readers/tga.c: Likewise.
1596         * video/video.c: Likewise.
1597         * util/grub-emu.c (read_command_list): Removed.
1598         (main): Don't call util_init_nls.
1599         * util/misc.c (grub_err_printf) [!GRUB_UTIL]: Removed.
1600         (grub_util_init_nls) [!GRUB_UTIL]: Likewise.
1602 2010-03-14  Vladimir Serbinenko  <phcoder@gmail.com>
1604         * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add datetime.mod,
1605         date.mod, datehook.mod.
1606         (datetime_mod_SOURCES): New variable.
1607         (datetime_mod_CFLAGS): Likewise.
1608         (datetime_mod_LDFLAGS): Likewise.
1609         (date_mod_SOURCES): Likewise.
1610         (date_mod_CFLAGS): Likewise.
1611         (date_mod_LDFLAGS): Likewise.
1612         (datehook_mod_SOURCES): Likewise.
1613         (datehook_mod_CFLAGS): Likewise.
1614         (datehook_mod_LDFLAGS): Likewise.
1615         * conf/sparc64-ieee1275.rmk: Likewise.
1616         * lib/ieee1275/datetime.c: New file.
1618 2010-03-14  Vladimir Serbinenko  <phcoder@gmail.com>
1620         * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add ieee1275_fb.mod.
1621         (ieee1275_fb_mod_SOURCES): New variable.
1622         (ieee1275_fb_mod_CFLAGS): Likewise.
1623         (ieee1275_fb_mod_LDFLAGS): Likewise.
1624         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_devices_iterate):
1625         New proto.
1626         * kern/ieee1275/init.c (HEAP_MAX_SIZE): Increased.
1627         (HEAP_MAX_ADDR): Likewise.
1628         * kern/ieee1275/openfw.c (grub_children_iterate): Don't skip empty
1629         type.
1630         Correct stop condition.
1631         (grub_ieee1275_devices_iterate): New function.
1632         * video/ieee1275.c: New file.
1634 2010-03-14  Vladimir Serbinenko  <phcoder@gmail.com>
1636         Merge sparc grub-mkimage into generic grub-mkimage and a.out support.
1638         * boot/sparc64/ieee1275/boot.S (boot_continue): Use SCRATCH_PAD_BOOT
1639         as scratch.
1640         * boot/sparc64/ieee1275/diskboot.S (after_info_block): Use
1641         SCRATCH_PAD_DISKBOOT as scratch.
1642         (bootit): Pass Openfirmware pointer in %o4.
1643         * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link at 0x4400 instead
1644         of 0x200000.
1645         (grub_mkimage_SOURCES): Replace util/sparc64/ieee1275/grub-mkimage.c
1646         with util/grub-mkrawimage.c.
1647         * configure.ac: Handle GRUB_MACHINE_SPARC64 and GRUB_MACHINE_MIPS.
1648         * include/grub/aout.h (AOUT_MID_SUN): New definition.
1649         (grub_aout_get_type) [GRUB_UTIL]: Removed.
1650         (grub_aout_load) [GRUB_UTIL]: Likewise.
1651         * include/grub/kernel.h (grub_modules_get_end): New proto.
1652         * include/grub/sparc64/ieee1275/boot.h (SCRATCH_PAD): Removed.
1653         (SCRATCH_PAD_BOOT): New definition.
1654         (SCRATCH_PAD_DISKBOOT): Likewise.
1655         (GRUB_BOOT_MACHINE_IMAGE_ADDRESS): Set to 0x4400.
1656         * include/grub/sparc64/ieee1275/ieee1275.h
1657         (grub_ieee1275_original_stack): New variable
1658         * include/grub/sparc64/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
1659         New definition
1660         (GRUB_KERNEL_MACHINE_STACK_SIZE): Likewise.
1661         (GRUB_PLATFORM_IMAGE_FORMATS): Likewise.
1662         (GRUB_PLATFORM_IMAGE_DEFAULT_FORMAT): Likewise.
1663         (GRUB_PLATFORM_IMAGE_DEFAULT): Likewise.
1664         (GRUB_PLATFORM_IMAGE_RAW): Likewise.
1665         (GRUB_PLATFORM_IMAGE_AOUT): Likewise.
1666         (grub_platform_image_format_t): New type.
1667         * kern/mips/yeeloong/init.c (grub_modules_get_end): Move from here ...
1668         * kern/main.c (grub_modules_get_end)
1669         [GRUB_MACHINE_MIPS_YEELOONG || GRUB_MACHINE_SPARC64]: ... here.
1670         * kern/sparc64/ieee1275/crt0.S: Store firmware entry point in %o0.
1671         (codestart): Switch stacks.
1672         * kern/sparc64/ieee1275/init.c (grub_ieee1275_original_stack): New
1673         variable.
1674         (grub_heap_init): Use grub_modules_get_end.
1675         * loader/sparc64/ieee1275/linux.c (grub_linux_boot): Restore original
1676         stack.
1677         * util/grub-mkrawimage.c (generate_image): Support sparc64.
1678         (main): Likewise.
1679         * util/sparc64/ieee1275/grub-mkimage.c: Removed.
1681 2010-03-14  Thorsten Glaser <tg@mirbsd.org>
1683         * util/grub-mkrescue.in: Base ISO UUID on UTC.
1685 2010-03-08  Matt Kraai  <kraai@ftbfs.org>
1687         * util/i386/pc/grub-setup.c (setup): Fix a grammatical error (Debian
1688         bug #559005).
1690 2010-03-07  Vladimir Serbinenko  <phcoder@gmail.com>
1692         * genmoddep.awk: Output all missing symbols and not only first.
1694 2010-03-06  Vladimir Serbinenko  <phcoder@gmail.com>
1696         * NEWS: Put the date of 1.98 release.
1698 2010-03-06  Vladimir Serbinenko  <phcoder@gmail.com>
1700         * configure.ac: Update CPPFLAGS and not CFLAGS when checking for
1701         ft2build.h.
1703 2010-03-06  Vladimir Serbinenko  <phcoder@gmail.com>
1705         * normal/cmdline.c (grub_cmdline_get): Fix gabled line after
1706         completition in the middle of string.
1708 2010-03-06  Vladimir Serbinenko  <phcoder@gmail.com>
1710         * util/grub-mkrescue.in: Use mktemp with explicit template.
1712 2010-03-06  Vladimir Serbinenko  <phcoder@gmail.com>
1714         * loader/i386/bsd.c (grub_bsd_get_device): Fix a memory leak.
1716 2010-03-06  Vladimir Serbinenko  <phcoder@gmail.com>
1718         * loader/i386/multiboot_mbi.c (grub_multiboot_set_bootdev): Free the
1719         right pointer.
1721 2010-03-05  Vladimir Serbinenko  <phcoder@gmail.com>
1723         Fix FreeBSD compilation.
1725         * Makefile.in (TARGET_CPPFLAGS): Remove -nostdinc -isystem.
1726         * configure.ac: Add -nostdinc -isystem to TARGET_CPPFLAGS if it works.
1728 2010-03-05  Vladimir Serbinenko  <phcoder@gmail.com>
1730         * util/import_gcry.py: Add autogenerated files to MAINTAINER_CLEANFILES.
1732 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1734         * gettext/gettext.c (grub_gettext_init_ext): Fix a memory leak.
1736 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1738         * disk/scsi.c (grub_scsi_iterate): Fix a memory leak.
1740 2010-03-04  Robert Millan  <rmh.grub@aybabtu.com>
1742         Support relative image path in theme file.
1744         * gfxmenu/gui_image.c (grub_gui_image): New member theme_dir.
1745         (image_set_property): Handle theme_dir and relative path.
1747 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1749         * configure.ac: Alias amd64 to x86_64.
1751 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1753         * NEWS: mention multiboot on EFI.
1755 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1757         * kern/main.c (grub_load_modules): Handle errors from init functions of
1758         embeded modules.
1760 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1762         * normal/autofs.c (autoload_fs_module): Handle errors.
1764 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1766         Disable linux.mod on qemu-mips since it's not functional and leads
1767         to compilation failure.
1769         * conf/mips.rmk (pkglib_MODULES): Remove linux.mod.
1770         * conf/mips-yeeloong.rmk (pkglib_MODULES): Add linux.mod.
1771         * conf/mips.rmk (linux_mod_SOURCES): Move from here ...
1772         * conf/mips-yeeloong.rmk (linux_mod_SOURCES): ... here
1773         * conf/mips.rmk (linux_mod_CFLAGS): Move from here ...
1774         * conf/mips-yeeloong.rmk (linux_mod_CFLAGS): ... here
1775         * conf/mips.rmk (linux_mod_ASFLAGS): Move from here ...
1776         * conf/mips-yeeloong.rmk (linux_mod_ASFLAGS): ... here
1777         * conf/mips.rmk (linux_mod_LDFLAGS): Move from here ...
1778         * conf/mips-yeeloong.rmk (linux_mod_LDFLAGS): ... here
1779         Reported by: BVK Chaitanya
1781 2010-03-04  Jordan Uggla  <jordan.uggla@gmail.com>
1783         * INSTALL: Add gettext as a dependency and add qemu to a new section
1784         "Prerequisites for make-check".
1786 2010-03-04  Christian Franke  <franke@computer.org>
1788         * util/grub-pe2elf.c: Add missing include "progname.h".
1790 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1792         * normal/crypto.c (read_crypto_list): Fix a typo.
1793         Reported by: Seth Goldberg.
1795 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1797         * Makefile.in (DISTCLEANFILES): Add stamp-h1.
1798         Reported by: Seth Goldberg.
1800 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1802         * Makefile.in (CLEANFILES) [FONT_SOURCE && grub_mkfont]: Add
1803         ascii.bitmaps.
1805 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1807         * genmk.rb: Remove terminal*.lst in make clean.
1808         Reported by: Seth Goldberg.
1810 2010-03-04  Vladimir Serbinenko  <phcoder@gmail.com>
1812         * util/i386/efi/grub-install.in: Copy gettext files.
1814 2010-03-01  Vladimir Serbinenko  <phcoder@gmail.com>
1816         * fs/ext2.c (grub_ext2_read_block): Fix an integer overflow.
1818 2010-03-01  Vladimir Serbinenko  <phcoder@gmail.com>
1820         Wait for user entry basing on presence of output rather than on errors.
1822         * include/grub/normal.h (grub_normal_get_line_counter): New proto.
1823         (grub_install_newline_hook): Likewise.
1824         * normal/main.c (GRUB_MOD_INIT): Call grub_install_newline_hook.
1825         * normal/menu.c (show_menu): Check line_counter to determine presence
1826         of output.
1827         * normal/term.c (grub_normal_line_counter): New variable.
1828         (grub_normal_get_line_counter): New function.
1829         (grub_install_newline_hook): Likewise.
1831 2010-03-01  Vladimir Serbinenko  <phcoder@gmail.com>
1833         * commands/cat.c (grub_cmd_cat): Propagate grub_gzfile_open error.
1835 2010-03-01  Vladimir Serbinenko  <phcoder@gmail.com>
1837         * configure.ac: Update version to 1.98.
1839 2010-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
1841         * util/grub.d/10_linux.in (linux_entry): Don't default to
1842         gfxpayload=keep if Linux doesn't support video handover.
1844 2010-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
1846         Don't compile video modules on yeeloong since video subsystem is part
1847         of kernel.
1849         * conf/common.rmk (pkglib_MODULES) [yeeloong]: Remove video.mod,
1850         video_fb.mod, bitmap.mod, font.mod, gfxterm.mod and bufio.mod
1851         * conf/mips-yeeloong.rmk (kernel_img_HEADERS): Add bitmap.h,
1852         video.h, gfxterm.h, font.h, bitmap_scale.h and bufio.h.
1853         * conf/mips.rmk (kernel_img_HEADERS): Add values instead of overwriting.
1854         * include/grub/bitmap.h: Add EXPORT_FUNC and EXPORT_VAR.
1855         * include/grub/bitmap_scale.h: Likewise.
1856         * include/grub/bufio.h: Likewise.
1857         * include/grub/font.h: Likewise.
1858         * include/grub/gfxterm.h: Likewise.
1859         * include/grub/video.h: Likewise.
1860         * include/grub/vbe.h: Don't include video_fb.h.
1861         * video/i386/pc/vbe.c: Include video_fb.h.
1862         * commands/i386/pc/vbetest.c: Include video.h.
1864 2010-02-25  Jordan Uggla  <jordan.uggla@gmail.com>
1866         * util/grub-mkconfig.in (GRUB_SAVEDEFAULT): Export new variable.
1867         * util/grub-mkconfig_lib.in (save_default_entry): Only save a new
1868         default entry if GRUB_SAVEDEFAULT=true.  This allows using
1869         GRUB_DEFAULT=saved on its own to let grub-reboot work, without
1870         saving a new default on every boot.
1872 2010-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
1874         * normal/crypto.c (read_crypto_list): Fix a memory leak.
1875         * normal/term.c (read_terminal_list): Likewise.
1876         * normal/main.c (grub_normal_init_page): Likewise.
1877         (grub_normal_read_line_real): Likewise.
1879 2010-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
1881         * loader/i386/multiboot_mbi.c (grub_multiboot_set_bootdev): Fix a
1882         memory leak.
1883         Reported by: Seth Goldberg.
1885 2010-02-24  Joey Korkames  <joey+lists@kidfixit.com>
1887         * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Remove
1888         duplicate declaration of `start'.
1890 2010-02-20  Vladimir Serbinenko  <phcoder@gmail.com>
1892         * fs/iso9660.c (grub_iso9660_iterate_dir): Strip version from joliet
1893         filename.
1894         Reported by: Georgy Buranov
1896 2010-02-20  Carles Pina i Estany  <carles@pina.cat>
1898         * util/grub-mkrawimage.c (usage): Change string formatting to
1899         improve gettext.
1901 2010-02-20  Manoel Rebelo Abranches <mrabran@br.ibm.com>
1903         * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Add delete and
1904         backspace keys.
1906 2010-02-20  Vladimir Serbinenko  <phcoder@gmail.com>
1908         * video/fb/video_fb.c (grub_video_fb_scroll): Fix a pixel size bug.
1909         Reported by: Michael Suchanek.
1911 2010-02-18  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1913         * util/grub-mkconfig.in: Export GRUB_INIT_TUNE.
1914         * util/grub.d/00_header.in: Handle GRUB_INIT_TUNE.
1916 2010-02-16  Vladimir Serbinenko  <phcoder@gmail.com>
1918         Remove any reference to non-free fonts.
1920         * commands/videotest.c (grub_cmd_videotest): Use unifont by default.
1921         * docs/gfxmenu-theme-example.txt: Removed. It's both outdated and
1922         uses non-free components.
1923         * font/font.c (grub_font_get_name): Remove example name.
1924         * gfxmenu/gui_label.c (grub_gui_label_new): Use unifont by default.
1925         * gfxmenu/gui_list.c (grub_gui_list_new): Likewise.
1926         * gfxmenu/gui_progress_bar.c (grub_gui_progress_bar_new): Likewise.
1927         * gfxmenu/view.c (grub_gfxmenu_view_new): Likewise.
1929 2010-02-16  Georgy Buranov <gburanov@gmail.com>
1931         * disk/efi/efidisk.c (grub_efidisk_get_device_name): Fix a typo.
1933 2010-02-15  Vladimir Serbinenko  <phcoder@gmail.com>
1935         * term/serial.c (serial_get_divisor) [GRUB_MACHINE_MIPS_YEELOONG]:
1936         Double divisor.
1937         (serial_hw_init) [GRUB_MACHINE_MIPS_YEELOONG]: Don't enable advanced
1938         features.
1939         (GRUB_MOD_INIT) [GRUB_MACHINE_MIPS_YEELOONG]: Default to 115200.
1941 2010-02-15  Vladimir Serbinenko  <phcoder@gmail.com>
1943         * gensymlist.sh.in: Use TARGET_CC instead of CC.
1945 2010-02-14  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1947         * commands/i386/pc/play.c (GRUB_MOD_INIT(play)): Fix help.
1948         * docs/grub.texi (Command-line and menu entry commands): Document play
1949         command.
1951 2010-02-14  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1953         * commands/i386/pc/play.c (grub_cmd_play): If grub_file_open fails,
1954         parse arguments as inline tempo and notes.  Move code for playing notes
1955         to...
1956         (play): ... new function.
1958 2010-02-14  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1960         * commands/i386/pc/play.c (T_REST, T_FINE, struct note, beep_on): Use
1961         grub_uint16_t instead of short.
1962         (grub_cmd_play): Use grub_uint32_t instead of int, convert data from
1963         disk from little endian to cpu endianness.
1965 2010-02-07  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1967         * commands/i386/pc/play.c (BASE_TEMPO): Set to 60 *
1968         GRUB_TICKS_PER_SECOND instead of 120.
1970 2010-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
1972         * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Wait for possible
1973         escape sequence after \e.
1975 2010-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
1977         * term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Don't output
1978         non-ASCII characters.
1980 2010-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
1982         * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Enclose
1983         set root in single quotes to prevent \, from being unescaped.
1985 2010-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
1987         Prevent unknown commands from stopping menuentry execution.
1989         * script/execute.c (grub_script_execute_cmdline): Print error after
1990         unknown command.
1992 2010-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
1994         * fs/i386/pc/pxe.c (GRUB_MOD_INIT): Fix typo.
1995         Reported by: Pavel Pisa.
1997 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
1999         * io/gzio.c (grub_gzio_open): Use grub_zalloc.
2001 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2003         Merge grub_ieee1275_map_physical into grub_map and rename to
2004         grub_ieee1275_map
2006         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_map): New proto.
2007         * include/grub/sparc64/ieee1275/ieee1275.h (grub_ieee1275_map_physical):
2008         Remove.
2009         * kern/ieee1275/openfw.c (grub_map): Rename to ...
2010         (grub_ieee1275_map): ... this. All users updated. Add phys_lo when
2011         necessary.
2012         * kern/sparc64/ieee1275/ieee1275.c (grub_ieee1275_map_physical): Remove.
2014 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2016         * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Check device type before
2017         opening and not after.
2019 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2021         * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Macroify
2022         constants.
2024 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2026         * loader/sparc64/ieee1275/linux.c (align_addr): Remove.
2027         (alloc_phys): Use ALIGN_UP instead of align_addr.
2029 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2031         * loader/sparc64/ieee1275/linux.c (alloc_phys): Correct bounds checking.
2033 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2035         * kern/sparc64/ieee1275/crt0.S (codestart): Move modules backwards.
2037 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2039         * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Remove excessively
2040         verbose dprintf.
2042 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2044         Fix over-4GiB seek on sparc64.
2046         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_seek):
2047         Replace pos_i and pos_lo with pos. All users updated.
2048         * include/grub/powerpc/ieee1275/ieee1275.h (GRUB_IEEE1275_CELL_SIZEOF):
2049         New constant.
2050         * include/grub/sparc64/ieee1275/ieee1275.h (GRUB_IEEE1275_CELL_SIZEOF):
2051         Likewise.
2052         * kern/ieee1275/ieee1275.c (grub_ieee1275_seek): Split pos into pos_hi
2053         and pos_lo.
2055 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2057         * util/grub-mkrawimage.c (main): Call set_program_name.
2059 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2061         Properly align 64-bit targets.
2063         * util/grub-mkrawimage.c (ALIGN_ADDR): New macro.
2064         (generate_image): Use ALIGN_ADDR.
2066 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2068         Properly create cross-endian images.
2070         * include/grub/types.h (grub_host_to_target_addr): New macro
2071         * util/grub-mkrawimage.c (generate_image): Add missing host_to_target.
2073 2010-02-13  Vladimir Serbinenko  <phcoder@gmail.com>
2075         * util/grub-mkrawimage.c (generate_image): Add forgotten ALIGN_UP.
2077 2010-02-10  Vladimir Serbinenko  <phcoder@gmail.com>
2079         Pass SIMPLE framebuffer size in bytes and not 64K blocks.
2081         * loader/i386/efi/linux.c (grub_linux_setup_video): Don't divide by 64K.
2082         * loader/i386/linux.c (grub_linux_setup_video): Likewise.
2083         (grub_linux_boot): Divide by 64K when on VESA.
2085 2010-02-10  Vladimir Serbinenko  <phcoder@gmail.com>
2087         Support GRUB_GFXPAYLOAD_LINUX.
2089         * util/grub-mkconfig.in: Export GRUB_GFXPAYLOAD_LINUX.
2090         * util/grub.d/10_linux.in (linux_entry): Handle GRUB_GFXPAYLOAD_LINUX.
2092 2010-02-10  Vladimir Serbinenko  <phcoder@gmail.com>
2094         * script/execute.c (grub_script_execute_cmdline): Use grub_print_error
2095         to show messages instead of discarding them.
2096         Process errors after executing command and not before. Keep old method
2097         too as precaution.
2099 2010-02-09  Vladimir Serbinenko  <phcoder@gmail.com>
2101         * configure.ac: Check for ft2build.h.
2103 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2105         * kern/ieee1275/openfw.c (grub_halt): Try executing "poweroff".
2107 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2109         * genkernsyms.sh.in: Use TARGET_CC.
2111 2010-02-07  Colin Watson  <cjwatson@ubuntu.com>
2113         * NEWS: Update.
2115 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2117         * include/grub/multiboot2.h: Remove leftover file.
2118         * include/grub/normal.h [GRUB_UTIL]: Remove leftover declarations.
2119         * include/grub/partition.h [GRUB_UTIL]: Likewise.
2121 2010-02-07  Yves Blusseau  <blusseau@zetam.org>
2123         * gnulib/getdelim.c: add missing header (type ssize_t must be defined).
2125 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2127         Fix warnings in grub-emu when compiling with maximum warning options.
2129         * util/grub-emu.c (ENABLE_RELOCATABLE): New definition.
2130         (grub_arch_modules_addr): Return 0 and not NULL.
2131         * util/misc.c (ENABLE_RELOCATABLE): New definition.
2132         (xstrdup): Use newstr instead of dup.
2133         * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Rename one instance
2134         of disk to dsk to avoid shadowing.
2135         (find_free_slot): Fix prototype.
2136         * util/getroot.c (grub_util_is_dmraid): Make static.
2137         * include/grub/time.h (grub_get_rtc) [GRUB_MACHINE_EMU || GRUB_UTIL]:
2138         Add missing prototype.
2139         * util/sdl.c (grub_video_sdl_set_viewport): Remove.
2141 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2143         * loader/i386/linux.c (grub_linux_setup_video): Handle error
2144         appropriately.
2146 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2148         * fs/reiserfs.c (grub_reiserfs_read): Use #if 0 instead of commenting
2149         code out.
2151 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2153         * include/grub/cache.h (grub_arch_sync_caches) [i386 || x86_64]: Inline.
2154         * kern/i386/coreboot/init.c (grub_arch_sync_caches): Remove.
2155         * kern/i386/efi/init.c (grub_arch_sync_caches): Likewise.
2156         * kern/i386/ieee1275/init.c (grub_arch_sync_caches): Likewise.
2157         * kern/i386/pc/init.c (grub_arch_sync_caches): Likewise.
2158         * util/misc.c (grub_arch_sync_caches) [i386 || x86_64]: Likewise.
2160 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2162         * include/grub/err.h (grub_err_printf): Don't export.
2164 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2166         * include/grub/dl.h (grub_dl_register_symbol): Don't export.
2168 2010-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
2170         * include/grub/i18n.h (grub_gettext_dummy): Removed.
2171         * kern/misc.c (grub_gettext_dummy): Make static.
2173 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2175         * kern/misc.c (grub_utf8_to_ucs4): Don't eat valid characters preceeded
2176         by non-valid ones.
2177         * kern/term.c (grub_putchar): Likewise.
2179 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2181         * partmap/sun.c (sun_partition_map_iterate): Restructure flow to fix
2182         buggy hook call and memory leak.
2184 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2186         * commands/ls.c (grub_ls_list_files): Free pathname on exit.
2188 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2190         * fs/fat.c (grub_fat_iterate_dir): Free unibuf at exit.
2192 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2194         * loader/i386/pc/xnu.c (grub_xnu_set_video): Add const qualifier to
2195         modevar.
2196         Return grub_errno on allocation error.
2198 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2200         * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Correct error handling.
2202 2010-02-06  Yves Blusseau  <blusseau@zetam.org>
2204         * conf/common.rmk (grub_script_check_SOURCES): add missing dependencies.
2205         (grub_mkpasswd_pbkdf2_SOURCES): Likewise.
2207 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2209         * fs/i386/pc/pxe.c (grub_pxefs_dir): Return with failure on
2210         non-pxe disk.
2211         (grub_pxefs_open): Likewise.
2213 2010-02-06  Robert Millan  <rmh.grub@aybabtu.com>
2215         * util/grub.d/10_hurd.in: Add --class information to menuentries.
2216         * util/grub.d/10_kfreebsd.in: Likewise.
2217         * util/grub.d/10_linux.in: Likewise.
2219 2010-02-06  Colin D Bennett  <colin@gibibit.com>
2221         * conf/common.rmk (pkglib_MODULES): Add gfxmenu.mod.
2222         (gfxmenu_mod_SOURCES): New variable.
2223         (gfxmenu_mod_CFLAGS): Likewise.
2224         (gfxmenu_mod_LDFLAGS): Likewise.
2225         * include/grub/term.h (grub_term_set_current_output): Declare
2226         argument as const.
2227         * docs/gfxmenu-theme-example.txt: New file.
2228         * gfxmenu/gfxmenu.c: Likewise.
2229         * gfxmenu/gui_box.c: Likewise.
2230         * gfxmenu/gui_canvas.c: Likewise.
2231         * gfxmenu/gui_circular_progress.c: Likewise.
2232         * gfxmenu/gui_image.c: Likewise.
2233         * gfxmenu/gui_label.c: Likewise.
2234         * gfxmenu/gui_list.c: Likewise.
2235         * gfxmenu/gui_progress_bar.c: Likewise.
2236         * gfxmenu/gui_string_util.c: Likewise.
2237         * gfxmenu/gui_util.c: Likewise.
2238         * gfxmenu/icon_manager.c: Likewise.
2239         * gfxmenu/model.c: Likewise.
2240         * gfxmenu/named_colors.c: Likewise.
2241         * gfxmenu/theme_loader.c: Likewise.
2242         * gfxmenu/view.c: Likewise.
2243         * gfxmenu/widget-box.c: Likewise.
2244         * include/grub/gfxmenu_model.h: Likewise.
2245         * include/grub/gfxmenu_view.h: Likewise.
2246         * include/grub/gfxwidgets.h: Likewise.
2247         * include/grub/gui.h: Likewise.
2248         * include/grub/gui_string_util.h: Likewise.
2249         * include/grub/icon_manager.h: Likewise.
2251 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2253         Agglomerate scrolling in gfxterm.
2255         * term/gfxterm.c (grub_virtual_screen): New member 'total_screen'.
2256         (grub_virtual_screen_setup): Initialise 'total_screen'.
2257         (write_char): Split to ...
2258         (paint_char): ... this ...
2259         (write_char): ... and this.
2260         (paint_char): Handle delayed scrolling.
2261         (draw_cursor): Likewise.
2262         (scroll_up): Split to ...
2263         (real_scroll): ... this ...
2264         (scroll_up): ... and this.
2265         (real_scroll): Handle multi-line scroll and draw below-the-bottom
2266         characters.
2267         (grub_gfxterm_refresh): Call real_scroll.
2269 2010-02-06  Colin D Bennett  <colin@gibibit.com>
2271         * include/grub/misc.h (grub_iscntrl): New inline function.
2272         (grub_isalnum): Likewise.
2273         (grub_strtol): Likewise.
2275 2010-02-06  Colin D Bennett  <colin@gibibit.com>
2277         * normal/menu_text.c (get_entry_number): Move from here ...
2278         * normal/menu.c (get_entry_number): ... moved here.
2279         * include/grub/menu.h (grub_menu_get_default_entry_index):
2280         New prototype.
2281         * normal/menu.c (grub_menu_get_default_entry_index): New function.
2282         * normal/menu_text.c (run_menu): Use grub_menu_get_default_entry_index.
2283         * include/grub/menu_viewer.h (grub_menu_viewer_init): New prototype.
2284         (grub_menu_viewer_should_return): Likewise.
2285         * normal/main.c (GRUB_MOD_INIT (normal)): Call grub_menu_viewer_init.
2286         * normal/menu_text.c (run_menu): Enable menu switching.
2287         * normal/menu_viewer.c (should_return): New variable.
2288         (menu_viewer_changed): Likewise.
2289         (grub_menu_viewer_show_menu): Handle menu viewer changes.
2290         (grub_menu_viewer_should_return): New function.
2291         (menuviewer_write_hook): Likewise.
2292         (grub_menu_viewer_init): Likewise.
2294 2010-02-06  Colin D Bennet <colin@gibibit.com>
2295 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2297         Support for gfxterm in a window.
2299         * include/grub/gfxterm.h: New file.
2300         * include/grub/video.h (struct grub_video_rect): New declaration.
2301         (grub_video_rect_t): Likewise.
2302         * term/gfxterm.c (struct grub_gfxterm_window): New type.
2303         (refcount): New variable.
2304         (render_target): Likewise.
2305         (window): Likewise.
2306         (repaint_callback): Likewise.
2307         (grub_virtual_screen_setup): Use 'render_target'.
2308         (init_window): New function.
2309         (grub_gfxterm_init_window): Likewise.
2310         (grub_gfxterm_init): Check reference counter.
2311         Use init_window.
2312         (destroy_window): New function.
2313         (grub_gfxterm_destroy_window): Likewise.
2314         (grub_gfxterm_fini): Check reference counter.
2315         Use destroy_window.
2316         (redraw_screen_rect): Restore viewport.
2317         Use 'render_target' and 'window'.
2318         Call 'repaint_callback'.
2319         (write_char): Use 'render_target'.
2320         (draw_cursor): Likewise.
2321         (scroll_up): Restore viewport.
2322         Use 'render_target' and 'window'.
2323         Call 'repaint_callback'.
2324         (grub_gfxterm_cls): Likewise.
2325         (grub_gfxterm_refresh): Use 'window'.
2326         (grub_gfxterm_set_repaint_callback): New function.
2327         (grub_gfxterm_background_image_cmd): Use 'window'.
2328         (grub_gfxterm_get_term): New function.
2329         (GRUB_MOD_INIT(term_gfxterm)): Set 'refcount' to 0.
2331 2010-02-06  Colin D Bennett  <colin@gibibit.com>
2333         Bitmap scaling support.
2335         * conf/common.rmk (pkglib_MODULES): Add bitmap_scale.mod.
2336         (bitmap_scale_mod_SOURCES): New variable.
2337         (bitmap_scale_mod_CFLAGS): Likewise.
2338         (bitmap_scale_mod_LDFLAGS): Likewise.
2339         * include/grub/bitmap_scale.h: New file.
2340         * term/gfxterm.c (BACKGROUND_CMD_ARGINDEX_MODE): New definiton.
2341         (background_image_cmd_options): New variable.
2342         (grub_gfxterm_background_image_cmd): Support bitmap stretching.
2343         (cmd): Rename and change type to ...
2344         (background_image_cmd_handle): ... this. All users updated.
2345         (GRUB_MOD_INIT(term_gfxterm)): Make background_image extended command.
2346         * video/bitmap_scale.c: New file.
2348 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2350         SDL support.
2352         * Makefile.in (LIBSDL): New variable.
2353         (enable_grub_emu_sdl): Likewise.
2354         * conf/i386-pc.rmk (grub_emu_SOURCES): Add video files.
2355         (grub_emu_SOURCES) [enable_grub_emu_sdl]: Add util/sdl.c.
2356         (grub_emu_LDFLAGS) [enable_grub_emu_sdl]: Add $(LIBSDL).
2357         * configure.ac: Detect SDL availability and add --enable-grub-emu-sdl
2358         * util/sdl.c: New file.
2360 2010-02-06  Colin D Bennett  <colin@gibibit.com>
2361 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2363         Double buffering support.
2365         * commands/i386/pc/videotest.c (grub_cmd_videotest): Swap doublebuffers.
2366         * include/grub/video.h: Update comment.
2367         * include/grub/video_fb.h (grub_video_fb_doublebuf_update_screen_t):
2368         New type.
2369         (grub_video_fb_doublebuf_blit_init): New prototype.
2370         * term/gfxterm.c (scroll_up): Support double buffering.
2371         (grub_gfxterm_refresh): Likewise.
2372         * video/fb/video_fb.c (doublebuf_blit_update_screen): New function.
2373         (grub_video_fb_doublebuf_blit_init): Likewise.
2374         * video/i386/pc/vbe.c (framebuffer): Remove 'render_target'. Add
2375         'front_target', 'back_target', 'offscreen_buffer', 'page_size',
2376         'displayed_page', 'render_page' and 'update_screen'.
2377         (grub_video_vbe_fini): Free offscreen buffer.
2378         (doublebuf_pageflipping_commit): New function.
2379         (doublebuf_pageflipping_update_screen): Likewise.
2380         (doublebuf_pageflipping_init): Likewise.
2381         (double_buffering_init): Likewise.
2382         (grub_video_vbe_setup): Enable doublebuffering.
2383         (grub_video_vbe_swap_buffers): Implement.
2384         (grub_video_vbe_set_active_render_target): Handle double buffering.
2385         (grub_video_vbe_get_active_render_target): Likewise.
2386         (grub_video_vbe_get_info_and_fini): Likewise. Free offscreen_buffer.
2387         (grub_video_vbe_adapter): Use grub_video_vbe_get_active_render_target.
2388         (grub_video_vbe_enable_double_buffering): Likewise.
2389         (grub_video_vbe_swap_buffers): Use update_screen.
2390         (grub_video_set_mode): Use double buffering.
2392 2010-02-06  Robert Millan  <rmh.grub@aybabtu.com>
2394         * maintainance/gentrigtables.py: Remove.
2395         * lib/trig.c: Likewise.
2397         * gentrigtables.c: New file.  C rewrite of gentrigtables.py.
2399         * conf/common.rmk (trig_mod_SOURCES): Replace `lib/trig.c' with
2400         `trigtables.c'.
2401         (trigtables.c): New rule.
2402         (gentrigtables): Likewise.
2403         (DISTCLEANFILES): Add `trigtables.c' and `gentrigtables'.
2405 2010-02-06  Robert Millan  <rmh.grub@aybabtu.com>
2407         * maintainance/gentrigtables.py: Avoid duplicate hardcoding of
2408         integer constants.
2410 2010-02-06  Colin D Bennet <colin@gibibit.com>
2412         Trigonometry support.
2414         * include/grub/trig.h: New file.
2415         * lib/trig.c: Likewise.
2416         * maintainance/gentrigtables.py: Likewise.
2417         * conf/common.rmk (pkglib_MODULES): Add trig.mod.
2418         (trig_mod_SOURCES): New variable.
2419         (trig_mod_CFLAGS): Likewise.
2420         (trig_mod_LDFLAGS): Likewise.
2422 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2424         * kern/ieee1275/openfw.c (grub_ieee1275_encode_devname): Support whole
2425         disk devices.
2427 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
2429         * kern/ieee1275/openfw.c (grub_devalias_iterate): Stop iterating on
2430         error.
2432 2010-02-03  Vladimir Serbinenko  <phcoder@gmail.com>
2434         * util/hostdisk.c (open_device): Don't use partition device when reading
2435         before the partition.
2436         (grub_util_biosdisk_read): Don't read from partition and before the
2437         partition in single operation.
2438         (grub_util_biosdisk_write): Don't write to partition and before the
2439         partition in single operation.
2441 2010-02-03  Torsten Landschoff   <torsten@debian.org>
2443         * kern/disk.c (grub_disk_read): Fix offset computation when reading
2444         last sectors.
2446 2010-02-03  Vladimir Serbinenko  <phcoder@gmail.com>
2448         * disk/i386/pc/biosdisk.c (grub_biosdisk_read): Handle non-2048 aligned
2449         CDROM reads.
2450         (grub_biosdisk_write): Refuse to write to CDROM.
2452 2010-01-31  Vladimir Serbinenko  <phcoder@gmail.com>
2454         * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Fix off-by-one error.
2456 2010-01-31  Vladimir Serbinenko  <phcoder@gmail.com>
2458         * font/font.c (find_glyph): Check that bmp_idx is available before
2459         using it.
2460         (grub_font_get_string_width): Never call grub_font_get_glyph_internal
2461         with (font == NULL).
2463 2010-01-28  Christian Schmitt  <chris@ilovelinux.de>
2465         * util/ieee1275/grub-install.in: Fix nvsetenv arguments.
2467 2010-01-28  BVK Chaitanya  <bvk.groups@gmail.com>
2469         * include/grub/script_sh.h (sourcecode): Add const qualifier.
2470         * util/grub-script-check.c (getline): Fix empty lines case.
2472 2010-01-28  Robert Millan  <rmh.grub@aybabtu.com>
2474         * Makefile.in (check): Exit with fail status when one of the tests
2475         fails.
2476         * tests/example_functional_test.c (example_test): Fix reversed assert.
2477         * tests/example_unit_test.c (example_test): Likewise.
2479 2010-01-28  Colin Watson  <cjwatson@ubuntu.com>
2481         * util/grub.d/10_linux.in: This script does not use any of the
2482         contents of gettext.sh, only the external command `gettext', so stop
2483         sourcing it.  (Moreover, gettext.sh isn't necessarily installed in
2484         the same prefix as GRUB.)
2485         * util/grub.d/10_kfreebsd.in: Likewise.
2487 2010-01-27  Vladimir Serbinenko  <phcoder@gmail.com>
2489         * normal/cmdline.c (grub_cmdline_get): Fix completion in the middle
2490         of the line.
2492 2010-01-27  Vladimir Serbinenko  <phcoder@gmail.com>
2494         * kern/disk.c (grub_disk_read): Fix offset computation when reading
2495         last sectors.
2497 2010-01-27  Vladimir Serbinenko  <phcoder@gmail.com>
2499         * commands/hashsum.c (hash_file): Avoid possible stack overflow by
2500         having a 4KiB and not 32KiB buffer size.
2502 2010-01-27  Robert Millan  <rmh.grub@aybabtu.com>
2504         * util/hostfs.c: Include `<errno.h>'.
2505         (grub_hostfs_read): Handle errors from fseeko() and fread().
2507 2010-01-27  Robert Millan  <rmh.grub@aybabtu.com>
2509         * kern/disk.c (grub_disk_read): Fix bug that would cause infinite
2510         loop when using read hooks on files whose size isn't sector-aligned.
2512 2010-01-27  Robert Millan  <rmh.grub@aybabtu.com>
2514         Remove unused parameter.
2516         * fs/iso9660.c (struct grub_iso9660_data): Remove `length' parameter.
2517         (grub_iso9660_open): Remove initialization of `data->length'.
2519 2010-01-27  Robert Millan  <rmh.grub@aybabtu.com>
2521         * util/grub-fstest.c (fstest): Rewrite allocation, fixing a few
2522         memleak conditions.
2524 2010-01-27  Carles Pina i Estany  <carles@pina.cat>
2526         * util/lvm.c: New macro LVM_DEV_MAPPER_STRING.
2527         (grub_util_lvm_isvolume): Use LVM_DEV_MAPPER_STRING.
2529 2010-01-26  Carles Pina i Estany  <carles@pina.cat>
2531         * util/bin2h.c (usage): Fix warning (space after backslash).
2533 2010-01-26  Carles Pina i Estany  <carles@pina.cat>
2535         * font/font.c: Include `grub/fontformat.h.
2536         Remove font file format constants.
2537         (grub_font_load): Use the new macros.
2538         * include/grub/fontformat.h: New file.
2539         * util/grub-mkfont.c: Include `grub/fontformat.c'.
2540         (write_font_pf2): Use the new macros.
2542 2010-01-26  Robert Millan  <rmh.grub@aybabtu.com>
2544         * util/bin2h.c (usage): Make --help actually explain what `grub-bin2h'
2545         does.
2547 2010-01-26  Robert Millan  <rmh.grub@aybabtu.com>
2549         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_PXE_DL): New macro.
2551         * boot/i386/pc/pxeboot.S: Include `<grub/machine/boot.h>'.
2552         (_start): Macroify `0x7F'.
2554         * kern/i386/pc/init.c: Include `<grub/machine/boot.h>'.
2555         (make_install_device): Use "(pxe)" as fallback prefix when booting
2556         via PXE.
2558 2010-01-26  Vladimir Serbinenko  <phcoder@gmail.com>
2560         * configure.ac: Reset LIBS after check for libgcc symbols.
2562 2010-01-25  Colin Watson  <cjwatson@ubuntu.com>
2564         * util/hostdisk.c (open_device): Add trailing newline to debug
2565         message.
2567 2010-01-25  Grégoire Sutre  <gregoire.sutre@gmail.com>
2569         * configure.ac: Check for `limits.h'.
2570         * util/misc.c: Include `<limits.h>' (for PATH_MAX).
2572 2010-01-24  Robert Millan  <rmh.grub@aybabtu.com>
2574         * loader/mips/linux.c (grub_cmd_linux, grub_cmd_initrd): Don't
2575         capitalize error strings.
2577 2010-01-24  Samuel Thibault  <samuel.thibault@ens-lyon.org>
2579         * util/grub.d/10_hurd.in: Add a recovery mode.
2581 2010-01-23  Vladimir Serbinenko  <phcoder@gmail.com>
2583         * configure.ac: Check for libgcc symbols with -nostdlib.
2585 2010-01-23  BVK Chaitanya  <bvk.groups@gmail.com>
2587         * acinclude.m4: Quote underquoted AC_DEFUN parameters.
2589 2010-01-22  Vladimir Serbinenko  <phcoder@gmail.com>
2591         * term/ieee1275/ofconsole.c (grub_ofconsole_setcolorstate): Allocate on
2592         stack since heap may be unavailable at that point.
2593         (grub_ofconsole_gotoxy): Likewise.
2595 2010-01-22  Vladimir Serbinenko  <phcoder@gmail.com>
2597         * configure.ac: Check for _restgpr_14_x.
2598         * include/grub/powerpc/libgcc.h [HAVE__RESTGPR_14_X]: Add _restgpr_*_x
2599         and _savegpr_* prototypes.
2601 2010-01-22  Robert Millan  <rmh.grub@aybabtu.com>
2603         Use generic grub_reboot() for i386-efi.
2605         * kern/efi/efi.c [__i386__] (grub_reboot): Remove.
2606         * kern/i386/efi/startup.S: Include `"../realmode.S"'.
2607         * kern/i386/realmode.S: Include `<grub/i386/pc/memory.h>'.
2609 2010-01-22  Vladimir Serbinenko  <phcoder@gmail.com>
2611         * kern/ieee1275/init.c (grub_machine_set_prefix): Don't check for
2612         presence of "prefix" variable as it breaks when normal.mod is
2613         embedded.
2615 2010-01-21  Vladimir Serbinenko  <phcoder@gmail.com>
2617         * term/ieee1275/ofconsole.c (grub_ofconsole_dimensions): Allocate on
2618         stack since heap is unavailable at that point.
2620 2010-01-21  Vladimir Serbinenko  <phcoder@gmail.com>
2622         * include/grub/i386/bsd.h (FREEBSD_N_BIOS_GEOM): Removed.
2623         (grub_freebsd_bootinfo): Rewritten.
2624         * loader/i386/bsd.c (grub_freebsd_boot): Use new grub_freebsd_bootinfo.
2626 2010-01-21  Vladimir Serbinenko  <phcoder@gmail.com>
2628         * util/misc.c (make_system_path_relative_to_its_root): Fix typo.
2630 2010-01-21  Robert Millan  <rmh.grub@aybabtu.com>
2632         * po/POTFILES: Remove mkisofs-related files.  They have their own TLP
2633         domain now.
2635 2010-01-20  Felix Zielcke <fzielcke@z-51.de>
2637         * util/misc.c (make_system_path_relative_to_its_root): Change the work
2638         around for handling "/" to the correct fix.  Fix a memory leak.  Use
2639         xstrdup instead of strdup.
2641 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2643         * conf/mips.rmk (kernel_img_HEADERS): Add env_private.h
2645 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2647         Optimise glyph lookup by Basic Multilingual Plane lookup array.
2649         * font/font.c (struct grub_font): New member 'bmp_idx'.
2650         (font_init): Initialise 'bmp_idx'.
2651         (load_font_index): Fill 'bmp_idx'.
2652         (find_glyph): Make inline. Use bmp_idx for BMP characters.
2654 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2656         * video/fb/video_fb.c (grub_video_fb_scroll): Optimise by avoiding
2657         unnecessary calls.
2659 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2661         Move context handling out of the kernel.
2663         * conf/any-emu.rmk (grub_emu_SOURCES): Add normal/context.c.
2664         * conf/common.rmk (normal_mod_SOURCES): Add normal/context.c.
2665         * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add env_private.h.
2666         * conf/i386-efi.rmk: Likewise.
2667         * conf/i386-ieee1275.rmk: Likewise.
2668         * conf/i386-pc.rmk: Likewise.
2669         * conf/powerpc-ieee1275.rmk: Likewise.
2670         * conf/sparc64-ieee1275.rmk: Likewise.
2671         * conf/x86_64-efi.rmk: Likewise.
2672         * include/grub/env.h: Include grub/menu.h.
2673         (grub_env_var_type): Removed.
2674         (grub_env_var): Replaced field 'type' with 'global'.
2675         (grub_env_find): New prototype.
2676         (grub_env_context_open): Remove EXPORT_FUNC.
2677         (grub_env_context_close): Likewise.
2678         (grub_env_export): Likewise.
2679         (grub_env_set_data_slot): Removed.
2680         (grub_env_get_data_slot): Likewise.
2681         (grub_env_unset_data_slot): Likewise.
2682         (grub_env_unset_menu): New prototype.
2683         (grub_env_set_menu): Likewise.
2684         (grub_env_get_menu): Likewise.
2685         * include/grub/env_private.h: New file.
2686         * include/grub/normal.h (grub_context_init): New prototype.
2687         (grub_context_fini): Likewise.
2688         * kern/corecmd.c (grub_core_cmd_export): Moved from here ...
2689         * normal/context.c (grub_cmd_export): ... to here.
2690         * kern/env.c: Include env_private.h.
2691         (HASHSZ): Moved to include/grub/env_private.h.
2692         (grub_env_context): Likewise.
2693         (grub_env_sorted_var): Likewise.
2694         (current_context): Renamed from this ...
2695         (grub_current_context): ...to this. 'static' removed. All users updated.
2696         (grub_env_find): Removed 'static'.
2697         (grub_env_context_open): Moved to normal/context.c.
2698         (grub_env_context_close): Likewise.
2699         (grub_env_export): Likewise.
2700         (mangle_data_slot_name): Removed.
2701         (grub_env_set_data_slot): Likewise.
2702         (grub_env_get_data_slot): Likewise.
2703         (grub_env_unset_data_slot): Likewise.
2704         * kern/main.c (grub_set_root_dev): Don't export root.
2705         It will be done later.
2706         (grub_main): Don't export prefix.
2707         It will be done later.
2708         * normal/context.c: New file.
2709         * normal/main.c (free_menu): Use grub_env_unset_menu.
2710         (grub_normal_add_menu_entry): Use grub_env_get_menu.
2711         (read_config_file): Use grub_env_get_menu and grub_env_set_menu.
2712         (GRUB_MOD_INIT(normal)): Call grub_context_init.
2713         (GRUB_MOD_FINI(normal)): Call grub_context_fini.
2715 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2717         setpci support.
2719         * commands/setpci.c: New file.
2720         * conf/i386.rmk (pkglib_MODULES): Add setpci.mod.
2721         (setpci_mod_SOURCES): New variable.
2722         (setpci_mod_CFLAGS): Likewise.
2723         (setpci_mod_LDFLAGS): Likewise.
2725 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2727         Byte-addressable PCI configuration space.
2729         * bus/pci.c (grub_pci_make_address): Use byte address instead of
2730         dword address.
2731         (grub_pci_iterate): Use macroses GRUB_PCI_REG_PCI_ID and
2732         GRUB_PCI_REG_CACHELINE.
2733         * bus/usb/ohci.c (grub_ohci_pci_iter): Use macroses
2734         GRUB_PCI_REG_CLASS and GRUB_PCI_REG_ADDRESS_REG0.
2735         * bus/usb/uhci.c (grub_ohci_pci_iter): Use macroses
2736         GRUB_PCI_REG_CLASS and GRUB_PCI_REG_ADDRESS_REG4.
2737         * commands/efi/fixvideo.c (scan_card): Use macros GRUB_PCI_REG_CLASS.
2738         * commands/efi/loadbios.c (enable_rom_area): Pass byte-address to
2739         grub_pci_make_address.
2740         (lock_rom_area): Likewise.
2741         * commands/lspci.c (grub_lspci_iter): Use macroses
2742         GRUB_PCI_REG_CLASS and GRUB_PCI_REG_ADDRESSES. Handle byte-addressing
2743         of grub_pci_make_address.
2744         * disk/ata.c (grub_ata_pciinit): Likewise.
2745         * include/grub/pci.h (GRUB_PCI_REG_PCI_ID): New macro.
2746         (GRUB_PCI_REG_VENDOR): Likewise.
2747         (GRUB_PCI_REG_DEVICE): Likewise.
2748         (GRUB_PCI_REG_COMMAND): Likewise.
2749         (GRUB_PCI_REG_STATUS): Likewise.
2750         (GRUB_PCI_REG_REVISION): Likewise.
2751         (GRUB_PCI_REG_CLASS): Likewise.
2752         (GRUB_PCI_REG_CACHELINE): Likewise.
2753         (GRUB_PCI_REG_LAT_TIMER): Likewise.
2754         (GRUB_PCI_REG_HEADER_TYPE): Likewise.
2755         (GRUB_PCI_REG_BIST): Likewise.
2756         (GRUB_PCI_REG_ADDRESSES): Likewise.
2757         (GRUB_PCI_REG_ADDRESS_REG): Likewise.
2758         (GRUB_PCI_REG_ADDRESS_REG): Likewise.
2759         (GRUB_PCI_REG_ADDRESS_REG): Likewise.
2760         (GRUB_PCI_REG_ADDRESS_REG): Likewise.
2761         (GRUB_PCI_REG_ADDRESS_REG): Likewise.
2762         (GRUB_PCI_REG_ADDRESS_REG): Likewise.
2763         (GRUB_PCI_REG_CIS_POINTER): Likewise.
2764         (GRUB_PCI_REG_SUBVENDOR): Likewise.
2765         (GRUB_PCI_REG_SUBSYSTEM): Likewise.
2766         (GRUB_PCI_REG_ROM_ADDRESS): Likewise.
2767         (GRUB_PCI_REG_CAP_POINTER): Likewise.
2768         (GRUB_PCI_REG_IRQ_LINE): Likewise.
2769         (GRUB_PCI_REG_IRQ_PIN): Likewise.
2770         (GRUB_PCI_REG_MIN_GNT): Likewise.
2771         (GRUB_PCI_REG_MAX_LAT): Likewise.
2772         * loader/i386/efi/linux.c (find_framebuf): Use GRUB_PCI_REG_CLASS.
2773         * loader/i386/efi/xnu.c (find_framebuf): Likewise.
2774         * video/efi_uga.c (find_framebuf): Likewise.
2775         * video/sm712.c (grub_video_sm712_setup): Likewise.
2776         * util/pci.c (grub_pci_make_address): Use byte-addressed configuration
2777         space.
2779 2010-01-20  Robert Millan  <rmh.grub@aybabtu.com>
2781         * util/grub.d/10_linux.in (linux_entry): Set gfxpayload=keep when it
2782         can be reliably determined to be supported.
2784 2010-01-20  Robert Millan  <rmh.grub@aybabtu.com>
2786         * loader/i386/linux.c (grub_cmd_linux): If `vga=' was used, write down
2787         that VESA is supported.
2788         (grub_linux_boot): Use generic framebuffer unless VESA is known to be
2789         supported.
2791 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2793         * conf/common.rmk (font/font.c_DEPENDENCIES): Condition on FONT_SOURCE.
2795 2010-01-20  Robert Millan  <rmh.grub@aybabtu.com>
2797         * util/misc.c (make_system_path_relative_to_its_root): Work around
2798         special-casing of "/", as previous incarnation of this routine did.
2800 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2802         Fix any-emu compilation.
2804         * conf/any-emu.rmk (bin_UTILITIES): Add grub-bin2h.
2805         * grub_bin2h_SOURCES: New variable.
2807 2010-01-20  Robert Millan  <rmh.grub@aybabtu.com>
2809         * util/grub.d/00_header.in: Fix stupid mistake from last commit.
2811 2010-01-20  Robert Millan  <rmh.grub@aybabtu.com>
2813         * util/grub.d/00_header.in: Fix handling of locale_dir.
2815 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2817         * configure.ac: Add /usr/share/fonts/unifont/unifont.pcf.gz
2818         as possible unifont location (Gentoo).
2819         Reported by: Alexander Brüning
2821 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2823         Don't try to generate lists for kernel.img.
2825         * conf/i386-efi.rmk (pkglib_PROGRAMS): New variable.
2826         (pkglib_MODULES): Remove kernel.img.
2827         (kernel_img_EXPORTS): Removed.
2828         (kernel_img_RELOCATABLE): New variable.
2829         * conf/x86_64-efi.rmk: Likewise.
2830         * genmk.rb: Remove *_EXPORTS support and add *_RELOCATABLE support.
2832 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2834         * include/grub/misc.h (grub_sprintf): Removed. All users switched to
2835         grub_xasprintf or grub_snprintf.
2836         (grub_vsprintf): Likewise.
2837         (grub_snprintf): New proto.
2838         (grub_vsnprintf): Likewise.
2839         (grub_xasprintf): Likewise.
2840         (grub_xvasprintf): Likewise.
2841         * kern/misc.c (grub_vprintf): Use grub_vsnprintf_real.
2842         (grub_sprintf): Removed.
2843         (grub_vsnprintf): New function.
2844         (grub_snprintf): Likewise.
2845         (grub_xvasprintf): Likewise.
2846         (grub_xasprintf): Likewise.
2847         (grub_vsprintf): Renamed to ...
2848         (grub_vsnprintf_real): ...this. New argument max_len.
2850 2010-01-20  BVK Chaitanya  <bvk.groups@gmail.com>
2852         * include/grub/script_sh.h (sourcecode): Remove const qualifier to
2853         fix grub-script-check warning.
2855 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2857         * include/grub/font.h (grub_font_load): Fix prototype.
2859 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2861         * conf/mips.rmk (kernel_img_HEADERS) [yeeloong]: Add pci.h.
2863 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2865         * include/grub/x86_64/at_keyboard.h: New file.
2867 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
2869         * loader/mips/linux.c: Include missing grub/i18n.h.
2871 2009-12-20  Robert Millan  <rmh.grub@aybabtu.com>
2873         * normal/menu.c (notify_execution_failure): Clarify error message.
2875 2009-12-20  Robert Millan  <rmh.grub@aybabtu.com>
2877         * commands/loadenv.c (check_blocklists): Use `grub_err_t' as
2878         return value (and revert all return statements).  Update users.
2880 2010-01-20  Dan Merillat  <debian@dan.merillat.org>
2882         * kern/device.c (grub_device_iterate): Allocate new part_ent
2883         structure based on sizeof (*p) rather than sizeof (p->next), to
2884         account for structure padding.
2886         * util/grub-probe.c (probe_raid_level): Return -1 immediately if
2887         disk is NULL, which might happen for LVM physical volumes with no
2888         LVM signature.
2890 2009-12-20  Robert Millan  <rmh.grub@aybabtu.com>
2892         * loader/mips/linux.c (grub_cmd_initrd)
2893         (GRUB_MOD_INIT(linux)): Adjust and gettextize a few strings.
2895 2009-12-20  Robert Millan  <rmh.grub@aybabtu.com>
2897         * kern/mips/yeeloong/init.c (grub_video_sm712_init)
2898         (grub_video_video_init, grub_video_bitmap_init)
2899         (grub_font_manager_init, grub_term_gfxterm_init)
2900         (grub_at_keyboard_init): New extern declarations.
2901         (grub_machine_init): Initialize gfxterm and at_keyboard.
2903         * kern/main.c (grub_main): Revert grub_printf delay kludge.
2905         * util/grub-install.in: Revert embed of `at_keyboard.mod' and
2906         `gfxterm.mod' into core image.
2908         * conf/mips.rmk (pkglib_IMAGES, kernel_img_SOURCES)
2909         (kernel_img_CFLAGS, kernel_img_ASFLAGS, kernel_img_LDFLAGS)
2910         (kernel_img_FORMAT): Copy to ...
2912         * conf/mips-qemu-mips.rmk (pkglib_IMAGES, kernel_img_SOURCES)
2913         (kernel_img_CFLAGS, kernel_img_ASFLAGS, kernel_img_LDFLAGS)
2914         (kernel_img_FORMAT): ... here, and ...
2916         * conf/mips-yeeloong.rmk (pkglib_IMAGES, kernel_img_SOURCES)
2917         (kernel_img_CFLAGS, kernel_img_ASFLAGS, kernel_img_LDFLAGS)
2918         (kernel_img_FORMAT): ... here.
2920         (kernel_img_SOURCES): Add files necessary for output (gfxterm)
2921         and input (at_keyboard) terminals in kernel.
2922         (kernel_img_CFLAGS): Add `-DUSE_ASCII_FAILBACK'.
2924         (pkglib_MODULES): Remove `pci.mod'.
2925         (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS)
2926         (sm712_mod_SOURCES, sm712_mod_CFLAGS, sm712_mod_LDFLAGS)
2927         (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
2928         (at_keyboard_mod_LDFLAGS): Remove variables.
2930 2010-01-11  Felix Zielcke <fzielcke@z-51.de>
2932         * po/POTFILES: Replace `term/i386/pc/serial.c' with `term/serial.c'.
2934 2009-12-10  Robert Millan  <rmh.grub@aybabtu.com>
2936         * include/grub/mips/libgcc.h: Only export symbols for functions
2937         that libgcc provides.
2939 2009-12-02  Vladimir Serbinenko  <phcoder@gmail.com>
2941         MIPS support.
2943         * bus/bonito.c: New file.
2944         * bus/pci.c (grub_pci_iterate): Use GRUB_PCI_NUM_BUS and
2945         GRUB_PCI_NUM_DEVICES.
2946         * term/i386/pc/serial.c: Move to ...
2947         * term/serial.c: ... here. All users updated.
2948         * util/i386/pc/grub-mkimage.c: Move to ...
2949         * util/grub-mkrawimage.c: ... here. All users updated.
2950         * term/i386/pc/at_keyboard.c: Move to ...
2951         * term/at_keyboard.c: ... here. All users updated.
2952         * conf/mips-qemu-mips.rmk: New file.
2953         * conf/mips-yeeloong.rmk: Likewise.
2954         * conf/mips.rmk: Likewise.
2955         * configure.ac: New platforms mipsel-yeeloong, mips-qemu-mips and
2956         mipsel-qemu-mips.
2957         * disk/ata.c (grub_ata_device_initialize): Add GRUB_MACHINE_PCI_IO_BASE
2958         to port addresses.
2959         (grub_ata_pciinit): Support CS5536.
2960         * font/font.c (grub_font_load): Use grub_file_t instead of filename.
2961         * font/font_cmd.c (loadfont_command): Open file before passing it to
2962         grub_font_load.
2963         (pseudo_file_read): New function.
2964         (pseudo_file_close): Likewise.
2965         (pseudo_fs): New structure.
2966         (load_font_module): New function.
2967         (GRUB_MOD_INIT(font_manager)): Load embedded font.
2968         * fs/cpio.c (grub_cpio_open): Handle partial matches correctly.
2969         * genmk.rb: Strip .rel.dyn, .reginfo, .note and .comment.
2970         * genmoddep.awk: Ignore __gnu_local_gp. It's defined by linker.
2971         * include/grub/i386/at_keyboard.h: Split into ...
2972         * include/grub/at_keyboard.h: ... this ...
2973         * include/grub/i386/at_keyboard.h: ... and this.
2974         * include/grub/dl.h (grub_arch_dl_init_linker) [_mips && !GRUB_UTIL]:
2975         New prototype.
2976         * include/grub/elfload.h (grub_elf32_size): New parameter. All users
2977         updated.
2978         (grub_elf64_size): Likewise.
2979         * include/grub/font.h (grub_font_load): Use grub_file_t instead of
2980         filename.
2981         * include/grub/i386/io.h (grub_port_t): New type. All users updated.
2982         * include/grub/i386/coreboot/serial.h: Rewritten.
2983         * include/grub/i386/ieee1275/serial.h: Include
2984         grub/i386/coreboot/serial.h instead of grub/i386/pc/serial.h.
2985         * include/grub/i386/pc/serial.h: Moved from here ...
2986         * include/grub/serial.h: ... to here. All users updated.
2987         * include/grub/i386/pci.h (GRUB_MACHINE_PCI_IO_BASE): New definition.
2988         (GRUB_PCI_NUM_BUS): Likewise.
2989         (GRUB_PCI_NUM_DEVICES): Likewise.
2990         (grub_pci_device_map_range): Add missing volatile keyword.
2991         * include/grub/kernel.h (OBJ_TYPE_FONT): New enum value.
2992         * include/grub/mips/at_keyboard.h: New file.
2993         * include/grub/mips/cache.h: Likewise.
2994         * include/grub/mips/io.h: Likewise.
2995         * include/grub/mips/kernel.h: Likewise.
2996         * include/grub/mips/libgcc.h: Likewise.
2997         * include/grub/mips/pci.h: Likewise.
2998         * include/grub/mips/qemu-mips/boot.h: Likewise.
2999         * include/grub/mips/qemu-mips/kernel.h: Likewise.
3000         * include/grub/mips/qemu-mips/loader.h: Likewise.
3001         * include/grub/mips/qemu-mips/memory.h: Likewise.
3002         * include/grub/mips/qemu-mips/serial.h: Likewise.
3003         * include/grub/mips/qemu-mips/time.h: Likewise.
3004         * include/grub/mips/relocator.h: Likewise.
3005         * include/grub/mips/time.h: Likewise.
3006         * include/grub/mips/types.h: Likewise.
3007         * include/grub/mips/yeeloong/at_keyboard.h: Likewise.
3008         * include/grub/mips/yeeloong/boot.h: Likewise.
3009         * include/grub/mips/yeeloong/kernel.h: Likewise.
3010         * include/grub/mips/yeeloong/loader.h: Likewise.
3011         * include/grub/mips/yeeloong/memory.h: Likewise.
3012         * include/grub/mips/yeeloong/pci.h: Likewise.
3013         * include/grub/mips/yeeloong/serial.h: Likewise.
3014         * include/grub/mips/yeeloong/time.h: Likewise.
3015         * kern/dl.c (grub_dl_resolve_symbols): Handle STT_OBJECT correctly.
3016         * kern/elf.c (grub_elf32_size): New parameter. All users
3017         updated.
3018         (grub_elf64_size): Likewise.
3019         * kern/main.c (grub_main): Call grub_arch_dl_init_linker if necessary.
3020         Load modules before saying "Welcome to GRUB!".
3021         Call grub_refresh after saying "Welcome to GRUB!".
3022         * kern/mips/cache.S: New file.
3023         * kern/mips/cache_flush.S: Likewise.
3024         * kern/mips/dl.c: Likewise.
3025         * kern/mips/init.c: Likewise.
3026         * kern/mips/qemu-mips/init.c: Likewise.
3027         * kern/mips/startup.S: Likewise.
3028         * kern/mips/yeeloong/init.c: Likewise.
3029         * kern/term.c (grub_putcode): Handle NULL terminal.
3030         (grub_getcharwidth): Likewise.
3031         (grub_getkey): Likewise.
3032         (grub_checkkey): Likewise.
3033         (grub_getkeystatus): Likewise.
3034         (grub_getxy): Likewise.
3035         (grub_getwh): Likewise.
3036         (grub_gotoxy): Likewise.
3037         (grub_cls): Likewise.
3038         (grub_setcolorstate): Likewise.
3039         (grub_setcolor): Likewise.
3040         (grub_getcolor): Likewise.
3041         (grub_refresh): Likewise.
3042         * lib/mips/relocator.c (JUMP_SIZEOF): Fix incorrect value.
3043         (write_jump): Add hatch nop.
3044         * lib/mips/relocator_asm.S: Use kern/mips/cache_flush.S.
3045         * lib/mips/setjmp.S: New file.
3046         * loader/mips/linux.c: Likewise.
3047         * term/i386/pc/at_keyboard.c: Move from here ...
3048         * term/at_keyboard.c: ... to here.
3049         * term/i386/pc/serial.c: Moved from here ...
3050         * term/serial.c: ... to here. All users updated.
3051         (TEXT_HEIGHT): Set to 24 to fit linux terminal.
3052         (serial_hw_io_addr): Use GRUB_MACHINE_SERIAL_PORTS.
3053         (serial_translate_key_sequence): Avoid deadlock.
3054         (grub_serial_getkey): Handle backspace.
3055         (grub_serial_putchar): Fix newline handling.
3056         * util/i386/pc/grub-mkimage.c: Move from here ...
3057         * util/grub-mkrawimage.c: ... to here. All users updated.
3058         (generate_image): New parameters 'font_path' and 'format'.
3059         Support embedding font.
3060         Use grub_host_to_target* instead of grub_cpu_to_le*.
3061         (generate_image) [GRUB_MACHINE_MIPS]: Support ELF encapsulation.
3062         (options) [GRUB_PLATFORM_IMAGE_DEFAULT]: New option "--format".
3063         (options): New option "--font".
3064         (usage): Likewise.
3065         (main) [GRUB_PLATFORM_IMAGE_DEFAULT]: Handle "--format".
3066         (main): Handle "--font".
3067         * term/gfxterm.c (grub_virtual_screen): New member bg_color_display.
3068         (grub_virtual_screen_setup): Set bg_color_display.
3069         (redraw_screen_rect): Use bg_color_display instead of incorrect
3070         bg_color.
3071         (grub_gfxterm_cls): Likewise.
3072         * util/elf/grub-mkimage.c (load_modules): New parameter 'config_path'.
3073         Support embedding config file.
3074         (add_segments): Likewise.
3075         (options): New option "--config".
3076         (main): Handle "--config".
3077         * video/sm712.c: New file.
3079 2010-01-18  Robert Millan  <rmh.grub@aybabtu.com>
3081         Fix parallel builds.
3083         * conf/common.rmk (font/font.c_DEPENDENCIES): New variable (makes
3084         font.c depend on ascii.h).
3086 2010-01-12  Carles Pina i Estany  <carles@pina.cat>
3088         * Makefile.in (DUSE_ASCII_FAILBACK): New macro.
3090 2010-01-11  Carles Pina i Estany  <carles@pina.cat>
3092         * font/font.c (GENERATE_ASCII): Change the name to USE_ASCII_FAILBACK.
3093         By default: disabled.
3094         * Makefile.in (ascii.h): Remove the non-needed grub/bin2h size
3095         parameter.
3097 2010-01-10  Carles Pina i Estany  <carles@pina.cat>
3099         * font/font.c: Update copyright years.
3100         * util/grub-mkfont.c (write_font_ascii_bitmap): Change comment format.
3102 2010-01-10  Carles Pina i Estany  <carles@pina.cat>
3104         * font/font.c: Include `ascii.h'.
3105         (ASCII_BITMAP_SIZE): New macro.
3106         (ascii_font_glyph): Define.
3107         (ascii_glyph_lookup): New function.
3108         (grub_font_get_string_width): Change comment. If glyph not found, use
3109         ascii_glyph_lookup.
3110         (grub_font_get_glyph_with_fallback): If glyph not available returns
3111         ascii_glyph_lookup.
3112         * util/grub-mkfont.c (file_formats): New enum.
3113         (options): Add `ascii-bitmaps' new option.
3114         (usage): Add `asii-bitmaps' new option.
3115         (write_font_ascii_bitmap): New function.
3116         (write_font): Rename to ...
3117         (write_font_p2): ... this. Remove print_glyphs call.
3118         (main): Use file_format. Implement code for ranges if ascii-bitmaps is
3119         used. Call print_glyphs.
3120         * Makefile.in (pkgdata_DATA): Add `ascii.h'.
3122 2010-01-14  Robert Millan  <rmh.grub@aybabtu.com>
3124         * conf/common.rmk (bin_UTILITIES): Add `grub-bin2h'.
3125         (grub_bin2h_SOURCES): New variable.
3126         * util/bin2h.c: New file.
3128 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
3130         * include/multiboot.h: Resynced with spec.
3131         * include/multiboot2.h: Likewise.
3132         * loader/i386/multiboot_mbi.c (grub_fill_multiboot_mmap): Handle
3133         GRUB_MACHINE_MEMORY_ACPI_RECLAIMABLE and GRUB_MACHINE_MEMORY_NVS.
3135 2010-01-18  Robert Millan  <rmh.grub@aybabtu.com>
3137         * include/grub/term.h (grub_term_register_input,
3138         grub_term_register_output): Check return of terminal init()
3139         routines, and abort if errors are raised.
3141         * commands/terminal.c: Update copyright year.
3143 2010-01-18  Robert Millan  <rmh.grub@aybabtu.com>
3145         * commands/terminal.c (grub_cmd_terminal_input)
3146         (grub_cmd_terminal_output): Check return of terminal init()
3147         routines, and abort if errors are raised.
3149 2010-01-18  Vladimir Serbinenko  <phcoder@gmail.com>
3151         * include/grub/i386/bsd.h: Fix include pathes.
3153 2010-01-18  Vladimir Serbinenko  <phcoder@gmail.com>
3155         Add missing *BSD copyright headers.
3157         * include/grub/aout.h: Add BSD licence.
3158         * include/grub/i386/bsd.h: Parts under different licences moved to ...
3159         * include/grub/i386/freebsd_linker.h: ... here,
3160         * include/grub/i386/freebsd_reboot.h: ... here,
3161         * include/grub/i386/netbsd_bootinfo.h: ... here,
3162         * include/grub/i386/netbsd_reboot.h: ... here,
3163         * include/grub/i386/openbsd_bootarg.h: ... here,
3164         * include/grub/i386/openbsd_reboot.h: ... and here. Added appropriate
3165         licence to each file.
3167 2010-01-18  Robert Millan  <rmh.grub@aybabtu.com>
3169         * acinclude.m4: Remove `nop' assembly instruction; it's not
3170         implemented by all architectures.
3172 2010-01-18  Robert Millan  <rmh.grub@aybabtu.com>
3174         * loader/i386/efi/linux.c (grub_cmd_linux): Stop pretending we're
3175         ELILO.  This is no longer necessary.
3177 2010-01-18  BVK Chaitanya  <bvk.groups@gmail.com>
3179         Added new tool, grub-scrit-check to verify grub.cfg syntax.
3181         * util/grub-script-check.c: grub-script-check tool.
3182         * conf/common.rmk: Make rules for grub-script-check.
3184 2010-01-18  Robert Millan  <rmh.grub@aybabtu.com>
3186         Fix annoying UI bug in rescue mode.  Thanks to Tristan Gingold for
3187         spotting it back in 2008.  Shame on me for forgetting he did.
3189         * kern/rescue_reader.c (grub_rescue_run): Skip zero-length lines.
3191 2010-01-18  Robert Millan  <rmh.grub@aybabtu.com>
3193         * include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): Rename to ...
3194         (GRUB_VIDEO_LINUX_TYPE_TEXT): ... this.  Update all users.
3195         (GRUB_VIDEO_TYPE_VLFB): Rename to ...
3196         (GRUB_VIDEO_LINUX_TYPE_VESA): ... this.  Update all users.
3197         (GRUB_VIDEO_TYPE_EFI): Rename to ...
3198         (GRUB_VIDEO_LINUX_TYPE_SIMPLE): ... this.  Update all users.
3200 2010-01-17  Robert Millan  <rmh.grub@aybabtu.com>
3202         * include/grub/test.h: Add license header.
3203         * tests/example_functional_test.c: Likewise.
3204         * tests/example_unit_test.c: Likewise.
3205         * tests/lib/functional_test.c: Likewise.
3206         * tests/lib/test.c: Likewise.
3207         * tests/lib/unit_test.c: Likewise.
3209 2010-01-17  Vladimir Serbinenko  <phcoder@gmail.com>
3211         Use flag-based instead of hook-based video mode selection and "auto"
3212         keyword.
3214         * include/grub/video.h (grub_video_adapter): Changed 'setup' member.
3215         (grub_video_set_mode): Changed prototype. All users updated.
3216         (grub_video_check_mode_flag): New inline function.
3217         * video/video.c (parse_modespec): New function.
3218         (grub_video_set_mode): Parse flags and keywords.
3220 2010-01-17  Carles Pina i Estany  <carles@pina.cat>
3222         * util/misc.c (grub_util_info): Fix the order of the parameters in a
3223         fprintf call.
3225 2010-01-16  Grégoire Sutre <gregoire.sutre@gmail.com>
3227         * genmk.rb (class SCRIPT): Replace option -i of sed by a pipe.
3229 2010-01-16  Carles Pina i Estany  <carles@pina.cat>
3231         * util/grub-editenv.c (usage): Use `program_name' instead of hardcoded
3232         string.
3233         * util/grub-emu.c (usage): Likewise.
3234         * util/grub-mkpasswd-pbkdf2.c (usage): Likewise.
3235         * util/i386/efi/grub-mkimage.c (usage): Likewise.
3236         * util/i386/pc/grub-mkimage.c (usage): Likewise.
3237         * util/i386/pc/grub-setup.c (usage): Likewise.
3239 2010-01-16  Carles Pina i Estany  <carles@pina.cat>
3241         * util/misc.c (grub_util_warn): Gettextizze, print full stop after
3242         the message.
3243         (grub_util_info): Likewise.
3244         (grub_util_error): Likewise.
3245         * util/elf/grub-mkimage.c: Fix capitalisation, quotes, full stops
3246         and/or new lines in `grub_util_warna', `grub_util_info',
3247         `grub_util_error' calls.
3248         * util/getroot.c: Likewise.
3249         * util/grub-editenv.c: Likewise.
3250         * util/grub-emu.c: Likewise.
3251         * util/grub-fstest.c: Likewise.
3252         * util/grub-mkdevicemap.c: Likewise.
3253         * util/grub-mkfont.c: Likewise.
3254         * util/grub-mkpasswd-pbkdf2.c: Likewise.
3255         * util/grub-mkrelpath.c: Likewise.
3256         * util/grub-pe2elf.c: Likewise.
3257         * util/grub-probe.c: Likewise.
3258         * util/hostdisk.c: Likewise.
3259         * util/i386/efi/grub-mkimage.c: Likewise.
3260         * util/i386/pc/grub-mkimage.c: Likewise.
3261         * util/i386/pc/grub-setup.c: Likewise.
3262         * util/ieee1275/ofpath.c: Likewise.
3263         * util/mkisofs/eltorito.c: Likewise.
3264         * util/mkisofs/rock.c: Likewise.
3265         * util/mkisofs/write.c: Likewise.
3266         * util/raid.c: Likewise.
3267         * util/sparc64/ieee1275/grub-mkimage.c: Likewise.
3268         * util/sparc64/ieee1275/grub-setup.c: Likewise.
3270 2010-01-15  Vladimir Serbinenko  <phcoder@gmail.com>
3272         Enable multiboot on non-pc.
3274         * conf/i386-coreboot.rmk, conf/i386-pc.rmk (pkglib_MODULES): Move
3275         multiboot.mod and multiboot2.mod to ...
3276         * conf/i386.rmk (pkglib_MODULES): ... here.
3277         * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_SOURCES):
3278         Moved to ...
3279         * conf/i386.rmk (multiboot_mod_SOURCES): .. here.
3280         * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_CFLAGS):
3281         Moved to ...
3282         * conf/i386.rmk (multiboot_mod_CFLAGS): .. here.
3283         * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_ASFLAGS):
3284         Moved to ...
3285         * conf/i386.rmk (multiboot_mod_ASFLAGS): .. here.
3286         * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_LDFLAGS):
3287         Moved to ...
3288         * conf/i386.rmk (multiboot_mod_LDFLAGS): .. here.
3289         * conf/x86_64-efi.rmk (pkglib_MODULES): Remove ata.mod and
3290         relocator.mod.
3291         (ata_mod_SOURCES): Removed.
3292         (ata_mod_CFLAGS): Likewise.
3293         (ata_mod_LDFLAGS): Likewise.
3294         (relocator_mod_SOURCES): Removed.
3295         (relocator_mod_CFLAGS): Likewise.
3296         (relocator_mod_ASFLAGS): Likewise.
3297         (relocator_mod_LDFLAGS): Likewise.
3298         Include i386.mk.
3299         * include/grub/x86_64/multiboot.h: New file.
3300         * loader/i386/multiboot.c (grub_multiboot_boot) [GRUB_MACHINE_EFI]:
3301         Terminate EFI.
3303 2010-01-15  Vladimir Serbinenko  <phcoder@gmail.com>
3305         Video multiboot support.
3307         * include/grub/multiboot.h (grub_multiboot_set_accepts_video):
3308         New prototype.
3309         * include/multiboot.h: Resynced with multiboot specification.
3310         * include/multiboot2.h: Likewise.
3311         * loader/i386/multiboot.c (UNSUPPORTED_FLAGS): Support video flags.
3312         (grub_multiboot): Parse MULTIBOOT_VIDEO_MODE fields.
3313         * loader/i386/multiboot_mbi.c (DEFAULT_VIDEO_MODE): New constant.
3314         (HAS_VGA_TEXT): Likewise.
3315         (accepts_video): New variable.
3316         (grub_multiboot_set_accepts_video): New function.
3317         (grub_multiboot_get_mbi_size): Account for video structures.
3318         (set_video_mode): New function.
3319         (retrieve_video_parameters): Likewise.
3320         (grub_multiboot_make_mbi): Fill video fields.
3322 2010-01-15  Vladimir Serbinenko  <phcoder@gmail.com>
3324         Video driver ids.
3326         * include/grub/video.h (grub_video_driver_id): New type.
3327         (grub_video_adapter): New member 'id'. All users updated.
3328         (grub_video_get_driver_id): New proto.
3329         * video/video.c (grub_video_get_driver_id): New function.
3331 2010-01-14  Carles Pina i Estany  <carles@pina.cat>
3333         * util/grub.d/30_os-prober.in: Use `set var=val' rather than plain
3334         `var=val'.
3336 2010-01-14  Carles Pina i Estany  <carles@pina.cat>
3338         * normal/cmdline.c (print_completion): Gettextizze.
3340 2001-01-14  Carles Pina i Estany  <carles@pina.cat>
3342         * loader/i386/pc/chainloader.c: Include `<grub/mm.h>'.
3344 2010-01-14  Carles Pina i Estany  <carles@pina.cat>
3346         * gettext/gettext.c (grub_gettext_translate): Push and pop
3347         grub_errno.
3348         (grub_gettext_delete_list): Change comment style.
3349         * kern/err.c (grub_error): Gettextizze.
3350         (grub_fatal): Gettextizze.
3352 2010-01-14  Robert Millan  <rmh.grub@aybabtu.com>
3354         * include/grub/i386/loader.h (grub_linux16_boot): Renamed to ...
3355         (grub_linux16_real_boot): ... this.
3356         * kern/i386/loader.S: Likewise.
3357         * loader/i386/pc/linux.c: Include `<grub/video.h>' and `<grub/mm.h>'.
3358         (grub_linux16_boot): New function.  Switches to text mode and calls
3359         grub_linux16_real_boot().
3361         * loader/i386/bsd.c: Include `<grub/video.h>'.
3362         (grub_freebsd_boot, grub_openbsd_boot, grub_netbsd_boot): Switch to
3363         text mode before calling grub_unix_real_boot().
3365         * loader/i386/multiboot.c: Include `<grub/video.h>'.
3366         (grub_multiboot_boot): Switch to text mode before calling
3367         grub_relocator32_boot().
3369         * loader/i386/pc/chainloader.c: Include `<grub/video.h>'.
3370         (grub_chainloader_boot): Switch to text mode before calling
3371         grub_chainloader_real_boot().
3373 2010-01-05  Jordan Uggla  <jordan.uggla@gmail.com>
3374 2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
3376         * util/grub-reboot.in: Make sure prev_saved_entry always gets a
3377         non-empty value.
3379 2010-01-05  Jordan Uggla  <jordan.uggla@gmail.com>
3380 2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
3382         * util/grub.d/00_header.in: Define a "savedefault" function for use
3383         in menu entries.
3384         * util/grub-mkconfig_lib.in (save_default_entry): Use it.
3386 2010-01-05  Jordan Uggla  <jordan.uggla@gmail.com>
3387 2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
3389         * util/grub-mkconfig_lib.in (save_default_entry): Only set
3390         saved_entry if boot_once is unset.
3391         * util/grub.d/00_header.in: Set boot_once to "true" if there was a
3392         previous saved entry (i.e. grub-reboot).
3394 2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
3396         * util/grub.d/30_os-prober.in: Call save_default_entry for hurd.
3398 2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
3400         * util/grub.d/00_header.in: Use `set var=val' rather than plain
3401         `var=val'.
3402         * util/grub-mkconfig_lib.in (save_default_entry): Likewise.
3404 2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
3406         * util/grub-reboot.in: Fix --version output.
3407         * util/grub-set-default.in: Likewise.
3409 2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
3411         * util/grub.d/00_header.in: Silently ignore zero-sized environment
3412         blocks.
3414 2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
3416         * util/grub.d/00_header.in: Quote the value assigned to `default',
3417         in case it contains spaces.
3419 2009-12-08  Colin Watson  <cjwatson@ubuntu.com>
3421         * util/grub.d/30_os-prober.in: Fix merge error that moved a
3422         `save_default_entry' call from the macosx case to the linux case.
3424 2009-10-25  Vladimir Serbinenko  <phcoder@gmail.com>
3425 2009-10-25  Colin Watson  <cjwatson@ubuntu.com>
3427         * normal/menu.c (grub_menu_execute_entry): Save selected entry title
3428         in `chosen' environment variable.
3429         * normal/menu_text.c (get_entry_number): Check if the variable
3430         matches the title of a menu entry.
3431         (run_menu): Pass menu to get_entry_number.
3433         * util/grub-reboot.in: New file.
3434         * util/grub-set-default.in: New file.
3435         * conf/common.rmk (grub-reboot): New utility.
3436         (grub-set-default): New utility.
3438         * util/grub-mkconfig_lib.in (save_default_entry): New function.
3439         * util/grub.d/00_header.in: If GRUB_DEFAULT is `saved', set
3440         default to `${saved_entry}'.  If `${prev_saved_entry}' is non-empty,
3441         move it to `saved_entry' for the next boot.  Load environment on
3442         initialisation.
3443         * util/grub.d/10_kfreebsd.in: Call save_default_entry.
3444         * util/grub.d/10_hurd.in: Likewise.
3445         * util/grub.d/10_linux.in (linux_entry): Likewise.
3446         * util/grub.d/10_windows.in: Likewise.
3447         * util/grub.d/30_os-prober.in: Likewise.
3449         * util/grub-install.in: Create environment block.
3450         * util/i386/efi/grub-install.in: Likewise.
3451         * util/ieee1275/grub-install.in: Likewise.
3452         * util/sparc64/ieee1275/grub-install.in: Likewise.
3454 2010-01-14  BVK Chaitanya  <bvk.groups@gmail.com>
3456         Unit testing framework for GRUB.
3458         * Makefile.in: Test framework build rules for 'make check'.
3459         * conf/tests.rmk: Build rules for individual tests and framework.
3461         * include/grub/test.h: Header file for whitebox tests.
3462         * tests/lib/functional_test.c: Framework support for whitebox
3463         functional tests.
3464         * tests/lib/test.c: Common whitebox testing code for unit and
3465         functional tests.
3466         * tests/lib/unit_test.c: Framework support for whitebox unit
3467         tests.
3469         * tests/util/grub-shell-tester.in: Support utility for grub-script
3470         tests.
3471         * tests/util/grub-shell.in: Utility to execute grub-script
3472         commands in a Qemu instance.
3474         * tests/example_functional_test.c: Example whitebox functional
3475         test.
3476         * tests/example_grub_script_test.in: Example grub-script test.
3477         * tests/example_scripted_test.in: Example scripted test.
3478         * tests/example_unit_test.c: Example whitebox unit test.
3480 2010-01-14  Vladimir Serbinenko  <phcoder@gmail.com>
3482         * conf/i386-coreboot.rmk (multiboot_mod_SOURCES):
3483         Add loader/i386/multiboot_mbi.c.
3484         (multiboot2_mod_SOURCES): Likewise.
3485         * conf/i386-pc.rmk (multiboot_mod_SOURCES): Likewise.
3486         (multiboot2_mod_SOURCES): Likewise.
3487         * include/grub/multiboot.h (grub_multiboot_get_mbi_size): New proto.
3488         (grub_multiboot_make_mbi): Likewise.
3489         (grub_multiboot_free_mbi): Likewise.
3490         (grub_multiboot_init_mbi): Likewise.
3491         (grub_multiboot_add_module): Likewise.
3492         (grub_multiboot_set_bootdev): Likewise.
3493         * loader/i386/multiboot.c (mbi): Removed.
3494         (mbi_dest): Likewise.
3495         (alloc_mbi): New variable.
3496         (grub_multiboot_payload_size): Removed. All users updated.
3497         (grub_multiboot_pure_size): New variable.
3498         (grub_multiboot_boot): Use grub_multiboot_make_mbi.
3499         (grub_multiboot_unload): Use grub_multiboot_free_mbi.
3500         (grub_get_multiboot_mmap_len): Moved to loader/i386/multiboot_mbi.c.
3501         (grub_fill_multiboot_mmap): Likewise.
3502         (grub_multiboot_get_bootdev): Likewise.
3503         (grub_multiboot): Use multiboot_mbi functions.
3504         * loader/i386/multiboot_mbi.c: New file.
3506 2010-01-13  Vladimir Serbinenko  <phcoder@gmail.com>
3508         * kern/efi/init.c (grub_efi_fini): Don't call grub_efi_mm_fini as
3509         it would result in module crash.
3511 2010-01-13  Vladimir Serbinenko  <phcoder@gmail.com>
3513         * term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Handle '\r'.
3514         (grub_ofconsole_getwh): Split to ...
3515         (grub_ofconsole_getwh): ... this.
3516         (grub_ofconsole_dimensions): ...and this.
3517         (grub_ofconsole_init_output): Call grub_ofconsole_dimensions.
3519 2010-01-13  Robert Millan  <rmh.grub@aybabtu.com>
3521         * util/mkisofs/rock.c (generate_rock_ridge_attributes): Fix a typo.
3523 2010-01-12  Vladimir Serbinenko  <phcoder@gmail.com>
3525         * loader/i386/pc/multiboot2.c: Removed stalled file.
3527 2010-01-12  Vladimir Serbinenko  <phcoder@gmail.com>
3529         * util/grub-mkpasswd-pbkdf2.c (main): Use grub_util_init_nls.
3530         Reported by: Grégoire Sutre
3532 2010-01-11  Robert Millan  <rmh.grub@aybabtu.com>
3534         * util/misc.c (canonicalize_file_name): New function.
3535         (make_system_path_relative_to_its_root): Use canonicalize_file_name()
3536         instead of realpath().
3538 2010-01-11  Colin Watson  <cjwatson@ubuntu.com>
3540         * util/grub-install.in (usage): Clarify meaning of --root-directory,
3541         and make it clearer that it's optional.  Based on confusion
3542         witnessed on IRC.
3544 2010-01-10  Vladimir Serbinenko  <phcoder@gmail.com>
3546         * term/i386/pc/vga_text.c (inc_y): Fix off-by-one error which resulted
3547         in premature implicit newline.
3549 2010-01-10  Vladimir Serbinenko  <phcoder@gmail.com>
3551         * normal/cmdline.c (grub_cmdline_get): Fix off-by-one error
3552         which resulted in garbled command line at the end of screen.
3554 2010-01-10  Robert Millan  <rmh.grub@aybabtu.com>
3556         * loader/i386/ieee1275/linux.c (grub_linux_boot): Rework video position
3557         initialization with similar approach as with other Linux loaders.
3559 2010-01-10  Robert Millan  <rmh.grub@aybabtu.com>
3561         Fix i386-ieee1275 build.
3563         * loader/i386/ieee1275/linux.c (grub_linux_boot): Use grub_term_width()
3564         and grub_term_height() for video_{width,height} initialization.
3566 2010-01-10  Robert Millan  <rmh.grub@aybabtu.com>
3568         Fix grub-emu build.
3570         * conf/any-emu.rmk (grub_emu_SOURCES): Remove `kern/reader.c'.
3572 2010-01-07  Vladimir Serbinenko  <phcoder@gmail.com>
3573 2010-01-09  Robert Millan  <rmh.grub@aybabtu.com>
3575         Support for multiple terminals.
3577         * Makefile.in (pkglib_DATA): terminal.lst.
3578         (terminal.lst): New target.
3579         * commands/handler.c (grub_cmd_handler): Don't handle terminals.
3580         (GRUB_MOD_INIT(handler)): Likewise.
3581         (GRUB_MOD_FINI(handler)): Likewise.
3582         * commands/help.c (grub_cmd_help): Handle multiple terminals.
3583         * commands/keystatus.c (grub_cmd_keystatus): Likewise.
3584         * commands/sleep.c (do_print): Use grub_term_restore_pos.
3585         (grub_cmd_sleep): Use grub_term_save_pos.
3586         * commands/terminal.c: New file.
3587         * conf/any-emu.rmk (grub_emu_SOURCES): Add normal/term.c
3588         commands/terminal.c and lib/charset.c.
3589         * conf/common.rmk (normal_mod_SOURCES): Add normal/term.c.
3590         (pkglib_MODULES): Add terminal.mod.
3591         (terminal_mod_SOURCES): New variable.
3592         (terminal_mod_CFLAGS): Likewise.
3593         (terminal_mod_LDFLAGS): Likewise.
3594         * genhandlerlist.sh: Don't handle terminals.
3595         * genmk.rb: Generate terminal-*.lst.
3596         * genterminallist.sh: New file.
3597         * include/grub/charset.h (grub_ucs4_to_utf8_alloc): New proto.
3598         (grub_is_valid_utf8): Likewise.
3599         (grub_utf8_to_ucs4_alloc): Likewise.
3600         * include/grub/menu_viewer.h (grub_menu_viewer): Rewritten.
3601         (grub_menu_register_viewer): Changed argument.
3602         (grub_menu_try_text): New proto.
3603         (grub_gfxmenu_try_hook): New declaration.
3604         * include/grub/normal.h (grub_normal_exit_level): New declaration.
3605         (grub_menu_init_page): Additional argument term.
3606         (grub_normal_init_page): Likewise.
3607         (grub_cmdline_get): Arguments simplified.
3608         (grub_utf8_to_ucs4_alloc): Removed.
3609         (grub_print_ucs4): Additional argument term.
3610         (grub_getstringwidth): Likewise.
3611         (grub_print_message_indented): Likewise.
3612         (grub_menu_text_register_instances): New proto.
3613         (grub_show_menu): Likewise.
3614         (read_terminal_list): Likewise.
3615         (grub_set_more): Likewise.
3616         * include/grub/parser.h: Include handler.h.
3617         * include/grub/reader.h: Rewritten.
3618         * include/grub/term.h (GRUB_TERM_NEED_INIT): Removed.
3619         (GRUB_TERM_WIDTH): Changed to function.
3620         (GRUB_TERM_HEIGHT): Likewise.
3621         (GRUB_TERM_BORDER_WIDTH): Likewise.
3622         (GRUB_TERM_BORDER_HEIGHT): Likewise.
3623         (GRUB_TERM_NUM_ENTRIES): Likewise.
3624         (GRUB_TERM_ENTRY_WIDTH): Likewise.
3625         (GRUB_TERM_CURSOR_X): Likewise.
3626         (grub_term_input_class): Likewise.
3627         (grub_term_output_class): Likewise.
3628         (grub_term_outputs_disabled): New declaration.
3629         (grub_term_inputs_disabled): Likewise.
3630         (grub_term_outputs): Likewise.
3631         (grub_term_inputs): Likewise.
3632         (grub_term_register_input): Rewritten.
3633         (grub_term_register_output): Likewise.
3634         (grub_term_unregister_input): Likewise.
3635         (grub_term_unregister_output): Likewise.
3636         (FOR_ACTIVE_TERM_INPUTS): New macro.
3637         (FOR_DISABLED_TERM_INPUTS): Likewise.
3638         (FOR_ACTIVE_TERM_OUTPUTS): Likewise.
3639         (FOR_DISABLED_TERM_OUTPUTS): Likewise.
3640         * include/grub/terminfo.h: Add oterm argument to all protypes.
3641         * kern/main.c (grub_main): Don't call grub_register_rescue_reader.
3642         Use grub_rescue_run.
3643         * kern/misc.c (grub_utf8_to_ucs4): Put '?' for invalid characters.
3644         All users updated.
3645         * kern/reader.c: Removed. All users updated.
3646         * kern/rescue_reader.c (grub_rescue_init): Removed.
3647         (grub_rescue_reader): Likewise.
3648         (grub_register_rescue_reader): Likewise.
3649         (grub_rescue_run): New function based on kern/reader.c.
3650         * kern/term.c: Adapted for multiterm.
3651         * lib/charset.c (grub_ucs4_to_utf8_alloc): New function.
3652         (grub_is_valid_utf8): Likewise.
3653         (grub_utf8_to_ucs4_alloc): Moved from normal/menu_text.c.
3654         * loader/i386/efi/linux.c (grub_cmd_linux): Retrieve parameters of
3655         right terminal.
3656         * loader/i386/linux.c (grub_linux_boot): Likewise.
3657         * normal/auth.c (grub_username_get): New function.
3658         (grub_auth_check_authentication): Use grub_username_get.
3659         * normal/cmdline.c: Changed to UCS4. Adapted for multiterm.
3660         * normal/color.c: Adapt for multiterm.
3661         * normal/main.c (read_config_file): Don't use grub_reader_loop.
3662         (grub_normal_init_page): Additional argument term.
3663         (read_lists): Call read_terminal_lists.
3664         (grub_enter_normal_mode): Call grub_cmdline_run.
3665         Handle grub_normal_exit_level.
3666         (grub_cmd_normal): Make reentrant.
3667         (grub_cmd_normal_exit): New function.
3668         (grub_normal_reader_init): Additional argument nested. Handle multiterm.
3669         * normal/menu.c: Adapt for multiterm.
3670         * normal/menu_entry.c: Likewise.
3671         * normal/menu_text.c: Likewise.
3672         * normal/menu_viewer.c: Removed. All users updated.
3673         * normal/term.c: New file.
3674         * util/console.c: Change order of includes to workaround a bug in
3675         ncurses headers.
3676         * term/terminfo.c: New argument oterm on all exported functions.
3677         All users updated.
3678         * util/grub-editenv.c (grub_term_input_class): Removed.
3679         (grub_term_output_class): Likewise.
3681 2010-01-09  Robert Millan  <rmh.grub@aybabtu.com>
3683         Make loader output a bit more user-friendly.
3685         * util/grub.d/10_hurd.in: Print message indicating that GNU Mach
3686         is being loaded.  Likewise for the Hurd.
3688         * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Print message indicating
3689         that kernel of FreeBSD ${version} is being loaded.
3691         * loader/i386/linux.c (grub_cmd_linux): Move debug info to
3692         grub_dprintf().
3693         (grub_cmd_initrd): Likewise.
3694         * util/grub.d/10_linux.in (linux_entry): Print message indicating
3695         that Linux ${version} is being loaded.  Likewise for initrd.
3697 2010-01-09  Carles Pina i Estany  <carles@pina.cat>
3699         * gettext/gettext.c (GRUB_MOD_INIT): Gettextizze.
3701 2010-01-08  Carles Pina i Estany  <carles@pina.cat>
3703         * loader/efi/appleloader.c: Include `<grub/i18n.h>'.
3704         (GRUB_MOD_INIT): Gettextizze.
3705         * loader/efi/chainloader.c: Include `<grub/i18n.h>'.
3706         (GRUB_MOD_INIT): Gettextizze.
3707         * loader/i386/efi/linux.c: Include `<grub/i18n.h>'.
3708         (grub_cmd_linux): Capitalise Linux.
3709         (GRUB_MOD_INIT): Gettextizze.
3710         * loader/i386/ieee1275/linux.c: Include `<grub/i18n.h>'.
3711         (grub_cmd_linux): Capitalise Linux.
3712         (GRUB_MOD_INIT): Gettextizze.
3713         * loader/i386/linux.c: Include `<grub/i18n.h>'.
3714         (grub_cmd_linux): Capitalise Linux.
3715         (GRUB_MOD_INIT): Gettextizze.
3716         * loader/i386/pc/chainloader.c: Include `<grub/i18n.h>'.
3717         (GRUB_MOD_INIT): Gettextizze.
3718         * loader/i386/pc/linux.c: Include `<grub/i18n.h>'.
3719         (grub_cmd_linux): Capitalise Linux.
3720         (GRUB_MOD_INIT): Gettextizze.
3721         * loader/i386/xnu.c: Include `<grub/i18n.h>'.
3722         (grub_cpu_xnu_init): Gettextizze.
3723         * loader/multiboot_loader.c: Include `<grub/i18n.h>'.
3724         (GRUB_MOD_INIT): Gettextizze.
3725         * loader/powerpc/ieee1275/linux.c: Include `<grub/i18n.h>'.
3726         (GRUB_MOD_INIT): Gettextizze.
3727         * loader/sparc64/ieee1275/linux.c: Include `<grub/i18n.h>'.
3728         (grub_linux_load64): Capitalise Linux.
3729         (GRUB_MOD_INIT): Gettextizze.
3730         * loader/xnu.c: Include `<grub/i18n.h>'.
3731         (GRUB_MOD_INIT): Gettextizze.
3732         * po/POTFILES: Add `loader/efi/appleloader.c',
3733         `loader/efi/chainloader.c', `loader/i386/efi/linux.c',
3734         `loader/i386/ieee1275/linux.c', `loader/i386/linux.c',
3735         `loader/i386/pc/chainloader.c', `loader/i386/pc/linux.c',
3736         `loader/i386/xnu.c', `loader/multiboot_loader.c',
3737         `loader/powerpc/ieee1275/linux.c', `loader/sparc64/ieee1275/linux.c'
3738         and `loader/xnu.c'.
3740 2010-01-08  Robert Millan  <rmh.grub@aybabtu.com>
3742         * src/mkisofs.c: Remove `ifdef linux' portability kludge.
3744 2010-01-08  Robert Millan  <rmh.grub@aybabtu.com>
3746         * util/mkisofs/defaults.h (APPID_DEFAULT): Redefine using PACKAGE_NAME.
3747         (SYSTEM_ID_DEFAULT): Set to "GNU" unconditionally.
3748         * util/mkisofs/mkisofs.c (main): Readjust --version output.
3750 2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
3752         Reset Multiboot 2 support.  New loader implements the draft in
3753         /branches/multiboot2 and shares as much code as possible with the
3754         production Multiboot 1 implementation.
3756         * loader/ieee1275/multiboot2.c: Remove file.  Update all users.
3757         * loader/multiboot2.c: Likewise.
3758         * loader/i386/multiboot_helper.S: Likewise.
3759         * include/multiboot2.h: Replace with latest version from the draft
3760         in /branches/multiboot2.
3762         * conf/i386-coreboot.rmk (multiboot_mod_SOURCES): Remove
3763         `loader/i386/multiboot_helper.S', `loader/i386/pc/multiboot2.c'
3764         and `loader/multiboot2.c'.
3765         (pkglib_MODULES): Add `multiboot2.mod'.
3766         (multiboot2_mod_SOURCES): New variable.
3767         (multiboot2_mod_LDFLAGS): Likewise.
3768         (multiboot2_mod_CFLAGS): Likewise.  Define `GRUB_USE_MULTIBOOT2'.
3770         * conf/i386-pc.rmk: Likewise.
3772         * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'.
3773         (multiboot_mod_SOURCES): Remove variable.
3774         (multiboot_mod_LDFLAGS): Likewise.
3775         (multiboot_mod_CFLAGS): Likewise.
3777         * include/grub/multiboot.h [GRUB_USE_MULTIBOOT2]: Include
3778         `<multiboot2.h>' instead of `<multiboot.h>'.
3779         [GRUB_USE_MULTIBOOT2] (MULTIBOOT_BOOTLOADER_MAGIC)
3780         (MULTIBOOT_HEADER_MAGIC): New macros.
3782         * loader/multiboot_loader.c (module_version_status): Remove variable.
3783         (find_multi_boot2_header): Remove function.
3784         (grub_cmd_multiboot_loader): Remove Multiboot 2 / Multiboot 1 selection
3785         logic.  Always check for the Multiboot version we're compiling for.
3786         (grub_cmd_module_loader): Likewise.
3787         [GRUB_USE_MULTIBOOT2] (GRUB_MOD_INIT(multiboot)): Register `multiboot2'
3788         command instead of `multiboot'.
3790 2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
3792         * include/multiboot.h (MULTIBOOT_UNSUPPORTED): Moved from here ...
3793         * loader/i386/multiboot.c (UNSUPPORTED_FLAGS): ... to here.  Update
3794         all users.
3796 2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
3797 2010-01-07  Vladimir Serbinenko  <phcoder@gmail.com>
3799         Fix breakage introduced with previous commit.
3801         * normal/dyncmd.c (read_command_list): Avoid unregistering kernel
3802         commands.
3803         * normal/handler.c (read_handler_list): Revert part of previous commit
3804         affecting this file.
3805         * normal/main.c (read_lists): Move read_handler_list() call back to ...
3806         (grub_normal_execute): ... here.
3808 2010-01-07  Robert Millan  <rmh.grub@aybabtu.com>
3810         Merge prefix-redefinition-fix branch.
3812         * normal/autofs.c (read_fs_list): Make function capable of being
3813         run multiple times, gracefuly replacing the previous data
3814         structures.
3815         * normal/dyncmd.c (read_command_list): Likewise.
3816         * normal/handler.c (read_handler_list): Likewise.
3817         * normal/main.c (read_lists): New function.  Calls all the
3818         list reading functions.
3819         (grub_normal_execute): Use read_lists() instead of calling all
3820         list reading functions explicitly.  Register read_lists() as a
3821         variable hook attached to ${prefix}.
3823 2010-01-07  Vladimir Serbinenko  <phcoder@gmail.com>
3825         Merge crypto branch.
3827         * Makefile.in (pkglib_DATA):  Add crypto.lst.
3828         (crypto.lst): New target.
3829         * commands/hashsum.c: New file.
3830         * commands/password.c (check_password): Use grub_crypto_memcmp.
3831         * commands/password_pbkdf2.c: New file.
3832         * commands/xnu_uuid.c: Remove MD5. Use GRUB_MD_MD5.
3833         * conf/any-emu.rmk (grub_emu_SOURCES): Add lib/crypto.c,
3834         normal/crypto.c and lib/libgcrypt-grub/cipher/md5.c.
3835         (grub_emu_CFLAGS): Add -Wno-missing-field-initializers -Wno-error
3836         -I$(srcdir)/lib/libgcrypt_wrap.
3837         * conf/common.rmk (normal_mod_SOURCES): Add normal/crypto.c.
3838         (pkglib_MODULES): Add crypto.mod, hashsum.mod, pbkdf2.mod and
3839         password_pbkdf2.mod.
3840         (crypto_mod_SOURCES): New variable.
3841         (crypto_mod_CFLAGS): Likewise.
3842         (crypto_mod_LDFLAGS): Likewise.
3843         (hashsum_mod_SOURCES): New variable.
3844         (hashsum_mod_CFLAGS): Likewise.
3845         (hashsum_mod_LDFLAGS): Likewise.
3846         (pbkdf2_mod_SOURCES): New variable.
3847         (pbkdf2_mod_CFLAGS): Likewise.
3848         (pbkdf2_mod_LDFLAGS): Likewise.
3849         (password_pbkdf2_mod_SOURCES): New variable.
3850         (password_pbkdf2_mod_CFLAGS): Likewise.
3851         (password_pbkdf2_mod_LDFLAGS): Likewise.
3852         (bin_UTILITIES): Add grub-mkpasswd-pbkdf2.
3853         (grub_mkpasswd_pbkdf2_SOURCES): New variable.
3854         (grub_mkpasswd_pbkdf2_CFLAGS): Likewise.
3855         Include conf/gcry.rmk.
3856         * include/grub/auth.h: Rewritten.
3857         * include/grub/crypto.h: New file.
3858         * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_LUKS_ID.
3859         * include/grub/normal.h (read_crypto_list): New prototype.
3860         * lib/crypto.c: New file.
3861         * lib/libgcrypt_wrap/cipher_wrap.h: Likewise.
3862         * lib/pbkdf2.c: Likewise.
3863         * normal/auth.c (grub_auth_strcmp): Removed.
3864         (grub_iswordseparator): Likewise.
3865         (grub_auth_strword): Likewise.
3866         (is_authenticated): Use grub_strword.
3867         (grub_auth_check_authentication): Use grub_strcmp, grub_password_get
3868         and grub_strword. Pass entered password to authentication callback.
3869         * normal/crypto.c: New file.
3870         * normal/main.c: Call read_crypto_list.
3871         * util/grub-mkpasswd-pbkdf2.c: New file.
3872         * util/import_gcry.py: Generate crypto.lst. Add hash blocklen.
3874 2010-01-06  Vladimir Serbinenko  <phcoder@gmail.com>
3876         Fix descent and ascent calculation.
3878         * util/grub-mkfont.c (grub_font_info): New fields 'asce' and 'max_y'.
3879         (options): New option "asce".
3880         (usage): Likewise.
3881         (add_char): Ignore invalid glyphs for descent calculation.
3882         Calculate ascent from actual content.
3883         (print_glyphs): Use 'asce'.
3884         (write_font): Likewise. Allow ascent override.
3885         (main): Handle "asce" option.
3887 2010-01-06  Carles Pina i Estany  <carles@pina.cat>
3889         * kern/err.c: Include `<grub/i18n.h>'.
3890         (grub_print_error): Add full stop. Gettextizze.
3891         * loader/i386/bsd.c (grub_netbsd_boot): Change grub_error description.
3892         (grub_bsd_load_elf): Capitalise ELF.
3893         (grub_cmd_freebsd_loadenv): Add `s' in error string.
3894         (grub_cmd_freebsd_module): Likewise.
3895         (grub_cmd_freebsd_module_elf): Likewise.
3896         * loader/i386/bsdXX.c (SUFFIX): Capitalise ELF.
3898 2010-01-06  Carles Pina i Estany  <carles@pina.cat>
3900         * commands/search.c (GRUB_MOD_INIT): Use HELP_MESSAGE.
3901         * commands/search_file.c (HELP_MESSAGE): New macro.
3902         * commands/search_label.c (HELP_MESSAGE): Likewise.
3903         * commands/search_uuid.c (HELP_MESSAGE): Likewise.
3904         * po/POTFILES: Add `commands/search_file.c',
3905         `commands/search_label.c', `commands_uuid.c'. Remove duplicate
3906         `commands/search.c'.
3908 2010-01-05  Robert Millan  <rmh.grub@aybabtu.com>
3910         * config.rpath: Update from Gnulib.
3912 2010-01-05  Yves Blusseau  <blusseau@zetam.org>
3914         * commands/acpi.c (grub_acpi_create_ebda): fix incorrect message.
3916 2010-01-05  Yves Blusseau  <yves.blusseau@zetam.org>
3918         * util/sparc64/ieee1275/grub-mkimage.c (main): Typo fix.
3920 2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
3922         * util/mkisofs/write.c (padblock_write): Switch size and nmemb
3923         arguments to fread so that we get a return value in bytes, rather
3924         than something that will normally be rounded down to 0.
3925         Adjust error handling to avoid producing garbage when size_t is not
3926         the same size as long long.
3928 2010-01-05  Colin Watson  <cjwatson@ubuntu.com>
3930         * util/mkisofs/write.c (padblock_write): Check return value of
3931         fread.
3933 2010-01-05  Robert Millan  <rmh.grub@aybabtu.com>
3935         Remove grub-mkfloppy.  Images produced by grub-mkrescue are valid
3936         floppy images now.
3938         * util/i386/pc/grub-mkfloppy.in: Remove.  Update all users.
3940 2010-01-04  Robert Millan  <rmh.grub@aybabtu.com>
3942         * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Use ALIGN_UP macro
3943         instead of manual alignment.
3944         * kern/disk.c (grub_disk_read): Remove grub_dprintf call (excessively
3945         verbose).  Avoid attempts to read past end of the device
3946         (grub_disk_adjust_range() guarantees that we can read `size' bytes,
3947         but GRUB_DISK_CACHE_SIZE may exceed that).
3949 2010-01-04  Robert Millan  <rmh.grub@aybabtu.com>
3951         * commands/crc.c (grub_cmd_crc): Abort on read errors.
3952         * fs/iso9660.c (grub_iso9660_read): Check for read error and pass
3953         it to upper layer.
3955 2010-01-04  Vladimir Serbinenko  <phcoder@gmail.com>
3957         * include/grub/efi/api.h (GRUB_EFI_PIWG_DEVICE_PATH_SUBTYPE):
3958         New constant.
3959         (grub_efi_piwg_device_path): New structure
3960         (grub_efi_piwg_device_path_t): New type.
3961         * loader/efi/appleloader.c (piwg_full_device_path): New structure.
3962         (devpath_1): Transform to a structure. All users updated.
3963         (devpath_2): Likewise.
3964         (devpath_3): Likewise.
3965         (devpath_4): Likewise.
3966         (devpath_5): Likewise.
3968 2010-01-04  Vladimir Serbinenko  <phcoder@gmail.com>
3970         * loader/efi/appleloader.c: Restored. Update all users.
3972 2010-01-03  Robert Millan  <rmh.grub@aybabtu.com>
3974         * boot/i386/pc/diskboot.S: Fix inaccurate comment.
3976         * util/i386/pc/grub-setup.c: Include `<assert.h>'.
3977         (struct boot_blocklist): Move from here ...
3978         * include/grub/i386/pc/boot.h [ASM_FILE]
3979         (struct grub_boot_blocklist): ... to here.  Update all users.
3980         (setup): Only initialize `start' member of `first_block'
3981         structure.  Add assert() calls to verify the other members.
3983         * util/i386/pc/grub-mkimage.c: Include `<assert.h>'.
3984         (generate_image): Fix broken blocklist length initialization.
3985         Add assert() call to verify blocklist `segment' field.
3987 2010-01-03  Robert Millan  <rmh.grub@aybabtu.com>
3989         * loader/efi/appleloader.c: Remove.  Update all users.
3991 2010-01-03  Robert Millan  <rmh.grub@aybabtu.com>
3993         * boot/i386/pc/boot.S: Update copyright year.
3994         * boot/i386/pc/cdboot.S: Likewise.
3995         * boot/i386/pc/diskboot.S: Likewise.
3996         * boot/i386/pc/lnxboot.S: Likewise.
3997         * boot/i386/pc/pxeboot.S: Likewise.
3998         * bus/pci.c: Likewise.
3999         * commands/cmp.c: Likewise.
4000         * commands/help.c: Likewise.
4001         * commands/hexdump.c: Likewise.
4002         * commands/i386/pc/halt.c: Likewise.
4003         * commands/i386/pc/play.c: Likewise.
4004         * commands/i386/pc/vbeinfo.c: Likewise.
4005         * commands/ls.c: Likewise.
4006         * commands/test.c: Likewise.
4007         * disk/dmraid_nvidia.c: Likewise.
4008         * disk/i386/pc/biosdisk.c: Likewise.
4009         * disk/ieee1275/nand.c: Likewise.
4010         * disk/ieee1275/ofdisk.c: Likewise.
4011         * disk/lvm.c: Likewise.
4012         * disk/raid.c: Likewise.
4013         * disk/raid6_recover.c: Likewise.
4014         * disk/scsi.c: Likewise.
4015         * fs/affs.c: Likewise.
4016         * fs/cpio.c: Likewise.
4017         * fs/ext2.c: Likewise.
4018         * fs/hfs.c: Likewise.
4019         * fs/iso9660.c: Likewise.
4020         * fs/ntfs.c: Likewise.
4021         * fs/sfs.c: Likewise.
4022         * fs/udf.c: Likewise.
4023         * fs/ufs.c: Likewise.
4024         * fs/xfs.c: Likewise.
4025         * gencmdlist.sh: Likewise.
4026         * genmk.rb: Likewise.
4027         * include/grub/disk.h: Likewise.
4028         * include/grub/efi/api.h: Likewise.
4029         * include/grub/efi/efi.h: Likewise.
4030         * include/grub/efi/pe32.h: Likewise.
4031         * include/grub/elf.h: Likewise.
4032         * include/grub/fs.h: Likewise.
4033         * include/grub/i386/at_keyboard.h: Likewise.
4034         * include/grub/i386/pc/memory.h: Likewise.
4035         * include/grub/i386/pc/vbe.h: Likewise.
4036         * include/grub/i386/pci.h: Likewise.
4037         * include/grub/i386/tsc.h: Likewise.
4038         * include/grub/ieee1275/ieee1275.h: Likewise.
4039         * include/grub/ntfs.h: Likewise.
4040         * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
4041         * include/grub/sparc64/libgcc.h: Likewise.
4042         * include/grub/symbol.h: Likewise.
4043         * include/grub/types.h: Likewise.
4044         * include/multiboot2.h: Likewise.
4045         * io/gzio.c: Likewise.
4046         * kern/device.c: Likewise.
4047         * kern/disk.c: Likewise.
4048         * kern/efi/efi.c: Likewise.
4049         * kern/efi/mm.c: Likewise.
4050         * kern/elf.c: Likewise.
4051         * kern/file.c: Likewise.
4052         * kern/i386/dl.c: Likewise.
4053         * kern/i386/pc/init.c: Likewise.
4054         * kern/i386/pc/startup.S: Likewise.
4055         * kern/ieee1275/ieee1275.c: Likewise.
4056         * kern/ieee1275/init.c: Likewise.
4057         * kern/main.c: Likewise.
4058         * kern/mm.c: Likewise.
4059         * kern/powerpc/dl.c: Likewise.
4060         * kern/sparc64/dl.c: Likewise.
4061         * kern/x86_64/dl.c: Likewise.
4062         * lib/hexdump.c: Likewise.
4063         * loader/efi/appleloader.c: Likewise.
4064         * loader/i386/ieee1275/linux.c: Likewise.
4065         * loader/i386/pc/chainloader.c: Likewise.
4066         * loader/i386/pc/linux.c: Likewise.
4067         * loader/i386/pc/multiboot2.c: Likewise.
4068         * loader/ieee1275/multiboot2.c: Likewise.
4069         * loader/multiboot2.c: Likewise.
4070         * loader/multiboot_loader.c: Likewise.
4071         * loader/powerpc/ieee1275/linux.c: Likewise.
4072         * normal/completion.c: Likewise.
4073         * normal/menu_entry.c: Likewise.
4074         * partmap/apple.c: Likewise.
4075         * util/grub.d/10_hurd.in: Likewise.
4076         * util/hostfs.c: Likewise.
4077         * video/readers/png.c: Likewise.
4079 2010-01-03  Colin Watson  <cjwatson@ubuntu.com>
4081         * include/grub/misc.h (GNUC_PREREQ): New macro.
4082         (ATTRIBUTE_ERROR): New macro.
4083         * include/grub/list.h (grub_bad_type_cast_real): Use
4084         ATTRIBUTE_ERROR.
4086 2010-01-03  Carles Pina i Estany  <carles@pina.cat>
4088         * normal/menu_text.c (print_message): Change messages.
4090 2010-01-03  Carles Pina i Estany  <carles@pina.cat>
4092         * normal/menu_entry.c (store_completion): Gettextizze.
4094 2010-01-03  Carles Pina i Estany  <carles@pina.cat>
4096         * kern/env.c (grub_env_unset): Set the variable to "" if has hooks.
4098 2010-01-03  Carles Pina i Estany  <carles@pina.cat>
4100         * po/POTFILES: Sort correctly.
4102 2010-01-03  Carles Pina i Estany  <carles@pina.cat>
4104         * commands/acpi.c (GRUB_MOD_INIT): Capitalise some words from help.
4105         * commands/efi/loadbios.c (GRUB_MOD_INIT): Capitalise BIOS.
4106         * commands/i386/pc/drivemap.c (GRUB_MOD_INIT): Remove space. Add
4107         full stop.
4108         * commands/loadenv.c (GRUB_MOD_INIT): Remove command name from
4109         summary. Gettextizze the strings.
4110         * commands/probe.c (grub_cmd_probe): Capitalise UUID and FS.
4111         * commands/xnu_uuid.c (GRUB_MOD_INIT): Capitalise XNU.
4112         * disk/loopback.c (grub_arg_options): Capitalise first letter. Add
4113         full stop.
4114         (GRUB_MOD_INIT): Remove command name from summary.
4115         * hello/hello.c (GRUD_MOT_INIT): Add missing full stop. Improve the
4116         summary.
4117         * loader/i386/bsd.c (grub_arg_option): Capitalise CDROM.
4118         * term/i386/pc/serial.c (options): Add full stops.
4119         (GRUB_MOD_INIT): Remove command name from the summary.
4121 2010-01-03  Carles Pina i Estany  <carles@pina.cat>
4123         * commands/acpi.c: Gettextizze help strings and/or options. Include
4124         `grub/i18n.h' if needed.
4125         * commands/blocklist.c: Likewise.
4126         * commands/boot.c: Likewise.
4127         * commands/cat.c: Likewise.
4128         * commands/cmp.c: Likewise.
4129         * commands/configfile.c: Likewise.
4130         * commands/crc.c: Likewise.
4131         * commands/date.c: Likewise.
4132         * commands/echo.c: Likewise.
4133         * commands/efi/fixvideo.c: Likewise.
4134         * commands/efi/loadbios.c: Likewise.
4135         * commands/gptsync.c: Likewise.
4136         * commands/halt.c: Likewise.
4137         * commands/handler.c: Likewise.
4138         * commands/hdparm.c: Likewise.
4139         * commands/hexdump.c: Likewise.
4140         * commands/i386/cpuid.c: Likewise.
4141         * commands/i386/pc/drivemap.c: Likewise.
4142         * commands/i386/pc/halt.c: Likewise.
4143         * commands/i386/pc/pxecmd.c: Likewise.
4144         * commands/i386/pc/vbeinfo.c: Likewise.
4145         * commands/i386/pc/vbetest.c: Likewise.
4146         * commands/ieee1275/suspend.c: Likewise.
4147         * commands/keystatus.c: Likewise.
4148         * commands/loadenv.c: Likewise.
4149         * commands/ls.c: Likewise.
4150         * commands/lsmmap.c: Likewise.
4151         * commands/lspci.c: Likewise.
4152         * commands/memrw.c: Likewise.
4153         * commands/minicmd.c: Likewise.
4154         * commands/parttool.c: Likewise.
4155         * commands/password.c: Likewise.
4156         * commands/probe.c: Likewise.
4157         * commands/read.c: Likewise.
4158         * commands/reboot.c: Likewise.
4159         * commands/search.c: Likewise.
4160         * commands/sleep.c: Likewise.
4161         * commands/test.c: Likewise.
4162         * commands/true.c: Likewise.
4163         * commands/usbtest.c: Likewise.
4164         * commands/videotest.c: Likewise.
4165         * commands/xnu_uuid.c: Likewise.
4166         * disk/loopback.c: Likewise.
4167         * hello/hello.c: Likewise.
4168         * loader/i386/bsd.c: Likewise.
4169         * term/i386/pc/serial.c: Likewise.
4170         * po/POTFILES: Add new files.
4172 2010-01-02  Colin Watson  <cjwatson@ubuntu.com>
4174         * term/i386/pc/at_keyboard.c
4175         (keyboard_controller_wait_untill_ready): Rename to ...
4176         (keyboard_controller_wait_until_ready): ... this. Update all users.
4178 2010-01-01  Carles Pina i Estany  <carles@pina.cat>
4180         * commands/help.c: Include `grub/mm.h' and `grub/normal.h'.
4181         (grub_cmd_help): Print the cmd->name before the cmd->summary. Cut the
4182         string using string width.
4183         * normal/menu_text.c (grub_print_message_indented): Use
4184         grub_print_spaces and not print_spaces.
4185         (print_timeout): Likewise.
4186         (print_spaces): Move to...
4187         * include/grub/term.h: ... here. Change the name to grub_print_spaces.
4189 2010-01-01  Robert Millan  <rmh.grub@aybabtu.com>
4191         Import from Gnulib.
4193         * gnulib/getdelim.c: New file.
4194         * gnulib/getline.c: Likewise.
4196 2009-12-31 BVK Chaitanya  <bvk.groups@gmail.com>
4198         * include/grub/list.h (grub_assert_fail): Removed.
4199         (grub_bad_type_cast_real): New function.
4200         (grub_bad_type_cast): New macro.
4201         (GRUB_AS_LIST): Use grub_bad_type_cast.
4202         (GRUB_AS_LIST_P): Likewise.
4203         (GRUB_AS_NAMED_LIST): Likewise.
4204         (GRUB_AS_NAMED_LIST_P): Likewise.
4205         (GRUB_AS_PRIO_LIST): Likewise.
4206         (GRUB_AS_PRIO_LIST_P): Likewise.
4207         * include/grub/handler.h (GRUB_AS_HANDLER): Likewise.
4209 2009-12-29 Vladimir Serbinenko  <phcoder@gmail.com>
4211         * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT (linux)):
4212         Fix syntax error.
4214 2009-12-29  Robert Millan  <rmh.grub@aybabtu.com>
4216         * configure.ac: Check for TARGET_CFLAGS initialization before we
4217         initialize it ourselves (sigh).
4218         Move a few modifications to TARGET_CFLAGS to be unconditional
4219         (extra warning flags, loop alignment, i386 CPU extensions, GCC 4.4
4220         eh_frame)
4222         * gettext/gettext.c (grub_gettext_delete_list): Add `void' argument.
4223         * term/i386/pc/at_keyboard.c
4224         (keyboard_controller_wait_untill_ready): Likewise.
4225         (keyboard_controller_led): Rename `led_status' paramter to avoid
4226         name conflict.
4228 2009-12-28  Carles Pina i Estany  <carles@pina.cat>
4230         * normal/misc.c (grub_normal_print_device_info): Add spaces and double
4231         quotes.
4233 2009-12-27  Vladimir Serbinenko  <phcoder@gmail.com>
4235         * kern/parser.c (grub_parser_split_cmdline): Don't dereference NULL.
4237 2009-12-27  Vladimir Serbinenko  <phcoder@gmail.com>
4239         * normal/menu_text.c (grub_print_message_indented): Prevent
4240         past-the-end-of-array dereference.
4242 2009-12-27  Vladimir Serbinenko  <phcoder@gmail.com>
4244         * video/readers/jpeg.c (GRUB_MOD_FINI (grub_cmd_jpegtest)): Rename to ..
4245         (GRUB_MOD_FINI (video_reader_jpeg)): ...this
4247 2009-12-27  Carles Pina i Estany  <carles@pina.cat>
4249         * normal/cmdline.c (grub_cmdline_get): Print a space after prompt.
4250         * normal/main.c (grub_normal_read_line): Remove a space from the
4251         default prompt.
4253 2009-12-27  Carles Pina i Estany  <carles@pina.cat>
4255         * loader/i386/efi/linux.c (GRUB_MOD_INIT): Improve command summary.
4256         * loader/i386/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
4257         * loader/i386/linux.c (GRUB_MOD_INIT): Likewise.
4258         * loader/i386/pc/linux.c (GRUB_MOD_INIT): Likewise.
4259         * loader/powerpc/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
4260         * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
4261         * loader/xnu.c (GRUB_MOD_INIT): Likewise.
4263 2009-12-26  Carles Pina i Estany  <carles@pina.cat>
4265         * video/readers/jpeg.c (cmd): Declare.
4266         (grub_cmd_jpegtest): Use `grub_command_t' type.
4267         (GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
4268         Assign to `cmd'.
4269         (GRUB_MOD_FINI): Use `cmd' to unregister.
4270         * video/readers/png.c (cmd): Declare.
4271         (grub_cmd_pngtest): Use `grub_command_t' type.
4272         (GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
4273         Assign to `cmd'.
4274         (GRUB_MOD_FINI): Use `cmd' to unregister.
4275         * video/readers/tga.c (cmd): Declare.
4276         (grub_cmd_tgatest): Use `grub_command_t' type.
4277         (GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
4278         Assign to `cmd'.
4279         (GRUB_MOD_FINI): Use `cmd' to unregister.
4281 2009-12-26  Carles Pina i Estany  <carles@pina.cat>
4283         * efiemu/main.c (GRUB_MOD_INIT): Fix capitalizations and/or full
4284         stops.
4285         * kern/corecmd.c (grub_register_core_commands): Likewise.
4286         * loader/efi/chainloader.c (GRUB_MOD_INIT): Likewise.
4287         * loader/i386/bsd.c (GRUB_MOD_INIT): Likewise.
4288         * loader/i386/efi/linux.c (GRUB_MOD_INIT): Likewise.
4289         * loader/i386/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
4290         * loader/i386/linux.c (GRUB_MOD_INIT): Likewise.
4291         * loader/i386/pc/chainloader.c (GRUB_MOD_INIT): Likewise.
4292         * loader/i386/pc/linux.c (GRUB_MOD_INIT): Likewise.
4293         * loader/multiboot_loader.c (GRUB_MOD_INIT): Likewise.
4294         * loader/powerpc/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
4295         * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT): Likewise.
4296         * loader/xnu.c (GRUB_MOD_INIT): Likewise.
4297         * mmap/mmap.c (GRUB_MOD_INIT): Likewise.
4298         * normal/handler.c (insert_handler): Likewise.
4299         * normal/main.c (GRUB_MOD_INIT): Likewise.
4300         * term/gfxterm.c (GRUB_MOD_INIT): Likewise.
4302 2009-12-26  Carles Pina i Estany  <carles@pina.cat>
4304         * commands/help.c (grub_cmd_help): Print the command name before the
4305         summary.
4306         (GRUB_MOD_INIT): Remove command name from the summary.
4307         * kern/command.c (GRUB_MOD_INIT): If summary is null assign an empty
4308         string as summary.
4309         * lib/arg.c (find_long): Print the command name before the summary.
4310         * commands/acpi.c (GRUB_MOD_INIT): Remove command name from the
4311         summary.
4312         * commands/blocklist.c (GRUB_MOD_INIT): Likewise.
4313         * commands/cat.c (GRUB_MOD_INIT): Likewise.
4314         * commands/cmp.c (GRUB_MOD_INIT): Likewise.
4315         * commands/configfile.c (GRUB_MOD_INIT): Likewise.
4316         * commands/crc.c (GRUB_MOD_INIT): Likewise.
4317         * commands/date.c (GRUB_MOD_INIT): Likewise.
4318         * commands/echo.c (GRUB_MOD_INIT): Likewise.
4319         * commands/efi/loadbios.c (GRUB_MOD_INIT): Likewise.
4320         * commands/gptsync.c (GRUB_MOD_INIT): Likewise.
4321         * commands/handler.c (GRUB_MOD_INIT): Likewise.
4322         * commands/hdparm.c (GRUB_MOD_INIT): Likewise.
4323         * commands/hexdump.c (GRUB_MOD_INIT): Likewise.
4324         * commands/i386/cpuid.c (GRUB_MOD_INIT): Likewise.
4325         * commands/i386/pc/halt.c (GRUB_MOD_INIT): Likewise.
4326         * commands/i386/pc/play.c (GRUB_MOD_INIT): Likewise.
4327         * commands/i386/pc/pxecmd.c (GRUB_MOD_INIT): Likewise.
4328         * commands/keystatus.c (GRUB_MOD_INIT): Likewise.
4329         * commands/loadenv.c (GRUB_MOD_INIT): Likewise.
4330         * commands/ls.c (GRUB_MOD_INIT): Likewise.
4331         * commands/lspci.c (GRUB_MOD_INIT): Likewise.
4332         * commands/memrw.c (GRUB_MOD_INIT): Likewise.
4333         * commands/minicmd.c (GRUB_MOD_INIT): Likewise.
4334         * commands/parttool.c (GRUB_MOD_INIT): Likewise.
4335         * commands/password.c (GRUB_MOD_INIT): Likewise.
4336         * commands/probe.c (GRUB_MOD_INIT): Likewise.
4337         * commands/read.c (GRUB_MOD_INIT): Likewise.
4338         * commands/search.c (GRUB_MOD_INIT): Likewise.
4339         * commands/sleep.c (GRUB_MOD_INIT): Likewise.
4340         * commands/test.c (GRUB_MOD_INIT): Likewise.
4341         * commands/xnu_uuid.c (GRUB_MOD_INIT): Likewise.
4342         * efiemu/main.c (GRUB_MOD_INIT): Likewise.
4343         * font/font_cmd.c (GRUB_MOD_INIT): Likewise.
4344         * gettext/gettext.c (GRUB_MOD_INIT): Likewise.
4345         * kern/corecmd.c (GRUB_MOD_INIT): Likewise.
4346         * lib/arg.c (GRUB_MOD_INIT): Likewise.
4347         * loader/efi/appleloader.c (GRUB_MOD_INIT): Likewise.
4348         * loader/i386/bsd.c (GRUB_MOD_INIT): Likewise.
4349         * loader/xnu.c (GRUB_MOD_INIT): Likewise.
4350         * mmap/mmap.c (GRUB_MOD_INIT): Likewise.
4351         * term/terminfo.c (GRUB_MOD_INIT): Likewise.
4352         * video/readers/jpeg.c (GRUB_MOD_INIT): Likewise.
4353         * video/readers/png.c (GRUB_MOD_INIT): Likewise.
4354         * video/readers/tga.c (GRUB_MOD_INIT): Likewise.
4356 2009-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
4358         Use search command for preliminar UUID search.
4360         * commands/search.c: Split into ...
4361         * commands/search_wrap.c: ...this
4362         * commands/search.c: ...and this.
4363         * commands/search_file.c: New file.
4364         * commands/search_label.c: New file.
4365         * commands/search_uuid.c: New file.
4366         * conf/any-emu.rmk (grub_emu_SOURCES): Remove commands/search.c.
4367         Add commands/search_wrap.c, commands/search_file.c,
4368         commands/search_label.c and commands/search_uuid.c.
4369         * conf/common.rmk (pkglib_MODULES): Remove fs_uuid.mod and fs_file.mod.
4370         (search_mod_SOURCES): Set to commands/search_wrap.c.
4371         (pkglib_MODULES): Add search_fs_file.mod, search_fs_uuid.mod and
4372         search_label.mod.
4373         (search_fs_file_mod_SOURCES): New variable.
4374         (search_fs_file_mod_CFLAGS): Likewise.
4375         (search_fs_file_mod_LDFLAGS): Likewise.
4376         (search_label_mod_SOURCES): Likewise.
4377         (search_label_mod_CFLAGS): Likewise.
4378         (search_label_mod_LDFLAGS): Likewise.
4379         (search_fs_uuid_mod_SOURCES): New variable.
4380         (search_fs_uuid_mod_CFLAGS): Likewise.
4381         (search_fs_uuid_mod_LDFLAGS): Likewise.
4382         (fs_file_mod_SOURCES): Removed.
4383         (fs_file_mod_CFLAGS): Likewise.
4384         (fs_file_mod_LDFLAGS): Likewise.
4385         (fs_uuid_mod_SOURCES): Removed.
4386         (fs_uuid_mod_CFLAGS): Likewise.
4387         (fs_uuid_mod_LDFLAGS): Likewise.
4388         * conf/sparc64-ieee1275.rmk (grub_install_SOURCES):
4389         Set to util/grub-install.in.
4390         * disk/fs_file.c: Removed.
4391         * disk/fs_uuid.c: Likewise.
4392         * include/grub/search.h: New file.
4393         * util/grub-install.in: Handle sparc64.
4394         Create and use load.cfg.
4395         * util/sparc64/ieee1275/grub-install.in: Removed.
4397 2009-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
4399         * kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions):
4400         Ignore return status if CF is cleared.
4401         (grub_biosdisk_get_diskinfo_standard): Likewise.
4403 2009-12-25  Robert Millan  <rmh.grub@aybabtu.com>
4405         * term/i386/pc/at_keyboard.c
4406         (keyboard_controller_wait_untill_ready): New function.
4407         (grub_keyboard_controller_write, grub_keyboard_controller_read)
4408         (keyboard_controller_led): Use keyboard_controller_wait_untill_ready()
4409         for keyboard polling, rather than duplicate the same loop.  This
4410         saves a few bytes in code size.
4412 2009-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
4414         Support for (pxe[:server[:gateway]]) syntax and
4415         use environment variable for PXE.
4417         * commands/i386/pc/pxecmd.c (options): Removed.
4418         (print_ip): Removed.
4419         (grub_cmd_pxe): Removed
4420         (grub_cmd_pxe_unload): New function.
4421         * fs/i386/pc/pxe.c (grub_pxe_disk_data): New structure.
4422         (grub_pxe_your_ip): Made static.
4423         (grub_pxe_default_server_ip): Likewise.
4424         (grub_pxe_default_gateway_ip): Likewise.
4425         (grub_pxe_blksize): Likewise.
4426         (parse_ip): New function.
4427         (grub_pxe_open): Support server and gateway specification.
4428         (grub_pxe_close): Free disk->data.
4429         (grub_pxefs_open): Use disk->data.
4430         (grub_pxefs_read): Likewise.
4431         (grub_env_write_readonly): New function.
4432         (set_mac_env): Likewise.
4433         (set_env_limn_ro): Likewise.
4434         (parse_dhcp_vendor): Likewise.
4435         (grub_pxe_detect): Set the environment variables.
4436         (set_ip_env): New function.
4437         (write_ip_env): Likewise.
4438         (grub_env_write_pxe_default_server): Likewise.
4439         (grub_env_write_pxe_default_gateway): Likewise.
4440         (grub_env_write_pxe_blocksize): Likewise.
4441         (GRUB_MOD_INIT(pxe)): Set environment variables.
4442         * include/grub/i386/pc/pxe.h (grub_pxe_mac_addr): Rename to ...
4443         (grub_pxe_mac_addr_t): ... this. All users updated.
4444         (grub_pxe_your_ip): Removed.
4445         (grub_pxe_server_ip): Likewise.
4446         (grub_pxe_gateway_ip): Likewise.
4447         (grub_pxe_blksize): Likewise.
4449 2009-12-25  Carles Pina i Estany  <carles@pina.cat>
4451         * commands/help.c: Include `<grub/i18n.h>'.
4452         (grub_cmd_help): Gettextizze.
4453         (GRUB_MOD_INIT): Likewise.
4454         * commands/i386/pc/play.c: Include `<grub/i18n.h>'.
4455         (GRUB_MOD_INIT): Gettextizze.
4456         * commands/search.c: Include `<grub/i18n.h>'.
4457         (options): Gettextizze.
4458         (GRUB_MOD_INIT): Gettextizze.
4459         * lib/arg.c: Include `<grub/i18n.h>'.
4460         (help_options): Gettextizze.
4461         (find_long): Likewise.
4462         (grub_arg_show_help): Likewise.
4463         * normal/dyncmd.c: Include `<grub/i18n.h>'.
4464         (read_command_list): Gettextizze.
4465         * po/POTFILES: Add `commands/i386/pc/play.c', `commands/search.c',
4466         `commands/help.c', `lib/arg.c' and `normal/dyncmd.c'.
4468 2009-12-25  Robert Millan  <rmh.grub@aybabtu.com>
4470         * include/grub/i386/at_keyboard.h (NUM_LOCK, SCROLL_LOCK): New macros.
4471         * term/i386/pc/at_keyboard.c (KEYBOARD_STATUS_NUM_LOCK)
4472         (KEYBOARD_LED_SCROLL, KEYBOARD_LED_NUM, KEYBOARD_LED_CAPS): New macros.
4473         (led_status): New variable.
4474         (keyboard_controller_led): New function.
4475         (grub_at_keyboard_getkey_noblock): Handle num lock and scroll lock,
4476         update led status for caps lock, num lock and scroll lock.
4478 2009-12-25  Felix Zielcke <fzielcke@z-51.de>
4480         * util/hostdisk.c (open_device): Fix a comment.
4482 2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
4484         * util/grub-install.in (host_os): New variable.
4485         * util/i386/efi/grub-install.in (host_os): Likewise.
4487 2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
4489         * util/mkisofs/write.c (padblock_write): Abort when given an
4490         excedingly large embed image, instead of silently truncating it.
4492 2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
4494         * include/multiboot.h: Indentation fixes.
4496 2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
4498         * include/multiboot.h (struct multiboot_aout_symbol_table)
4499         (struct multiboot_elf_section_header_table): New structure
4500         declarations (stolen from GRUB Legacy).
4501         (struct multiboot_info): Replace opaque `syms' with a.out and ELF
4502         table information.
4504         (multiboot_aout_symbol_table_t, multiboot_elf_section_header_table_t)
4505         (multiboot_info_t, multiboot_memory_map_t, multiboot_module_t): New
4506         type aliases.
4508 2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
4510         * include/multiboot.h: Make comments src2texi-friendly.
4512 2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
4514         For consistency with [multiboot]/docs/boot.S.
4516         * include/multiboot.h (MULTIBOOT_MAGIC): Rename from this ...
4517         (MULTIBOOT_HEADER_MAGIC): ... to this.  Update all users.
4518         (MULTIBOOT_MAGIC2): Rename from this ...
4519         (MULTIBOOT_BOOTLOADER_MAGIC): ... to this.  Update all users.
4521 2009-12-24  Robert Millan  <rmh.grub@aybabtu.com>
4523         * include/multiboot.h: Remove `<grub/types.h>'.
4524         (multiboot_uint16_t, multiboot_uint32_t, multiboot_uint64_t): New
4525         types.  Update all users.
4527 2009-12-25  Carles Pina i Estany  <carles@pina.cat>
4529         * commands/efi/loadbios.c: Capitalize acronyms, replace `could not' by
4530         `couldn't' and `can not' by `cannot'.
4531         * commands/i386/pc/drivemap.c: Likewise.
4532         * disk/ata.c: Likewise.
4533         * disk/ieee1275/nand.c: Likewise.
4534         * fs/affs.c: Likewise.
4535         * fs/fat.c: Likewise.
4536         * fs/hfs.c: Likewise.
4537         * fs/hfsplus.c: Likewise.
4538         * fs/iso9660.c: Likewise.
4539         * fs/jfs.c: Likewise.
4540         * fs/minix.c: Likewise.
4541         * fs/reiserfs.c: Likewise.
4542         * fs/sfs.c: Likewise.
4543         * fs/udf.c: Likewise.
4544         * fs/ufs.c: Likewise.
4545         * fs/xfs.c: Likewise.
4546         * loader/powerpc/ieee1275/linux.c: Likewise.
4547         * loader/sparc64/ieee1275/linux.c: Likewise.
4548         * util/grub-probe.c: Likewise.
4549         * util/misc.c: Likewise.
4551 2009-12-24  Carles Pina i Estany  <carles@pina.cat>
4553         * bus/usb/usbhub.c: Fix capitalization, fullstop and newlines in
4554         grub_errno calls.
4555         * commands/acpi.c: Likewise.
4556         * commands/blocklist.c: Likewise.
4557         * commands/efi/loadbios.c: Likewise.
4558         * commands/i386/pc/drivemap.c: Likewise.
4559         * commands/loadenv.c: Likewise.
4560         * commands/memrw.c: Likewise.
4561         * commands/password.c: Likewise.
4562         * commands/videotest.c: Likewise.
4563         * disk/ata.c: Likewise.
4564         * disk/ata_pthru.c: Likewise.
4565         * disk/dmraid_nvidia.c: Likewise.
4566         * disk/ieee1275/nand.c: Likewise.
4567         * disk/ieee1275/ofdisk.c: Likewise.
4568         * disk/loopback.c: Likewise.
4569         * disk/lvm.c: Likewise.
4570         * disk/mdraid_linux.c: Likewise.
4571         * disk/raid.c: Likewise.
4572         * disk/raid6_recover.c: Likewise.
4573         * disk/scsi.c: Likewise.
4574         * efiemu/main.c: Likewise.
4575         * efiemu/mm.c: Likewise.
4576         * efiemu/pnvram.c: Likewise.
4577         * efiemu/symbols.c: Likewise.
4578         * font/font.c: Likewise.
4579         * fs/cpio.c: Likewise.
4580         * fs/hfsplus.c: Likewise.
4581         * fs/iso9660.c: Likewise.
4582         * fs/jfs.c: Likewise.
4583         * fs/minix.c: Likewise.
4584         * fs/ntfs.c: Likewise.
4585         * fs/ntfscomp.c: Likewise.
4586         * fs/reiserfs.c: Likewise.
4587         * fs/ufs.c: Likewise.
4588         * fs/xfs.c: Likewise.
4589         * gettext/gettext.c: Likewise.
4590         * include/grub/auth.h: Likewise.
4591         * kern/elf.c: Likewise.
4592         * kern/file.c: Likewise.
4593         * kern/ieee1275/init.c: Likewise.
4594         * kern/ieee1275/mmap.c: Likewise.
4595         * kern/ieee1275/openfw.c: Likewise.
4596         * kern/powerpc/dl.c: Likewise.
4597         * kern/sparc64/dl.c: Likewise.
4598         * lib/arg.c: Likewise.
4599         * loader/i386/bsd.c: Likewise.
4600         * loader/i386/bsdXX.c: Likewise.
4601         * loader/i386/efi/linux.c: Likewise.
4602         * loader/i386/efi/xnu.c: Likewise.
4603         * loader/i386/ieee1275/linux.c: Likewise.
4604         * loader/i386/linux.c: Likewise.
4605         * loader/i386/multiboot.c: Likewise.
4606         * loader/i386/pc/linux.c: Likewise.
4607         * loader/i386/pc/multiboot2.c: Likewise.
4608         * loader/i386/xnu.c: Likewise.
4609         * loader/ieee1275/multiboot2.c: Likewise.
4610         * loader/macho.c: Likewise.
4611         * loader/machoXX.c: Likewise.
4612         * loader/multiboot2.c: Likewise.
4613         * loader/multiboot_loader.c: Likewise.
4614         * loader/powerpc/ieee1275/linux.c: Likewise.
4615         * loader/sparc64/ieee1275/linux.c: Likewise.
4616         * loader/xnu.c: Likewise.
4617         * loader/xnu_resume.c: Likewise.
4618         * mmap/i386/pc/mmap.c: Likewise.
4619         * normal/menu_viewer.c: Likewise.
4620         * partmap/acorn.c: Likewise.
4621         * partmap/amiga.c: Likewise.
4622         * partmap/apple.c: Likewise.
4623         * script/lexer.c: Likewise.
4624         * term/gfxterm.c: Likewise.
4625         * term/i386/pc/serial.c: Likewise.
4626         * term/i386/pc/vga.c: Likewise.
4627         * term/ieee1275/ofconsole.c: Likewise.
4628         * term/terminfo.c: Likewise.
4629         * video/bitmap.c: Likewise.
4630         * video/efi_gop.c: Likewise.
4631         * video/efi_uga.c: Likewise.
4632         * video/fb/video_fb.c: Likewise.
4633         * video/i386/pc/vbe.c: Likewise.
4634         * video/readers/tga.c: Likewise.
4635         * video/video.c: Likewise.
4637 2009-12-23  Felix Zielcke <fzielcke@z-51.de>
4639         * commands/i386/pc/drivemap.c: Remove all trailing whitespace.
4640         * commands/lspci.c: Likewise.
4641         * commands/probe.c: Likewise.
4642         * commands/xnu_uuid.c: Likewise.
4643         * conf/i386-coreboot.rmk: Likewise.
4644         * conf/i386-efi.rmk: Likewise.
4645         * conf/i386-ieee1275.rmk: Likewise.
4646         * conf/i386-pc.rmk: Likewise.
4647         * conf/powerpc-ieee1275.rmk: Likewise.
4648         * conf/sparc64-ieee1275.rmk: Likewise.
4649         * conf/x86_64-efi.rmk: Likewise.
4650         * fs/i386/pc/pxe.c: Likewise.
4651         * gettext/gettext.c: Likewise.
4652         * include/grub/efi/graphics_output.h: Likewise.
4653         * include/grub/i386/pc/memory.h: Likewise.
4654         * kern/env.c: Likewise.
4655         * kern/i386/qemu/startup.S: Likewise.
4656         * lib/i386/pc/biosnum.c: Likewise.
4657         * lib/i386/relocator.c: Likewise.
4658         * lib/i386/relocator_asm.S: Likewise.
4659         * lib/relocator.c: Likewise.
4660         * loader/i386/bsd.c: Likewise.
4661         * loader/i386/multiboot.c: Likewise.
4662         * loader/i386/pc/chainloader.c: Likewise.
4663         * loader/i386/xnu.c: Likewise.
4664         * loader/xnu.c: Likewise.
4665         * normal/main.c: Likewise.
4666         * normal/menu_text.c: Likewise.
4667         * util/getroot.c: Likewise.
4668         * util/grub-mkconfig_lib.in: Likewise.
4669         * util/grub.d/00_header.in: Likewise.
4670         * util/i386/pc/grub-mkimage.c: Likewise.
4671         * util/mkisofs/eltorito.c: Likewise.
4672         * util/mkisofs/exclude.h: Likewise.
4673         * util/mkisofs/hash.c: Likewise.
4674         * util/mkisofs/iso9660.h: Likewise.
4675         * util/mkisofs/joliet.c: Likewise.
4676         * util/mkisofs/mkisofs.c: Likewise.
4677         * util/mkisofs/mkisofs.h: Likewise.
4678         * util/mkisofs/multi.c: Likewise.
4679         * util/mkisofs/name.c: Likewise.
4680         * util/mkisofs/rock.c: Likewise.
4681         * util/mkisofs/tree.c: Likewise.
4682         * util/mkisofs/write.c: Likewise.
4683         * video/efi_gop.c: Likewise.
4685 2009-12-23  Vladimir Serbinenko  <phcoder@gmail.com>
4687         * video/efi_gop.c (grub_video_gop_get_bitmask): Fix off-by-one in mask
4688         size counting.
4690 2009-12-22  Felix Zielcke <fzielcke@z-51.de>
4692         * util/grub-mkrescue.in (pkglib_DATA): Set to @pkglib_DATA@.
4693         * genmk.rb (class SCRIPT): Modify the target file instead of source.
4695 2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
4697         * commands/memrw.c (grub_cmd_write): Support for mask parameter.
4698         (GRUB_MOD_INIT(memrw)): Update help line.
4700 2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
4702         * commands/memrw.c (cmd_read_byte, cmd_read_word, cmd_read_dword):
4703         Use grub_extcmd_t. All users updated.
4704         (options): New variable.
4705         (grub_cmd_read): Restructure for readability. Support "-v" option.
4706         (grub_cmd_write): Restructure for readability.
4708 2009-12-22  Felix Zielcke <fzielcke@z-51.de>
4710         * genmk.rb (class SCRIPT): Prepend #{src} path with $(srcdir).
4712 2009-12-22  Felix Zielcke <fzielcke@z-51.de>
4714         * genmk.rb (class SCRIPT): Use sed to substitute @pkglib_DATA@
4715         with the actual contents of the correspondending make variable.
4716         * util/grub-mkrescue.in (pkglib_DATA): New variable.
4717         (process_input_dir): Copy all $pkglib_DATA files instead of explicitly
4718         specifying `*.lst' and `efiemu??.o'
4720 2009-12-22  Felix Zielcke <fzielcke@z-51.de>
4722         * util/grub.d/30_os-prober.in (osx_entry): Add round brackets
4723         after function name.
4724         Noticed by Rene Engelhard <rene@debian.org>.
4726 2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
4728         * commands/lspci.c (grub_pci_classes): Add "USB Controller".
4729         (options): New variable.
4730         (iospace): Likewise.
4731         (grub_lspci_iter): List IO spaces if "-i" was given.
4732         (grub_cmd_lspci): Parse options.
4733         (GRUB_MOD_INIT(lspci)): Use extcmd.
4734         (GRUB_MOD_FINI(lspci)): Likewise.
4736 2009-12-22  Felix Zielcke <fzielcke@z-51.de>
4738         * util/grub.d/30_os-prober.in (osx_entry): Remove non POSIX compliant
4739         `function' keyword.
4740         Patch by Tony Mancill <tmancill@debian.org>.
4742 2009-12-22  Vladimir Serbinenko  <phcoder@gmail.com>
4744         * bus/usb/uhci.c (grub_uhci_transfer): Set a limit transaction time.
4745         (grub_uhci_portstatus): Likewise.
4746         (grub_uhci_portstatus): Add necessary delay.
4747         * bus/usb/usbhub.c (grub_usb_hub_add_dev): Fix loop-break condition.
4749 2009-12-21  Carles Pina i Estany  <carles@pina.cat>
4751         * commands/acpi.c (options): Fix capitalizations and/or full stops.
4752         (GRUB_MOD_INIT): Likewise.
4753         * commands/boot.c (GRUB_MOD_INIT): Likewise.
4754         * commands/cmp.c (grub_cmd_cmp): Improve the help message.
4755         * commands/echo.c (options): Fix capitalizations and/or full stops.
4756         * commands/efi/loadbios.c (enable_rom_area): Likewise.
4757         (enable_rom_area): Likewise.
4758         (GRUB_MOD_INIT): Likewise.
4759         * commands/gptsync.c (GRUB_MOD_INIT): Likewise.
4760         * commands/halt.c (GRUB_MOD_INIT): Improve the help message.
4761         * commands/handler.c (GRUB_MOD_INIT): Likewise.
4762         * commands/hdparm.c (options): Fix capitalizations and/or full stops.
4763         * commands/hexdump.c (options): Likewise.
4764         * commands/i386/cpuid.c (options): Likewise.
4765         (GRUB_MOD_INIT): Likewise.
4766         * commands/i386/pc/drivemap.c (options): Likewise.
4767         (GRUB_MOD_INIT): Likewise.
4768         * commands/i386/pc/halt (options): Likewise.
4769         (GRUB_MOD_INIT): Likewise.
4770         * commands/i386/pc/play.c (GRUB_MOD_INIT): Likewise.
4771         * commands/i386/pc/pxecmd.c (options): Likewise.
4772         * commands/i386/pc/vbetest.c (GRUB_MOD_INIT): Likewise.
4773         * commands/ieee1275/suspend.c (GRUB_MOD_INIT): Likewise.
4774         * commands/keystatus.c (options): Likewise.
4775         (GRUB_MOD_INIT): Likewise.
4776         * commands/loadenv.c (options): Likewise.
4777         * commands/ls.c (options): Likewise.
4778         * commands/lspci.c (GRUB_MOD_INIT): Likewise.
4779         * commands/memrw.c (GRUB_MOD_INIT): Likewise.
4780         * commands/minicmd.c (GRUB_MOD_INIT): Likewise.
4781         * commands/parttool.c (helpmsg): Likewise.
4782         * commands/probe.c (options): Likewise.
4783         * commands/read.c (GRUB_MOD_INIT): Likewise.
4784         * commands/reboot.c (GRUB_MOD_INIT): Likewise.
4785         * commands/search.c (options): Likewise.
4786         * commands/sleep.c (options): Likewise.
4787         * commands/test.c (GRUB_MOD_INIT): Likewise.
4788         * commands/true.c (GRUB_MOD_INIT): Likewise.
4789         * commands/usbtest.c (GRUB_MOD_INIT): Likewise.
4790         * commands/videotest.c (GRUB_MOD_INIT): Likewise.
4791         * lib/arg.c (help_options): Likewise.
4792         * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass -ctranslate to
4793         `$(XGETTEXT)'.
4794         * po/POTFILES: Add `commands/loadenv.c'.
4796 2009-12-21  Felix Zielcke <fzielcke@z-51.de>
4798         * util/grub-mkrescue.in (process_input_dir): Copy `*.lst' files
4799         instead of specifying them explicit.
4801 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4803         * NEWS: Add grub-probe support for GNU/Hurd.
4805 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4807         * NEWS: gettext was added after 1.97.
4809 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4811         * util/mkisofs/msdos_partition.h: New file (based on
4812         include/grub/msdos_partition.h).
4813         * util/mkisofs/mkisofs.c (use_protective_msdos_label): New variable.
4814         (OPTION_PROTECTIVE_MSDOS_LABEL): New macro.
4815         (ld_options, main): Recognize --protective-msdos-label.
4816         * util/mkisofs/mkisofs.h (use_protective_msdos_label): New declaration.
4817         * util/mkisofs/write.c: Include `"msdos_partition.h"'.
4818         (padblock_write): If `use_protective_msdos_label' is set, patch a
4819         protective DOS-style label in the output image.
4821         * util/grub-mkrescue.in: Use --protective-msdos-label.
4823 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4825         * util/grub-mkrescue.in: Do not zero-pad image for BIOS-based disk
4826         boot.
4828 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4830         * util/mkisofs/mkisofs.c (use_embedded_boot, boot_image_embed): New
4831         variables.
4832         (ld_options, main): Recognize `--embedded-boot'.
4833         * util/mkisofs/mkisofs.h (use_embedded_boot, boot_image_embed): New
4834         declarations.
4835         * util/mkisofs/write.c (PADBLOCK_SIZE): New variable.
4836         (padblock_size): Use `PADBLOCK_SIZE' instead of hardcoding 16.
4837         (padblock_write): Likewise.  Rewrite to support embedded boot image.
4839         * util/grub-mkrescue.in: When building i386-pc images, embed core.img
4840         for BIOS-based disk boot instead of only ElTorito.
4842 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4844         * util/grub-mkrescue.in: Remove `configfile' and `sh' from i386-pc
4845         build (not needed for bootstrap).
4847 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4849         * util/grub-mkrescue.in: Remove `memdisk', `tar' and `search' modules
4850         from i386-pc build (not needed for bootstrap).
4851         Rewrite a pair of strings.
4853 2009-12-21  Robert Millan  <rmh.grub@aybabtu.com>
4855         * normal/main.c (grub_normal_reader_init): Set left margin back to 3.
4857 2009-12-21  Vladimir Serbinenko  <phcoder@gmail.com>
4859         * video/i386/pc/vbe.c (grub_video_vbe_fini): Set 'last_set_mode'.
4861 2009-12-21 Andreas Born  <futur.andy@googlemail.com>
4863         * kern/env.c (grub_env_context_open): Mark exported variable for
4864         reexport.
4866 2009-12-21 Andreas Born  <futur.andy@googlemail.com>
4868         * kern/env.c (grub_env_export): Create nonexistent variables before
4869         exporting.
4871 2009-12-20 Carles Pina i Estany  <carles@pina.cat>
4873         * include/grub/auth.h: Include `<grub/i18n.h>'.
4874         (GRUB_GET_PASSWORD): Gettextizze string.
4875         * include/grub/normal.h (STANDARD_MARGIN): New macro, moved from
4876         menu_text.c.
4877         (grub_utf8_to_ucs4_alloc): Fix indentation.
4878         (grub_print_ucs4): Likewise.
4879         (grub_getstringwidth): Likewise.
4880         (print_message_indented): New declaration.
4881         * normal/auth.c: Include `<grub/i18n.h>'.
4882         (grub_auth_check_authentication): Gettexttize string.
4883         * normal/cmdline.c: Include `<grub/i18n.h>'.
4884         (grub_cmdline_get): Gettextizze.
4885         * normal/color.c: Include `<grub/i18n.h>'.
4886         (grub_parse_color_name_pair): Gettexttize strings.
4887         * normal/main.c (grub_normal_reader_init): Cleanup gettexttized
4888         string (use `print_message_indented').
4889         * normal/menu_text.c (STANDARD_MARGIN): Moved from here to
4890         `include/grub/normal.h'.
4891         (print_message_indented): Renamed to ...
4892         (grub_print_message_indented): ... this. Remove `static' qualifer (now
4893         used in normal/main.c).
4894         (print_message): Use `grub_print_message_indented' instead of
4895         `print_message_indented'.
4896         (print_timeout): Likewise.
4897         * normal/misc.c: Include `<grub/term.h>' and `<grub/i18n.h>'.
4898         (grub_normal_print_device_info): Gettexttize strings.
4899         * po/POTFILES: Add `auth.c', `color.c' and `misc.c'.
4901 2009-12-20  Vladimir Serbinenko  <phcoder@gmail.com>
4903         * kern/parser.c (grub_parser_split_cmdline): Fix incorrect counting
4904         of arguments. Return number of tokens and not arguments. All users
4905         updated.
4907 2009-12-20  Vladimir Serbinenko  <phcoder@gmail.com>
4909         * util/i386/pc/grub-setup.c (setup): Don't install on non-GPT,
4910         non-MSDOS paritions.
4912 2009-12-19  Vladimir Serbinenko  <phcoder@gmail.com>
4914         * include/grub/types.h (UNUSED): Removed since it conflicts with
4915         NetBSD headers. All users changed to direct __attribute__ ((unused)).
4916         Reported by Grégoire Sutre.
4918 2009-12-19  Carles Pina i Estany  <carles@pina.cat>
4920         * include/grub/normal.h (grub_utf8_to_ucs4): New declaration.
4921         (grub_print_ucs4_alloc): Likewise.
4922         (grub_getstringwidth): Likewise.
4923         * normal/main.c (grub_normal_init_page): Gettextize version string.
4924         * normal/menu_text.c (grub_utf8_to_ucs4_alloc): New definition.
4925         (getstringwidth): Renamed to ...
4926         (grub_getstringwidth): ... this. Remove `static' qualifier (now used
4927         in normal/main.c).  Use `grub_utf8_to_ucs4_alloc'.
4928         (grub_print_ucs4): Remove `static' qualifer (now used in
4929         normal/main.c).
4930         * po/POTFILES: Add normal/main.c.
4932 2009-12-19  Carles Pina i Estany  <carles@pina.cat>
4934         * normal/menu_text.c (STANDARD_MARGIN): New macro.
4935         (print_message_indented): Add `margin_left' and `margin_right'
4936         parameters.
4937         (print_message): Update `print_message_indented' calls. Adds '\n' to the
4938         strings.
4939         (print_timeout): Use `print_message_indented' to print the message.
4940         Deletes `second_stage' parameter.
4941         (run_menu): Update `print_timeout' calls.
4943 2009-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
4945         Fix console palette on OpenFirmware.
4947         * term/ieee1275/ofconsole.c (MAX): Removed.
4948         (colors): Redone based on VGA palette.
4949         (grub_ofconsole_setcolor): Discard brightness bit since only 8
4950         colors are supported.
4951         (grub_ofconsole_init_output): Use ARRAY_SIZE instead of hardcoded size.
4953 2009-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
4955         Fix potential EfiEmu double prepare.
4957         * efiemu/main.c (prepared): New variable
4958         (grub_efiemu_unload): Set prepare to '0'.
4959         (grub_efiemu_prepare): Return if already prepared. Set prepared.
4961         set_virtual_address_map support.
4963         * include/grub/efi/efi.h (grub_efi_set_virtual_address_map): New
4964         prototype.
4965         * include/grub/efiemu/efiemu.h (grub_efiemu_write_sym_markers): New
4966         prototype.
4967         (grub_efiemu_crc32): Likewise.
4968         (grub_efiemu_crc64): Likewise.
4969         (grub_efiemu_set_virtual_address_map): Likewise.
4970         * include/grub/autoefi.h (grub_autoefi_exit_boot_services):
4971         New definition.
4972         (grub_autoefi_set_virtual_address_map): Likewise.
4973         * kern/efi/efi.c (grub_efi_set_virtual_address_map): New function.
4974         * loader/i386/xnu.c (grub_xnu_boot): Call set_virtual_address_map.
4975         Restructure flow to accomodate it.
4976         * efiemu/prepare.c (grub_efiemu_prepare): Support set_virtual_address_map.
4977         (grub_efiemu_crc): Recompute CRC32.
4978         * efiemu/runtime/efiemu.c (ptv_relocated): Renamed to ...
4979         (efiemu_ptv_relocated): ... this. Made global. All users updated.
4980         * efiemu/symbols.c (relocated_handle): New variable.
4981         (grub_efiemu_free_syms): Free relocated_handle.
4982         (grub_efiemu_alloc_syms): Allocate relocated_handle.
4983         (grub_efiemu_write_sym_markers): New function.
4984         (grub_efiemu_set_virtual_address_map): Likewise.
4986         Newer XNU parameters.
4988         * include/grub/i386/xnu.h (GRUB_XNU_BOOTARGS_VERMINOR): Change to 5.
4989         * include/grub/xnu.h (grub_xnu_extheader): Add nameaddr and namesize.
4990         (grub_xnu_fill_devicetree): New prototype.
4991         (grub_xnu_heap_real_start): New variable.
4992         * loader/xnu.c (get_name_ptr): New function.
4993         (grub_xnu_load_driver): Fill namelen and name.
4995         64-bit xnu support.
4997         * conf/i386-efi.rmk (xnu_mod_SOURCES): Add 'loader/macho32.c'
4998         and 'loader/macho64.c'.
4999         * conf/i386-pc.rmk: Likewise.
5000         * conf/x86_64-efi.rmk: Likewise.
5001         * include/grub/i386/macho.h (grub_macho_thread64): New structure.
5002         * include/grub/xnu.h (grub_xnu_is_64bit): New variable.
5003         * include/grub/macho.h (grub_macho_segment64): New structure.
5004         * include/grub/machoload.h (grub_macho32_size): Renamed from ...
5005         (grub_macho_size32): ... to this.
5006         (grub_macho32_get_entry_point): Renamed from ...
5007         (grub_macho_get_entry_point32): ... to this.
5008         (grub_macho_contains_macho64): New prototype.
5009         (grub_macho_size64): Likewise.
5010         (grub_macho_get_entry_point64): Likewise.
5011         (grub_macho32_load): Renamed from ...
5012         (grub_macho_load32): ... to this.
5013         (grub_macho32_filesize): Renamed from ...
5014         (grub_macho_filesize32): ... to this.
5015         (grub_macho32_readfile): Renamed from ...
5016         (grub_macho_readfile32): ... to this.
5017         (grub_macho_filesize64): New prototype.
5018         (grub_macho_readfile64): Likewise.
5019         (grub_macho_parse32): Likewise.
5020         (grub_macho_parse64): Likewise.
5021         * loader/macho.c: Split into ...
5022         * loader/machoXX.c: ... and this. Replace 32 with XX.
5023         * loader/macho32.c: New file.
5024         * loader/macho64.c: Likewise.
5025         * loader/xnu.c (grub_xnu_is_64bit): New variable.
5026         (grub_cmd_xnu_kernel): Make 32-bit only.
5027         (grub_cmd_xnu_kernel64): New function.
5028         (grub_xnu_load_driver): Support Mach-O 64.
5029         (grub_cmd_xnu_mkext): Likewise.
5030         * util/grub.d/30_os-prober.in (osx_entry): New function.
5031         Generate entries for 64-bit boot too.
5033         Eliminate ad-hoc tree format in XNU and EfiEmu.
5035         * efiemu/main.c (grub_efiemu_prepare): Update comment.
5036         * efiemu/pnvram.c: Rewritten to use environment variables.
5037         All users updated.
5039         Inline utf16_to_utf8.
5041         * kern/misc.c (grub_utf16_to_utf8): Move from here ...
5042         * include/grub/charset.h (grub_utf16_to_utf8): ... to here. Inlined.
5043         All users updated.
5044         * include/grub/misc.h (grub_utf16_to_utf8): Removed.
5046         * bus/usb/usb.c (grub_usb_get_string): Move from here ...
5047         * commands/usbtest.c (grub_usb_get_string): ... move here.
5048         (usb_print_str): Fix error handling.
5049         * include/grub/usb.h (grub_usb_get_string): Remove.
5051         UTF-8 to UTF-16 transformation.
5053         * conf/common.rmk (pkglib_MODULES): Add charset.mod
5054         (charset_mod_SOURCES): New variable.
5055         (charset_mod_CFLAGS): Likewise.
5056         (charset_mod_LDFLAGS): Likewise.
5057         * include/grub/utf.h: New file.
5058         * lib/utf.c: New file. (Based on grub_utf8_to_ucs4 from kern/misc.c)
5060         Support for device properties.
5062         * include/grub/i386/xnu.h (grub_xnu_devprop_header): New structure.
5063         (grub_xnu_devprop_device_header): Likewise.
5064         (grub_xnu_devprop_device_descriptor): Likewise.
5065         (grub_xnu_devprop_add_device): New prototype.
5066         (grub_xnu_devprop_remove_device): Likewise.
5067         (grub_xnu_devprop_remove_property): Likewise.
5068         (grub_xnu_devprop_add_property_utf8): Likewise.
5069         (grub_xnu_devprop_add_property_utf16): Likewise.
5070         (grub_cpu_xnu_init): Likewise.
5071         (grub_cpu_xnu_fini): Likewise.
5072         (grub_cpu_xnu_unload): Likewise.
5073         * loader/i386/xnu.c (grub_xnu_devprop_device_descriptor): New structure.
5074         (property_descriptor): Likewise.
5075         (devices): New variable.
5076         (grub_xnu_devprop_remove_property): New function.
5077         (grub_xnu_devprop_add_device): Likewise.
5078         (grub_xnu_devprop_remove_device): Likewise.
5079         (grub_xnu_devprop_add_property): Likewise.
5080         (grub_xnu_devprop_add_property_utf8): Likewise.
5081         (grub_xnu_devprop_add_property_utf16): Likewise.
5082         (hextoval): Likewise.
5083         (grub_cpu_xnu_fill_devprop): Likewise.
5084         (grub_cmd_devprop_load): Likewise.
5085         (grub_xnu_boot): Call grub_cpu_xnu_fill_devprop,
5086         grub_xnu_fill_devicetree, grub_xnu_fill_devicetree
5087         (cmd_devprop_load): New variable.
5088         (grub_cpu_xnu_init): New function.
5089         (grub_cpu_xnu_fini): Likewise.
5090         * loader/i386/xnu.c (grub_xnu_unload): Call grub_cpu_xnu_unload.
5091         * loader/xnu.c (grub_xnu_parse_devtree): Remove.
5092         (grub_cmd_xnu_devtree): Likewise.
5093         (hextoval): New function.
5094         (unescape): Likewise.
5095         (grub_xnu_fill_devicetree): Likewise.
5097         * util/grub.d/30_os-prober.in: Load devprop.bin. Don't load devtree.txt.
5098         * util/i386/efi/grub-dumpdevtree: Generate devprop.bin.
5100 2009-12-18  Vladimir Serbinenko  <phcoder@gmail.com>
5102         Workaround for broken ATI VBE.
5104         * video/i386/pc/vbe.c (last_set_mode): New variable.
5105         (grub_vbe_set_video_mode): Set 'last_set_mode'.
5106         (grub_vbe_get_video_mode): Use 'last_set_mode' if get_mode fails.
5107         (grub_video_vbe_setup): Don't check for reserved flag.
5109 2009-12-17  Felix Zielcke <fzielcke@z-51.de>
5111         * gendistlist.sh: Use POSIX compliant `!' instead of `-not' in
5112         the `find' command.
5114 2009-12-16  Vladimir Serbinenko  <phcoder@gmail.com>
5116         UUID support for HFS.
5118         * fs/hfs.c (grub_hfs_uuid): New function.
5119         (grub_hfs_fs): New value .uuid.
5120         * include/grub/hfs.h (grub_hfs_sblock): New field 'num_serial'.
5122 2009-12-14  Felix Zielcke <fzielcke@z-51.de>
5124         Fix a segfault with parsing unknown long options.
5126         * util/grub-mkrelpath.c (options): Zero terminate it.
5128 2009-12-13  Carles Pina i Estany  <carles@pina.cat>
5130         * include/grub/misc.h (grub_puts): New declaration.
5131         (grub_puts_): Likewise.
5132         * kern/misc.c (grub_puts): New definition.
5133         (grub_puts_): Likewise.
5135 2009-12-13  Robert Millan  <rmh.grub@aybabtu.com>
5137         * util/grub-probe.c (probe): Improve error message.
5139 2009-12-13  Robert Millan  <rmh.grub@aybabtu.com>
5141         * loader/i386/multiboot_elfxx.c
5142         (CONCAT(grub_multiboot_load_elf, XX)): Fix `grub_multiboot_payload_eip'
5143         initialization.
5145 2009-12-13  Vladimir Serbinenko  <phcoder@gmail.com>
5147         Relocator framework
5149         * loader/i386/xnu_helper.S: Removed. All users updated.
5150         * conf/i386.rmk (pkglib_MODULES): Add relocator.mod.
5151         (relocator_mod_SOURCES): New variable.
5152         (relocator_mod_CFLAGS): Likewise.
5153         (relocator_mod_LDFLAGS): Likewise.
5154         (relocator_mod_ASFLAGS): Likewise.
5155         * conf/x86_64.rmk: Likewise.
5156         * include/grub/i386/multiboot.h (grub_multiboot_payload_orig): Removed.
5157         (grub_multiboot_payload_entry_offset): Likewise.
5158         (grub_multiboot_forward_relocator): Likewise.
5159         (grub_multiboot_forward_relocator_end): Likewise.
5160         (grub_multiboot_backward_relocator): Likewise.
5161         (grub_multiboot_backward_relocator_end): Likewise.
5162         (grub_multiboot_payload_eip): New variable.
5163         (grub_multiboot_payload_orig): Likewise.
5164         * include/grub/i386/pc/memory.h: Include grub/i386/memory.h.
5165         (GRUB_MEMORY_MACHINE_CR0_PE_ON): Move from here ...
5166         * include/grub/i386/memory.h
5167         (GRUB_MEMORY_CPU_CR0_PE_ON): ... to here
5168         (GRUB_MEMORY_CPU_CR4_PAE_ON): New definition.
5169         (GRUB_MEMORY_CPU_CR0_PAGING_ON): Likewise.
5170         (GRUB_MEMORY_CPU_AMD64_MSR): Likewise.
5171         (GRUB_MEMORY_CPU_AMD64_MSR_ON): Likewise.
5172         * include/grub/i386/relocator.h: New file.
5173         * include/grub/x86_64/relocator.h: Likewise.
5174         * include/grub/i386/xnu.h: Include grub/cpu/relocator.h.
5175         (XNU_RELOCATOR): New macro.
5176         (grub_xnu_launcher_start): Remove.
5177         (grub_xnu_launcher_end): Likewise.
5178         * include/grub/xnu.h (grub_xnu_boot_resume): New prototype.
5179         (grub_xnu_heap_real_start): Remove.
5180         (grub_xnu_heap_start): Change to void *. All users updated.
5181         * kern/i386/realmode.S (real_to_prot): Use GRUB_MEMORY_CPU_CR0_PE_ON.
5182         * lib/i386/relocator.c: New file.
5183         * lib/i386/relocator_asm.S: Likewise.
5184         * lib/i386/relocator_backward.S: Likewise.
5185         * lib/mips/relocator.c: Likewise.
5186         * lib/mips/relocator_asm.S: Likewise.
5187         * lib/relocator.c: Likewise.
5188         * loader/i386/multiboot.c: Include grub/i386/relocator.h.
5189         (entry): Removed.
5190         (playground): Likewise.
5191         (grub_multiboot_payload_orig): New variable.
5192         (grub_multiboot_payload_dest): Likewise.
5193         (grub_multiboot_payload_size): Likewise.
5194         (grub_multiboot_payload_eip): Likewise.
5195         (grub_multiboot_payload_esp): Likewise.
5196         (grub_multiboot_boot): Use grub_relocator32_boot.
5197         (grub_multiboot_unload): Free relocators.
5198         (grub_multiboot): Setup stack. Use relocators.
5199         * loader/i386/multiboot_elfxx.c: Include grub/i386/relocator.h.
5200         (grub_multiboot_load_elfXX): Use relocators.
5201         * loader/i386/multiboot_helper.S (grub_multiboot_payload_orig): Removed.
5202         (grub_multiboot_payload_size): Likewise.
5203         (grub_multiboot_payload_dest): Likewise.
5204         (grub_multiboot_payload_entry_offset): Likewise.
5205         (grub_multiboot_forward_relocator): Likewise.
5206         (grub_multiboot_backward_relocator): Likewise.
5207         (grub_multiboot_real_boot): Likewise.
5208         * loader/i386/xnu.c (grub_xnu_heap_will_be_at): New variable.
5209         (grub_xnu_entry_point): Likewise.
5210         (grub_xnu_arg1): Likewise.
5211         (grub_xnu_stack): Likewise.
5212         (grub_xnu_launch): Removed.
5213         (grub_xnu_boot_resume): New function.
5214         (grub_xnu_boot): Use relocators.
5215         * loader/i386/xnu_helper.S: Removed.
5216         * loader/xnu.c (grub_xnu_heap_start): New variable.
5217         (grub_xnu_heap_size): Likewise.
5218         (grub_xnu_heap_malloc): Use relocators.
5219         * loader/xnu_resume.c (grub_xnu_resume): Use relocators.
5221 2009-12-13  Vladimir Serbinenko  <phcoder@gmail.com>
5223         * kern/i386/pc/startup.S (multiboot_entry): Setup stack before calling
5224         anything.
5226 2009-12-13  Carles Pina i Estany  <carles@pina.cat>
5228         * script/execute.c (grub_script_execute_cmdline): Set grub_errno to
5229         GRUB_ERR_NONE before calling grub_env_set.
5231 2009-12-12  Robert Millan  <rmh@aybabtu.com>
5233         * gendistlist.sh (EXTRA_DISTFILES): Add `genvideolist.sh'.
5234         * genmk.rb (video): New variable.
5235         (CLEANFILES, VIDEOFILES): Add #{video}.
5236         (#{video}): New target rule.
5237         * genvideolist.sh: New file.
5238         * Makefile.in (pkglib_DATA): Add video.lst.
5239         (video.lst): New target rule.
5240         * util/grub-mkconfig.in: Initialize ${GRUB_VIDEO_BACKEND} using
5241         `video.lst'.
5242         * util/grub.d/30_os-prober.in: Replace `vbe' with
5243         ${GRUB_VIDEO_BACKEND}.
5245 2009-12-11  Robert Millan  <rmh.grub@aybabtu.com>
5247         * THANKS: Add David Miller.
5249 2009-12-11  Vladimir Serbinenko  <phcoder@gmail.com>
5251         libpciaccess support.
5253         * Makefile.in (LIBPCIACCESS): New variable.
5254         (enable_grub_emu_pci): Likewise.
5255         * conf/any-emu.rmk (grub_emu_SOURCES) [enable_grub_emu_pci]: Add
5256         util/pci.c and commands/lspci.c.
5257         (grub_emu_LDFLAGS) [enable_grub_emu_pci]: Add $(LIBPCIACCESS).
5258         * configure.ac (grub-emu-pci): New option.
5259         * include/grub/i386/pci.h (grub_pci_device_map_range): New function.
5260         (grub_pci_device_unmap_range): Likewise.
5261         * include/grub/pci.h [GRUB_UTIL]: Include grub/pciutils.h.
5262         (grub_pci_device) [!GRUB_UTIL]: New structure. All users updated.
5263         (grub_pci_address_t) [!GRUB_UTIL]: New type.
5264         (grub_pci_device_t) [!GRUB_UTIL]: Likewise.
5265         (grub_pci_get_bus) [!GRUB_UTIL]: New function.
5266         (grub_pci_get_device) [!GRUB_UTIL]: Likewise.
5267         (grub_pci_get_function) [!GRUB_UTIL]: Likewise.
5268         * include/grub/pciutils.h: New file.
5269         * util/pci.c: Likewise.
5271 2009-12-11  Felix Zielcke <fzielcke@z-51.de>
5273         * util/misc.c: Don't include <errno.h> twice.
5275 2009-12-10  Felix Zielcke <fzielcke@z-51.de>
5277         * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Show the disk
5278         name in an error message.
5279         (grub_biosdisk_rw): Likewise.
5281 2009-12-10  Vladimir Serbinenko  <phcoder@gmail.com>
5283         Eliminate NTFS 4Gib barrier.
5285         * fs/ntfs.c (read_attr): Use grub_disk_addr_t and grub_size_t.
5286         (read_run_data): Likewise.
5287         (grub_ntfs_read_run_list): Likewise.
5288         (grub_ntfs_read_block): Likewise.
5289         (grub_ntfs_iterate_dir): Likewise.
5290         (read_mft): Likewise.
5291         (read_data): Likewise.
5292         Use COM_LOG_LEN.
5293         * fs/ntfscomp.c (read_block): Cast ctx->target_vcn & 0xF to unsigned
5294         to avoid 64-bit division
5295         * include/grub/ntfs.h (COM_LOG_LEN): New definition.
5296         (grub_ntfs_rlst): Use grub_disk_addr_t.
5298 2009-12-10  Vladimir Serbinenko  <phcoder@gmail.com>
5300         Eliminate grub-fstest 4Gib barrier.
5302         * util/grub-fstest.c (skip, leng): Use grub_disk_addr_t.
5303         (read_file): Fix error reporting.
5305 2009-12-10  Vladimir Serbinenko  <phcoder@gmail.com>
5307         Eliminate hexdump 4Gib barrier.
5309         * commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_addr_t.
5310         * lib/arg.c (grub_arg_parse): Use grub_strtoull.
5312 2009-12-10  Vladimir Serbinenko  <phcoder@gmail.com>
5314         * kern/device.c (grub_device_iterate): Ignore errors during first scan.
5315         Fixes amarsh bug.
5317 2009-12-09  Bruce Dubbs  <bruce.dubbs@gmail.com>
5319         Remove miscellaneous files in distclean target.
5321         * Makefile.in: Remove docs/{grub.info,version.texi,stamp-vti}
5323 2009-12-09  Colin Watson  <cjwatson@ubuntu.com>
5325         * util/grub-mkconfig_lib.in: Don't set grub_probe or grub_mkrelpath
5326         if they're already set.  This resolves the conflict between my
5327         grub-install change on 2009-10-06 and Felix' change on 2009-11-11,
5328         fixing the --grub-probe option again.
5329         * util/sparc64/ieee1275/grub-install.in: Revert the last piece of my
5330         change on 2009-10-06, so that we now once again source
5331         `${libdir}/grub/grub-mkconfig_lib' after options have been parsed.
5333 2009-12-08  Robert Millan  <rmh.grub@aybabtu.com>
5335         * conf/common.rmk [sparc64-ieee1275] (grub_mkdevicemap_SOURCES): Use
5336         `util/ieee1275/ofpath.c' and `util/ieee1275/devicemap.c' instead of
5337         `util/devicemap.c'.
5339 2009-12-08  Carles Pina i Estany  <carles@pina.cat>
5341         * include/grub/misc.h (grub_printf_): New declaration.
5342         * kern/misc.c (grub_printf_): New definition.
5343         * normal/main.c (grub_normal_reader_init): Use `grub_printf_' and `N_'
5344         instead of `grub_printf' and `_'.
5345         * normal/menu_entry.c (store_completion): Likewise.
5346         (run): Likewise.
5347         (grub_menu_entry_run): Likewise.
5348         * normal/menu_text.c (grub_wait_after_message): Likewise.
5349         (notify_booting): Likewise.
5350         (notify_fallback): Likewise.
5351         (notify_execution_failure): Likewise.
5353 2009-12-07  Colin Watson  <cjwatson@ubuntu.com>
5355         * configure.ac: Check for vasprintf.
5356         * util/misc.c (asprintf): Move allocation from here ...
5357         (vasprintf): ... to here.  New function.
5358         (xasprintf): New function.
5359         * include/grub/util/misc.h (vasprintf, xasprintf): Add
5360         prototypes.
5361         * util/getroot.c (grub_util_get_grub_dev): Use xasprintf.
5362         * util/grub-mkfont.c (write_font): Likewise.
5363         * util/grub-probe.c (probe): Likewise.
5364         * util/hostdisk.c (make_device_name): Likewise.
5366 2009-12-06  David S. Miller  <davem@sunset.davemloft.net>
5368         * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Recognize
5369         anything even prefixed with 'cdrom' as a cdrom.
5371 2009-12-06  Felix Zielcke <fzielcke@z-51.de>
5373         * util/misc.c (make_system_path_relative_to_its_root): Correctly cope with
5374         mount points.
5376 2009-12-05  Carles Pina i Estany <carles@pina.cat>
5378         * gettext/gettext.c: Include `<grub/list.h>'. Define grub_gettext_msg,
5379         grub_gettext_msg_list.
5380         (grub_gettext_gettranslation_from_position): Return const char *
5381         and not char *.
5382         (grub_gettext_translate): Add the translated strings into a list,
5383         returns from the list if existing there.
5384         (grub_gettext_init_ext): Add \n at the end of grub_dprintf string.
5385         (grub_gettext_delete_list): Delete the list.
5386         (grub_gettext_env_write_lang): Call grub_gettext_delete_list when
5387         lang environment variable is changed.
5388         (GRUB_MOD_FINI): Call grub_gettext_delete_list.
5390 2009-12-05  Vladimir Serbinenko  <phcoder@gmail.com>
5392         Rename kernel.mod to kernel.img.
5394         * conf/i386-efi.rmk (pkglib_MODULES): Change kernel.mod to kernel.img.
5395         (kernel_mod_EXPORTS): Rename to ...
5396         (kernel_img_EXPORTS): ... this.
5397         (kernel_mod_SOURCES): Rename to ...
5398         (kernel_img_SOURCES): ... this.
5399         (kernel_mod_HEADERS): Rename to ...
5400         (kernel_img_HEADERS): ... this. All users updated.
5401         (kernel_mod_CFLAGS): Rename to ...
5402         (kernel_img_CFLAGS): ... this.
5403         (kernel_mod_ASFLAGS): Rename to ...
5404         (kernel_img_ASFLAGS): ... this.
5405         (kernel_mod_LDFLAGS): Rename to ...
5406         (kernel_img_LDFLAGS): ... this.
5407         * conf/x86_64-efi.rmk: Likewise.
5408         * util/i386/efi/grub-mkimage.c (read_kernel_module): Rename to ...
5409         (read_kernel_image): ... this. All users updated.
5410         (read_kernel_image): Read "kernel.img" instead of "kernel.mod".
5412 2009-12-05  Carles Pina i Estany  <carles@pina.cat>
5414         * normal/menu_text.c (grub_color_menu_high): Gettexttize string.
5415         (print_spaces): New function.
5416         (grub_print_ucs4): New function.
5417         (getstringwidth): New function.
5418         (print_message_indented): New function.
5419         (print_message): Gettexttize strings using print_message_indented.
5420         (run_menu): Replaces grub_printf by print_spaces and dynamic terminal
5421         width.
5422         (get_entry_number): Gettextize and uses dynamic terminal width.
5423         (notify_booting, notify_fallback, notify_execution_failure):
5424         Gettextize.
5425         * normal/menu_entry.c (store_completion): Cleanup the gettextized
5426         string.
5427         (run): Likewise.
5428         (grub_menu_entry_run): Likewise.
5429         * PO/POTFILES: Add normal/menu_entry.c.
5431 2009-12-05  Vladimir Serbinenko  <phcoder@gmail.com>
5433         * configure.ac (TARGET_ASFLAGS): Add "-D<MACHINE>".
5435 2009-12-05  Carles Pina i Estany  <carles@pina.cat>
5437         * util/grub-install.in: Install gettext .mo files.
5438         * util/grub-mkrescue.in (process_input_dir): Copy gettext .mo files.
5440 2009-12-05  Carles Pina i Estany  <carles@pina.cat>
5442         * gettext/gettext.c (grub_gettext_init_ext): Replace grub_printf with
5443         grub_dprintf.
5445 2009-12-05  Robert Millan  <rmh.grub@aybabtu.com>
5447         * kern/ieee1275/openfw.c (grub_reboot): Disable for i386.  The
5448         non-firmware-dependant one in realmode.S takes precedence.
5450 2009-12-04  Robert Millan  <rmh.grub@aybabtu.com>
5452         * commands/halt.c: Replace misc arch-specific headers with
5453         `<grub/misc.h>'.
5454         * commands/reboot.c: Likewise.
5455         * commands/i386/pc/halt.c: Replace `<grub/machine/init.h>' with
5456         `<grub/misc.h>'.
5457         * conf/i386-coreboot.rmk (kernel_img_HEADERS): Remove `cpu/reboot.h'.
5458         (halt_mod_SOURCES): Move `kern/i386/halt.c' from here ...
5459         (kernel_img_SOURCES): ... to here.
5461         * include/grub/efi/efi.h (grub_reboot, grub_halt): Remove prototypes.
5462         * include/grub/i386/pc/init.h: Likewise.
5463         * include/grub/powerpc/ieee1275/kernel.h: Likewise.
5464         * include/grub/sparc64/ieee1275/kernel.h: Likewise.
5466         * include/grub/misc.h (grub_reboot, grub_halt): New prototypes.
5468         * include/grub/i386/halt.h: Remove.
5469         * include/grub/i386/reboot.h: Likewise.
5471         * kern/i386/halt.c: Remove `<grub/cpu/halt.h>'.
5473 2009-12-03  David S. Miller  <davem@sunset.davemloft.net>
5475         * conf/sparc64-ieee1275.rmk (grub_mkimage_SOURCES,
5476         grub_setup_SOURCES, grub_ofpathname_SOURCES): Add gnulib/progname.c
5477         * util/sparc64/ieee1275/grub-mkimage.c: Include <grub/i18n.h> and
5478         "progname.h"
5479         * util/sparc64/ieee1275/grub-ofpathname.c: Likewise.
5480         * util/sparc64/ieee1275/grub-setup.c: Likewise.
5481         (usage): Add missing comma in printf.
5483 2009-12-02  Robert Millan  <rmh.grub@aybabtu.com>
5485         Use the same reboot approach on i386 coreboot and qemu as we do on
5486         BIOS.
5488         * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add `cpu/reboot.h'.
5489         (reboot_mod_SOURCES): Remove `kern/i386/reboot.c'.
5490         * kern/i386/reboot.c: Remove.
5491         * include/grub/i386/reboot.h (grub_reboot): Export function.
5492         * kern/i386/pc/startup.S (grub_reboot): Move from here ...
5493         * kern/i386/realmode.S (grub_reboot): ... to here.  Jump to
5494         0xf000:0xfff0 instead of 0xffff:0x0000.
5495         [!GRUB_MACHINE_PCBIOS] (prot_to_real): Do not restore interrupts.
5496         * kern/i386/qemu/startup.S: Include `"../realmode.S"'.
5498 2009-11-30  Robert Millan  <rmh.grub@aybabtu.com>
5500         Fix $srcdir != $objdir build.
5502         * Makefile.in (po/%.po):  Rewrite as ...
5503         ($(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po)): ... this.
5505 2009-11-29  Samuel Thibault  <samuel.thibault@ens-lyon.org>
5507         Fix GNU/Hurd grub-install crash.
5508         * util/grub-probe.c (probe): Try to access `path' only when it is not
5509         NULL.
5511 2009-11-28  Vladimir Serbinenko  <phcoder@gmail.com>
5513         Correct module naming.
5515         * video/efi_uga.c (GRUB_MOD_INIT(efi_fb)): Renamed from this ...
5516         (GRUB_MOD_INIT(efi_uga)): ... to this
5517         (GRUB_MOD_FINI(efi_fb)): Renamed from this ...
5518         (GRUB_MOD_FINI(efi_uga)): ... to this
5519         * video/efi_gop.c (GRUB_MOD_INIT(efi_fb)): Renamed from this ...
5520         (GRUB_MOD_INIT(efi_gop)): ... to this
5521         (GRUB_MOD_FINI(efi_fb)): Renamed from this ...
5522         (GRUB_MOD_FINI(efi_gop)): ... to this
5524 2009-11-28  Robert Millan  <rmh.grub@aybabtu.com>
5526         * util/mkisofs/mkisofs.c (ld_options): Mark all `arg' strings as
5527         translatable.
5528         (usage): Translate `arg' strings using gettext().
5529         Thanks to Jordi Mallach for the suggestion.
5531 2009-11-28  Vladimir Serbinenko  <phcoder@gmail.com>
5533         GOP support. Based on patch from Bean
5534         (http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00384.html)
5536         * video/efi_gop.c: New file.
5537         * include/grub/efi/graphics_output.h: Likewise.
5538         * conf/i386-efi.rmk (pkglib_MODULES): Add `efi_gop.mod'.
5539         (efi_fb_mod_SOURCES, efi_fb_mod_CFLAGS, efi_fb_mod_LDFLAGS): New
5540         variables.
5541         * conf/x86_64-efi.rmk: Likewise.
5543 2009-11-28  Vladimir Serbinenko  <phcoder@gmail.com>
5545         Rename efi_fb to efi_uga.
5547         * conf/i386-efi.rmk (pkglib_MODULES): Rename 'efi_fb.mod' to
5548         'efi_uga.mod'.
5549         (efi_fb_mod_SOURCES): Rename this ...
5550         (efi_uga_mod_SOURCES): ... to this.
5551         (efi_fb_mod_CFLAGS): Rename this ...
5552         (efi_uga_mod_CFLAGS): ... to this.
5553         (efi_fb_mod_LDFLAGS): Rename this ...
5554         (efi_uga_mod_LDFLAGS): ... to this.
5555         * conf/x86_64-efi.rmk (pkglib_MODULES): Rename 'efi_fb.mod' to
5556         'efi_uga.mod'.
5557         (efi_fb_mod_SOURCES): Rename this ...
5558         (efi_uga_mod_SOURCES): ... to this.
5559         (efi_fb_mod_CFLAGS): Rename this ...
5560         (efi_uga_mod_CFLAGS): ... to this.
5561         (efi_fb_mod_LDFLAGS): Rename this ...
5562         (efi_uga_mod_LDFLAGS): ... to this.
5563         * video/efi_fb.c: Move this ...
5564         * video/efi_uga.c: ... to this. Change prefix to 'grub_video_uga_'.
5566 2009-11-27  Robert Millan  <rmh.grub@aybabtu.com>
5568         * po/README: New file.  Explain our PO file workflow.
5570 2009-11-27  Robert Millan  <rmh.grub@aybabtu.com>
5572         * po/ChangeLog: Remove.  Move relevant entries back to ...
5573         * ChangeLog: ... here.
5574         * po/ca.po: Remove (now handled by TLP).
5575         * po/id.po: Likewise.
5576         * po/zh_CN.po: Likewise.
5577         * Makefile.in (LINGUAS): Initialize in a way that supports
5578         empty set.
5580 2009-11-27  Robert Millan  <rmh.grub@aybabtu.com>
5582         * Makefile.in (LINGUAS): Rewrite by scanning po/ directory instead of
5583         reliing on po/LINGUAS.
5584         ($(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po)): Rewrite as ...
5585         (po/%.po): ... this.
5587 2009-11-26  Felix Zielcke <fzielcke@z-51.de>
5589         * util/i386/efi/grub-mkimage.c: Include "progname.h".
5590         (main): Use `program_name' instead of nonexistent `progname'.
5592 2009-11-26  Felix Zielcke  <fzielcke@z-51.de>
5594         * conf/i386-efi.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'.
5595         * conf/x86_64-efi.rmk (grub_mkimage_SOURCES): Likewise.
5597 2009-11-26  Robert Millan  <rmh.grub@aybabtu.com>
5599         * conf/i386-coreboot.rmk: Cleanup stale filenames from my previous
5600         commit.
5601         * conf/i386-efi.rmk: Likewise.
5602         * conf/i386-ieee1275.rmk: Likewise.
5603         * conf/powerpc-ieee1275.rmk: Likewise.
5604         * conf/sparc64-ieee1275.rmk: Likewise.
5605         * conf/x86_64-efi.rmk: Likewise.
5607 2009-11-26  Felix Zielcke  <fzielcke@z-51.de>
5609         * conf/any-emu.rmk (grub_emu_SOURCES): Add `gnulib/progname.c'.
5611 2009-11-26  Felix Zielcke  <fzielcke@z-51.de>
5613         * conf/any-emu.rmk (grub_mkfont_SOURCES): Add `gnulib/progname.c'.
5615 2009-11-26  Robert Millan  <rmh.grub@aybabtu.com>
5617         * conf/common.rmk (sbin_UTILITIES): Add `grub-mkdevicemap'.
5618         (grub_mkdevicemap_SOURCES): New variable.
5619         (grub_probe_SOURCES, grub_fstest_SOURCES, grub_mkfont_SOURCES)
5620         (grub_mkrelpath_SOURCES, grub_editenv_SOURCES)
5621         (grub_pe2elf_SOURCES): Add `gnulib/progname.c'.
5622         * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-mkdevicemap'.
5623         (grub_mkdevicemap_SOURCES): Remove.
5624         * conf/i386-efi.rmk: Likewise.
5625         * conf/i386-ieee1275.rmk: Likewise.
5626         * conf/i386-pc.rmk: Likewise.
5627         * conf/powerpc-ieee1275.rmk: Likewise.
5628         * conf/sparc64-ieee1275.rmk: Likewise.
5629         * conf/x86_64-efi.rmk: Likewise.
5630         * util/elf/grub-mkimage.c: Include `<grub/i18n.h>' and `"progname.h"'.
5631         (usage): Fix strings to use `program_name'.
5632         (main): Initialize gettext.
5633         * util/grub-editenv.c: Likewise.
5634         * util/grub-emu.c: Likewise.
5635         * util/grub-fstest.c: Likewise.
5636         * util/grub-mkdevicemap.c: Likewise.
5637         * util/grub-mkfont.c: Likewise.
5638         * util/grub-mkrelpath.c: Likewise.
5639         * util/grub-pe2elf.c: Likewise.
5640         * util/grub-probe.c: Likewise.
5641         * util/sparc64/ieee1275/grub-mkimage.c: Likewise.
5642         * util/sparc64/ieee1275/grub-ofpathname.c: Likewise.
5643         * util/sparc64/ieee1275/grub-setup.c: Likewise.
5645         * util/misc.c: Include `"progname.h"'.
5646         (progname): Remove variable.
5647         (grub_util_warn, grub_util_info, grub_util_error): Use `program_name'.
5649 2009-11-25  Felix Zielcke  <fzielcke@z-51.de>
5651         * util/grub.d/10_linux.in (linux_entry): Quote the arguments to
5652         printf and print a newline after the menuentry header line.
5653         * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
5655 2009-11-25  Felix Zielcke  <fzielcke@z-51.de>
5657         autoconf >= 2.60 support $(localedir).
5659         * INSTALL: Note that autoconf 2.60 is required.
5660         * configure.ac (AC_PREREQ): Bump to 2.60.
5661         * util/grub.d/10_kfreebsd.in (TEXTDOMAINDIR): Set to lowercased @localedir@.
5662         * util/grub.d/10_linux.in (TEXTDOMAINDIR): Likewise.
5664 2009-11-25  Yves Blusseau  <yves.blusseau@zetam.org>
5666         * configure.ac: move the call to AM_GNU_GETTEXT to avoid warnings when
5667         aclocal is run.
5669 2009-11-25  Robert Millan  <rmh.grub@aybabtu.com>
5671         * normal/main.c (grub_normal_read_line): Fix off-by-one
5672         buffer overflow.
5674 2009-11-25  Robert Millan  <rmh.grub@aybabtu.com>
5676         * normal/main.c (grub_normal_execute): Replace "parser.sh" with
5677         "parser.grub" in grub_command_execute() call.
5679 2009-11-24  Carles Pina i Estany <carles@pina.cat>
5681         * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add i18n.h.
5682         * conf/i386-efi.rmk: Likewise.
5683         * conf/i386-ieee1275.rmk: Likewise.
5684         * conf/i386-pc.rmk: Likewise.
5685         * conf/powerpc-ieee1275.rmk: Likewise.
5686         * conf/sparc64-ieee1275.rmk: Likewise.
5687         * conf/x86_64-efi.rmk: Likewise.
5688         * gettext/gettex.c: Include <grub/i18n.h>.
5689         * include/grub/misc.h (grub_gettext_dummy, grub_gettext): Move from
5690           here ...
5691         * include/grub/i18n.h: ... to here
5692         * include/grub/i18n.h: ... to here.
5693         * kern/misc.c: Include <grub/i18n.h>
5694         (grub_gettext_dummy): Move above user.
5696 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5698         * util/Makefile.in (install-local): Convert a `for' into a normal
5699         shell expansion.
5701 2009-11-24  Robert Millan  <rmh.grub@aybabtu.com>
5703         * autogen.sh: Add automake call.
5704         * config.guess: Remove.
5705         * config.sub: Likewise.
5706         * install-sh: Likewise.
5708 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5710         * util/Makefile.in (install-local): Fix the use of $lang shell variable.
5712 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5714         * util/Makefile.in (install-local): Convert a make `$(foreach)'
5715         function to a normal shell `for'.
5717 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5719         * conf/i386-coreboot.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'.
5721 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5723         * util/grub-mkrelpath.c: New file.
5724         * conf/common.rmk (bin_UTILITIES): Add grub-mkrelpath.
5725         (grub_mkrelpath_SOURCES): New variable.
5726         * include/grub/util/misc.h: New function prototype.
5727         * util/misc.c (make_system_path_relative_to_its_root): New function.
5729         * util/grub-mkconfig_lib.in (bindir): New variable.
5730         (grub_mkrelpath): Likewise.
5731         (make_system_path_relative_to_its_root): Use grub-mkrelpath.
5733         * util/probe.c (probe): Make the file path relative to its root.
5734         Change a info message to use the GRUB path.  Enable again the
5735         check if we can read the file with GRUB facilities.
5737         * util/i386/pc/grub-setup.c (setup): Make core.img path relative
5738         to its root.
5740 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5742         * Makefile.in: Don't include GRUB_CONTRIB makefiles with emu
5743         platform.
5745 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5747         * util/getroot.c (grub_util_get_dev_abstraction): Properly use
5748         strncmp().
5750 2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
5752         * util/getroot.c (grub_util_is_dmraid): New function.
5753         (grub_util_get_dev_abstraction): Treat dmraid and multipath
5754         devices as normal ones, not as LVM.
5756 2009-11-23  Carles Pina i Estany <carles@pina.cat>
5758         * conf/common.rmk: Add grub-gettext_lib target and updates
5759           lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS,
5760           LDFLAGS.
5761         * gettext/gettext.c: New file. (Reads mo files).
5762         * include/grub/file.h (grub_file_pread): New prototype.
5763         * include/grub/i18n.h (_): New prototype.
5764         * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New
5765           prototypes.
5766         * kern/misc.c (grub_gettext_dummy): New function.
5767         * normal/menu_text.c: Include <grub/i18n.h>.
5768         * normal/menu_text.c (print_timeout): Gettexttize string.
5769         * normal/menu_text.c (print_message): Gettexttize string.
5770         * po/POTFILES: Add `normal/menu_text.c'.
5771         * po/ca.po: Add new translations.
5772         * util/grub.d/00_header.in: Define locale_dir and lang. insmod
5773           gettext module and defines locale_dir and lang in grub.cfg.
5774         * NEWS: Add gettext support.
5776 2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>
5778         * util/hostdisk.c: Include `<grub/i18n.h>'.
5779         (find_grub_drive): Use ARRAY_SIZE for map size calculation.
5780         (make_device_name): Rewrite using asprintf.
5781         (convert_system_partition_to_system_disk): Replace 0 with NULL.
5782         (find_system_device): If a device is not found, generate one just
5783         by reusing the OS path name.
5784         (read_device_map): Make it permissible for device.map not to exist.
5786 2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>
5788         * script/sh/execute.c: Move from here ...
5789         * script/execute.c: ... to here.  Update all users.
5790         * script/sh/function.c: Move from here ...
5791         * script/function.c: ... to here.  Update all users.
5792         * script/sh/lexer.c: Move from here ...
5793         * script/lexer.c: ... to here.  Update all users.
5794         * script/sh/main.c: Move from here ...
5795         * script/main.c: ... to here.  Update all users.
5796         * script/sh/parser.y: Move from here ...
5797         * script/parser.y: ... to here.  Update all users.
5798         * script/sh/script.c: Move from here ...
5799         * script/script.c: ... to here.  Update all users.
5801 2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>
5803         * configure.ac: Detect all `emu' platforms.  Define
5804         GRUB_MACHINE_* macros in TARGET_CFLAGS.  Remove
5805         --enable-grub-emu logic.  Disable include/grub/machine
5806         symlink on `emu' platforms.
5808         * genkernsyms.sh.in: Use @TARGET_CFLAGS@ during symbol generation.
5809         * gensymlist.sh.in: Likewise.
5811         * include/grub/i386/coreboot/machine.h: Remove file.
5812         * include/grub/i386/efi/machine.h: Likewise.
5813         * include/grub/i386/ieee1275/machine.h: Likewise.
5814         * include/grub/i386/pc/machine.h: Likewise.
5815         * include/grub/i386/qemu/machine.h: Likewise.
5816         * include/grub/powerpc/ieee1275/machine.h: Likewise.
5817         * include/grub/sparc64/ieee1275/machine.h: Likewise.
5818         * include/grub/x86_64/efi/machine.h: Likewise.
5820         * commands/acpi.c: Remove `<grub/machine/machine.h>'.
5821         * commands/halt.c: Likewise.
5822         * commands/reboot.c: Likewise.
5823         * include/grub/autoefi.h: Likewise.
5824         * include/grub/i386/at_keyboard.h: Likewise.
5825         * include/grub/i386/kernel.h: Likewise.
5826         * include/grub/i386/loader.h: Likewise.
5827         * include/grub/i386/pc/memory.h: Likewise.
5828         * kern/dl.c: Likewise.
5829         * kern/i386/coreboot/init.c: Likewise.
5830         * loader/i386/bsd.c: Likewise.
5831         * loader/i386/linux.c: Likewise.
5832         * loader/multiboot_loader.c: Likewise.
5833         * term/i386/pc/serial.c: Likewise.
5834         * term/usb_keyboard.c: Likewise.
5836         * include/grub/time.h [!GRUB_MACHINE_EMU]: Remove
5837         `<grub/machine/machine.h>'
5838         [!GRUB_MACHINE_EMU] (GRUB_TICKS_PER_SECOND): New macro.
5839         * util/misc.c: Remove `<grub/machine/machine.h>' and
5840         `<grub/machine/time.h>'.
5842         * Makefile.in (enable_grub_emu): Remove variable.
5843         Include $(srcdir)/conf/any-emu.mk for the `emu' platform.
5845         * conf/any-emu.rmk: New file.
5846         * conf/common.rmk (grub_emu_init.lst, grub_emu_init.h)
5847         (grub_emu_init.c): Move from here ...
5848         * conf/any-emu.rmk: ... to here.
5850         * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-emu'.
5851         (grub_emu_SOURCES, grub_emu_LDFLAGS): Move from here ...
5852         * conf/any-emu.rmk: ... to here.
5854 2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>
5856         * include/grub/parser.h (grub_parser_register): Document need
5857         of `name' parameter.
5858         * normal/main.c (grub_normal_read_line): Simplify prompt string.
5859         * script/sh/main.c (grub_sh_parser, GRUB_MOD_INIT(sh)): Rename
5860         "sh" to "grub".
5862 2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>
5864         * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass --keyword=N_ to
5865         `$(XGETTEXT)'.
5866         * include/grub/i18n.h (N_): New macro.
5867         * util/mkisofs/mkisofs.h: Likewise.
5868         * util/mkisofs/mkisofs.c (ld_options): Wrap all translatable strings
5869         around N_().
5870         (usage): Use gettext() to translate help strings when printing them.
5872 2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>
5874         Based on patch from Bean
5875         (http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00384.html)
5877         * video/efi_fb.c: New file.
5878         * conf/i386-efi.rmk (pkglib_MODULES): Add `efi_fb.mod'.
5879         (efi_fb_mod_SOURCES, efi_fb_mod_CFLAGS, efi_fb_mod_LDFLAGS): New
5880         variables.
5881         * conf/x86_64-efi.rmk: Likewise.
5883 2009-11-22  Robert Millan  <rmh.grub@aybabtu.com>
5885         * util/i386/pc/grub-mkimage.c: Ungettextize grub_util_info() strings.
5886         * util/i386/pc/grub-setup.c: Likewise.
5888 2009-11-21  Samuel Thibault  <samuel.thibault@ens-lyon.org>
5890         * util/getroot.c [__GNU__]: Include <hurd.h>, <hurd/lookup.h>, and
5891         <hurd/fs.h>
5892         [__GNU__] (grub_guess_root_device): Call file_name_lookup and
5893         file_get_storage_info to implement grub_guess_root_device.
5895 2009-11-21  Felix Zielcke  <fzielcke@z-51.de>
5897         * Makefile.in (target): Use make's builtin $(shell) function
5898         instead of calling directly $(SHELL) to create the locale directories,
5899         inside the $(foreach) function.
5901 2009-11-21  Felix Zielcke  <fzielcke@z-51.de>
5903         * util/grub-mkrescue.in: Print an error and usage if output option
5904         has not been given.
5906 2009-11-21  Felix Zielcke  <fzielcke@z-51.de>
5908         Patch from Loïc Minier <loic.minier@ubuntu.com>.
5909         * util/grub.d/30_os-prober.in: Cope with Linux entries where
5910         root and /boot are on different devices.
5912 2009-11-21  Robert Millan  <rmh.grub@aybabtu.com>
5914         Fix build for srcdir != objdir.
5916         * Makefile.in (po/$(PACKAGE).pot): Rename to ...
5917         ($(srcdir)/po/$(PACKAGE).pot): ... this.  Run $(XGETTEXT) from
5918         $(srcdir).
5919         ($(foreach lang, $(LINGUAS), po/$(lang).po)): Rename to ...
5920         ($(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po): ... this. Use $^
5921         reference for input.
5923 2009-11-21  Robert Millan  <rmh.grub@aybabtu.com>
5925         * util/grub-mkrescue.in: Use source directory direcly (without copiing
5926         or hardlinking it).  Remove -J option, Joliet is not compatible with
5927         multiple source directories.
5929 2009-11-21  Carles Pina i Estany <carles@pina.cat>
5930 2009-11-21  Robert Millan  <rmh.grub@aybabtu.com>
5932         * util/grub-mkrescue.in: Recognize `--override-directory' option.
5933         (process_input_dir): New function.  Process an arbitrary input
5934         directory.
5935         Misc adjustments to support both "override mode" and system-wide mode.
5937 2009-11-20  Felix Zielcke  <fzielcke@z-51.de>
5939         * configure.ac (UNIFONT_BDF): Rename to ...
5940         (FONT_SOURCE): ... this.  Update all users.
5942 2009-11-20  Felix Zielcke  <fzielcke@z-51.de>
5944         * configure.ac: Add `/usr/share/fonts/X11/misc/unifont.pcf.gz'
5945         to the list of unifont files to look for.
5947 2009-11-19  Robert Millan  <rmh.grub@aybabtu.com>
5949         Patch from Joe Auricchio <jauricchio@gmail.com>
5950         * commands/minicmd.c (grub_mini_cmd_clear): New function.
5951         (GRUB_MOD_INIT(minicmd)): Register grub_mini_cmd_clear().
5952         (GRUB_MOD_FINI(minicmd)): Unregister grub_mini_cmd_clear().
5954 2009-11-19  Felix Zielcke  <fzielcke@z-51.de>
5956         * Makefile.in (install-local): Add a missing backslash.
5958 2009-11-19  Felix Zielcke  <fzielcke@z-51.de>
5960         * include/grub/x86_64/io.h: New file.
5962 2009-11-19  Robert Millan  <rmh.grub@aybabtu.com>
5964         * conf/i386-pc.rmk (grub_setup_SOURCES): Add `gnulib/progname.c'.
5965         * util/i386/pc/grub-setup.c: Include `<grub/i18n.h>'.
5966         Include `"progname.h"'.
5967         (main): Initialize gettext.
5968         * util/i386/pc/grub-setup.c: Gettexttize.
5969         * util/i386/pc/grub-mkimage.c: Likewise.
5971         * Makefile.in (po/*.po): Redefine as ...
5972         ($(foreach lang, $(LINGUAS), po/$(lang).po)): ... this.
5974         * po/POTFILES: Add `util/i386/pc/grub-setup.c'.
5976 2009-11-19  Robert Millan  <rmh.grub@aybabtu.com>
5978         * conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/progname.c'.
5979         * util/mkisofs/mkisofs.c: Include `"progname.h"'.
5980         (program_name): Remove.
5981         (main): Initialize gettext support.
5982         * util/mkisofs/mkisofs.h: Include `<locale.h>'.
5983         Include `<libintl.h>'.
5984         (_): New macro.
5986         * util/mkisofs/eltorito.c: Gettexttize.
5987         * util/mkisofs/joliet.c: Likewise.
5988         * util/mkisofs/mkisofs.c: Likewise.
5989         * util/mkisofs/multi.c: Likewise.
5990         * util/mkisofs/rock.c: Likewise.
5991         * util/mkisofs/tree.c: Likewise.
5992         * util/mkisofs/write.c: Likewise.
5994         * po/POTFILES: Update with new files.
5996 2009-11-18  Robert Millan  <rmh.grub@aybabtu.com>
5998         * util/mkisofs/eltorito.c: Fix minor mistake in license text.
5999         * util/mkisofs/iso9660.h: Likewise.
6000         * util/mkisofs/joliet.c: Likewise.
6001         * util/mkisofs/mkisofs.c: Likewise.
6002         * util/mkisofs/mkisofs.h: Likewise.
6003         * util/mkisofs/rock.c: Likewise.
6004         * util/mkisofs/tree.c: Likewise.
6005         * util/mkisofs/write.c: Likewise.
6007         * util/mkisofs/eltorito.c (rcsid): Remove.
6008         * util/mkisofs/hash.c: Likewise.
6009         * util/mkisofs/joliet.c: Likewise.
6010         * util/mkisofs/name.c: Likewise.
6011         * util/mkisofs/rock.c: Likewise.
6012         * util/mkisofs/tree.c: Likewise.
6013         * util/mkisofs/write.c: Likewise.
6015 2009-11-18  Robert Millan  <rmh.grub@aybabtu.com>
6017         * util/mkisofs/match.c: Rewrite from scratch, using a linked list
6018         instead of static allocation.
6019         * util/mkisofs/match.h: Likewise.
6021 2009-11-18  Robert Millan  <rmh.grub@aybabtu.com>
6023         * po/POTFILES-shell: New file.  List `util/grub.d/10_kfreebsd.in'
6024         and `util/grub.d/10_linux.in'.
6025         * Makefile.in (po/$(PACKAGE).pot): Process `po/POTFILES-shell' for
6026         translatable Shell files.
6028 2009-11-18  Robert Millan  <rmh.grub@aybabtu.com>
6030         * Makefile.in ($(srcdir)/aclocal.m4): New target.
6032 2009-11-17  Robert Millan  <rmh.grub@aybabtu.com>
6034         * INSTALL: Document Automake is needed for bootstrap.
6035         * po/ca.po: Fix PO-Revision-Date and Language-Team fields.
6036         * util/grub.d/10_kfreebsd.in (bindir): New variable.
6037         Add gettext initialization.
6038         (kfreebsd_entry): Make menuentry output translatable.
6040 2009-11-17  Robert Millan  <rmh.grub@aybabtu.com>
6042         * Makefile.in (XGETTEXT, MSGMERGE, MSGFMT): New variables.
6043         (po/$(PACKAGE).pot): Replace `xgettext' with `$(XGETTEXT)'.
6044         (po/*.po): Replace `msgmerge' with `$(MSGMERGE)'.
6045         (po/%.mo): Replace `msgfmt' with `$(MSGFMT)'.
6046         (LINGUAS): Auto-generate using `po/LINGUAS'.
6047         * po/LINGUAS: New file.
6049 2009-11-17  Robert Millan  <rmh.grub@aybabtu.com>
6051         * configure.ac: Call AM_GNU_GETTEXT() (defines localedir, among
6052         other things).
6053         * Makefile.in (CPPFLAGS): Add `-DLOCALEDIR=\"$(localedir)\"'.
6054         * util/i386/pc/grub-mkimage.c (main): Issue setlocale() and
6055         bindtextdomain() calls for gettext initialization.
6057 2009-11-17  Robert Millan  <rmh.grub@aybabtu.com>
6059         * gnulib/progname.c: New file (imported from Gnulib).
6060         * gnulib/progname.h: Likewise.
6061         * conf/i386-pc.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'.
6062         * util/i386/pc/grub-mkimage.c: Include `"progname.h"'.
6063         (usage): Replace `progname' with `program_name'.
6064         (main): Use set_program_name() for program name initialization.
6066 2009-11-17  Robert Millan  <rmh.grub@aybabtu.com>
6068         * conf/common.rmk (grub_mkisofs_CFLAGS): Move `-I$(srcdir)/gnulib'
6069         from here ...
6070         * Makefile.in (CPPFLAGS): ... to here.
6072 2009-11-16  Robert Millan  <rmh.grub@aybabtu.com>
6074         * aclocal.m4: Move from here ...
6075         * acinclude.m4: ... to here.
6076         * autogen.sh: Add call to `aclocal'.
6077         * configure.ac: Add AM_INIT_AUTOMAKE() after AC_INIT() call.
6079 2009-11-16  Robert Millan  <rmh.grub@aybabtu.com>
6081         * Makefile.in (CLEANFILES): Add `po/*.mo'.
6082         (LINGUAS): New variable.
6083         (all-local): Add `$(foreach lang, $(LINGUAS), po/$(lang).mo)'.
6084         (install-local): Install MO files.
6085         (po/$(PACKAGE).pot, po/*.po, po/%.mo): New rules.
6086         * include/grub/i18n.h: New file.
6087         * po/POTFILES: New file.
6088         * po/ca.po: New file.
6089         * util/grub.d/10_linux.in (bindir): New variable.
6090         Add gettext initialization.
6091         (linux_entry): Make menuentry output translatable.
6092         * util/i386/pc/grub-mkimage.c: Include `<grub/i18n.h>'.
6093         (usage): Make --help output translatable.
6094         (main): Initialize gettext.
6096 2009-11-17  Robert Millan  <rmh.grub@aybabtu.com>
6098         * import_gcry.py: New file (written by Vladimir with minor
6099         adjustments).
6100         * autogen.sh: Use import_gcry.py to auto-generate GRUB-ified
6101         ciphers.
6102         * INSTALL: Document that Python is required for bootstrap.
6104 2009-11-17  Robert Millan  <rmh.grub@aybabtu.com>
6106         Import ciphers from libgcrypt 1.4.4.
6108          * lib/libgcrypt/cipher/ChangeLog
6109          * lib/libgcrypt/cipher/ac.c
6110          * lib/libgcrypt/cipher/arcfour.c
6111          * lib/libgcrypt/cipher/bithelp.h
6112          * lib/libgcrypt/cipher/blowfish.c
6113          * lib/libgcrypt/cipher/camellia-glue.c
6114          * lib/libgcrypt/cipher/camellia.c
6115          * lib/libgcrypt/cipher/camellia.h
6116          * lib/libgcrypt/cipher/cast5.c
6117          * lib/libgcrypt/cipher/cipher.c
6118          * lib/libgcrypt/cipher/crc.c
6119          * lib/libgcrypt/cipher/des.c
6120          * lib/libgcrypt/cipher/dsa.c
6121          * lib/libgcrypt/cipher/ecc.c
6122          * lib/libgcrypt/cipher/elgamal.c
6123          * lib/libgcrypt/cipher/hash-common.c
6124          * lib/libgcrypt/cipher/hash-common.h
6125          * lib/libgcrypt/cipher/hmac-tests.c
6126          * lib/libgcrypt/cipher/md.c
6127          * lib/libgcrypt/cipher/md4.c
6128          * lib/libgcrypt/cipher/md5.c
6129          * lib/libgcrypt/cipher/primegen.c
6130          * lib/libgcrypt/cipher/pubkey.c
6131          * lib/libgcrypt/cipher/rfc2268.c
6132          * lib/libgcrypt/cipher/rijndael-tables.h
6133          * lib/libgcrypt/cipher/rijndael.c
6134          * lib/libgcrypt/cipher/rmd.h
6135          * lib/libgcrypt/cipher/rmd160.c
6136          * lib/libgcrypt/cipher/rsa.c
6137          * lib/libgcrypt/cipher/seed.c
6138          * lib/libgcrypt/cipher/serpent.c
6139          * lib/libgcrypt/cipher/sha1.c
6140          * lib/libgcrypt/cipher/sha256.c
6141          * lib/libgcrypt/cipher/sha512.c
6142          * lib/libgcrypt/cipher/tiger.c
6143          * lib/libgcrypt/cipher/twofish.c
6144          * lib/libgcrypt/cipher/whirlpool.c
6146 2009-11-16  Robert Millan  <rmh.grub@aybabtu.com>
6148         Fix build for systems without error().
6150         * gnulib/error.c: New file (imported from Gnulib).
6151         * gnulib/error.h: Likewise.
6152         * conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/error.c'.
6153         * util/mkisofs/mkisofs.c (program_name): Remove `static' qualifier
6154         (this variable is now used by error()).
6156 2009-11-16  Felix Zielcke  <fzielcke@z-51.de>
6158         * util/mkisofs/name.c (iso9660_file_length): Use isascii macro
6159         instead of relying that char is signed.
6161 2009-11-16  Vladimir Serbinenko  <phcoder@gmail.com>
6163         * fs/i386/pc/pxe.c (grub_pxefs_open): Correctly handle PXE choosing
6164         blocksize different from specified.
6165         (grub_pxefs_read): Likewise.
6167 2009-11-16  Felix Zielcke  <fzielcke@z-51.de>
6169         Enable ata.mod on x86_64-efi, i386-efi and i386-ieee1275.
6171         * disk/ata.c (grub_ata_dumpinfo): Add a cast.
6172         (grub_ata_readwrite): Likewise.  Update 2 format strings.
6173         (grub_atapi_read): Likewise.
6175         * conf/i386-coreboot.rmk (pkglib_MODULES): Move `ata.mod' from here ...
6176         * conf/i386.rmk (pkglib_MODULES): ... to here ...
6177         * conf/x86_64-efi.rmk (pkglib_MODULES): ... and here.
6178         * conf/i386-coreboot.rmk (ata_mod_SOURCES, ata_mod_CFLAGS)
6179         (ata_mod_LDFLAGS): Move from here ...
6180         * conf/i386.rmk: ... to here ...
6181         * conf/x86_64-efi.rmk: ... and here.
6182         * conf/i386-pc.rmk (pkglib_MODULES): Remove `ata.mod'
6183         (ata_mod_SOURCES, ata_mod_CFLAGS, ata_mod_LDFLAGS): Remove.
6185 2009-11-16  Robert Millan  <rmh.grub@aybabtu.com>
6187         Relicense multiboot.h, with RMS' blessing.
6189         * include/multiboot.h: Change to X11 license.
6191 2009-11-15  Robert Millan  <rmh.grub@aybabtu.com>
6193         Support --version in grub-mkisofs.
6195         * util/mkisofs/mkisofs.c (rcsid): Remove variable.
6196         (OPTION_VERSION): New macro.
6197         (ld_options): Recognize --version.
6198         (usage): Move `program_name' from here ...
6199         (program_name): ... to here.  Add `static' qualifier.
6200         (main): Recognize `OPTION_VERSION'.
6202 2009-11-15  Felix Zielcke  <fzielcke@z-51.de>
6204         * Makefile.in (TARGET_CPPFLAGS): Replace `-isystem=$(srcdir)/include'
6205         with `-nostdinc -isystem $(shell $(TARGET_CC) -print-file-name=include)'.
6207 2009-11-14  Robert Millan  <rmh.grub@aybabtu.com>
6209         Fix help2man generation for mkisofs.
6211         * util/mkisofs/mkisofs.c (ld_options): Recognize --help.
6212         (usage): Send output to stdout (rather than stderr).
6214 2009-11-14  Robert Millan  <rmh.grub@aybabtu.com>
6216         * conf/i386-coreboot.rmk (grub_mkrescue_SOURCES): Replace
6217         `util/i386/coreboot/grub-mkrescue.in' with `util/grub-mkrescue.in'.
6218         * conf/i386-pc.rmk (grub_mkrescue_SOURCES): Replace
6219         `util/i386/pc/grub-mkrescue.in' with `util/grub-mkrescue.in'.
6220         (bin_SCRIPTS): Add `grub-mkfloppy'.
6221         (grub_mkfloppy_SOURCES): New variable.
6223         * util/grub-mkrescue.in: New file.
6224         * util/i386/pc/grub-mkfloppy.in: New file.
6226         * util/i386/coreboot/grub-mkrescue.in: Remove.
6227         * util/i386/pc/grub-mkrescue.in: Remove.
6229 2009-11-13  Robert Millan  <rmh.grub@aybabtu.com>
6231         * include/grub/multiboot.h (struct grub_multiboot_header): Move
6232         from here ...
6233         * include/multiboot.h (struct multiboot_header): ... to here.  Update
6234         all users.
6235         * include/grub/multiboot.h (struct grub_multiboot_info): Move
6236         from here ...
6237         * include/multiboot.h (struct multiboot_info): ... to here.  Update
6238         all users.
6239         * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): Move
6240         from here ...
6241         * include/multiboot.h (struct multiboot_mmap_entry): ... to here.
6242         Update all users.
6243         * include/grub/multiboot.h (struct grub_mod_list): Move
6244         from here ...
6245         * include/multiboot.h (struct multiboot_mod_list): ... to here.
6246         Update all users.
6248 2009-11-13  Robert Millan  <rmh.grub@aybabtu.com>
6250         * include/multiboot2.h (multiboot_word): Rename from this ...
6251         (multiboot2_word): ... to this.  Update all users.
6252         (multiboot_header): Rename from this ...
6253         (multiboot2_header): ... to this.  Update all users.
6254         (multiboot_tag_header): Rename from this ...
6255         (multiboot2_tag_header): ... to this.  Update all users.
6256         (multiboot_tag_start): Rename from this ...
6257         (multiboot2_tag_start): ... to this.  Update all users.
6258         (multiboot_tag_name): Rename from this ...
6259         (multiboot2_tag_name): ... to this.  Update all users.
6260         (multiboot_tag_module): Rename from this ...
6261         (multiboot2_tag_module): ... to this.  Update all users.
6262         (multiboot_tag_memory): Rename from this ...
6263         (multiboot2_tag_memory): ... to this.  Update all users.
6264         (multiboot_tag_unused): Rename from this ...
6265         (multiboot2_tag_unused): ... to this.  Update all users.
6266         (multiboot_tag_end): Rename from this ...
6267         (multiboot2_tag_end): ... to this.  Update all users.
6269 2009-11-13  Robert Millan  <rmh.grub@aybabtu.com>
6271         Disable Multiboot2 in i386-ieee1275.  It didn't actually work, and on
6272         this platform we should support Multiboot1 first.
6274         * conf/i386-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'.
6275         (multiboot_mod_SOURCES, multiboot_mod_CFLAGS)
6276         (multiboot_mod_LDFLAGS, multiboot_mod_ASFLAGS): Remove.
6278 2009-11-12  Robert Millan  <rmh.grub@aybabtu.com>
6280         * util/mkisofs/eltorito.c (init_boot_catalog): Handle return code
6281         of write calls (converting them to fwrite() if they aren't already).
6282         (get_torito_desc): Likewise.
6283         * util/mkisofs/rock.c (generate_rock_ridge_attributes): Likewise.
6285 2009-11-12  Robert Millan  <rmh.grub@aybabtu.com>
6287         * util/i386/pc/grub-install.in: Move from here ...
6288         * util/grub-install.in: ... to here.  Update all users.
6290 2009-11-11  Colin Watson  <cjwatson@ubuntu.com>
6292         * util/powerpc/ieee1275/grub-mkrescue.in: Fix --version output.
6294 2009-11-11  Robert Millan  <rmh.grub@aybabtu.com>
6296         Support for El Torito without floppy emulation.
6298         * util/mkisofs/eltorito.c: Include `<errno.h>'.
6299         (init_boot_catalog): Improve error handling.
6300         (get_torito_desc): Don't use floppy emulation unless requested by
6301         user. Patch boot information table when requested via
6302         `-boot-info-table'.
6303         * util/mkisofs/iso9660.h (struct eltorito_boot_info): New struct.
6304         * util/mkisofs/mkisofs.c (use_eltorito_emul_floppy)
6305         (use_boot_info_table): New variables.
6306         (OPTION_BOOT_INFO_TABLE, OPTION_NO_EMUL_BOOT)
6307         (OPTION_ELTORITO_EMUL_FLOPPY): New macros.
6308         (ld_options): Handle `-boot-info-table', `-no-emul-boot' and
6309         `--eltorito-emul-floppy'.
6310         (main): Handle `OPTION_BOOT_INFO_TABLE', `OPTION_NO_EMUL_BOOT'
6311         and `OPTION_ELTORITO_EMUL_FLOPPY'.
6312         * util/mkisofs/mkisofs.h (use_eltorito_emul_floppy)
6313         (use_boot_info_table, get_731): New prototypes.
6314         * util/mkisofs/write.c (get_731): New function.
6316 2009-11-11  Felix Zielcke  <fzielcke@z-51.de>
6318         Fix the generation of the man page.
6320         * util/pc/i386/grub-install.in: Source
6321         `${libdir}/grub/grub-mkconfig_lib' after options have been parsed.
6323 2009-11-11  Robert Millan  <rmh.grub@aybabtu.com>
6325         Large file support for grub-mkisofs.
6327         * conf/common.rmk (grub_mkisofs_CFLAGS): Add `-D_FILE_OFFSET_BITS=64'.
6328         * util/mkisofs/mkisofs.c (next_extent, last_extent)
6329         (session_start): Upgrade type to `uint64_t'.  Update all users.
6330         * util/mkisofs/mkisofs.h: Include `<stdint.h>'.
6331         (struct directory_entry): Upgrade type of `starting_block' and
6332         `size' to `uint64_t'.  Update all users.
6333         (struct deferred): Remove unused structure.
6334         (xfwrite): Upgrade type of `count' and `size' to `uint64_t'.
6335         Update all users.
6336         * util/mkisofs/tree.c (stat_filter, lstat_filter): Return -1 when
6337         file is larger than `UINT32_MAX'.
6338         * util/mkisofs/write.c (xfwrite): Upgrade type of `count' and
6339         `size' to `uint64_t'.  Update all users.  Fix handling of fwrite()
6340         return value.
6341         (struct deferred_write): Upgrade type of `extent' and `size' to
6342         `uint64_t'.  Update all users.
6343         (last_extent_written): Upgrade type to `uint64_t'.  Update all
6344         users.
6345         (write_one_file): Upgrade type of `count' and `size' to `uint64_t'.
6346         Update all users.  Upgrade type of `remain' to `int64_t' and
6347         `use' to `size_t'.  Use error() to handle fread() errors.
6348         (write_files): Rely on write_one_file() rather than calling
6349         xfwrite() directly.
6351 2009-11-09  Felix Zielcke  <fzielcke@z-51.de>
6353         * util/mkisofs/mkisofs.c (ld_options): Fix a spelling mistake.
6355 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6357         * util/mkisofs/fnmatch.c: Remove.
6358         * util/mkisofs/getopt1.c: Likewise.
6359         * util/mkisofs/getopt.c: Likewise.
6360         * conf/common.rmk (grub_mkisofs_SOURCES): Replace
6361         `util/mkisofs/fnmatch.c', `util/mkisofs/getopt1.c' and
6362         `util/mkisofs/getopt.c' with `gnulib/fnmatch.c',
6363         `gnulib/getopt1.c' and `gnulib/getopt.c'.
6364         (grub_mkisofs_CFLAGS): Add `-I$(srcdir)/gnulib'.
6366         * configure.ac: Detect `mingw32msvc' host_os.
6367         Check for lstat(), getuid() and getgid().
6369         * util/mkisofs/joliet.c: Include `<stdint.h>'.  Replace all
6370         instances of `u_char' with `uint8_t'.
6372         * util/mkisofs/mkisofs.h: Include `<sys/stat.h>'.
6373         [!HAVE_GETUID] (getuid): New function (stub).
6374         [!HAVE_GETGID] (getgid): Likewise.
6375         [!HAVE_LSTAT] (lstat): Likewise.
6376         [!S_IROTH] (S_IROTH): New macro (dummy).
6377         [!S_IRGRP] (S_IRGRP): Likewise.
6379 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6381         * gnulib/fnmatch_loop.c (EXT): Fix warning (signed and unsigned type in
6382         conditional expression).
6384 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6386         Import from Gnulib.
6388         * gnulib/fnmatch.c: New file.
6389         * gnulib/fnmatch.h: Likewise.
6390         * gnulib/fnmatch_loop.c: Likewise.
6391         * gnulib/getopt.c: Likewise.
6392         * gnulib/getopt.h: Likewise.
6393         * gnulib/getopt1.c: Likewise.
6394         * gnulib/getopt_int.h: Likewise.
6395         * gnulib/gettext.h: Likewise.
6397 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6399         * normal/dyncmd.c (read_command_list): Replace `0' with `NULL'.
6400         * normal/handler.c (read_handler_list): Likewise.
6402 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6404         Misc cleanup.
6406         * kern/command.c (grub_register_command_prio): Use
6407         grub_zalloc() instead of explicitly zeroing data.
6408         * kern/list.c: Include `<grub/mm.h>'.
6409         (grub_named_list_find): Replace `0' with `NULL'.
6410         * normal/autofs.c (struct grub_fs_module_list): Remove ad-hoc type.
6411         (fs_module_list): Change type to `grub_named_list_t'.  Update all
6412         users.
6413         * normal/dyncmd.c (read_command_list): Add space between function
6414         call and parenthesis.
6415         * normal/handler.c (read_handler_list): Likewise.
6417 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6419         * normal/auth.c (punishment_delay): Moved from here ...
6420         (grub_auth_strcmp): ... to here (inside function).
6422 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6424         * include/grub/list.h (struct grub_named_list): Remove `const'
6425         qualifier from `name'.
6426         (struct grub_prio_list): Likewise.
6428 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6430         * normal/auth.c: Include `<grub/time.h>'.
6431         (grub_auth_strcmp): Replace `strcmp' with `grub_strcmp'.
6433 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6435         * normal/auth.c (punishment_delay): New variable.
6436         (grub_auth_strcmp): Rewrite using grub_get_time_ms ().
6437         (grub_auth_check_authentication): Punish failed login attempts with
6438         an incremental (2^N) delay.
6440 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6442         * conf/common.rmk (grub_mkisofs_CFLAGS): Prefix include
6443         path with $(srcdir).
6445 2009-11-09  Vladimir Serbinenko  <phcoder@gmail.com>
6447         * normal/auth.c (grub_auth_strcmp): Fixed incorrect variable usage.
6449 2009-11-09  Robert Millan  <rmh.grub@aybabtu.com>
6451         * util/i386/coreboot/grub-mkrescue.in: New file.
6452         * conf/i386-coreboot.rmk (bin_SCRIPTS, grub_mkrescue_SOURCES): New
6453         variables.
6455         * conf/common.rmk (bin_UTILITIES): Add `grub-mkisofs'.
6456         (grub_mkisofs_SOURCES, grub_mkisofs_CFLAGS): New variables.
6457         * configure.ac: Add header and function checks to satisfy grub-mkisofs
6458         requirements.
6459         * util/mkisofs/defaults.h: New file.
6460         * util/mkisofs/eltorito.c: Likewise.
6461         * util/mkisofs/exclude.h: Likewise.
6462         * util/mkisofs/fnmatch.c: Likewise.
6463         * util/mkisofs/getopt.c: Likewise.
6464         * util/mkisofs/getopt1.c: Likewise.
6465         * util/mkisofs/hash.c: Likewise.
6466         * util/mkisofs/include/fctldefs.h: Likewise.
6467         * util/mkisofs/include/mconfig.h: Likewise.
6468         * util/mkisofs/include/prototyp.h: Likewise.
6469         * util/mkisofs/include/statdefs.h: Likewise.
6470         * util/mkisofs/iso9660.h: Likewise.
6471         * util/mkisofs/joliet.c: Likewise.
6472         * util/mkisofs/match.c: Likewise.
6473         * util/mkisofs/match.h: Likewise.
6474         * util/mkisofs/mkisofs.c: Likewise.
6475         * util/mkisofs/mkisofs.h: Likewise.
6476         * util/mkisofs/multi.c: Likewise.
6477         * util/mkisofs/name.c: Likewise.
6478         * util/mkisofs/rock.c: Likewise.
6479         * util/mkisofs/tree.c: Likewise.
6480         * util/mkisofs/write.c: Likewise.
6482 2009-11-09  Vladimir Serbinenko  <phcoder@gmail.com>
6484         * normal/auth.c (grub_auth_strcmp): Fix bug which resulted in function
6485         being insecure.
6487 2009-11-08  Robert Millan  <rmh.grub@aybabtu.com>
6489         * util/i386/pc/grub-mkrescue.in: Fix miss-identification as
6490         `grub-mkimage' (and use $0 when possible).
6492 2009-11-08  Robert Millan  <rmh.grub@aybabtu.com>
6494         * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve
6495         error message for excessively large memory map.
6497 2009-11-08  Robert Millan  <rmh.grub@aybabtu.com>
6499         * autogen.sh: Use `sh gendistlist.sh' to avoid reliing on
6500         executable bit.
6502 2009-11-08  Robert Millan  <rmh.grub@aybabtu.com>
6504         * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve error
6505         message for coreboot users.
6507 2009-11-07  Robert Millan  <rmh.grub@aybabtu.com>
6509         Fix build with GNU gold.
6511         * conf/i386-pc.rmk (boot_img_LDFLAGS, pxeboot_img_LDFLAGS)
6512         (diskboot_img_LDFLAGS, lnxboot_img_LDFLAGS)
6513         (cdboot_img_LDFLAGS): Prepend `0x' qualifier to hexadecimal
6514         link addresses.
6515         * aclocal.m4: Likewise.
6517 2009-11-04  Felix Zielcke  <fzielcke@z-51.de>
6519         * configure.ac (AC_PREREQ): Bump to 2.59d.
6520         * INSTALL: Make it more clear when Autoconf and Ruby are
6521         needed and when to run `./autogen.sh'.
6523 2009-11-03  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6525         * util/grub.d/30_os-prober.in: Restore default behavior for unsupported
6526         OSes.
6528 2009-11-02  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6530         * util/grub.d/30_os-prober.in: Add GNU/Hurd support
6532 2009-11-02  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6534         * util/grub.d/10_hurd.in: Drop /dev/ prefix from root device path before
6535         giving it to GNU Mach.
6537 2009-11-02  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6539         * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Subtract 1 from
6540         GNU partition number to get internal GRUB partition number.
6542 2009-11-02  Samuel Thibault  <samuel.thibault@ens-lyon.org>
6544         * util/grub.d/10_hurd.in: Call prepare_grub_to_access_device
6545         ${GRUB_DEVICE_BOOT} before loading /boot kernel.
6547 2009-11-01  Robert Millan  <rmh.grub@aybabtu.com>
6549         Based on patch from BVK Chaitanya  <bvk.groups@gmail.com>
6550         * kern/misc.c (grub_strchr, grub_strrchr): Fix to handle c == '\0'
6551         case.
6553 2009-11-01  Felix Zielcke  <fzielcke@z-51.de>
6555         * Makefile.in (TARGET_CPPFLAGS): Add `-I$(srcdir)/include'.
6557 2009-10-30  Robert Millan  <rmh.grub@aybabtu.com>
6559         Fix build problem.
6561         * Makefile.in (TARGET_CPPFLAGS): Replace `-nostdinc' with
6562         `-isystem=$(srcdir)/include'.
6564 2009-10-30  Robert Millan  <rmh.grub@aybabtu.com>
6566         * util/i386/pc/grub-install.in: Remove hint that device.map should be
6567         checked (grub-install doesn't currently rely on it).
6569 2009-10-29  Robert Millan  <rmh.grub@aybabtu.com>
6571         Revert SVN r2660.
6573         * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): Moved from here ...
6574         * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here.
6575         * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): ... and here.
6576         * conf/i386-ieee1275.rmk: Likewise.
6577         * conf/i386-pc.rmk: Likewise.
6578         * conf/powerpc-ieee1275.rmk: Likewise.
6579         * conf/sparc64-ieee1275.rmk: Likewise.
6580         * conf/x86_64-efi.rmk: Likewise.
6582 2009-10-28  Robert Millan  <rmh.grub@aybabtu.com>
6584         * Makefile.in (TARGET_CPPFLAGS): Add `-nostdinc'.
6586 2009-10-28  Robert Millan  <rmh.grub@aybabtu.com>
6588         * include/grub/misc.h: Stop checking for APPLE_CC.
6590 2009-10-28  Robert Millan  <rmh.grub@aybabtu.com>
6592         * kern/i386/coreboot/init.c (grub_exit): Reimplement in a way that
6593         doesn't cause an infinite call loop.
6595 2009-10-28  Felix Zielcke  <fzielcke@z-51.de>
6597         * commands/acpi.c (grub_cmd_acpi): Fix the out of memory error
6598         strings.
6600 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6602         * autogen.sh: Support addition of external modules via `GRUB_CONTRIB'
6603         variable.
6604         * Makefile.in: Likewise.
6606 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6608         * gendistlist.sh: Simplify .svn check.  Skip .bzr as well.
6610 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6612         * Makefile.in (RMKFILES): Rewrite using $(wildcard).
6614 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6616         * disk/scsi.c: Remove `<grub/machine/kernel.h>' (not needed).
6618 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6620         * gensymlist.sh.in (COMPILE_TIME_ASSERT): Copy macro declaration
6621         from here ...
6622         * include/grub/misc.h (COMPILE_TIME_ASSERT): ... to here.
6624 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6626         * Makefile.in (docs/grub.info): Use make syntax to ignore errors
6627         in $(MAKEINFO) invocation.  This makes it clear in output that
6628         errors are being ignored.
6630 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6632         * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): Moved
6633         from here ...
6634         * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here.
6635         * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): Remove.
6636         * conf/i386-ieee1275.rmk: Likewise.
6637         * conf/i386-pc.rmk: Likewise.
6638         * conf/powerpc-ieee1275.rmk: Likewise.
6639         * conf/sparc64-ieee1275.rmk: Likewise.
6640         * conf/x86_64-efi.rmk: Likewise.
6642 2009-10-26  Colin Watson  <cjwatson@ubuntu.com>
6644         * util/grub-editenv.c (main): If only a command is given, use
6645         DEFAULT_DIRECTORY "/" GRUB_ENVBLK_DEFCFG as a default file name.
6646         (usage): FILENAME is now optional and has a default.
6648 2009-10-26  Colin Watson  <cjwatson@ubuntu.com>
6650         Improve grub-mkconfig performance when there are several menu
6651         entries on a single filesystem.
6653         * util/grub.d/10_linux.in (linux_entry): Cache the output of
6654         prepare_grub_to_access_device.
6655         * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
6656         * util/grub.d/30_os-prober.in: Likewise.
6658 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6660         * util/grub.d/10_freebsd.in: Remove.
6661         * util/grub.d/10_kfreebsd.in: New file (based on 10_linux.in).
6662         * configure.ac: Set host_kernel=kfreebsd for FreeBSD and GNU/kFreeBSD.
6664 2009-10-26  Robert Millan  <rmh.grub@aybabtu.com>
6666         * docs/grub.cfg: Fix example usage of *BSD loaders.
6668 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6670         * util/i386/pc/grub-setup.c (setup): Add missing parameter to
6671         grub_util_error() call.
6673 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6675         * include/grub/fs.h [GRUB_UTIL] (struct grub_fs): Add
6676         `reserved_first_sector' member.
6677         * fs/ext2.c [GRUB_UTIL] (grub_ext2_fs): Initialize
6678         `reserved_first_sector' to 1.
6679         * fs/fat.c [GRUB_UTIL] (grub_fat_fs): Likewise.
6680         * fs/ntfs.c [GRUB_UTIL] (grub_ntfs_fs): Likewise.
6681         * fs/hfsplus.c [GRUB_UTIL] (grub_hfsplus_fs): Likewise.
6682         * util/i386/pc/grub-setup.c (setup): Add safety check that probes for
6683         filesystems which begin at first sector.
6684         (options): New option --skip-fs-probe.
6685         (main): Handle --skip-fs-probe and pass it to setup().
6687 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6689         * include/grub/misc.h: Fix wrong evaluation of APPLE_CC.
6690         (memset): Fix function prototype.
6692 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6693 2009-10-25  Vasily Averin  <vvs@parallels.com>
6695         * fs/ext2.c (grub_ext2_iterate_dir): Avoid infinite loop when
6696         `dirent.direntlen == 0'.
6698 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6700         * fs/cpio.c [MODE_USTAR]: Initialize `tar' module instead of
6701         `cpio'.
6702         [! MODE_USTAR]: Initialize `cpio' module instead of `tar'.
6704 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6706         * configure.ac: Check for `__ashldi3', `__ashrdi3', `__lshrdi3',
6707         `__trampoline_setup' and `__ucmpdi2'.
6708         * include/grub/powerpc/libgcc.h: Only export symbols for functions
6709         that libgcc provides.
6711 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6713         * include/grub/powerpc/libgcc.h (memset): Remove function prototype.
6714         * include/grub/sparc64/libgcc.h (memset): Likewise.
6715         * include/grub/misc.h (memset, memcmp): New function prototypes.
6717 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6719         * fs/cpio.c [MODE_USTAR]: Finish `tar' module instead of
6720         `cpio'.
6721         [! MODE_USTAR]: Finish `cpio' module instead of `tar'.
6723 2009-10-25  Robert Millan  <rmh.grub@aybabtu.com>
6725         Patch from Samuel Thibault <samuel.thibault@ens-lyon.org>
6726         * docs/grub.cfg: Compensate for recent change in multiboot
6727         loader (since 2009-08-14 it won't pass filename to payload).
6728         * util/grub.d/10_hurd.in: Likewise.
6730 2009-10-21  Felix Zielcke  <fzielcke@z-51.de>
6732         * config.guess: Update to latest version from config git
6733         repository.
6734         * config.sub: Likewise.
6736 2009-10-20  Robert Millan  <rmh.grub@aybabtu.com>
6738         Fix build on sparc64.
6740         * configure.ac: Perform checks for libgcc symbols before
6741         adding `-nostdlib' to LDFLAGS.
6743 2009-10-16  Vladimir Serbinenko  <phcoder@gmail.com>
6745         Let user specify OpenBSD root device.
6747         * loader/i386/bsd.c (openbsd_root): New variable.
6748         (openbsd_opts): New option 'root'.
6749         (OPENBSD_ROOT_ARG): New macro.
6750         (grub_openbsd_boot): Use 'openbsd_root'.
6751         (grub_cmd_openbsd): Fill 'openbsd_root'.
6753 2009-10-16  Robert Millan  <rmh.grub@aybabtu.com>
6755         * NEWS: Misc adjustments.
6757 2009-10-16  Vladimir Serbinenko  <phcoder@gmail.com>
6759         * NEWS: Mentioned XNU, ACPI, gptsync, password and parttool.
6761 2009-10-16  Robert Millan  <rmh.grub@aybabtu.com>
6763         * configure.ac: Bump version to 1.97.
6765 2009-10-16  Colin Watson  <cjwatson@ubuntu.com>
6767         * configure.ac (TARGET_CFLAGS): Add -mno-mmx -mno-sse -mno-sse2
6768         -mno-3dnow on x86 architectures.  Some toolchains enable these
6769         features by default, but they rely on registers that aren't enabled
6770         in GRUB.  Thanks to Vladimir Serbinenko for the suggestion.
6772 2009-10-15  Robert Millan  <rmh.grub@aybabtu.com>
6774         Make entry text a bit more readable.
6776         * util/grub.d/10_linux.in: Add `with' before `Linux'.
6778 2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>
6780         * loader/i386/pc/xnu.c (grub_xnu_set_video): Fix loading splash image.
6782 2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>
6784         * commands/xnu_uuid.c (grub_cmd_xnu_uuid): Remove duplicated bitwise
6785         operations.
6787 2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>
6789         * configure.ac: Add missing dollar.
6791 2009-10-15  Vladimir Serbinenko  <phcoder@gmail.com>
6793         Revert 2009-06-10  Pavel Roskin  <proski@gnu.org>
6795         * configure.ac: Put checks for __bswapsi2 and __bswapdi2.
6796         * include/grub/powerpc/libgcc.h: Don't use weak attribute for all
6797         exports.
6798         * include/grub/sparc64/libgcc.h: Likewise.  Use
6799         preprocessor conditionals.
6801 2009-10-14  Robert Millan  <rmh.grub@aybabtu.com>
6803         * conf/common.rmk (grub-dumpbios): Remove rule.
6804         (sbin_SCRIPTS, CLEANFILES): Remove `grub-dumpbios'.
6805         * util/grub-dumpbios.in: Remove file.
6807 2009-10-14  Robert Millan  <rmh.grub@aybabtu.com>
6809         Refer to kernel of FreeBSD "kFreeBSD" to avoid confusion between
6810         the Operating System (FreeBSD) and its kernel (kernel of FreeBSD).
6812         * loader/i386/bsd.c (grub_freebsd_boot): Read kernel environment
6813         from "kFreeBSD" namespace (rather than "FreeBSD").  Update all
6814         users.
6816         (GRUB_MOD_INIT (bsd)): Rename "freebsd" command to "kfreebsd",
6817         "openbsd" to "kopenbsd", "netbsd" to "knetbsd", "freebsd_loadenv"
6818         to "kfreebsd_loadenv", "freebsd_module" to "kfreebsd_module",
6819         and "freebsd_module_elf" to "kfreebsd_module_elf".  Update all
6820         users.
6822 2009-10-12  Robert Millan  <rmh.grub@aybabtu.com>
6824         * term/tparm.c: Switch to GPLv3.
6826 2009-10-09  Robert Millan  <rmh.grub@aybabtu.com>
6828         * include/grub/i386/cpuid.h: Add header protection.
6830 2009-10-09  Robert Millan  <rmh.grub@aybabtu.com>
6832         Fail gracefuly when attempting to load 64-bit kFreeBSD on IA32 CPU.
6834         * include/grub/i386/cpuid.h: New file.
6835         * commands/i386/cpuid.c: Include `<grub/i386/cpuid.h>'.
6836         (has_longmode): Rename to ...
6837         (grub_cpuid_has_longmode): ... this.  Update all users.  Remove
6838         `static' attribute.
6839         * loader/i386/bsd.c: Include `<grub/i386/cpuid.h>'.
6840         (grub_bsd_load_elf): Fail if load of 64-bit kernel was requested
6841         on a CPU that doesn't implement AMD64 instruction set.
6843 2009-10-06  Colin Watson  <cjwatson@ubuntu.com>
6845         * Makefile.in (docs/stamp-vti): Depend on configure.ac as well, so
6846         that version.texi is rebuilt on version number changes.
6848 2009-10-06  Colin Watson  <cjwatson@ubuntu.com>
6850         * Makefile.in: Don't set info_INFOS unless makeinfo was found.
6851         Fixes bug #27602.
6853 2009-10-06  Colin Watson  <cjwatson@ubuntu.com>
6855         * util/i386/pc/grub-install.in: Source
6856         ${libdir}/grub/grub-mkconfig_lib before option processing, in order
6857         that the --grub-probe option will work.
6858         * util/sparc64/ieee1275/grub-install.in: Likewise.
6860 2009-10-05  Robert Millan  <rmh.grub@aybabtu.com>
6862         * configure.ac: Bump version to 1.97~beta4.
6864 2009-10-03  Robert Millan  <rmh.grub@aybabtu.com>
6866         Resync grub-mkdevicemap in x86_64-efi.
6868         * conf/x86_64-efi.rmk (sbin_UTILITIES): Enable `grub-mkdevicemap'.
6869         (grub_mkdevicemap_SOURCES): Add missing `util/deviceiter.c' and
6870         `util/devicemap.c'.
6872 2009-10-01  Colin Watson  <cjwatson@ubuntu.com>
6874         * util/grub-editenv.c (create_envblk_file): Write new block with a
6875         .new suffix and then rename it into place, to ensure atomic
6876         creation.
6878 2009-09-28  Robert Millan  <rmh.grub@aybabtu.com>
6880         Do not automatically install headers.
6882         * Makefile.in (include_DATA): Remove.  Update all users.
6884 2009-09-26  Robert Millan  <rmh.grub@aybabtu.com>
6886         * conf/common.rmk (pkglib_MODULES): Remove `lua.mod'.
6887         (lua_mod_SOURCES, lua_mod_CFLAGS, lua_mod_LDFLAGS): Remove.
6889         * util/osdetect.lua: Remove.
6890         * script/lua/lauxlib.c: Likewise.
6891         * script/lua/ldebug.c: Likewise.
6892         * script/lua/grub_main.c: Likewise.
6893         * script/lua/lauxlib.h: Likewise.
6894         * script/lua/ldebug.h: Likewise.
6895         * script/lua/ltablib.c: Likewise.
6896         * script/lua/liolib.c: Likewise.
6897         * script/lua/lstrlib.c: Likewise.
6898         * script/lua/lualib.h: Likewise.
6899         * script/lua/ldo.c: Likewise.
6900         * script/lua/ldump.c: Likewise.
6901         * script/lua/ldo.h: Likewise.
6902         * script/lua/loslib.c: Likewise.
6903         * script/lua/lundump.c: Likewise.
6904         * script/lua/grub_lib.c: Likewise.
6905         * script/lua/ldblib.c: Likewise.
6906         * script/lua/lundump.h: Likewise.
6907         * script/lua/lmem.c: Likewise.
6908         * script/lua/grub_lib.h: Likewise.
6909         * script/lua/lmathlib.c: Likewise.
6910         * script/lua/lstate.c: Likewise.
6911         * script/lua/ltm.c: Likewise.
6912         * script/lua/lvm.c: Likewise.
6913         * script/lua/lmem.h: Likewise.
6914         * script/lua/lstate.h: Likewise.
6915         * script/lua/ltm.h: Likewise.
6916         * script/lua/ltable.c: Likewise.
6917         * script/lua/lvm.h: Likewise.
6918         * script/lua/llex.c: Likewise.
6919         * script/lua/lgc.c: Likewise.
6920         * script/lua/grub_lua.h: Likewise.
6921         * script/lua/loadlib.c: Likewise.
6922         * script/lua/lfunc.c: Likewise.
6923         * script/lua/lopcodes.c: Likewise.
6924         * script/lua/lparser.c: Likewise.
6925         * script/lua/ltable.h: Likewise.
6926         * script/lua/llex.h: Likewise.
6927         * script/lua/lgc.h: Likewise.
6928         * script/lua/lfunc.h: Likewise.
6929         * script/lua/lbaselib.c: Likewise.
6930         * script/lua/lopcodes.h: Likewise.
6931         * script/lua/lparser.h: Likewise.
6932         * script/lua/lzio.c: Likewise.
6933         * script/lua/linit.c: Likewise.
6934         * script/lua/lobject.c: Likewise.
6935         * script/lua/llimits.h: Likewise.
6936         * script/lua/lstring.c: Likewise.
6937         * script/lua/lzio.h: Likewise.
6938         * script/lua/lapi.c: Likewise.
6939         * script/lua/lcode.c: Likewise.
6940         * script/lua/lua.h: Likewise.
6941         * script/lua/lobject.h: Likewise.
6942         * script/lua/lstring.h: Likewise.
6943         * script/lua/lapi.h: Likewise.
6944         * script/lua/lcode.h: Likewise.
6945         * script/lua/luaconf.h: Likewise.
6947 2009-09-26  Colin Watson  <cjwatson@ubuntu.com>
6949         * docs/grub.texi (Command-line and menu entry commands): Document
6950         date and echo commands.
6952 2009-09-24  Pavel Roskin  <proski@gnu.org>
6954         * include/grub/kernel.h (struct grub_module_header): Remove
6955         `grub_module_header_types'.  Make `type' unsigned.  Make `size'
6956         32-bit on all platforms.
6957         * util/elf/grub-mkimage.c (load_modules): Treat `type' as an
6958         8-bit field.  Use grub_host_to_target32() for `size'.
6959         * util/i386/efi/grub-mkimage.c (make_mods_section): Likewise.
6960         * util/i386/pc/grub-mkimage.c (generate_image): Likewise.
6961         * util/sparc64/ieee1275/grub-mkimage.c (generate_image): Likewise.
6963 2009-09-24  Robert Millan  <rmh.grub@aybabtu.com>
6965         Fix "lost keypress" bug in at_keyboard.
6967         * term/i386/pc/at_keyboard.c (grub_at_keyboard_checkkey): New function.
6968         Checks for readyness of input buffer (without flushing it).
6969         (grub_at_keyboard_term): Use grub_at_keyboard_checkkey() rather
6970         than grub_at_keyboard_getkey_noblock() for `checkkey' struct member.
6972 2009-09-24  Robert Millan  <rmh.grub@aybabtu.com>
6974         * util/i386/pc/grub-mkimage.c (generate_image): Enclose BIOS-specific
6975         size check within GRUB_MACHINE_PCBIOS section.
6977 2009-09-24  Robert Millan  <rmh.grub@aybabtu.com>
6979         * include/grub/i386/at_keyboard.h (KEYBOARD_ISREADY): Negate
6980         return value.
6981         * term/i386/pc/at_keyboard.c (grub_keyboard_getkey): Negate
6982         KEYBOARD_ISREADY check.
6983         (grub_at_keyboard_checkkey): Rename to ...
6984         (grub_at_keyboard_getkey_noblock): ... this.  Update all users.
6985         Remove gratuitous cast.
6987 2009-09-23  Colin Watson  <cjwatson@ubuntu.com>
6989         * configure.ac: Call AC_PROG_MKDIR_P.
6990         * Makefile.in (docs/stamp-vti): Create docs directory.  Create
6991         version.texi in $(builddir) rather than $(srcdir).
6992         (docs/grub.info): Create docs directory.  Prepend $(builddir)/docs
6993         to makeinfo's @include search path.
6995 2009-09-23  Felix Zielcke  <fzielcke@z-51.de>
6997         * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Cope with `*.dpkg-*'
6999 2009-09-23  Felix Zielcke  <fzielcke@z-51.de>
7001         * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Add support
7002         for `*.dpkg-new'.
7004 2009-09-21  Colin Watson  <cjwatson@ubuntu.com>
7006         Build info documentation.  Some code borrowed from Automake.
7008         * configure.ac: Check for makeinfo.
7009         * Makefile.in (MAKEINFO, INFOS, info_INFOS): New variables.
7010         (MAINTAINER_CLEANFILES): Add $(INFOS), docs/stamp-vti, and
7011         docs/version.texi.
7012         (MOSTLYCLEANFILES): Add vti.tmp.
7013         (docs/version.texi, docs/stamp-vti): Update automatically.
7014         (docs/grub.info): Build info documentation.  Use --force and ignore
7015         errors for now.
7016         (all-local): Add $(INFOS).
7017         (install-local): Install info files.
7018         (uninstall): Uninstall info files.
7019         * docs/version.texi: Remove from revision control.  This file is
7020         automatically generated on build now.
7021         * gendistlist.sh: Add `*.info'.
7023 2009-09-21  Felix Zielcke  <fzielcke@z-51.de>
7025         * kern/term.c: Fix indentation.
7027 2009-09-21  Felix Zielcke  <fzielcke@z-51.de>
7029         * util/hostdisk.c: Fix a comment.
7031 2009-09-20  Robert Millan  <rmh.grub@aybabtu.com>
7033         Fix regression introduced in r2539.
7035         * term/usb_keyboard.c (USB_HID_DEVICE_TO_HOST): Change from 0x61
7036         to 0xA1.
7038 2009-09-19  Colin Watson  <cjwatson@ubuntu.com>
7040         * util/grub.d/30_os-prober.in: Don't throw away stderr from
7041         os-prober. Under normal operation, it does not print anything to
7042         stderr; if it does, we need to debug it, and throwing away stderr
7043         makes that excessively difficult.
7045 2009-09-16  Vladimir Serbinenko  <phcoder@gmail.com>
7047         * mmap/mmap.c (grub_cmd_badram): Fix off-by-one error.
7049 2009-09-16  Robert Millan  <rmh.grub@aybabtu.com>
7051         * aclocal.m4 (AC_LANG_PROGRAM): New macro.  Overrides stock
7052         AC_LANG_PROGRAM from autoconf.
7053         (grub_ASM_USCORE, grub_PROG_OBJCOPY_ABSOLUTE): Add missing
7054         prototypes (fixes warning).
7056         * configure.ac: Add `-Werror' to TARGET_CFLAGS unless
7057         `--disable-werror' was used.
7059 2009-09-16  Robert Millan  <rmh.grub@aybabtu.com>
7061         * partmap/msdos.c (pc_partition_map_iterate): Fix possible use of
7062         uninitialized `lastaddr'.
7064 2009-09-15  Vladimir Serbinenko  <phcoder@gmail.com>
7066         * partmap/msdos.c (pc_partition_map_iterate): Detect and break loops.
7068 2009-09-14  Colin Watson  <cjwatson@ubuntu.com>
7070         * commands/test.c (get_fileinfo): Return immediately if
7071         grub_fs_probe fails.
7073 2009-09-14  José Martínez  <xosemp@gmail.com>
7075         * commands/acpi.c (grub_cmd_acpi): Fix loading ACPI tables from file.
7077 2009-09-14  Colin Watson  <cjwatson@ubuntu.com>
7079         * util/grub.d/30_os-prober.in: Cope with Windows 7 in os-prober
7080         output.
7082 2009-09-13  Robert Millan  <rmh.grub@aybabtu.com>
7084         * configure.ac: Remove --enable-grub-pe2elf.  Only build
7085         grub-pe2elf when needed by the build system itself.
7086         * conf/common.rmk: Remove $(enable_grub_pe2elf) check.
7088 2009-09-12  Robert Millan  <rmh.grub@aybabtu.com>
7090         * configure.ac: Bump version to 1.97~beta3.
7091         * docs/version.texi: Likewise.
7093 2009-09-12  Robert Millan  <rmh.grub@aybabtu.com>
7095         * video/i386/pc/vbe.c (grub_vbe_get_video_mode_info): Move packed
7096         mode special handling (grub_vbe_bios_set_dac_palette_width() call)
7097         from here ...
7098         * loader/i386/linux.c [GRUB_MACHINE_PCBIOS]
7099         (grub_linux_setup_video): ... to here (with some adjustments).
7101 2009-09-12  Robert Millan  <rmh.grub@aybabtu.com>
7103         Fix memory corruption issue (spotted by Colin Watson).
7105         * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette): Fix bug
7106         causing returned size to be stored in an incorrect memory location.
7107         Fix use of uninitialized value when storing the returned size.
7109 2009-09-12  Yves Blusseau  <blusseau@zetam.org>
7111         Change clean rules to properly remove files
7113         * genmk.rb: add new clean rules
7114         * Makefile.in (clean): add the new targets
7115         (mostlyclean): likewise
7117 2009-09-11  Colin Watson  <cjwatson@ubuntu.com>
7119         * include/grub/ntfs.h (struct grub_fshelp_node): Change `size'
7120         to grub_uint64_t.
7121         * fs/ntfs.c (init_file): Understand 64-bit sizes for
7122         non-resident files.
7124 2009-09-11  Colin Watson  <cjwatson@ubuntu.com>
7126         * configure.ac: Don't look for help2man when cross-compiling.  Fixes
7127         part of bug #27349.
7129 2009-09-10  Felix Zielcke  <fzielcke@z-51.de>
7131         * util/grub-mkconfig.in: Make the created config mode 400 and
7132         print a warning if it fails.
7134 2009-09-10  Robert Millan  <rmh.grub@aybabtu.com>
7136         * util/grub.d/40_custom.in: Ask user to type custom entries below
7137         comment, rather than below 'exec tail' line.
7139 2009-09-10  Colin Watson  <cjwatson@ubuntu.com>
7141         * util/grub.d/40_custom.in: Make sure that the explanatory text is
7142         visible in grub.cfg.
7144 2009-09-10  Colin Watson  <cjwatson@ubuntu.com>
7146         * util/grub.d/40_custom.in: Make it a little clearer how to use this
7147         file.
7149 2009-09-10  Felix Zielcke  <fzielcke@z-51.de>
7151         * docs/grub.cfg: Add an example menu entry for memtest86+.
7153 2009-09-09  Felix Zielcke  <fzielcke@z-51.de>
7155         * config.guess: Update to latest version from config git.
7156         * config.sub: Likewise.
7158 2009-09-08  Colin Watson  <cjwatson@ubuntu.com>
7160         * script/sh/execute.c (grub_script_execute_cmdline): Set "?" in
7161         unknown-command case.  Fixes bug #27320.
7163 2009-09-08  Felix Zielcke  <fzielcke@z-51.de>
7165         * kern/rescue_parser.c (grub_rescue_parse_line): Only suggest to try
7166         `help' if the command exists.
7168 2009-09-06  Robert Millan  <rmh.grub@aybabtu.com>
7170         * INSTALL: Require GCC 4.1.3 or later.
7172 2009-09-06  Yves Blusseau  <blusseau@zetam.org>
7174         * Makefile.in (RMKFILES): add i386-qemu.rmk
7175         (MAINTAINER_CLEANFILES): add $(srcdir)/DISTLIST $(srcdir)/config.h.in
7176         $(srcdir)/stamp-h.in
7178 2009-09-05  Robert Millan  <rmh.grub@aybabtu.com>
7180         * util/grub-probe.c (probe): Comment out buggy codepath, which
7181         was unexpectedly enabled by Colin Watson's 2009-09-02 fix.  This
7182         should be re-enabled after 1.97.
7184 2009-09-05  Felix Zielcke  <fzielcke@z-51.de>
7186         * gendistlist.sh: Add `grub-dumpdevtree' and `*.lua' to the list
7187         find searches for.
7189 2009-09-04  Vladimir Serbinenko  <phcoder@gmail.com>
7191         * loader/i386/xnu.c (grub_cpu_xnu_fill_devicetree): Remove
7192         unnecessary calls to grub_error.
7194 2009-09-04  Colin Watson  <cjwatson@ubuntu.com>
7196         * NEWS: Mention `keystatus' and Unicode fonts.
7198 2009-09-04  Robert Millan  <rmh.grub@aybabtu.com>
7200         * configure.ac: Bump version to 1.97~beta2.
7201         * docs/version.texi: Likewise.
7203 2009-09-03  Colin Watson  <cjwatson@ubuntu.com>
7205         * configure.ac: By default, GCC 4.4 generates .eh_frame sections
7206         containing unwind information in some cases where it previously did
7207         not. Use -fno-dwarf2-cfi-asm if available to restore the old
7208         behaviour. See http://patchwork.kernel.org/patch/8555/ for related
7209         discussion.
7211 2009-09-02  Yves BLUSSEAU  <blusseau@zetam.org>
7213         Embedding loadenv module into grub-emu
7215         * conf/i386-pc.rmk (grub_emu_SOURCES): add lib/envblk.c and
7216         commands/loadenv.c
7217         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise
7218         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise
7219         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise
7220         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise
7221         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise
7222         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise
7224 2009-09-03  Magnus Granberg  <zorry@ume.nu>
7226         * aclocal.m4: Add grub_CHECK_PIE. It check if the compiler
7227         include -fPIE in the default specs.
7228         * configure.ac: Check if pie_possible is yes and add -fno-PIE
7229         to TARGET_CFLAGS.
7231 2009-09-03  Felix Zielcke  <fzielcke@z-51.de>
7233         * INSTALL: Note that GNU Bison 2.3 or later is required.
7235 2009-09-03  Colin Watson  <cjwatson@ubuntu.com>
7237         * kern/i386/pc/startup.S: Fix typo.
7239 2009-09-02  Vladimir Serbinenko  <phcoder@gmail.com>
7241         * efiemu/loadcore.c (SUFFIX (grub_efiemu_loadcore_load)): Fix style
7242         according to GCS.
7244 2009-09-02  Colin Watson  <cjwatson@ubuntu.com>
7246         * docs/grub.texi (Naming convention): Describe one-based partition
7247         numbering.
7248         (Device syntax): Likewise.
7249         (File name syntax): Likewise.
7250         (Block list syntax): Likewise.
7251         (Making a GRUB bootable CD-ROM): Talk about grub.cfg rather than
7252         menu.lst.
7253         (File name syntax): Likewise.
7254         (Command-line and menu entry commands): Document acpi, blocklist,
7255         crc, export, insmod, keystatus, ls, set, and unset commands.
7257 2009-09-02  Colin Watson  <cjwatson@ubuntu.com>
7259         * commands/keystatus.c (GRUB_MOD_INIT (keystatus)): Adjust summary
7260         to avoid implying that only one of --shift, --ctrl, or --alt may be
7261         used.
7263 2009-09-02  Colin Watson  <cjwatson@ubuntu.com>
7265         * util/grub-probe.c (probe): Test st.st_mode using S_ISREG macro
7266         rather than comparing against S_IFREG, which will almost never work.
7268 2009-09-01  Vladimir Serbinenko  <phcoder@gmail.com>
7270         * commands/loadenv.c (check_blocklists): Fix off-by-one error.
7271         (write_blocklists): Likewise.
7273 2009-09-01  Colin Watson  <cjwatson@ubuntu.com>
7275         * script/lua/grub_lua.h (fputs): Supply a format string as the first
7276         argument to grub_printf.
7278 2009-09-01  Felix Zielcke  <fzielcke@z-51.de>
7280         * genmk.rb: Add quotes around $(TARGET_OBJ2ELF) to cope with
7281          non GNU test.
7283 2009-08-30  Vladimir Serbinenko  <phcoder@gmail.com>
7285         * kern/file.c (grub_file_read): Spelling fix
7287 2009-08-30  Vladimir Serbinenko  <phcoder@gmail.com>
7289         * loader/i386/bsdXX.c (SUFFIX (grub_freebsd_load_elfmodule)): Fix
7290         loading of headers in some cases.
7292 2009-08-30  Robert Millan  <rmh.grub@aybabtu.com>
7294         * configure.ac: Bump version to 1.97~beta1.
7295         * docs/version.texi: Likewise.
7297 2009-08-29  Vladimir Serbinenko  <phcoder@gmail.com>
7299         * include/grub/i386/xnu.h: Add license header.
7300         include grub/err.h explicitly.
7302 2009-08-29  Robert Millan  <rmh.grub@aybabtu.com>
7304         * util/grub.d/10_freebsd.in: Detect `ufs1' and `ufs2' and map them
7305         to `ufs' in the vfs.root.mountfrom kernel parameter.
7307 2009-08-29  Robert Millan  <rmh.grub@aybabtu.com>
7309         * term/i386/pc/serial.c: Include `<grub/machine/memory.h>'.
7311         [GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Macroify initialization
7312         value (0x0400 -> GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR).
7314         [! GRUB_MACHINE_PCBIOS] (GRUB_SERIAL_PORT_NUM): Calculate using
7315         `ARRAY_SIZE' macro.
7317 2009-08-28  Vladimir Serbinenko  <phcoder@gmail.com>
7319         * kern/file.c (grub_file_read): Check offset.
7320         * fs/hfs.c (grub_hfs_read_file): Remove unnecessary offset check.
7321         * fs/jfs.c (grub_jfs_read_file): Likewise.
7322         * fs/ntfs.c (grub_ntfs_read): Likewise.
7323         * fs/reiserfs.c (grub_reiserfs_read): Likewise.
7324         * fs/minix.c (grub_minix_read_file): Correct offset check.
7325         * fs/ufs.c (grub_ufs_read_file): Likewise.
7327 2009-08-28  Colin Watson  <cjwatson@ubuntu.com>
7329         * term/i386/pc/console.c (bios_data_area): Cast
7330         GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR explicitly.
7332 2009-08-28  Vladimir Serbinenko  <phcoder@gmail.com>
7334         1-bit optimised blitters.
7336         * include/grub/fbblit.h (grub_video_fbblit_replace_32bit_1bit): New
7337         prototype.
7338         (grub_video_fbblit_replace_24bit_1bit): Likewise.
7339         (grub_video_fbblit_replace_16bit_1bit): Likewise.
7340         (grub_video_fbblit_replace_8bit_1bit): Likewise.
7341         (grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
7342         (grub_video_fbblit_blend_XXX888_1bit): Likewise.
7343         (grub_video_fbblit_blend_XXX565_1bit): Likewise.
7344         * video/fb/fbblit.c (grub_video_fbblit_replace_32bit_1bit): New
7345         function.
7346         (grub_video_fbblit_replace_24bit_1bit): Likewise.
7347         (grub_video_fbblit_replace_16bit_1bit): Likewise.
7348         (grub_video_fbblit_replace_8bit_1bit): Likewise.
7349         (grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
7350         (grub_video_fbblit_blend_XXX888_1bit): Likewise.
7351         (grub_video_fbblit_blend_XXX565_1bit): Likewise.
7352         * video/fb/video_fb.c (common_blitter): Use 1-bit optimised blitters
7353         when possible.
7354         * video/video.c (grub_video_get_blit_format): Return
7355         GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED if bpp = 1.
7357 2009-08-28  Colin Watson  <cjwatson@ubuntu.com>
7359         * normal/cmdline.c (grub_cmdline_get): Supply a format string as
7360         the first argument to grub_printf.
7362 2009-08-28  Colin Watson  <cjwatson@ubuntu.com>
7363 2009-08-28  Robert Millan  <rmh.grub@aybabtu.com>
7365         Add `getkeystatus' terminal method.  Add a new `keystatus' command
7366         to query it.
7368         * include/grub/term.h (GRUB_TERM_STATUS_SHIFT,
7369         GRUB_TERM_STATUS_CTRL, GRUB_TERM_STATUS_ALT): Definitions for
7370         modifier key bitmasks.
7371         (struct grub_term_input): Add `getkeystatus' member.
7372         (grub_getkeystatus): Add prototype.
7373         * kern/term.c (grub_getkeystatus): New function.
7375         * include/grub/i386/pc/memory.h
7376         (GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR): New macro.
7377         (struct grub_machine_bios_data_area): Define necessary parts of BIOS
7378         Data Area layout.
7379         * term/i386/pc/console.c (grub_console_getkeystatus): New function.
7380         (grub_console_term_input): Set `getkeystatus' member.
7381         * term/usb_keyboard.c (grub_usb_hid): Macroify HID protocol
7382         constants.
7383         (grub_usb_keyboard_getreport): Likewise.
7384         (grub_usb_keyboard_checkkey): Likewise.
7385         (grub_usb_keyboard_getkeystatus): New function.
7386         (grub_usb_keyboard_term): Set `getkeystatus' member.
7388         * commands/keystatus.c: New file.
7389         * conf/common.rmk (pkglib_MODULES): Add keystatus.mod.
7390         (keystatus_mod_SOURCES): New variable.
7391         (keystatus_mod_CFLAGS): Likewise.
7392         (keystatus_mod_LDFLAGS): Likewise.
7393         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add
7394         commands/keystatus.c.
7395         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7396         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7397         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
7398         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7399         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7400         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
7402 2009-08-28  Vladimir Serbinenko  <phcoder@gmail.com>
7404         Split befs.mod and afs.mod into *_be.mod and *.mod
7406         * conf/common.rmk (grub_probe_SOURCES): Add afs_be.c and befs_be.c.
7407         (grub_fstest_SOURCES): Likewise.
7408         (pkglib_MODULES): Add afs_be.mod and befs_be.mod.
7409         (afs_be_mod_SOURCES): New variable.
7410         (afs_be_mod_CFLAGS): Likewise.
7411         (afs_be_mod_LDFLAGS): Likewise.
7412         (befs_be_mod_SOURCES): Likewise.
7413         (befs_be_mod_CFLAGS): Likewise.
7414         (befs_be_mod_LDFLAGS): Likewise.
7415         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add afs_be.c and befs_be.c.
7416         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7417         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7418         * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
7419         (grub_emu_SOURCES): Likewise.
7420         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7421         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7422         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
7423         * fs/afs_be.c: New file.
7424         * fs/befs_be.c: New file.
7425         * fs/afs.c (GRUB_AFS_FSNAME_SUFFIX): New definition.
7426         (GRUB_AFS_FSNAME): Use GRUB_AFS_FSNAME_SUFFIX.
7427         (U16): Replaced with ...
7428         (grub_afs_to_cpu16): ...this. All users updated.
7429         (U32): Replaced with ...
7430         (grub_afs_to_cpu32): ...this. All users updated.
7431         (U64): Replaced with ...
7432         (grub_afs_to_cpu64): ...this. All users updated.
7433         (GRUB_AFS_BO_LITTLE_ENDIAN): Remove.
7434         (GRUB_AFS_BO_BIG_ENDIAN): Likewise.
7435         (grub_afs_validate_sblock): Check only one endianness.
7436         (GRUB_MOD_INIT (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
7437         (GRUB_MOD_INIT (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
7438         (GRUB_MOD_INIT (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
7439         (GRUB_MOD_INIT (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.
7440         (GRUB_MOD_FINI (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
7441         (GRUB_MOD_FINI (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
7442         (GRUB_MOD_FINI (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
7443         (GRUB_MOD_FINI (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.
7445 2009-08-26  Bean  <bean123ch@gmail.com>
7447         * fs/xfs.c (GRUB_XFS_INO_INOINAG): Replace 1L with 1LL to support
7448         64-bit number.
7449         (GRUB_XFS_FSB_TO_BLOCK): Likewise.
7450         (grub_xfs_inode_block): Change return type to grub_uint64_t.
7451         (grub_xfs_read_inode): Change type of block to grub_uint64_t.
7453 2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>
7455         NetBSD memory map support.
7457         * include/grub/i386/bsd.h (NETBSD_BTINFO_MEMMAP): New definition.
7458         (grub_netbsd_btinfo_mmap_header): New structure.
7459         (grub_netbsd_btinfo_mmap_entry): Likewise.
7460         * loader/i386/bsd.c (grub_netbsd_boot): Pass memory map.
7462 2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>
7464         Enable bsd.mod on coreboot.
7466         * conf/i386-coreboot.rmk (pkglib_MODULES): Add bsd.mod.
7467         (bsd_mod_SOURCES): New variable.
7468         (bsd_mod_CFLAGS): Likewise.
7469         (bsd_mod_LDFLAGS): Likewise.
7470         (bsd_mod_ASFLAGS): Likewise.
7471         * loader/i386/bsd.c [!GRUB_MACHINE_PCBIOS]: Fix includes.
7472         (grub_bsd_get_device) [!GRUB_MACHINE_PCBIOS]: Set *biosdev to 0xff.
7474 2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>
7476         Cleanup NetBSD root support.
7478         * loader/i386/bsd.c (grub_netbsd_boot): Remove call to
7479         grub_bsd_get_device.
7480         Fix typo.
7482 2009-08-25  Felix Zielcke  <fzielcke@z-51.de>
7484         * util/grub.d/00_header.in: Move check for the video backend of
7485         gfxterm from here ...
7486         * util/grub-mkconfig.in: ... to here.  Enable gfxterm if there's
7487         a suitable video backend.
7489 2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>
7491         Fix breakage in grub-setup.
7493         * util/i386/pc/grub-setup.c (setup): Use "part_msdos" instead of
7494         "msdos_partition_map".
7496 2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>
7498         Fix breakage in normal/auth.c.
7500         * normal/auth.c (grub_iswordseparator): New function.
7502 2009-08-25  Vladimir Serbinenko  <phcoder@gmail.com>
7504         Authentication support.
7506         * commands/password.c: New file.
7507         * conf/common.rmk (pkglib_MODULES): Add password.mod.
7508         (password_mod_SOURCES): New variable.
7509         (password_mod_CFLAGS): Likewise.
7510         (password_mod_LDFLAGS): Likewise.
7511         (normal_mod_SOURCES): Add normal/auth.c.
7512         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add commands/password.c and
7513         normal/auth.c.
7514         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7515         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7516         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
7517         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7518         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7519         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
7520         * include/grub/auth.h: New file.
7521         * include/grub/err.h (grub_err_t): New enum value
7522         GRUB_ERR_ACCESS_DENIED.
7523         * include/grub/menu.h (grub_menu_entry): New fields 'restricted' and
7524         'users'.
7525         * include/grub/normal.h (grub_cmdline_get): New argument 'history'.
7526         * normal/cmdline.c (grub_cmdline_get): New argument 'history'. All
7527         users updated.
7528         * normal/auth.c: New file.
7529         * normal/main.c (grub_normal_add_menu_entry): Handle --users option.
7530         (grub_cmdline_run): Don't allow to go to command line without
7531         authentication.
7532         * normal/menu.c (grub_menu_execute_entry): Handle restricted entries.
7533         * normal/menu_entry.c (grub_menu_entry_run): Don't allow editing
7534         menuentry without superuser rights.
7535         * normal/menu_viewer.c (grub_menu_viewer_show_menu): Don't exit if
7536         user isn't a superuser.
7538 2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>
7540         Save space by inlining misc.c functions.
7542         * kern/misc.c (grub_iswordseparator): Made static.
7543         * kern/misc.c (grub_strcat): Moved from here ...
7544         * include/grub/misc.h (grub_strcat): ... here. Inlined.
7545         * kern/misc.c (grub_strncat): Moved from here ...
7546         * include/grub/misc.h (grub_strncat): ... here. Inlined.
7547         * kern/misc.c (grub_strcasecmp): Moved from here ...
7548         * include/grub/misc.h (grub_strcasecmp): ... here. Inlined.
7549         * kern/misc.c (grub_strncasecmp): Moved from here ...
7550         * include/grub/misc.h (grub_strncasecmp): ... here. Inlined.
7551         * kern/misc.c (grub_isalpha): Moved from here ...
7552         * include/grub/misc.h (grub_isalpha): ... here. Inlined.
7553         * kern/misc.c (grub_isdigit): Moved from here ...
7554         * include/grub/misc.h (grub_isdigit): ... here. Inlined.
7555         * kern/misc.c (grub_isgraph): Moved from here ...
7556         * include/grub/misc.h (grub_isgraph): ... here. Inlined.
7557         * kern/misc.c (grub_tolower): Moved from here ...
7558         * include/grub/misc.h (grub_tolower): ... here. Inlined.
7560 2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>
7562         * script/sh/function.c (grub_script_function_find): Cut error message
7563         not to flood terminal.
7564         * script/sh/lexer.c (grub_script_yylex): Remove command line length
7565         limit.
7566         * script/sh/script.c (grub_script_arg_add): Duplicate string.
7568 2009-08-24  Colin Watson  <cjwatson@ubuntu.com>
7570         * term/usb_keyboard.c (grub_usb_keyboard_getreport): Make
7571         `report' grub_uint8_t *.
7572         (grub_usb_keyboard_checkkey): Make `data' elements grub_uint8_t.
7573         Use a 50-millisecond timeout rather than just repeating
7574         grub_usb_keyboard_getreport 50 times.
7575         (grub_usb_keyboard_getkey): Make `data' elements grub_uint8_t.
7577 2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>
7579         Rename *_partition_map to part_*
7581         * partmap/acorn.c (grub_acorn_partition_map): Set name to 'part_acorn'.
7582         * partmap/amiga.c (grub_amiga_partition_map): Set name to 'part_amiga'.
7583         * partmap/apple.c (grub_apple_partition_map): Set name to 'part_apple'.
7584         * partmap/gpt.c (grub_gpt_partition_map): Set name to 'part_gpt'.
7585         All users updated.
7586         * partmap/msdos.c (grub_msdos_partition_map): Set name to 'part_msdos'.
7587         All users updated.
7588         * partmap/sun.c (grub_sun_partition_map): Set name to 'part_sun'.
7589         * util/grub-probe.c (probe_partmap): Don't transform partition name
7590         to get module name.
7592 2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>
7594         Fix OpenBSD and NetBSD support.
7596         * include/grub/i386/bsd.h (GRUB_BSD_TEMP_BUFFER): Change to resolve
7597         memory address conflict.
7598         (OPENBSD_MMAP_ACPI): New definition.
7599         (OPENBSD_MMAP_NVS): Likewise.
7600         * loader/i386/bsd.c (grub_openbsd_boot): Support OPENBSD_MMAP_ACPI
7601         and OPENBSD_MMAP_NVS.
7602         Add memory map terminator
7603         Explicit cast when calling grub_unix_real_boot.
7604         (grub_netbsd_boot): Explicit cast when calling grub_unix_real_boot.
7606 2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>
7608         Let user specify NetBSD root device.
7610         * loader/i386/bsd.c (netbsd_root): New variable.
7611         (netbsd_opts): New option 'root'.
7612         (NETBSD_ROOT_ARG): New macro.
7613         (grub_netbsd_boot): Use 'netbsd_root'.
7614         (grub_bsd_unload): Free 'netbsd_root'.
7615         (grub_cmd_netbsd): Fill 'netbsd_root'.
7617 2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>
7619         Support for 64-bit NetBSD.
7621         * loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry
7622         point when booting non-FreeBSD.
7624 2009-08-24  Vladimir Serbinenko  <phcoder@gmail.com>
7626         Support --no-smp and --no-acpi for NetBSD.
7628         * include/grub/i386/bsd.h (NETBSD_AB_NOSMP): New definition.
7629         (NETBSD_AB_NOACPI): Likewise.
7630         * loader/i386/bsd.c (netbsd_opts): New entries no-smp and no-acpi.
7631         (netbsd_flags): Add NETBSD_AB_NOSMP, NETBSD_AB_NOACPI.
7633 2009-08-23  Vladimir Serbinenko  <phcoder@gmail.com>
7635         * fs/hfsplus.c (grub_hfsplus_mount): Don't ignore grub_hfsplus_read_file
7636         errors.
7637         (grub_hfsplus_btree_iterate_node): Don't ignore grub_hfsplus_read_file
7638         errors. Call grub_error when needed.
7640 2009-08-23  Vladimir Serbinenko  <phcoder@gmail.com>
7642         * commands/search.c (search_fs): Try searching without autoload first.
7643         * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
7644         filesystem module explicitly for faster booting.
7646 2009-08-23  Colin Watson  <cjwatson@ubuntu.com>
7648         * util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER.
7650 2009-08-23  Colin Watson  <cjwatson@ubuntu.com>
7652         * util/grub.d/30_os-prober.in: Disable os-prober if
7653         `GRUB_DISABLE_OS_PROBER' was set to true.
7655 2009-08-23  Robert Millan  <rmh.grub@aybabtu.com>
7657         * partmap/pc.c: Rename to ...
7658         * partmap/msdos.c: ... this.  Update all users.
7659         (grub_pc_partition_map): Rename to ...
7660         (grub_msdos_partition_map): ... this.  Update all users.
7662         * parttool/pcpart.c: Rename to ...
7663         * parttool/msdospart.c: ... this.  Update all users.
7665         * include/grub/pc_partition.h: Rename to ...
7666         * include/grub/msdos_partition.h: ... this.  Update all users.
7667         (grub_pc_partition_bsd_entry): Rename to ...
7668         (grub_msdos_partition_bsd_entry): ... this.  Update all users.
7669         (grub_pc_partition_disk_label): Rename to ...
7670         (grub_msdos_partition_disk_label): ... this.  Update all users.
7671         (grub_pc_partition_entry): Rename to ...
7672         (grub_msdos_partition_entry): ... this.  Update all users.
7673         (grub_pc_partition_mbr): Rename to ...
7674         (grub_msdos_partition_mbr): ... this.  Update all users.
7675         (grub_pc_partition): Rename to ...
7676         (grub_msdos_partition): ... this.  Update all users.
7677         (grub_pc_partition_is_empty): Rename to ...
7678         (grub_msdos_partition_is_empty): ... this.  Update all users.
7679         (grub_pc_partition_is_extended): Rename to ...
7680         (grub_msdos_partition_is_extended): ... this.  Update all users.
7681         (grub_pc_partition_is_bsd): Rename to ...
7682         (grub_msdos_partition_is_bsd): ... this.  Update all users.
7684         * conf/common.rmk (amiga_mod_SOURCES, amiga_mod_CFLAGS)
7685         (amiga_mod_LDFLAGS, apple_mod_SOURCES, apple_mod_CFLAGS)
7686         (apple_mod_LDFLAGS, msdos_mod_SOURCES, msdos_mod_CFLAGS)
7687         (msdos_mod_LDFLAGS, sun_mod_SOURCES, sun_mod_CFLAGS)
7688         (sun_mod_LDFLAGS, acorn_mod_SOURCES, acorn_mod_CFLAGS)
7689         (acorn_mod_LDFLAGS, gpt_mod_SOURCES, gpt_mod_CFLAGS)
7690         (gpt_mod_LDFLAGS): Rename to ...
7691         (part_amiga_mod_SOURCES, part_amiga_mod_CFLAGS, part_amiga_mod_LDFLAGS)
7692         (part_apple_mod_SOURCES, part_apple_mod_CFLAGS, part_apple_mod_LDFLAGS)
7693         (part_msdos_mod_SOURCES, part_msdos_mod_CFLAGS, part_msdos_mod_LDFLAGS)
7694         (part_sun_mod_SOURCES, part_sun_mod_CFLAGS, part_sun_mod_LDFLAGS)
7695         (part_acorn_mod_SOURCES, part_acorn_mod_CFLAGS, part_acorn_mod_LDFLAGS)
7696         (part_gpt_mod_SOURCES, part_gpt_mod_CFLAGS)
7697         (part_gpt_mod_LDFLAGS): ... this.
7698         (pkglib_MODULES): Prefix partition modules with `part_'.  Rename
7699         `pcpart.mod' to `msdospart.mod'.
7700         (pcpart_mod_SOURCES, pcpart_mod_CFLAGS, pcpart_mod_LDFLAGS): Rename
7701         to ...
7702         (msdospart_mod_SOURCES, msdospart_mod_CFLAGS)
7703         (msdospart_mod_LDFLAGS): ... this.
7705 2009-08-23  Vladimir Serbinenko  <phcoder@gmail.com>
7707         * loader/i386/bsd.c (freebsd_opts): Rewritten to use extcmd.
7708         (openbsd_opts): Likewise.
7709         (netbsd_opts): Likewise.
7710         (freebsd_flags): Added 0 terminator.
7711         (openbsd_flags): Likewise.
7712         (netbsd_flags): Likewise.
7713         (grub_bsd_parse_flags): Rewritten to use extcmd. All users updated.
7714         (grub_cmd_freebsd): Transformed into extended command.
7715         (grub_cmd_openbsd): Likewise.
7716         (grub_cmd_netbsd): Likewise.
7717         (cmd_freebsd): Changed type to grub_extcmd_t.
7718         (cmd_openbsd): Likewise.
7719         (cmd_netbsd): Likewise.
7720         (GRUB_MOD_INIT (bsd)): Register grub_cmd_freebsd, grub_cmd_netbsd and
7721         grub_cmd_openbsd as extended commands.
7722         (GRUB_MOD_FINI (bsd)): Use grub_unregister_extcmd for cmd_freebsd,
7723         cmd_netbsd and cmd_openbsd
7725 2009-08-22  Vladimir Serbinenko  <phcoder@gmail.com>
7727         * commands/xnu_uuid.c (transform): Use grub_memcpy instead of memcpy.
7729 2009-08-21  Pavel Roskin  <proski@gnu.org>
7731         * Makefile.in (install-local): When checking if a file is in the
7732         build directory, use "test -e" to detect symlinks.
7734         * Makefile.in (install-local): Remove all files in
7735         $(DESTDIR)$(pkglibdir) before installing new files there.
7737 2009-08-18  Felix Zielcke  <fzielcke@z-51.de>
7739         * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Use
7740         grub-mkelfimage.
7742 2009-08-18  Felix Zielcke  <fzielcke@z-51.de>
7744         * util/grub-mkconfig.in: Don't use gfxterm by default if not
7745         explicitly specified by the user.
7747 2009-08-18  Pavel Roskin  <proski@gnu.org>
7749         * include/grub/fbfill.h (struct grub_video_fbrender_target): Use
7750         grub_uint8_t pointer for data.
7751         * include/grub/fbutil.h (struct grub_video_fbblit_info):
7752         Likewise.
7753         * video/fb/fbutil.c: Remove unnecessary casts.
7755 2009-08-17  Michal Suchanek  <hramrach@centrum.cz>
7757         VBE cleanup.
7759         * video/i386/pc/vbe.c (vbe_mode_in_use): Removed (duplicate).
7760         (grub_vbe_set_video_mode): Save active mode info
7761         only after setting the mode.
7762         (grub_video_vbe_setup): Call 'grub_vbe_set_video_mode' with NULL as
7763         second argument.
7765 2009-08-17  Michal Suchanek  <hramrach@centrum.cz>
7767         Rename variables for clarity.
7769         * video/i386/pc/vbe.c (active_mode_info): Renamed to ...
7770         (active_vbe_mode_info): ... this. All users updated.
7771         (framebuffer): Rename 'active_mode' to 'active_vbe_mode'.
7772         All users updated.
7773         (initial_mode): Rename to ...
7774         (initial_vbe_mode): ... this. All users updated.
7775         (mode_in_use): Rename to ..
7776         (vbe_mode_in_use): ... this. All users updated.
7777         (mode_list): Rename to ..
7778         (vbe_mode_list): ... this. All users updated.
7779         (grub_vbe_set_video_mode): Rename 'mode' to 'vbe_mode', 'mode_info' to
7780         'vbe_mode_info' and 'old_mode' to 'old_vbe_mode'.
7781         (grub_video_vbe_init): Rename 'rm_mode_list' to 'rm_vbe_mode_list' and
7782         'mode_list_size' to 'vbe_mode_list_size'.
7783         (grub_video_vbe_setup): Rename 'mode_info' to 'vbe_mode_info',
7784         'best_mode_info' to 'best_vbe_mode_info' and
7785         'best_mode' to 'best_vbe_mode'
7787 2009-08-17  Michal Suchanek  <hramrach@centrum.cz>
7789         Remove duplicate grub_video_fb_get_video_ptr.
7791         * include/grub/fbutil.h (get_data_ptr): Rename to ...
7792         (grub_video_fb_get_video_ptr): ... this.
7793         * include/grub/video_fb.h (grub_video_fb_get_video_ptr): Removed.
7794         * video/fb/fbutil.c: Add comment about addressing.
7795         (get_data_ptr): Rename to ...
7796         (grub_video_fb_get_video_ptr): ... this. All users updated.
7797         * video/fb/video_fb.c (grub_video_fb_get_video_ptr): Remove.
7799 2009-08-17  Robert Millan  <rmh.grub@aybabtu.com>
7801         * fs/fat.c (grub_fat_read_data): Remove `#if 0' braces around the
7802         grub_dprintf() that was just added.
7804 2009-08-17  Robert Millan  <rmh.grub@aybabtu.com>
7806         * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT)
7807         (DEFAULT_VIDEO_MODE): Remove macros.
7808         (grub_linux_boot): Remove assumption that Linux has FB support,
7809         and use "text" as default video mode.
7811 2009-08-15  Vladimir Serbinenko  <phcoder@gmail.com>
7813         * fs/affs.c (grub_affs_read_symlink): Change leftover grub_printf into
7814         grub_dprintf.
7815         * fs/fat.c (grub_fat_read_data): Likewise.
7817 2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>
7819         * loader/i386/multiboot.c (grub_multiboot): Don't pass filename to
7820         payload.
7821         (grub_module): Likewise.
7823 2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>
7825         * loader/i386/multiboot.c (grub_multiboot_unload): Don't free mbi and
7826         mbi->cmdline but free playground.
7828 2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>
7830         Handle group offset on UFS1.
7832         * fs/ufs.c (grub_ufs_sblock): New field 'cylg_mask'.
7833         (grub_ufs_read_inode) [!MODE_UFS2]: handle cylg_offset and cylg_mask.
7835 2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>
7837         Split ufs.mod into ufs1.mod and ufs2.mod.
7839         * conf/common.rmk (grub_probe_SOURCES): Add fs/ufs2.c.
7840         (grub_fstest_SOURCES): Likewise.
7841         (pkglib_MODULES): Remove ufs.mod. Add ufs1.mod and ufs2.mod.
7842         (ufs_mod_SOURCES): Remove.
7843         (ufs_mod_CFLAGS): Likewise.
7844         (ufs_mod_LDFLAGS): Likewise.
7845         (ufs1_mod_SOURCES): New variable.
7846         (ufs1_mod_CFLAGS): Likewise.
7847         (ufs1_mod_LDFLAGS): Likewise.
7848         (ufs2_mod_SOURCES): New variable.
7849         (ufs2_mod_CFLAGS): Likewise.
7850         (ufs2_mod_LDFLAGS): Likewise.
7851         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add fs/ufs2.c.
7852         * conf/i386-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
7853         Likewise.
7854         (grub_emu_SOURCES): Likewise.
7855         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7856         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
7857         (grub_setup_SOURCES): Likewise.
7858         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7859         * conf/sparc64.rmk (grub_emu_SOURCES): Likewise.
7860         (grub_setup_SOURCES): Likewise.
7861         * conf/x86_64-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
7862         Likewise.
7863         * fs/ufs2.c: New file.
7864         * fs/ufs.c: Separate UFS1 from UFS2 by using preprocessor.
7866 2009-08-14  Vladimir Serbinenko  <phcoder@gmail.com>
7868         Framebuffer split.
7870         * commands/i386/pc/vbetest.c (grub_cmd_vbetest): Restore video
7871         subsystem at the end.
7872         * conf/common.rmk (pkglib_MODULES): Add video_fb.mod.
7873         (video_fb_mod_SOURCES): New variable.
7874         (video_fb_mod_CFLAGS): Likewise.
7875         (video_fb_mod_LDFLAGS): Likewise.
7876         * conf/i386-pc.rmk (vbe_mod_SOURCES): Remove video/i386/pc/vbeblit.c,
7877         video/i386/pc/vbefill.c and video/i386/pc/vbeutil.c.
7878         * video/i386/pc/vbeblit.c: Moved from here ...
7879         * video/fb/fbblit.c: ..here. Replaced 'vbe' with 'fb'.
7880         * video/i386/pc/vbefill.c: Moved from here ...
7881         * video/fb/fbfill.c: ..here. Replaced 'vbe' with 'fb'.
7882         * video/i386/pc/vbeutil.c: Moved from here ...
7883         * video/fb/fbutil.c: ..here. Replaced 'vbe' with 'fb'.
7884         * include/grub/i386/pc/vbeblit.h: Moved from here ...
7885         * include/grub/fbblit.h: ... here. Replaced 'vbe' with 'fb'.
7886         * include/grub/i386/pc/vbefill.h: Moved from here ...
7887         * include/grub/fbfill.h: ... here. Replaced 'vbe' with 'fb'.
7888         * include/grub/i386/pc/vbeutil.h: Moved from here ...
7889         * include/grub/fbutil.h: ... here. Replaced 'vbe' with 'fb'.
7890         * include/grub/i386/pc/vbe.h: Moved framebuffer part ...
7891         * include/grub/video_fb.h: ... here. Replaced 'vbe' with 'fb'.
7892         * include/grub/video.h (GRUB_VIDEO_RENDER_TARGET_FRONT_BUFFER): Removed.
7893         (GRUB_VIDEO_RENDER_TARGET_BACK_BUFFER): Likewise.
7894         (grub_video_adapter): Added 'get_info_and_fini'.
7895         (grub_video_get_info_and_fini): New prototype.
7896         (grub_video_set_mode): make modestring const char *.
7897         * loader/i386/linux.c (grub_linux_setup_video): Use
7898         grub_video_get_info_and_fini.
7899         (grub_linux_boot): Move modesetting just before booting.
7900         * loader/i386/pc/xnu.c (grub_xnu_set_video): Use
7901         grub_video_get_info_and_fini.
7902         * video/i386/pc/vbe.c: Moved framebuffer part ...
7903         * video/fb/video_fb.c: ... here. Replaced 'vbe' with 'fb'.
7904         * video/i386/pc/vbe.c (grub_vbe_set_video_mode): Use
7905         grub_video_fbstd_colors and grub_video_fb_set_palette.
7906         (grub_video_vbe_init): Clear 'framebuffer' variable and use
7907         grub_video_fb_init.
7908         (grub_video_vbe_fini): Use grub_video_fb_fini.
7909         (grub_video_vbe_setup): Use framebuffer.render_target instead of
7910         render_target and use grub_video_fb_set_active_render_target and
7911         grub_video_fb_set_palette.
7912         (grub_video_vbe_set_palette): Use grub_video_fb_set_palette.
7913         (grub_video_vbe_set_viewport): Use grub_video_fb_set_viewport.
7914         (grub_video_vbe_adapter): Use framebuffer.
7915         * video/video.c (grub_video_get_info_and_fini): New function.
7916         (grub_video_set_mode): Make modestring const char *.
7917         (GRUB_MOD_INIT(video_video)): Don't set variables to 0 since these
7918         values are already initialised.
7920 2009-08-14  Pavel Roskin  <proski@gnu.org>
7922         * boot/i386/pc/cdboot.S: Use LOCAL for local labels.  Eliminate
7923         ABS and APPLE_CC.
7924         * boot/i386/pc/diskboot.S: Likewise.
7925         * boot/i386/pc/lnxboot.S: Likewise.  Hardcode the number of code
7926         sectors allow compilation on MacOSX.
7927         * conf/i386-pc.rmk: Enable unconditional compilation of
7928         lnxboot.img.
7930 2009-08-13  Colin Watson  <cjwatson@ubuntu.com>
7932         * util/grub-mkconfig.in: Export GRUB_HIDDEN_TIMEOUT.
7933         * util/grub.d/00_header.in: Enter interruptible sleep if
7934         GRUB_HIDDEN_TIMEOUT is set.
7936 2009-08-13  Yves Blusseau  <blusseau@zetam.org>
7938         * include/grub/symbol.h: Add the LOCAL macro.
7939         * boot/i386/pc/boot.S: Use the LOCAL macro for all labels
7940         starting with "L_".
7942 2009-08-13  Pavel Roskin  <proski@gnu.org>
7944         * boot/i386/pc/boot.S: Remove ABS macro, it's not required by
7945         any modern compilers we support.
7947         * boot/i386/pc/boot.S: Remove all code dependent on APPLE_CC.
7948         Use local labels starting with "L_" so that Apple assembler
7949         knows they are local.
7951 2009-08-10  Robert Millan  <rmh.grub@aybabtu.com>
7953         * include/grub/i386/bsd.h (KERNEL_TYPE_NONE, KERNEL_TYPE_FREEBSD)
7954         (KERNEL_TYPE_OPENBSD, KERNEL_TYPE_NETBSD): Convert to ...
7955         (bsd_kernel_types): ... this enum.
7957         * loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module)
7958         (grub_cmd_freebsd_module_elf): Abort with "You need to load the
7959         kernel first." when `kernel_type' is set to KERNEL_TYPE_NONE.
7961         (grub_bsd_load_aout, grub_bsd_load, grub_cmd_freebsd_loadenv)
7962         (grub_cmd_freebsd_module, grub_cmd_freebsd_module_elf)
7963         (GRUB_MOD_INIT (bsd)): Fix capitalization in a few error
7964         messages.
7966 2009-08-08  Robert Millan  <rmh.grub@aybabtu.com>
7968         * util/grub-dumpdevtree: Moved from here ...
7969         * util/i386/efi/grub-dumpdevtree: ... to here.
7970         (hexify): New function.  Converts a string to its hex version.
7971         Generate hex versions of "efi" and "device-properties" by calling
7972         hexify() on the ASCII strings rather than by hardcoding numbers.
7974 2009-08-08  Robert Millan  <rmh.grub@aybabtu.com>
7976         * fs/jfs.c: Update copyright year.
7978 2009-08-08  Felix Zielcke  <fzielcke@z-51.de>
7980         * util/grub.d/00_header.in: Fix a comment.
7981         * util/grub.d/10_linux.in: Likewise.
7982         * util/grub.d/10_windows.in: Likewise.
7983         * util/grub.d/10_hurd.in: Likewise.
7985 2009-08-08  Felix Zielcke  <fzielcke@z-51.de>
7987         * util/grub-mkconfig.in: Allow the user to specify the used font
7988         with GRUB_FONT.
7990 2009-08-08  Pavel Roskin  <proski@gnu.org>
7992         * include/grub/powerpc/libgcc.h: Export __ashrdi3() if
7993         available, xfs.mod needs it now.
7995         * util/grub-mkconfig_lib.in (version_test_numeric): Don't use
7996         the "g" modifier in sed when the intention is to strip something
7997         once.  This fixes comparison of kernels with multiple dashes.
7999         * util/grub-mkconfig.in: Define datarootdir, datadir may depend
8000         on it.  Add missing space before closing bracket.  Fix
8001         misleading formatting.
8003 2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>
8005         * docs/grub.texi: Major overhaul.  Remove all sections that are
8006         specific to GRUB Legacy, or mostly composed of Legacy-specific
8007         information.
8009 2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>
8011         * docs/version.texi: New file.  Provides version information for
8012         grub.texi.
8014 2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>
8016         * docs/grub.texi: Update CVS information to SVN.
8017         Replace outdated "GRUB 2 will include" phrase with "GRUB 2 includes".
8019 2009-08-07  Felix Zielcke  <fzielcke@z-51.de>
8021         * util/grub-mkconfig.in: Remove a wrong `fi'.
8023 2009-08-07  Felix Zielcke  <fzielcke@z-51.de>
8025         * fs/uuid.c (grub_jfs_superblock): New fields unused2 and uuid.
8026         (grub_jfs_uuid): New function.
8027         (grub_jfs_fs): Set uuid field to grub_jfs_uuid.
8029 2009-08-07  Felix Zielcke  <fzielcke@z-51.de>
8031         * util/grub-mkconfig_lib.in (font_path): Move the functionality
8032         of it to ...
8033         * util/grub-mkconfig.in: ... here.  Prefer unicode.pf2 and
8034         unifont.pf2 over ascii.pf2.  Export LANG=C in case ascii.pf2 gets used.
8036 2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>
8038         * util/grub.d/10_linux.in (test_numeric): Moved from here ...
8039         * util/grub-mkconfig_lib.in (version_test_numeric): ... to here.
8040         Update all users.
8042         * util/grub.d/10_linux.in (test_gt): Strip any basename prefix,
8043         not just "vmlinu[zx]".
8044         Moved from here ...
8045         * util/grub-mkconfig_lib.in (version_test_gt): ... to here.  Update
8046         all users.
8048         * util/grub.d/10_linux.in (find_latest): Moved from here ...
8049         * util/grub-mkconfig_lib.in (version_find_latest): ... to here.  Update
8050         all users.
8052 2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>
8054         * util/grub.d/10_freebsd.in: Use an absolute device path for
8055         `vfs.root.mountfrom'.  Set `vfs.root.mountfrom.options=rw'.
8057 2009-08-06  Felix Zielcke  <fzielcke@z-51.de>
8059         * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix
8060         handling of multiple abstraction modules.
8062 2009-08-04  Robert Millan  <rmh.grub@aybabtu.com>
8064         Fix a bug resulting in black screen when loading Linux using a
8065         packed video mode.
8067         * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette_width): New
8068         function.
8070         * include/grub/i386/pc/vbe.h (GRUB_VBE_CAPABILITY_DACWIDTH): New macro.
8071         (grub_vbe_bios_getset_dac_palette_width): New function.
8072         (grub_vbe_bios_get_dac_palette_width)
8073         (grub_vbe_bios_set_dac_palette_width): New macros (act as wrappers for
8074         grub_vbe_bios_getset_dac_palette_width()).
8076         * video/i386/pc/vbe.c (grub_vbe_probe): Use `GRUB_VBE_STATUS_OK' to
8077         check for return status.
8078         (grub_vbe_get_video_mode_info): When getting information for a packed
8079         mode (<= 8 bpp), obtain DAC palette width using
8080         grub_vbe_bios_getset_dac_palette_width(), and use that for initializing
8081         {red,green,blue}_mark_size.
8083 2009-08-04  Felix Zielcke  <fzielcke@z-51.de>
8085         * commands/search.c (options): Fix help output to match actual code.
8087 2009-08-02  Vladimir Serbinenko  <phcoder@gmail.com>
8089         * commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_read instead
8090         of homegrown code.
8092 2009-08-01  Vladimir Serbinenko  <phcoder@gmail.com>
8094         * util/hostfs.c (grub_hostfs_dir): Don't use DT_DIR: It doesn't work
8095         on XFS or ReiserFS.
8097 2009-08-01  Vladimir Serbinenko  <phcoder@gmail.com>
8099         Support Apple partition map with sector size different from 512 bytes.
8101         * partmap/apple.c (grub_apple_header): New field 'blocksize'.
8102         (apple_partition_map_iterate): Respect 'aheader.blocksize'
8103         and 'apart.partmap_size'.
8105 2009-08-01  Vladimir Serbinenko  <phcoder@gmail.com>
8106 2009-08-01  Robert Millan  <rmh.grub@aybabtu.com>
8108         Fix cpuid command.
8110         * commands/i386/cpuid.c (options): New variable.
8111         (grub_cmd_cpuid): Return real error.
8112         (GRUB_MOD_INIT(cpuid)): Declare options.
8114 2009-07-31  Vladimir Serbinenko  <phcoder@gmail.com>
8116         * partmap/pc.c (pc_partition_map_iterate): Check that boot flags are
8117         valid.
8119 2009-07-31  Bean  <bean123ch@gmail.com>
8121         * fs/xfs.c (grub_xfs_sblock): Change unused5 field to log2_sect and
8122         log2_inode.
8123         (grub_fshelp_node): Move inode field to the end.
8124         (grub_xfs_data): Remove inode field.
8125         (grub_xfs_inode_block): Calculate inode size using sblock.
8126         (grub_xfs_inode_offset): Likewise.
8127         (grub_xfs_read_inode): Calculate inode size using sblock.
8128         (grub_xfs_read_block): Replace XFS_INODE_EXTENTS with nrec.
8129         (grub_xfs_iterate_dir): Calculate inode size using sblock.
8130         (grub_xfs_mount): Use grub_zalloc instead of grub_malloc. Realloc data
8131         to match inode size.
8132         (grub_xfs_dir): goto mount_fail when mount fails, as data->diropen is
8133         not accessible when data is null.
8134         (grub_xfs_open): Likewise.
8136 2009-07-31  Bean  <bean123ch@gmail.com>
8138         * disk/lvm.c (grub_lvm_scan_device): Ignore extra copy of metadata.
8139         Don't change pv->disk if it's already set.
8141         * disk/raid.c (grub_raid_scan_device): Merge this function into ...
8142         (grub_raid_register): ... here.
8143         (grub_raid_rescan): Removed.
8145         * include/grub/raid.h (grub_raid_rescan): Removed.
8147         * util/grub-fstest.c: Remove include file <grub/raid.h>.
8148         (fstest): Replace grub_raid_rescan with module fini function followed
8149         by init function.
8151         * util/grub-probe.c: Add include file <grub/raid.h>.
8152         (probe_raid_level): New function.
8153         (probe): Detect abstraction by walking the disk device, support two
8154         level of abstraction (LVM on RAID) when detecting partition map.
8156 2009-07-31  Pavel Roskin  <proski@gnu.org>
8158         * disk/raid5_recover.c (grub_raid5_recover): Revert conversion
8159         to grub_zalloc(), it was erroneous.
8160         Reported by Bean <bean123ch@gmail.com>
8162 2009-07-30  Vladimir Serbinenko  <phcoder@gmail.com>
8164         * util/i386/pc/grub-setup.c (setup): Check that no partition is in
8165         embedding zone, not only the first one.
8167 2009-07-29  Joe Auricchio  <jauricchio@gmail.com>
8169         * term/gfxterm.c (clear_char): New function.
8170         (grub_virtual_screen_setup): Use clear_char.
8171         (scroll_up): Likewise.
8172         (grub_virtual_screen_cls): Likewise.
8174 2009-07-29  Felix Zielcke  <fzielcke@z-51.de>
8176         * util/deviceiter.c (get_acceleraid_disk_name): New static
8177         function.
8178         (grub_util_iterate_devices): Handle Accelraid devices.
8179         * util/hostdisk.c (convert_system_partition_to_system_disk): Likewise.
8181 2009-07-28  Robert Millan  <rmh.grub@aybabtu.com>
8183         * loader/i386/linux.c (grub_cmd_linux): Use ',' rather than ';' as
8184         separator for the suggested gfxpayload string (';' collides with the
8185         parser and needs escaping).
8187 2009-07-28  Vladimir Serbinenko  <phcoder@gmail.com>
8189         * loader/i386/multiboot_helper.S (grub_multiboot_backward_relocator):
8190         Clear direction flag before jumping to OS.
8191         (grub_multiboot2_real_boot): Likewise.
8193 2009-07-28  Felix Zielcke  <fzielcke@z-51.de>
8195         * util/i386/pc/grub-install: Fix parsing of --disk-module
8196         option.
8198 2009-07-28  Felix Zielcke  <fzielcke@z-51.de>
8200         * util/i386/pc/grub-setup.c (setup): Fix 2 incorrect checks
8201         when embedding.
8203 2009-07-26  Felix Zielcke  <fzielcke@z-51.de>
8205         * util/grub-mkconfig.in (package_version): New variable.
8206         Use it do display the version.
8208 2009-07-25  Felix Zielcke  <fzielcke@z-51.de>
8210         * kern/file.c (grub_file_open): Revert to previous check with
8211         grub_errno.
8213 2009-07-25  Vladimir Serbinenko  <phcoder@gmail.com>
8215         * commands/probe.c (GRUB_MOD_INIT (probe)): Remove "[--target=target]"
8216         from help line. It's out of sync with code.
8218 2009-07-25  Vladimir Serbinenko  <phcoder@gmail.com>
8220         * kern/parser.c (grub_parser_execute): Fix a bug causing truncated
8221         entries on failed boot.
8223 2009-07-25  Felix Zielcke  <fzielcke@z-51.de>
8225         * kern/file.c (grub_file_open): Fix an error check.
8227 2009-07-24  Vladimir Serbinenko  <phcoder@gmail.com>
8229         * util/i386/pc/grub-setup.c (setup): Fix segmentation fault when
8230         partition map couldn't be identified.
8232 2009-07-23  Pavel Roskin  <proski@gnu.org>
8234         * commands/xnu_uuid.c (transform): Use GRUB_CPU_WORDS_BIGENDIAN
8235         instead of WORDS_BIGENDIAN.  Use grub_le_to_cpu32(), so that the
8236         case of little endian words becomes just an optimization.
8237         Respect const modifier.
8238         (md5_final): Use code that doesn't depend on endianness.
8240         * include/grub/misc.h (ALIGN_UP): Cast align to the type of addr
8241         to avoid loss of upper bits if align is unsigned and shorter
8242         than addr.
8244 2009-07-21  Vladimir Serbinenko  <phcoder@gmail.com>
8246         UUID support for UFS
8248         * fs/ufs.c (grub_ufs_sblock): Add uuidhi and uuidlow.
8249         (grub_ufs_uuid): New function.
8250         (grub_ufs_fs): add .uuid
8252 2009-07-21  Pavel Roskin  <proski@gnu.org>
8254         * kern/dl.c (grub_dl_check_header): Make static.
8256 2009-07-21  Felix Zielcke  <fzielcke@z-51.de>
8258         * util/grub.d/30_os-prober.in: Remove unused CHAINROOT.  Don't
8259         add drivemap for Vista.  It breaks Windows 7.
8261 2009-07-21  Vladimir Serbinenko  <phcoder@gmail.com>
8263         * fs/ufs.c (grub_ufs_sblock): Fix offset of mtime2 which was off by
8264         128 bytes
8266 2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>
8268         Add BFS support
8270         * conf/common.rmk (grub_probe_SOURCES): Add fs/befs.c.
8271         (grub_fstest_SOURCES): Likewise.
8272         (pkglib_MODULES): Add befs.mod.
8273         (befs_mod_SOURCES): New variable.
8274         (befs_mod_CFLAGS): Likewise.
8275         (befs_mod_LDFLAGS): Likewise.
8276         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
8277         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8278         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8279         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
8280         (grub_setup_SOURCES): Likewise.
8281         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8282         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8283         (grub_setup_SOURCES): Likewise.
8284         * fs/befs.c: New file.
8285         * fs/afs.c (GRUB_AFS_FSNAME): New declaration.
8286         (GRUB_AFS_SBLOCK_SECTOR): Likewise.
8287         (GRUB_AFS_SBLOCK_MAGIC1) [MODE_BFS]: New conditional declaration.
8288         (GRUB_AFS_BTREE_MAGIC) [MODE_BFS]: Likewise
8289         (B_KEY_INDEX_ALIGN): New declaration.
8290         (B_KEY_INDEX_OFFSET): Use B_KEY_INDEX_ALIGN.
8291         (grub_afs_bnode) [MODE_BFS]: Make key_count and key_size 16-bit
8292         (grub_afs_btree) [MODE_BFS]: New conditional declaration.
8293         (grub_afs_sblock) [MODE_BFS]: Remove link_count.
8294         (grub_afs_validate_sblock) [MODE_BFS]: Support BFS
8295         (grub_afs_mount) [MODE_BFS]: Likewise.
8296         (grub_afs_dir) [MODE_BFS]: Divide mtime by 65536 and not 1000000.
8297         (grub_afs_fs): Use GRUB_AFS_FSNAME
8298         (GRUB_MOD_INIT (afs)) [MODE_BFS]: Rename to ...
8299         (GRUB_MOD_INIT (befs)) [MODE_BFS]: ... this
8300         (GRUB_MOD_FINI (afs)) [MODE_BFS]: Rename to ...
8301         (GRUB_MOD_FINI (befs)) [MODE_BFS]: ... this
8303 2009-07-19  Yves BLUSSEAU  <yves.grub-devel@zetam.org>
8305         * util/getroot.c (find_root_device): Add support for MacOSX.
8306         * util/hostdisk.c: Likewise.
8308 2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>
8310         * font/font.c (find_glyph): Check whether a font is present to avoid
8311         segmentation fault.
8313 2009-07-20  Joe Auricchio  <jauricchio@gmail.com>
8315         * term/gfxterm.c (grub_virtual_screen_setup): Clear virtual_screen.
8317 2009-07-20  Pavel Roskin  <proski@gnu.org>
8319         * configure.ac: Trim excessively wordy excuses.
8321 2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>
8323         Add symlink, mtime and label support to AtheFS.
8325         * fs/afs.c (grub_afs_sblock): Declare `name' as char.
8326         (grub_afs_iterate_dir): Handle symlinks.
8327         (grub_afs_open): Use grub_afs_read_symlink.
8328         (grub_afs_dir): Likewise.
8329         Pass mtime.
8330         (grub_afs_label): New function.
8331         (grub_afs_fs): Add grub_afs_label.
8332         (grub_afs_read_symlink): New function.
8334 2009-07-20  Vladimir Serbinenko  <phcoder@gmail.com>
8336         Fix AtheFS support.
8338         * fs/afs.c: Fix comments style.
8339         (grub_afs_blockrun): Declare as packed.
8340         (grub_afs_datastream): Likewise.
8341         (grub_afs_bnode): Likewise.
8342         (grub_afs_btree): Likewise.
8343         (grub_afs_sblock): Likewise.
8344         Declare `name' as char.
8345         (grub_afs_inode): Declare as packed.
8346         Change void *vnode to grub_uint32_t unused.
8347         (grub_afs_iterate_dir): Check that key_size is positive.
8348         (grub_afs_mount): Don't read superblock twice.
8349         (grub_afs_dir): Don't free node in case of error,
8350         grub_fshelp_find_file already handles this.
8351         (grub_afs_open): Likewise.
8353 2009-07-19  Pavel Roskin  <proski@gnu.org>
8355         * Makefile.in: Remove LIBLZO and enable_lzo.
8356         * conf/i386-pc.rmk: Remove lzo support.
8357         * configure.ac: Remove checks for lzo, don't define ENABLE_LZMA.
8358         * include/grub/i386/pc/kernel.h: Define ENABLE_LZMA.  Remove lzo
8359         support.
8360         * kern/i386/pc/lzo1x.S: Remove.
8361         * kern/i386/pc/startup.S: Remove lzo support.
8362         * util/i386/pc/grub-mkimage.c: Likewise.
8364 2009-07-19  Vladimir Serbinenko  <phcoder@gmail.com>
8366         * disk/usbms.c (grub_usbms_transfer): Fix double semicolon.
8367         * fs/xfs.c (grub_xfs_dir): Likewise.
8368         * fs/afs.c (grub_afs_dir): Likewise.
8369         * fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
8370         (grub_iso9660_open): Likewise.
8371         * fs/jfs.c (grub_jfs_open): Likewise.
8372         * fs/ext2.c (grub_ext2_dir): Likewise.
8373         * include/grub/macho.h (grub_macho_fat_arch): Likewise.
8374         * script/sh/lexer.c (grub_script_yylex): Likewise.
8376 2009-07-16  Pavel Roskin  <proski@gnu.org>
8378         * configure.ac: Never add "-c" to CFLAGS.
8380         * configure.ac: Fix incorrect comparison for grub_cv_cc_efiemu.
8382         * configure.ac: Fix wrong use of grub_cv_cc_no_red_zone where
8383         grub_cv_cc_efiemu should be used.
8385         * configure.ac: Typo fixes.
8387         * kern/mm.c (grub_zalloc): New function.
8388         (grub_debug_zalloc): Likewise.
8389         * include/grub/mm.h: Declare grub_zalloc() and
8390         grub_debug_zalloc().
8391         * util/misc.c (grub_zalloc): New function.
8392         * bus/usb/uhci.c (grub_uhci_pci_iter): Use grub_zalloc()
8393         instead of grub_malloc(), remove unneeded initializations.
8394         * bus/usb/usbhub.c (grub_usb_hub_add_dev): Likewise.
8395         * commands/extcmd.c (grub_extcmd_dispatcher): Likewise.
8396         * commands/parttool.c (grub_cmd_parttool): Likewise.
8397         * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
8398         * disk/raid5_recover.c (grub_raid5_recover): Likewise.
8399         * disk/raid6_recover.c (grub_raid6_recover): Likewise.
8400         * disk/usbms.c (grub_usbms_finddevs): Likewise.
8401         * efiemu/mm.c (grub_efiemu_request_memalign): Likewise.
8402         * efiemu/pnvram.c (grub_efiemu_pnvram): Likewise.
8403         (grub_cmd_efiemu_pnvram): Likewise.
8404         * fs/i386/pc/pxe.c (grub_pxefs_open): Likewise.
8405         * fs/iso9660.c (grub_iso9660_mount): Likewise.
8406         (grub_iso9660_iterate_dir): Likewise.
8407         * fs/jfs.c (grub_jfs_opendir): Likewise.
8408         * fs/ntfs.c (list_file): Likewise.
8409         (grub_ntfs_mount): Likewise.
8410         * kern/disk.c (grub_disk_open): Likewise.
8411         * kern/dl.c (grub_dl_load_core): Likewise.
8412         * kern/elf.c (grub_elf_file): Likewise.
8413         * kern/env.c (grub_env_context_open): Likewise.
8414         (grub_env_set): Likewise.
8415         (grub_env_set_data_slot): Likewise.
8416         * kern/file.c (grub_file_open): Likewise.
8417         * kern/fs.c (grub_fs_blocklist_open): Likewise.
8418         * loader/i386/multiboot.c (grub_module): Likewise.
8419         * loader/xnu.c (grub_xnu_create_key): Likewise.
8420         (grub_xnu_create_value): Likewise.
8421         * normal/main.c (grub_normal_add_menu_entry): Likewise.
8422         (read_config_file): Likewise.
8423         * normal/menu_entry.c (make_screen): Likewise.
8424         * partmap/sun.c (sun_partition_map_iterate): Likewise.
8425         * script/sh/lexer.c (grub_script_lexer_init): Likewise.
8426         * script/sh/script.c (grub_script_parse): Likewise.
8427         * video/bitmap.c (grub_video_bitmap_create): Likewise.
8428         * video/readers/jpeg.c (grub_video_reader_jpeg): Likewise.
8429         * video/readers/png.c (grub_png_output_byte): Likewise.
8430         (grub_video_reader_png): Likewise.
8432 2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>
8434         Enable all targets that can be built by default
8436         * configure.ac: enable efiemu runtime, grub-emu, grub-emu-usb,
8437         grub-mkfont and grub-fstest if they can be built
8439 2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>
8441         Fix hang and segmentation fault in grub-emu-usb
8443         * disk/scsi.c (grub_scsi_open): return err and not grub_errno
8444         * util/usb.c (grub_libusb_devices): likewise
8445         (grub_libusb_init): rename to ...
8446         (GRUB_MOD_INIT (libusb)):...this
8447         (grub_libusb_fini): rename to ..
8448         (GRUB_MOD_FINI (libusb)):...this
8449         * disk/usbms.c (grub_usbms_transfer): fix retry logic
8450         * include/grub/disk.h (grub_raid_init): removed, it's useless
8451         (grub_raid_fini): likewise
8452         (grub_lvm_init): likewise
8453         (grub_lvm_fini): likewise
8454         * util/grub-emu.c (main): don't call grub_libusb_init, it's done
8455         by grub_init_all
8457 2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>
8459         Fix libusb
8461         * Makefile.in (LIBUSB): new macro
8462         * genmk.rb (Utility/print_tail): new method
8463         (Utility/rule): use intermediary variable #{prefix}_OBJECTS
8464         (top level): call util.print_tail at the end.
8466 2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>
8468         Make FreeBSD accept zpool.cache
8470         * loader/i386/bsd.c (grub_freebsd_add_meta_module): spoof filename if
8471         type is /boot/zfs/zpool.cache
8473 2009-07-16  Vladimir Serbinenko  <phcoder@gmail.com>
8475         Fix 64-bit efiemu
8477         * include/grub/efiemu/efiemu.h (grub_efiemu_configuration_table64_t):
8478         correct wrong typedef
8479         * efiemu/prepare.c (SUFFIX (grub_efiemu_prepare)): minor style fixes
8481 2009-07-15  Pavel Roskin  <proski@gnu.org>
8483         * include/grub/disk.h (struct grub_disk_dev): Use enum for id.
8484         * kern/disk.c (struct grub_disk_cache): Likewise.
8486         * commands/probe.c (options): Typo fix.
8488         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_BPB_END):
8489         Increase to 0x5a to accommodate FAT32.  Adjust other offsets
8490         accordingly.
8491         Original patch by Yves Blusseau <yves.grub-devel@zetam.org>
8493         * boot/i386/pc/boot.S (general_error_string): Add DOS newline at
8494         the end of "Error" to make the message more readable.
8496         * boot/i386/pc/boot.S (kernel_segment): Remove.
8497         (copy_buffer): Use GRUB_BOOT_MACHINE_KERNEL_ADDR in segment 0
8498         for destination.
8500         * boot/i386/pc/boot.S (boot_version): Remove.
8501         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
8502         Remove.
8504         * include/grub/i386/pc/boot.h: Sort all offsets.
8505         (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Remove, it's unused.
8506         (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Likewise.
8507         * boot/i386/pc/boot.S: Assert location of every offset listed in
8508         include/grub/i386/pc/boot.h.
8510 2009-07-13  Pavel Roskin  <proski@gnu.org>
8512         * include/grub/i386/coreboot/machine.h: Rename
8513         GRUB_MACHINE_LINUXBIOS to GRUB_MACHINE_COREBOOT.
8514         * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Allow
8515         multiboot 1 for GRUB_MACHINE_COREBOOT and GRUB_MACHINE_QEMU.
8517         * kern/dl.c: Force native word size to suppress warnings when
8518         compiling grub-emu.
8520         * kern/device.c (grub_device_iterate): Change struct part_ent to
8521         hold the name, not a pointer to it.  Use one grub_malloc() per
8522         partition, not two.  Free partition_name if grub_malloc() fails.
8523         Set ents to NULL only before grub_partition_iterate() is called.
8525 2009-07-11  Bean  <bean123ch@gmail.com>
8527         * kern/ieee1275/openfw.c (grub_children_iterate): Fix size of
8528         childname.
8530 2009-07-10  Bean  <bean123ch@gmail.com>
8531 2009-07-10  Robert Millan  <rmh.grub@aybabtu.com>
8533         * kern/ieee1275/openfw.c (grub_children_iterate)
8534         (grub_devalias_iterate): Fix size evaluation for property or path
8535         strings, which was broken since r2132.
8537 2009-07-07  Pavel Roskin  <proski@gnu.org>
8539         * commands/search.c (search_file): Merge into ...
8540         (search_fs): ... this.  Accept search type as argument.
8541         (grub_cmd_search): Pass search type to search_fs().
8543         * include/grub/util/console.h: New file.
8544         * util/console.c: Use it instead of grub/machine/console.h.
8545         * util/grub-emu.c: Likewise.
8547         * lib/arg.c (find_long_option): Remove.
8548         (find_long): Add `len' argument, make `s' const char *.
8549         (grub_arg_parse): Parse long options in place, not in a
8550         temporary buffer.
8552 2009-07-06  Pavel Roskin  <proski@gnu.org>
8554         * commands/search.c (search_fs): Fix potential NULL pointer
8555         dereference.
8557         * commands/search.c (search_fs): Replace QUID macro with quid_fn
8558         function pointer.
8560 2009-07-06  Daniel Mierswa  <impulze@impulze.org>
8562         * commands/search.c (search_fs): Use grub_strcasecmp() for UUID
8563         comparison.
8565 2009-07-05  Pavel Roskin  <proski@gnu.org>
8567         * include/grub/i386/linux.h (struct linux_kernel_params):
8568         Restore padding3, it's still needed.
8570         * util/grub.d/10_freebsd.in: Fix spelling of `device.hints' on
8571         FreeBSD.
8572         * util/osdetect.lua: Likewise.
8574 2009-07-05  Bean  <bean123ch@gmail.com>
8576         * conf/common.rmk (lua_mode_SOURCES): Add script/lua/lstrlib.c.
8578         * script/lua/grub_lib.c (grub_lua_run): Check input parameter.
8579         (grub_lua_getenv): Likewise.
8580         (grub_lua_setenv): Likewise.
8581         (save_errno): New function.
8582         (push_result): Likewise.
8583         (grub_lua_enum_device): Likewise.
8584         (grub_lua_enum_file): Likewise.
8585         (grub_lua_file_open): Likewise.
8586         (grub_lua_file_close): Likewise.
8587         (grub_lua_file_seek): Likewise.
8588         (grub_lua_file_read): Likewise.
8589         (grub_lua_file_getline): Likewise.
8590         (grub_lua_file_getsize): Likewise.
8591         (grub_lua_file_getpos): Likewise.
8592         (grub_lua_file_eof): Likewise.
8593         (grub_lua_file_exist): Likewise.
8594         (grub_lua_add_menu): Likewise.
8596         * script/lua/grub_lua.h (isupper): New inline function.
8597         (islower): Likewise.
8598         (ispunct): Likewise.
8599         (isxdigit): Likewise.
8600         (strcspn): Change to normal function.
8601         (strpbkr): New function declaration.
8602         (memchr): Likewise.
8604         * script/lua/grub_main.c (scan_str): New function.
8605         (strcspn): Likewise.
8606         (strpbrk): Likewise.
8607         (memchr): Likewise.
8609         * script/lua/linit.c (lualibs): Enable the string library.
8611         * util/osdetect.lua: New file.
8613 2009-07-04  Robert Millan  <rmh.grub@aybabtu.com>
8615         * include/grub/i386/linux.h (struct linux_kernel_params): Add
8616         `capabilities' member.
8618 2009-07-02  Pavel Roskin  <proski@gnu.org>
8620         * genparttoollist.sh: Add missing newline at the end.
8622 2009-07-01  Pavel Roskin  <proski@gnu.org>
8624         * kern/x86_64/efi/callwrap.S: Add missing newline at the end.
8626         * util/hostdisk.c (open_device): Remove `const' from
8627         `sysctl_size', as sysctlbyname() can change it (in this case it
8628         doesn't actually happen).
8630         * include/grub/types.h: Define GRUB_LONG_MAX and GRUB_LONG_MIN
8631         using signed long int constants.
8633         * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Make `p'
8634         constant to avoid a warning on FreeBSD.
8636         * util/hostdisk.c (device_is_wholedisk): Compile only on systems
8637         where it's needed.
8639         * Makefile.in: Install include/grub/machine symlink.
8641         * Makefile.in: When installing symlinks, use "cp -fR", which
8642         works on FreeBSD and MacOSX.
8643         From Yves Blusseau <cl7m42e02@sneakemail.com>
8645         * kern/dl.c (grub_dl_resolve_symbol): Make static.
8646         * include/grub/dl.h: Remove grub_dl_resolve_symbol().
8648         * util/misc.c: Move grub_reboot() and grub_halt() ...
8649         * util/grub-emu.c: ... here.  Make main_env static.
8650         * include/grub/util/misc.h: Remove main_env.
8652         * kern/mm.c: Use correct format to print size_t.
8654         * include/grub/elf.h: Define Elf_Sword and Elf_Xword.
8655         * kern/i386/dl.c: Use ELF symbols without "32" or "64".
8656         * kern/powerpc/dl.c: Likewise.
8657         * kern/sparc64/dl.c: Likewise.
8658         * kern/x86_64/dl.c: Likewise.
8660 2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>
8662         Fix grub-emu build on sparc64-ieee1275.
8664         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Synchronize with ...
8665         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): ... this.
8667 2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>
8669         * util/misc.c: Include `<setjmp.h>' and `<grub/machine/machine.h>'.
8670         (grub_reboot, grub_halt): New functions.
8672         * util/i386/pc/misc.c: Delete.  Update all users.
8673         * util/sparc64/ieee1275/misc.c: Likewise.
8674         * util/powerpc/ieee1275/misc.c: Likewise.
8676 2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>
8678         * conf/i386.rmk (setjmp_mod_SOURCES)
8679         (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Move to ...
8680         * conf/common.rmk (setjmp_mod_SOURCES)
8681         (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): ... here, and modify
8682         to use $(target_cpu).
8683         * conf/x86_64-efi.rmk (setjmp_mod_SOURCES)
8684         (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Remove.
8685         * conf/powerpc-ieee1275.rmk: Likewise.
8686         * conf/sparc64-ieee1275.rmk: Likewise.
8688         * conf/i386-pc.rmk (kernel_img_SOURCES): Use
8689         $(target_cpu) for kern/$(target_cpu)/dl.c.
8690         * conf/i386-efi.rmk: Likewise.
8691         * conf/i386-ieee1275.rmk: Likewise.
8692         * conf/x86_64-efi.rmk: Likewise.
8693         * conf/i386-coreboot.rmk: Likewise.
8694         * conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Use
8695         $(target_cpu) for kern/$(target_cpu)/dl.c and for
8696         kern/$(target_cpu)/cache.S.
8697         * conf/sparc64-ieee1275.rmk: Likewise.
8699 2009-07-01  Robert Millan  <rmh.grub@aybabtu.com>
8701         * include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size'
8702         type to `grub_uint8_t', and adjust `padding9' accordingly.
8704 2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>
8706         * include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): New macro.
8708         * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
8709         assembly in final jump, using register constraints.
8711         (grub_linux_boot): For text mode, initialize `have_vga' using
8712         GRUB_VIDEO_TYPE_TEXT rather than 0 (this changes its value to 1).
8714         Initialize `video_cursor_x' and `video_cursor_y' as late as possible,
8715         right before the final jump.
8717         Set `video_mode' to 0x3.
8719         Document initialization of `video_page', `video_mode' and
8720         `video_ega_bx'.
8722 2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>
8724         * include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro.
8725         * loader/i386/linux.c (grub_cmd_linux): Recognize "quiet" option,
8726         and set GRUB_LINUX_FLAG_QUIET appropriately.
8728 2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>
8730         Fix build on Debian / sparc.
8732         * configure.ac: Recognize `sparc' target_cpu (as sparc64).
8734 2009-06-28  Pavel Roskin  <proski@gnu.org>
8736         * kern/i386/qemu/mmap.c (grub_machine_mmap_iterate): Use cast to
8737         fix a warning.
8739         * util/grub.d/10_linux.in: Match SUSE style initrd names.
8741 2009-06-27  Robert Millan  <rmh.grub@aybabtu.com>
8743         * loader/i386/linux.c (grub_linux_boot): Fix uninitialized use of
8744         `err'.
8746 2009-06-27  Robert Millan  <rmh.grub@aybabtu.com>
8748         Revert r2338.
8750         * loader/i386/linux.c (grub_cmd_linux): Don't call grub_error when
8751         file can't be opened.  grub_file_open() is already supposed to set
8752         grub_errno / grub_errmsg appropriately.
8753         * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
8755 2009-06-27  Pavel Roskin  <proski@gnu.org>
8756 2009-06-27  Robert Millan  <rmh.grub@aybabtu.com>
8758         * include/grub/dl.h: Include grub/elf.h.
8759         (struct grub_dl): Add symtab field.
8760         * kern/dl.c [GRUB_MACHINE_QEMU]: Define
8761         GRUB_MODULES_MACHINE_READONLY.
8762         (grub_dl_resolve_symbols): Populate mod->symtab, making a copy
8763         of the header for read-only modules.
8764         (grub_dl_unload): Free mod->symtab for read-only modules.
8765         * kern/i386/dl.c: Use mod->symtab.
8766         * kern/powerpc/dl.c: Likewise.
8767         * kern/sparc64/dl.c: Likewise.
8768         * kern/x86_64/dl.c: Likewise.
8770         * conf/i386-qemu.rmk: New file.
8771         * kern/i386/qemu/startup.S: Likewise.
8772         * kern/i386/qemu/mmap.c: Likewise.
8773         * boot/i386/qemu/boot.S: Likewise.
8774         * include/grub/i386/qemu/time.h: Likewise.
8775         * include/grub/i386/qemu/serial.h: Likewise.
8776         * include/grub/i386/qemu/kernel.h: Likewise.
8777         * include/grub/i386/qemu/console.h: Likewise.
8778         * include/grub/i386/qemu/boot.h: Likewise.
8779         * include/grub/i386/qemu/init.h: Likewise.
8780         * include/grub/i386/qemu/machine.h: Likewise.
8781         * include/grub/i386/qemu/loader.h: Likewise.
8782         * include/grub/i386/qemu/memory.h: Likewise.
8784         * conf/i386-coreboot.rmk (GRUB_BOOT_MACHINE_LINK_ADDR)
8785         (GRUB_KERNEL_MACHINE_LINK_ADDR): New variables.
8786         [qemu] (pkglib_IMAGES): Add `boot.img'.
8787         [qemu] (boot_img_SOURCES, boot_img_ASFLAGS, boot_img_LDFLAGS)
8788         [qemu] (boot_img_FORMAT): New variables.
8789         [qemu] (bin_UTILITIES): Add `grub-mkimage'.
8790         [qemu] (grub_mkimage_SOURCES, grub_mkimage_CFLAGS): New variables.
8791         [qemu] (kernel_img_SOURCES, kernel_img_HEADERS, kernel_img_CFLAGS)
8792         [qemu] (kernel_img_ASFLAGS, kernel_img_LDFLAGS)
8793         [qemu] (kernel_img_FORMAT): New variables.
8795         * configure.ac: Recognise `i386-qemu'.
8797         * util/i386/pc/grub-mkimage.c (compress_kernel): Add dummy variant
8798         (for no compression).
8799         [GRUB_MACHINE_QEMU] (generate_image): Misc adjustments to produce
8800         a valid i386 ROM image.  Make `GRUB_KERNEL_MACHINE_COMPRESSED_SIZE',
8801         `GRUB_KERNEL_MACHINE_INSTALL_DOS_PART' and
8802         `GRUB_KERNEL_MACHINE_INSTALL_BSD_PART' optional features (with
8803         ifdefs).
8805 2009-06-27  Pavel Roskin  <proski@gnu.org>
8807         * efiemu/prepare.c: Eliminate TYPE macro, it makes code hard to
8808         read.
8809         * efiemu/prepare32.c: Likewise.
8810         * efiemu/prepare64.c: Likewise.
8812 2009-06-26  Pavel Roskin  <proski@gnu.org>
8814         * include/grub/types.h: Define GRUB_TARGET_WORDSIZE.
8815         * include/grub/elf.h: Define symbols without "32" or "64" based
8816         on GRUB_TARGET_WORDSIZE.
8817         * include/grub/multiboot2.h: Use GRUB_TARGET_WORDSIZE.
8818         * efiemu/loadcore32.c: Redefine GRUB_TARGET_WORDSIZE, remove own
8819         ELF definitions.
8820         * efiemu/loadcore64.c: Likewise.
8821         * loader/i386/bsd32.c: Likewise.
8822         * loader/i386/bsd64.c: Likewise.
8823         * kern/dl.c: Remove own ELF definitions.
8824         * util/i386/efi/grub-mkimage.c: Likewise.
8826 2009-06-23  Robert Millan  <rmh.grub@aybabtu.com>
8828         * kern/i386/pc/startup.S (real_to_prot): Access `gdtdesc' using
8829         segment 0x0 unconditionally, because the reference generated by
8830         GAS is an absolute address.
8832 2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
8834         * include/grub/i386/kernel.h: Include `<grub/machine/machine.h>'.
8835         [! GRUB_MACHINE_IEEE1275]: Set `GRUB_MOD_ALIGN' to 0x1.
8837 2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
8839         * commands/search.c (grub_cmd_search): Macroify hardcoded args[]
8840         indexes.  Check for -f explicitly.
8841         (search_file): Improve error message.
8842         (GRUB_MOD_INIT(search)): Add missing `-n' to help output.
8844 2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
8846         * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): Rename to ...
8847         (GRUB_KERNEL_MACHINE_LINK_ADDR): ... this.  Update all users.
8849 2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
8851         * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/misc.S'.
8852         * conf/i386-ieee1275.rmk: Likewise.
8853         * conf/i386-coreboot.rmk: Likewise.
8855         * kern/i386/pc/startup.S (grub_stop): Remove function.
8856         * kern/i386/ieee1275/startup.S: Likewise.
8857         * kern/i386/coreboot/startup.S: Likewise.
8858         * kern/i386/misc.S (grub_stop): New function.
8860 2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
8862         * kern/i386/pc/startup.S (real_to_prot): Move from here ...
8863         * kern/i386/realmode.S (real_to_prot): ... to here.
8865 2009-06-22  Robert Millan  <rmh.grub@aybabtu.com>
8867         * conf/i386-ieee1275.rmk (pkglib_PROGRAMS): Replace `kernel.elf'
8868         with `kernel.img'.
8869         (kernel_elf_SOURCES): Rename to ...
8870         (kernel_img_SOURCES): ... this.
8871         (kernel_elf_HEADERS): Rename to ...
8872         (kernel_img_HEADERS): ... this.  Update all users.
8873         (kernel_elf_ASFLAGS): Rename to ...
8874         (kernel_img_ASFLAGS): ... this.
8875         (kernel_elf_CFLAGS): Rename to ...
8876         (kernel_img_CFLAGS): ... this.
8877         (kernel_elf_LDFLAGS): Rename to ...
8878         (kernel_img_LDFLAGS): ... this.
8879         * conf/i386-coreboot.rmk: Likewise.
8880         * conf/powerpc-ieee1275.rmk: Likewise.
8882         * util/elf/grub-mkimage.c (add_segments): Replace "kernel.elf"
8883         with "kernel.img".
8885 2009-06-21  Pavel Roskin  <proski@gnu.org>
8887         * loader/powerpc/ieee1275/linux.c (offset_phdr): Fix prototypes
8888         to match nested functions.
8889         * loader/sparc64/ieee1275/linux.c: Likewise.
8891         * conf/i386-ieee1275.rmk: Define kernel_elf_ASFLAGS.
8893 2009-06-21  Robert Millan  <rmh.grub@aybabtu.com>
8895         * configure.ac: Enable `END_SYMBOL' / `BSS_START_SYMBOL' test on
8896         all i386 platforms.
8898 2009-06-21  Robert Millan  <rmh.grub@aybabtu.com>
8900         Fix asm file handling on ELF, and remove workarounds.
8902         * genmk.rb (class Programs): Detect assembly files, and set ASFLAGS
8903         and -DASM_FILE=1 appropriately (copied from `class Images' stanza).
8904         * kern/i386/ieee1275/startup.S (ASM_FILE): Remove macro.
8905         * kern/i386/coreboot/startup.S (ASM_FILE): Likewise.
8907 2009-06-21  Vladimir Serbinenko  <phcoder@gmail.com>
8909         Load BSD ELF modules
8911         * conf/i386-pc.rmk (bsd_mod_SOURCES): Add loader/i386/bsd32.c
8912         and loader/i386/bsd64.c
8913         * include/grub/i386/bsd.h (FREEBSD_MODTYPE_MODULE): Remove
8914         (FREEBSD_MODTYPE_ELF_MODULE): New definition
8915         (FREEBSD_MODTYPE_ELF_MODULE_OBJ): Likewise
8916         (grub_freebsd_load_elfmodule32): New declaration
8917         (grub_freebsd_load_elfmoduleobj64): Likewise
8918         (grub_freebsd_load_elf_meta32): Likewise
8919         (grub_freebsd_load_elf_meta64): Likewise
8920         (grub_freebsd_add_meta): Likewise
8921         (grub_freebsd_add_meta_module): Likewise
8922         * loader/i386/bsd.c (grub_freebsd_add_meta): Make global
8923         (grub_freebsd_add_meta_module): Likewise and move module-specific
8924         parts to grub_cmd_freebsd and grub_cmd_freebsd_module
8925         (grub_cmd_freebsd): Add elf-kernel specific parts
8926         based on grub_freebsd_add_meta_module
8927         (grub_cmd_freebsd_module): Add type parsing moved from
8928         grub_freebsd_add_meta_module
8929         (grub_cmd_freebsd_module_elf): New function
8930         (cmd_freebsd_module_elf): New variable
8931         (GRUB_MOD_INIT): Register freebsd_module_elf
8932         * loader/i386/bsd32.c: New file
8933         * loader/i386/bsd64.c: Likewise
8934         * loader/i386/bsdXX.c: Likewise
8935         * kern/elf.c (grub_elf32_load): Let hook decide which pheaders to load
8936         (grub_elf64_load): Likewise
8937         * include/grub/elfload.h (grub_elf32_load_hook_t): New parameter do_load
8938         All users updated
8939         (grub_elf64_load_hook_t): Likewise
8941 2009-06-21  Colin Watson  <cjwatson@ubuntu.com>
8943         * util/grub-mkconfig.in (GRUB_DISABLE_LINUX_RECOVERY): Export
8944         variable.
8945         * util/grub.d/10_linux.in: If GRUB_DISABLE_LINUX_RECOVERY is true,
8946         don't write a menu entry for recovery mode.
8948 2009-06-20  Robert Millan  <rmh.grub@aybabtu.com>
8950         * util/i386/pc/grub-mkimage.c (main): Oops, free `output' only
8951         after it's no longer needed.
8953 2009-06-20  Robert Millan  <rmh.grub@aybabtu.com>
8955         * include/grub/i386/loader.h (grub_linux_prot_size)
8956         (grub_linux_tmp_addr, grub_linux_real_addr)
8957         (grub_linux_is_bzimage, grub_linux16_boot): Declare only on
8958         GRUB_MACHINE_PCBIOS.
8959         * util/i386/pc/grub-mkimage.c (compress_kernel): Move
8960         common grub_util_info() call to ...
8961         (generate_image): ... here.
8962         Fix use of uninitialized memory, comparison of signed with
8963         unsigned integers and memory leak.
8964         Remove bogus module address message.
8966 2009-06-20  Vladimir Serbinenko  <phcoder@gmail.com>
8968         * disk/mdraid_linux.c (GRUB_MOD_FINI): use grub_raid_unregister and not
8969         grub_raid_register
8970         * disk/dmraid_nvidia.c (GRUB_MOD_FINI): likewise
8972 2009-06-19  Pavel Roskin  <proski@gnu.org>
8974         * configure.ac: Remove stray AC_MSG_CHECKING.
8976 2009-06-19  Vladimir Serbinenko  <phcoder@gmail.com>
8978         * disk/scsi.c (grub_scsi_open): use continue instead of big if
8980 2009-06-18  Pavel Roskin  <proski@gnu.org>
8982         * conf/common.rmk: Add fs_file.mod.
8983         * disk/fs_file.c: New file.
8984         * include/grub/disk.h (enum grub_disk_dev_id): Add
8985         GRUB_DISK_DEVICE_FILE_ID.
8987 2009-06-18  Vladimir Serbinenko  <phcoder@gmail.com>
8989         Fix build with Apple's toolchain. Part 2
8991         * aclocal.m4 (grub_PROG_TARGET_CC): add missing prototype for main and
8992         a fake start
8994 2009-06-18  Vladimir Serbinenko  <phcoder@gmail.com>
8996         Fix build with Apple's toolchain. Part 1
8998         * commands/i386/pc/drivemap_int13h.S: use assembly-time constants
8999         for long calls
9000         * configure.ac: remove a leftover AC_MSG_RESULT
9001         (CFLAGS): don't add -Wl,--defsym,___main=0x8100 when building with
9002         Apple's toolchain
9004 2009-06-18  Vladimir Serbinenko  <phcoder@gmail.com>
9006         Fix warnings
9008         * fs/ntfscomp.c (decomp_get16): initialize c1 and c2
9009         (decomp_block): initialize ch
9010         use grub_memcpy instead of memcpy
9012 2009-06-17  Pavel Roskin  <proski@gnu.org>
9014         * include/grub/i386/coreboot/console.h: Don't use the i386-pc
9015         version, use declarations needed to use vga_text as the startup
9016         console.
9018         * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Remove
9019         term/i386/pc/at_keyboard.c, it doesn't need to be compiled into
9020         the kernel.
9021         * kern/i386/coreboot/init.c: Don't call grub_at_keyboard_init()
9022         and grub_at_keyboard_fini(), it's done on module load and
9023         unload.
9025 2009-06-17  Felix Zielcke  <fzielcke@z-51.de>
9027         * loader/i386/linux.c (grub_cmd_linux): Set grub_error if the
9028         file can't be found.
9029         * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
9031 2009-06-17  Vladimir Serbinenko  <phcoder@gmail.com>
9033         Fix newline handling
9035         * include/grub/script_sh.h (grub_lexer_param): new field was_newline
9036         * script/sh/lexer.c (grub_script_lexer_init): initialize was_newline
9037         (grub_script_yylex): don't segfault on unterminated script
9038         newline terminates command and variable
9040 2009-06-17  Vladimir Serbinenko  <phcoder@gmail.com>
9042         avoid double grub_adjust_range call. Bug reported by David Simner
9044         * kern/disk.c (grub_disk_write): change to raw disk access before
9045         calling disk_read
9047 2009-06-17  Colin Watson  <cjwatson@ubuntu.com>
9049         * util/elf/grub-mkimage.c (usage): Prefix each option line with two
9050         spaces, for the benefit of help2man.
9051         * util/i386/efi/grub-mkimage.c (usage): Likewise.
9053 2009-06-16  Pavel Roskin  <proski@gnu.org>
9055         * kern/i386/halt.c: Include grub/machine/init.h.
9056         * kern/i386/reboot.c: Include grub/cpu/reboot.h.
9058 2009-06-16  Felix Zielcke  <fzielcke@z-51.de>
9060         * util/grub.d/30_os-prober.in: Use ${root} in the generated
9061         drivemap menuentry.
9063 2009-06-16  James Jarvis  <James.Jarvis@ed.ac.uk>
9065         * commands/help.c GRUB_MOD_INIT(echo): Fix the help output of
9066         `echo' command.
9068 2009-06-16  Pavel Roskin  <proski@gnu.org>
9070         * boot/i386/pc/boot.S: Remove root_drive.  Assert offset of
9071         boot_drive_check by using GRUB_BOOT_MACHINE_DRIVE_CHECK.  Don't
9072         save %dx, we only need %dl and we never change it.
9073         * boot/i386/pc/cdboot.S: Don't set the root drive.
9074         * boot/i386/pc/pxeboot.S: Likewise.
9075         * include/grub/i386/pc/boot.h: Remove
9076         GRUB_BOOT_MACHINE_ROOT_DRIVE, adjust
9077         GRUB_BOOT_MACHINE_DRIVE_CHECK.
9078         * include/grub/i386/pc/kernel.h: Remove grub_root_drive.
9079         * kern/i386/pc/init.c (make_install_device): Remove references
9080         to grub_root_drive.
9081         * kern/i386/pc/startup.S: Likewise.
9082         * util/i386/pc/grub-setup.c (setup): Don't set root_drive.
9084 2009-06-16  Vladimir Serbinenko  <phcoder@gmail.com>
9086         xnu_uuid command
9088         * commands/xnu_uuid.c: new file
9089         * conf/common.rmk (pkglib_MODULES): add xnu_uuid.mod
9090         (xnu_uuid_mod_SOURCES): new variable
9091         (xnu_uuid_mod_CFLAGS): likewise
9092         (xnu_uuid_mod_LDFLAGS): likewise
9093         * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
9094         * conf/i386-ieee1275.rmk: likewise
9095         * conf/i386-pc.rmk: likewise
9096         * conf/powerpc-ieee1275.rmk: likewise
9097         * conf/sparc64-ieee1275.rmk: likewise
9098         * util/grub.d/30_os-prober.in: use UUID for Mac OS X/Darwin
9100 2009-06-16  Pavel Roskin  <proski@gnu.org>
9102         * configure.ac: Avoid '==' in test command, it's not portable.
9104 2009-06-16  Vladimir Serbinenko  <phcoder@gmail.com>
9106         Probe command
9108         * commands/probe.c: new file
9109         * conf/common.rmk (pkglib_MODULES): add probe.mod
9110         (probe_mod_SOURCES): new variable
9111         (probe_mod_CFLAGS): likewise
9112         (probe_mod_LDFLAGS): likewise
9113         * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
9114         * conf/i386-ieee1275.rmk: likewise
9115         * conf/i386-pc.rmk: likewise
9116         * conf/powerpc-ieee1275.rmk: likewise
9117         * conf/sparc64-ieee1275.rmk: likewise
9119 2009-06-15  Vladimir Serbinenko  <phcoder@gmail.com>
9121         Fix handling of string like \"hello\" and "a
9122         b"
9124         * script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC
9125         (grub_script_yylex): fix parsing of quoting, escaping and newline
9127 2009-06-13  Vladimir Serbinenko  <phcoder@gmail.com>
9129         * loader/i386/multiboot.c (grub_multiboot_get_bootdev): fix partition
9130         handling
9132 2009-06-13  Jun Inoue  <jun.lambda@gmail.com>
9134         * util/grub-mkconfig.in: Fix parsing of --output option.
9136 2009-06-12  Pavel Roskin  <proski@gnu.org>
9138         * Makefile.in (pkgdata_SRCDIR): Remove.  genmodsrc.sh and
9139         genmk.rb don't need to be generated or installed.
9141 2009-06-12  Vladimir Serbinenko  <phcoder@gmail.com>
9143         * commands/i386/pc/drivemap_int13h.S: add more comments
9145 2009-06-11  Pavel Roskin  <proski@gnu.org>
9147         * Makefile.in (uninstall): Uninstall manuals.
9149         * Makefile.in: Rename lib_DATA to lib_SCRIPTS, move it from
9150         PKGLIB to SCRIPTS.  This fixes installation of grub-mkconfig_lib
9151         and update-grub_lib in two places.
9152         * conf/common.rmk: Rename lib_DATA to lib_SCRIPTS.
9154         * disk/usbms.c (grub_usbms_transfer): Initialize `err' to fix
9155         a compiler warning.
9157         * loader/i386/bsd.c (grub_freebsd_boot): Rename `entry' to
9158         `entry_lo' to fix variable shadowing.
9160 2009-06-11  Christian Franke  <franke@computer.org>
9162         * kern/misc.c (__enable_execute_stack): Add missing return type
9163         to prevent gcc warning.
9165 2009-06-11  Felix Zielcke  <fzielcke@z-51.de>
9167         * conf/i386-ieee1275.rmk (COMMON_LDFLAGS): Remove `-static -lgcc'.
9169 2009-06-11  Pavel Roskin  <proski@gnu.org>
9171         * Makefile.in: Don't rely on any scripts being executable.
9172         Always use $(SHELL) to run shell scripts.
9174         * configure.ac: Always define ___main if using -nostdlib.  This
9175         fixes tests on Cygwin.
9177 2009-06-11  Giuseppe Caizzone  <acaizzo@gmail.com>
9179         UDF fix
9181         * fs/udf.c (grub_udf_read_block): handle the fact that ad->length
9182         is in bytes and not in blocks
9184 2009-06-11  Pavel Roskin  <proski@gnu.org>
9186         * kern/i386/halt.c (grub_halt): Make `i' unsigned to fix a
9187         warning.
9189 2009-06-11  Felix Zielcke  <fzielcke@z-51.de>
9191         * util/grub.d/30_os-prober.in: Fix a comment. Source
9192         ${libdir}/grub/grub-mkconfig_lib.  Use prepare_grub_to_access_device
9193         to set the root device.  Place drivemap command in the generated
9194         chain entry.
9196 2009-06-11  Pavel Roskin  <proski@gnu.org>
9198         * configure.ac: Remove host_m32.  Issues with 64-bit utilities
9199         have long been resolved.
9201 2009-06-11  Colin Watson  <cjwatson@ubuntu.com>
9203         * util/grub.d/10_linux.in: Capitalise "Linux".
9205         * util/grub-pe2elf.c (usage): Fix references to grub-editenv.
9207 2009-06-11  Pavel Roskin  <proski@gnu.org>
9209         * kern/efi/efi.c (grub_exit): Add infinite loop at the end to
9210         fix a gcc warning and ensure that the function won't ever exit.
9212         * kern/i386/ieee1275/init.c: Add missing prototype for
9213         grub_stop_floppy().
9215         * loader/ieee1275/multiboot2.c [__i386__]: Include
9216         grub/cpu/multiboot.h.
9218         * term/i386/pc/serial.c (serial_translate_key_sequence): Avoid
9219         casts to short - they are not portable and cause warnings.  Fix
9220         use of uninitialized values in input_buf.  Use ARRAY_SIZE.
9222 2009-06-11  Vladimir Serbinenko  <phcoder@gmail.com>
9224         Drivemap fixes
9226         * commands/i386/pc/drivemap.c (grub_get_root_biosnumber_drivemap):
9227         new function
9228         (grub_get_root_biosnumber_saved): new variable
9229         (GRUB_MOD_INIT): register grub_get_root_biosnumber_drivemap
9230         (GRUB_MOD_FINI): unregister grub_get_root_biosnumber_drivemap
9231         * commands/i386/pc/drivemap_int13h.S (grub_drivemap_handler): restore
9232         %dx after the call if necessary
9233         * conf/common.rmk (pkglib_MODULES): remove boot.mod
9234         (boot_mod_SOURCES): remove
9235         (boot_mod_CFLAGS): remove
9236         (boot_mod_LDFLAGS): remove
9237         * conf/i386-coreboot.rmk (pkglib_MODULES): add boot.mod
9238         (boot_mod_SOURCES): new variable
9239         (boot_mod_CFLAGS): likewise
9240         (boot_mod_LDFLAGS): likewise
9241         * conf/i386-efi.rmk: likewise
9242         * conf/i386-ieee1275.rmk: likewise
9243         * conf/i386-pc.rmk: likewise
9244         * conf/powerpc-ieee1275.rmk: likewise
9245         * conf/sparc64-ieee1275.rmk: likewise
9246         * conf/x86_64-efi.rmk: likewise
9247         * include/grub/i386/pc/biosnum.h: new file
9248         * lib/i386/pc/biosnum.c: likewise
9249         * loader/i386/bsd.c (grub_bsd_get_device): use grub_get_root_biosnumber
9250         * loader/i386/multiboot.c (grub_multiboot_get_bootdev): likewise
9251         * loader/i386/pc/chainloader.c (grub_chainloader_cmd): likewise
9253 2009-06-10  Pavel Roskin  <proski@gnu.org>
9255         * io/gzio.c (test_header): Don't reuse one buffer for all data.
9256         Use separate variables.  Read only the file size at the end, but
9257         not the checksum that we don't use.
9259         * kern/file.c (grub_file_read): Use void pointer for the buffer.
9260         Adjust all callers.
9262         * kern/ieee1275/openfw.c: Remove libc includes.
9263         * kern/ieee1275/cmain.c: Likewise.
9264         * include/grub/ieee1275/ieee1275.h: Likewise.
9266         * kern/i386/coreboot/init.c: Include grub/cpu/tsc.h to fix
9267         compiler warnings.
9269 2009-06-10  Felix Zielcke  <fzielcke@z-51.de>
9271         * Makefile.in: Remove all trailing whitespace.
9272         * conf/i386-pc.rmk: Likewise.
9273         * conf/powerpc-ieee1275.rmk: Likewise.
9274         * conf/sparc64-ieee1275.rmk: Likewise.
9275         * docs/grub.texi: Likewise.
9276         * docs/texinfo.tex: Likewise.
9277         * disk/fs_uuid.c: Likewise.
9278         * disk/lvm.c: Likewise.
9279         * disk/scsi.c: Likewise.
9280         * disk/ata.c: Likewise.
9281         * disk/ieee1275/ofdisk.c: Likewise.
9282         * disk/i386/pc/biosdisk.c: Likewise.
9283         * disk/host.c: Likewise.
9284         * disk/raid.c: Likewise.
9285         * disk/efi/efidisk.c: Likewise.
9286         * disk/usbms.c: Likewise.
9287         * disk/memdisk.c: Likewise.
9288         * disk/loopback.c: Likewise.
9289         * kern/powerpc/dl.c: Likewise.
9290         * kern/device.c: Likewise.
9291         * kern/dl.c: Likewise.
9292         * kern/sparc64/dl.c: Likewise.
9293         * kern/ieee1275/ieee1275.c: Likewise.
9294         * kern/term.c: Likewise.
9295         * kern/fs.c: Likewise.
9296         * kern/i386/dl.c: Likewise.
9297         * kern/i386/pc/startup.S: Likewise.
9298         * kern/i386/pc/init.c: Likewise.
9299         * kern/i386/pc/mmap.c: Likewise.
9300         * kern/i386/pc/lzo1x.S: Likewise.
9301         * kern/i386/ieee1275/init.c: Likewise.
9302         * kern/i386/realmode.S: Likewise.
9303         * kern/i386/tsc.c: Likewise.
9304         * kern/partition.c: Likewise.
9305         * kern/corecmd.c: Likewise.
9306         * kern/file.c: Likewise.
9307         * kern/efi/efi.c: Likewise.
9308         * kern/efi/init.c: Likewise.
9309         * kern/efi/mm.c: Likewise.
9310         * kern/main.c: Likewise.
9311         * kern/err.c: Likewise.
9312         * kern/env.c: Likewise.
9313         * kern/disk.c: Likewise.
9314         * kern/generic/millisleep.c: Likewise.
9315         * kern/generic/rtc_get_time_ms.c: Likewise.
9316         * kern/misc.c: Likewise.
9317         * kern/parser.c: Likewise.
9318         * genmk.rb: Likewise.
9319         * configure.ac: Likewise.
9320         * boot/i386/pc/diskboot.S: Likewise.
9321         * boot/i386/pc/pxeboot.S: Likewise.
9322         * boot/i386/pc/boot.S: Likewise.
9323         * boot/i386/pc/lnxboot.S: Likewise.
9324         * boot/i386/pc/cdboot.S: Likewise.
9325         * parttool/pcpart.c: Likewise.
9326         * video/readers/tga.c: Likewise.
9327         * video/video.c: Likewise.
9328         * video/bitmap.c: Likewise.
9329         * lib/envblk.c: Likewise.
9330         * lib/i386/setjmp.S: Likewise.
9331         * fs/xfs.c: Likewise.
9332         * fs/afs.c: Likewise.
9333         * fs/fat.c: Likewise.
9334         * fs/ntfs.c: Likewise.
9335         * fs/udf.c: Likewise.
9336         * fs/affs.c: Likewise.
9337         * fs/iso9660.c: Likewise.
9338         * fs/hfs.c: Likewise.
9339         * fs/fshelp.c: Likewise.
9340         * fs/ext2.c: Likewise.
9341         * fs/jfs.c: Likewise.
9342         * fs/reiserfs.c: Likewise.
9343         * fs/hfsplus.c: Likewise.
9344         * fs/minix.c: Likewise.
9345         * fs/cpio.c: Likewise.
9346         * fs/sfs.c: Likewise.
9347         * fs/ufs.c: Likewise.
9348         * efiemu/prepare.c: Likewise.
9349         * efiemu/loadcore_common.c: Likewise.
9350         * efiemu/runtime/efiemu.sh: Likewise.
9351         * efiemu/runtime/efiemu.S: Likewise.
9352         * efiemu/runtime/efiemu.c: Likewise.
9353         * efiemu/pnvram.c: Likewise.
9354         * efiemu/main.c: Likewise.
9355         * efiemu/i386/pc/cfgtables.c: Likewise.
9356         * efiemu/i386/loadcore64.c: Likewise.
9357         * efiemu/i386/loadcore32.c: Likewise.
9358         * efiemu/loadcore.c: Likewise.
9359         * efiemu/symbols.c: Likewise.
9360         * efiemu/mm.c: Likewise.
9361         * include/grub/autoefi.h: Likewise.
9362         * include/grub/datetime.h: Likewise.
9363         * include/grub/term.h: Likewise.
9364         * include/grub/hfs.h: Likewise.
9365         * include/grub/lvm.h: Likewise.
9366         * include/grub/i386/tsc.h: Likewise.
9367         * include/grub/i386/linux.h: Likewise.
9368         * include/grub/i386/xnu.h: Likewise.
9369         * include/grub/i386/efiemu.h: Likewise.
9370         * include/grub/i386/pc/biosdisk.h: Likewise.
9371         * include/grub/i386/pc/memory.h: Likewise.
9372         * include/grub/i386/pc/vbe.h: Likewise.
9373         * include/grub/parttool.h: Likewise.
9374         * include/grub/video.h: Likewise.
9375         * include/grub/memory.h: Likewise.
9376         * include/grub/fs.h: Likewise.
9377         * include/grub/partition.h: Likewise.
9378         * include/grub/xnu.h: Likewise.
9379         * include/grub/efi/api.h: Likewise.
9380         * include/grub/efi/pe32.h: Likewise.
9381         * include/grub/efi/memory.h: Likewise.
9382         * include/grub/multiboot.h: Likewise.
9383         * include/grub/usbdesc.h: Likewise.
9384         * include/grub/multiboot2.h: Likewise.
9385         * include/grub/acpi.h: Likewise.
9386         * include/grub/efiemu/efiemu.h: Likewise.
9387         * include/grub/disk.h: Likewise.
9388         * include/grub/ieee1275/ieee1275.h: Likewise.
9389         * include/grub/net.h: Likewise.
9390         * include/grub/machoload.h: Likewise.
9391         * include/grub/macho.h: Likewise.
9392         * include/multiboot.h: Likewise.
9393         * genmoddep.awk: Likewise.
9394         * normal/main.c: Likewise.
9395         * normal/menu_entry.c: Likewise.
9396         * normal/menu_viewer.c: Likewise.
9397         * normal/completion.c: Likewise.
9398         * normal/cmdline.c: Likewise.
9399         * normal/misc.c: Likewise.
9400         * normal/datetime.c: Likewise.
9401         * bus/usb/usbtrans.c: Likewise.
9402         * bus/usb/ohci.c: Likewise.
9403         * bus/usb/uhci.c: Likewise.
9404         * bus/usb/usb.c: Likewise.
9405         * mmap/efi/mmap.c: Likewise.
9406         * mmap/i386/pc/mmap_helper.S: Likewise.
9407         * mmap/i386/pc/mmap.c: Likewise.
9408         * mmap/i386/mmap.c: Likewise.
9409         * mmap/i386/uppermem.c: Likewise.
9410         * mmap/mmap.c: Likewise.
9411         * commands/acpi.c: Likewise.
9412         * commands/echo.c: Likewise.
9413         * commands/blocklist.c: Likewise.
9414         * commands/loadenv.c: Likewise.
9415         * commands/usbtest.c: Likewise.
9416         * commands/boot.c: Likewise.
9417         * commands/parttool.c: Likewise.
9418         * commands/search.c: Likewise.
9419         * commands/cat.c: Likewise.
9420         * commands/i386/pc/play.c: Likewise.
9421         * commands/i386/pc/drivemap.c: Likewise.
9422         * commands/i386/pc/vbeinfo.c: Likewise.
9423         * commands/i386/pc/acpi.c: Likewise.
9424         * commands/i386/pc/vbetest.c: Likewise.
9425         * commands/ls.c: Likewise.
9426         * commands/cmp.c: Likewise.
9427         * commands/test.c: Likewise.
9428         * commands/efi/acpi.c: Likewise.
9429         * commands/gptsync.c: Likewise.
9430         * commands/help.c: Likewise.
9431         * partmap/amiga.c: Likewise.
9432         * partmap/apple.c: Likewise.
9433         * partmap/acorn.c: Likewise.
9434         * partmap/pc.c: Likewise.
9435         * partmap/sun.c: Likewise.
9436         * partmap/gpt.c: Likewise.
9437         * script/sh/lexer.c: Likewise.
9438         * script/sh/function.c: Likewise.
9439         * font/font.c: Likewise.
9440         * font/font_cmd.c: Likewise.
9441         * loader/powerpc/ieee1275/linux.c: Likewise.
9442         * loader/efi/chainloader.c: Likewise.
9443         * loader/multiboot_loader.c: Likewise.
9444         * loader/macho.c: Likewise.
9445         * loader/i386/multiboot.c: Likewise.
9446         * loader/i386/linux.c: Likewise.
9447         * loader/i386/pc/linux.c: Likewise.
9448         * loader/i386/pc/multiboot2.c: Likewise.
9449         * loader/i386/pc/chainloader.c: Likewise.
9450         * loader/i386/pc/xnu.c: Likewise.
9451         * loader/i386/bsd_trampoline.S: Likewise.
9452         * loader/i386/efi/linux.c: Likewise.
9453         * loader/i386/multiboot_elfxx.c: Likewise.
9454         * loader/i386/bsd_helper.S: Likewise.
9455         * loader/i386/bsd.c: Likewise.
9456         * loader/i386/linux_trampoline.S: Likewise.
9457         * loader/i386/xnu_helper.S: Likewise.
9458         * loader/i386/xnu.c: Likewise.
9459         * loader/i386/bsd_pagetable.c: Likewise.
9460         * loader/i386/multiboot_helper.S: Likewise.
9461         * loader/xnu.c: Likewise.
9462         * loader/xnu_resume.c: Likewise.
9463         * io/gzio.c: Likewise.
9464         * term/efi/console.c: Likewise.
9465         * term/terminfo.c: Likewise.
9466         * term/ieee1275/ofconsole.c: Likewise.
9467         * term/i386/pc/serial.c: Likewise.
9468         * term/i386/pc/vesafb.c: Likewise.
9469         * term/i386/pc/vga.c: Likewise.
9470         * term/usb_keyboard.c: Likewise.
9471         * term/gfxterm.c: Likewise.
9472         * aclocal.m4: Likewise.
9473         * util/lvm.c: Likewise.
9474         * util/grub.d/30_os-prober.in: Likewise.
9475         * util/grub.d/10_hurd.in: Likewise.
9476         * util/console.c: Likewise.
9477         * util/grub-macho2img.c: Likewise.
9478         * util/grub-probe.c: Likewise.
9479         * util/hostfs.c: Likewise.
9480         * util/i386/pc/grub-mkimage.c: Likewise.
9481         * util/i386/pc/grub-setup.c: Likewise.
9482         * util/i386/efi/grub-mkimage.c: Likewise.
9483         * util/grub-mkconfig.in: Likewise.
9484         * util/raid.c: Likewise.
9485         * util/resolve.c: Likewise.
9486         * util/grub-mkdevicemap.c: Likewise.
9487         * util/grub-emu.c: Likewise.
9488         * util/getroot.c: Likewise.
9489         * util/hostdisk.c: Likewise.
9490         * util/usb.c: Likewise.
9491         * util/grub-editenv.c: Likewise.
9492         * util/misc.c: Likewise.
9494 2009-06-10  Felix Zielcke  <fzielcke@z-51.de>
9496         * gendistlist.sh (EXTRA_DISTFILES): Add `genhandlerlist.sh' and
9497         `genparttoollist.sh'.
9498         (DISTDIRS): Add `efiemu', `mmap', `parttool' and `script'.
9499         Add `*.sh' to the list find searches for and change `mdate.sh'
9500         to `mdate-sh'.
9502 2009-06-10  Pavel Roskin  <proski@gnu.org>
9504         * include/grub/multiboot2.h: Provide compatibility defines for
9505         multiboot2.h.
9506         * include/multiboot2.h: Include stdint.h only if needed, using
9507         angle brackets.
9508         * loader/i386/pc/multiboot2.c: Include multiboot2.h after
9509         grub/multiboot2.h.
9510         * loader/ieee1275/multiboot2.c: Likewise.
9511         * loader/multiboot2.c: Likewise.
9512         * loader/multiboot_loader.c: Likewise.
9514         * configure.ac: Use -nostdlib when probing for the target.  It
9515         should not be required to have libc for the target.
9517         * configure.ac: Remove checks for __bswapsi2 and __bswapdi2,
9518         they fail without libc headers for the target.
9519         * include/grub/powerpc/libgcc.h: Use weak attribute for all
9520         exports.
9521         * include/grub/sparc64/libgcc.h: Likewise.  Don't use
9522         preprocessor conditionals.
9524         * conf/common.rmk: Compile tar.mod from tar.c, not cpio.c.  The
9525         build system doesn't need to be aware of the tar.c internals.
9527 2009-06-09  Michel Hermier  <michel.hermier@gmail.com>
9529         * fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values.
9531 2009-06-09  Robert Millan  <rmh.grub@aybabtu.com>
9533         * util/deviceiter.c (grub_util_iterate_devices): Increase number of
9534         disk limit to 26 for IDE, Virtio, Xen and SCSI.
9536 2009-06-09  Felix Zielcke  <fzielcke@z-51.de>
9538         * util/i386/pc/grub-install.in: Change the error message if UUIDs
9539         aren't available if ata.mod gets used.
9541 2009-06-09  Oliver Henshaw  <oliver.henshaw@gmail.com>
9543         * bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after
9544         initialising controller.
9545         * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
9547 2009-06-08  Felix Zielcke  <fzielcke@z-51.de>
9549         * util/i386/pc/grub-install.in: Add a parameter --disk-module
9550         to choose between ata and biosdisk module on i386-pc.
9552 2009-06-08  Oliver Henshaw  <oliver.henshaw@gmail.com>
9554         * bus/usb/ohci.c (grub_ohci_pci_iter): Define the Class,
9555         Subclass and Programming Interface fields in terms of the 3 byte
9556         Class Code register.
9557         * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
9559         * bus/usb/ohci.c (grub_ohci_pci_iter): Check that programming
9560         interface is OHCI.  Add grub_dprintf for symmetry with
9561         bus/usb/uhci.c.
9562         * bus/usb/uhci.c (grub_uhci_pci_iter): Check that programming
9563         interface is UHCI.  Add interf variable for programming
9564         interface.  Print interface with class/subclass.
9566         * bus/usb/ohci.c: Set interf with correct field.
9568         * bus/usb/uhci.c: Remove unneeded doubled lines.
9569         * bus/usb/ohci.c: Likewise. Change interf to grub_uint32_t.
9570         Remove whitespace inside comment.
9572 2009-06-08  Robert Millan  <rmh.grub@aybabtu.com>
9574         * loader/i386/linux.c (grub_cmd_linux): When processing `vga=', use
9575         as fallback an equivalent option without depth.
9577 2009-06-08  Vladimir Serbinenko  <phcoder@gmail.com>
9579         Not fail if unable to retrieve C/H/S on LBA disks
9581         * disk/i386/pc/biosdisk.c (grub_biosdisk_open): behave gracefully
9582         if unable to retrieve C/H/S on LBA disks
9584 2009-06-08  Pavel Roskin  <proski@gnu.org>
9586         * fs/hfs.c (grub_hfs_find_dir): Use union to avoid a warning
9587         about aliasing.
9589 2009-06-08  Felix Zielcke  <fzielcke@z-51.de>
9591         * Makefile.in (uninstall): Remove all $lib_DATA files.
9593 2009-06-08  Vladimir Serbinenko  <phcoder@gmail.com>
9595         Bugfix: install on partitionless device
9597         * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): check if os_dev
9598         is a whole disk
9600 2009-06-08  Felix Zielcke  <fzielcke@z-51.de>
9602         * Makefile.in (uninstall): Remove all $include_DATA files.
9604 2009-06-08  Felix Zielcke  <fzielcke@z-51.de>
9606         * commands/true.c: New file.  Implement the true and false commands.
9607         * conf/common.rmk.c (pkglib_MODULES): Add `true.mod'.
9608         (true_mod_SOURCES): New variable.
9609         (true_mod_CFLAGS): Likewise.
9610         (true_mod_LDFLAGS): Likewise.
9612 2009-06-05  Colin D Bennett  <colin@gibibit.com>
9614         Optimized font character lookup using binary search instead of linear
9615         search.  Fonts now are required to have the character index ordered by
9616         code point.
9618         * font/font.c (load_font_index): Verify that fonts have ordered
9619         character indices.
9620         (find_glyph): Use binary search instead of linear search to find a
9621         character in a font.
9623 2009-06-05  Michael Scherer  <misc@mandriva.org>
9625         * fs/hfsplus.c (grub_hfsplus_mount): Determine if the filesystem
9626         uses case sensitive btree.
9627         (grub_hfsplus_iterate_dir): Use GRUB_FSHELP_CASE_INSENSITIVE
9628         only for case insensitive filesystems.
9630 2009-06-05  Vladimir Serbinenko  <phcoder@gmail.com>
9632         * conf/i386-pc.rmk (efiemu_mod_CFLAGS): remove -Werror -Wall
9633         * conf/common.rmk (search_mod_CFLAGS): likewise
9635 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9637         * kern/i386/pc/startup.S [APPLE_CC]: block of nops to
9638         compensate a compiler bug
9640 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9642         * include/grub/term.h (GRUB_TERM_BACKSPACE): explicitly define as 8
9643         instead of '\b'
9645 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9647         Definitions for creating asm symbols with Apple's CC
9649         * include/grub/symbol.h [APPLE_CC] (FUNCTION): new macro
9650         [APPLE_CC] (VARIABLE): likewise
9652 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9654         Disable lnxboot.img when compiled
9655         with Apple's CC
9657         * conf/i386-pc.rmk (pkglib_IMAGES): remove lnxboot.img
9658         pkglib_IMAGES [! TARGET_APPLE_CC] (pkglib_IMAGES): add lnxboot.img
9659         * boot/i386/pc/lnxboot.S [APPLE_CC]: define an #error
9660         [! APPLE_CC] (CODE_LENG): skip
9661         [! APPLE_CC] (setup_sects): likewise
9662         [! APPLE_CC]: skip filling
9664 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9666         Address in trampolines based on 32-bit registers when compiled
9667         with Apple's CC
9669         * loader/i386/xnu_helper.S [APPLE_CC]: use 32-bit registers
9670         for addresses
9671         * loader/i386/linux_trampoline.S [APPLE_CC]: likewise
9673 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9675         Avoid aliases when compiling with Apple's CC for PCBIOS machine
9677         * kern/misc.c [APPLE_CC] (memcpy): new function
9678         [APPLE_CC] (memmove): likewise
9679         [APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise
9680         (memcpy): define alias conditionally on !APPLE_CC
9681         (memset): likewise
9682         (abort): likewise
9683         * include/grub/misc.h (memove): don't define when both GRUB_UTIL and
9684         APPLE_CC are defined
9685         * include/grub/list.h [APPLE_CC] (grub_assert_fail): new function
9686         (grub_assert_fail): make prototype conditional
9688 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9690         Use grub-macho2img when compiling with Apple's CC for PCBIOS machine
9692         * conf/common.rmk (bin_UTILITIES): add (on false on condition)
9693         grub-macho2img
9694         (CLEANFILES): add grub-macho2img
9695         (grub_macho2img_SOURCES): new variable
9696         * kern/i386/pc/startup.S (bss_start): new variable
9697         (bss_end): likewise
9698         * genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC
9699         * util/grub-macho2img.c: new file
9701 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9703         Use objconv when compiling with Apple's CC
9705         * conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined
9706         (efiemu64.o): likewise
9707         (efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1
9708         when compiling with Apple's CC
9709         (efiemu64_s.o): likewise
9710         * configure.ac: check for objconv when compiling with Apple's CC
9711         * genmk.rb: use objconv for modules when compiled with Apple's CC
9713 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9715         Define segment as well as section when compiling with
9716         Apple's CC
9718         * efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition
9719         (efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE
9720         (efiemu_convert_pointer): likewise
9721         (efiemu_set_virtual_address_map): likewise
9722         (efiemu_convert_pointer): likewise
9723         (efiemu_getcrc32): likewise
9724         (init_crc32_table): likewise
9725         (reflect): likewise
9726         * include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC
9727         (GRUB_MOD_DEP): likewise
9729 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9731         Allow a compilation without -mcmodel=large
9733         * kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB
9734         when compiled without -mcmodel=large
9735         (filter_memory_map): remove memory post 4 GiB when compiled
9736         without -mcmodel=large
9737         * configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to
9738         TARGET_CFLAGS when -mcmodel=large isn't supported
9740 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9742         Remove nested functions in efiemu core
9744         * efiemu/runtime/efiemu.c (reflect): make static instead of nested
9746 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9748         Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC
9750         * efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as
9751         temporary storage
9752         * include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when
9753         using Apple's CC
9754         (grub_cpu_is_tsc_supported): likewise
9755         * loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly
9757 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9759         Absolute addressing through constant with Apple's cc
9761         * kern/i386/pc/startup.S: Define necessary constants
9762         and address through it when using ABS with Apple's CC
9763         * boot/i386/pc/diskboot.S: likewise
9764         * boot/i386/pc/boot.S: likewise
9765         * boot/i386/pc/lnxboot.S: likewise
9766         * boot/i386/pc/cdboot.S: likewise
9767         * mmap/i386/pc/mmap_helper.S: likewise
9768         * commands/i386/pc/drivemap_int13h.S: likewise
9770 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9772         Check if compiler is apple cc
9774         * Makefile.in (ASFLAGS): new variable
9775         (TARGET_ASFLAGS): likewise
9776         (TARGET_MODULE_FORMAT): likewise
9777         (TARGET_APPLE_CC): likewise
9778         (OBJCONV): likewise
9779         (TARGET_IMG_CFLAGS): likewise
9780         (TARGET_CPPFLAGS): add includedir
9781         * configure.ac: call grub_apple_cc and grub_apple_target_cc
9782         (TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated
9783         Check for linker script only if compiler isn't Apple's CC
9784         (TARGET_MODULE_FORMAT): set
9785         (TARGET_APPLE_CC): likewise
9786         (TARGET_ASFLAGS): likewise
9787         (ASFLAGS): likewise
9788         Check for objcopy only if compiler isn't Apple's CC
9789         Check for BSS symbol only if compiler isn't Apple's CC
9790         * genmk.rb: adapt nm options if we use Apple's utils
9791         * aclocal.m4 (grub_apple_cc): new test
9792         (grub_apple_target_cc): likewise
9794 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9796         Simplify sed expressions and improve awk
9798         * Makefile.in (install-local): simplify sed expression
9799         * gencmdlist.sh: likewise
9800         * genmoddep.awk: avoid adding module as a dependency of itself
9802 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9804         Add missing start symbols
9806         * boot/i386/pc/boot.S: add start
9807         * boot/i386/pc/pxeboot.S: likewise
9809 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9811         Fix wrong assumptions with grub-mkimage on EFI
9813         * i386/efi/grub-mkimage.c (read_kernel_module): don't write prefix here
9814         (relocate_addresses): consider both r_addend and value at offset
9815         (make_mods_section): zerofill modinfo and header
9816         (convert_elf): write prefix here
9818 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9820         Use .asciz instead of .string
9822         * i386/pc/diskboot.S: use .asciz instead of .string
9823         * i386/pc/boot.S: likewise
9824         * include/grub/dl.h (GRUB_MOD_DEP): likewise
9825         (GRUB_MOD_NAME): likewise
9827 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9829         gfxpayload support
9831         * commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
9832         * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
9833         (grub_video_setup): remove
9834         (grub_video_set_mode): new prototype
9835         * loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
9836         (vid_mode): remove
9837         (linux_vesafb_res): compile only on PCBIOS
9838         (grub_linux_boot): support gfxpayload
9839         * loader/i386/pc/xnu.c (video_hook): new function
9840         (grub_xnu_set_video): support gfxpayload
9841         * term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
9842         (DEFAULT_VIDEO_HEIGHT): likewise
9843         (DEFAULT_VIDEO_FLAGS): likewise
9844         (DEFAULT_VIDEO_MODE): new definition
9845         (video_hook): new function
9846         (grub_gfxterm_init): use grub_video_set_mode
9847         * util/grub.d/30_os-prober.in: remove explicit modesetting before
9848         loading xnu
9849         * video/video.c (grub_video_setup): removed
9850         (grub_video_set_mode): new function based on grub_gfxterm_init and
9851         grub_video_setup
9853 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9855         Avoid calling biosdisk in drivemap
9857         * commands/i386/pc/drivemap.c (parse_biosdisk): remove
9858         (revparse_biosdisk): likewise
9859         (list_mappings): derive name from id directly
9860         (grub_cmd_drivemap): use tryparse_diskstring
9862 2009-06-04  Vladimir Serbinenko  <phcoder@gmail.com>
9864         Script fixes
9866         * include/grub/script_sh.h (grub_script_cmdline): remove cmdline
9867         (grub_lexer_param): add tokenonhold
9868         (grub_script_create_cmdline): remove cmdline. All callers updated
9869         (grub_script_function_create): make functionname
9870         grub_script_arg. All callers updated
9871         (grub_script_execute_argument_to_string): new prototype
9872         * kern/parser.c (state_transitions): reorder
9873         (grub_parser_cmdline_state): fix a bug and make more compact
9874         * script/sh/execute.c (grub_script_execute_argument_to_string):
9875         make global
9876         (grub_script_execute_cmdline): use new format
9877         * script/sh/function.c (grub_script_function_create): make functionname
9878         grub_script_arg. All callers updated
9879         * script/sh/lexer.c (grub_script_lexer_init): initialize tokenonhold
9880         (grub_script_yylex): remove
9881         (grub_script_yylex2): renamed to ...
9882         (grub_script_yylex): ...renamed
9883         parse the expressions like a${b}c
9884         * script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
9885         (GRUB_PARSER_TOKEN_VAR): remove
9886         (GRUB_PARSER_TOKEN_NAME): likewise
9887         ("if"): declare as typeless
9888         ("while"): likewise
9889         ("function"): likewise
9890         ("else"): likewise
9891         ("then"): likewise
9892         ("fi"): likewise
9893         (text): remove
9894         (argument): likewise
9895         (script): accept empty scripts and make exit on error
9896         (arguments): use GRUB_PARSER_TOKEN_ARG
9897         (function): likewise
9898         (command): move error handling to script
9899         (menuentry): move grub_script_lexer_ref before
9900         * script/sh/script.c (grub_script_create_cmdline): remove cmdline
9901         argument. All callers updated
9903 2009-06-04  Robert Millan  <rmh.grub@aybabtu.com>
9905         Prevent GRUB from probing floppies during boot.
9907         * conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'.
9908         * commands/search.c (options): Add --no-floppy.
9909         (search_fs, search_file, grub_cmd_search): Support --no-floppy.
9910         * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use
9911         --no-floppy when searching for UUIDs.
9913 2009-06-04  Robert Millan  <rmh.grub@aybabtu.com>
9915         Simplify the code duplication in commands/search.c.
9917         * commands/search.c (search_label, search_fs_uuid): Merge into ...
9918         (search_fs): ... this.  Update all users.
9920 2009-06-03  Felix Zielcke  <fzielcke@z-51.de>
9922         * util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir.
9924 2009-05-28  Pavel Roskin  <proski@gnu.org>
9926         * Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD.
9927         Remove the original symlink explicitly.
9929         * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not
9930         just one slash.  That's how grub_fshelp_find_file() does it.
9932 2009-05-26  Pavel Roskin  <proski@gnu.org>
9934         * genmk.rb: Avoid shadowing variable `s', rename the outer `s'
9935         to `str'.
9937         * util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as
9938         possibly unused.
9940 2009-05-25  Christian Franke  <franke@computer.org>
9942         * disk/ata.c (grub_ata_wait_not_busy): Add debug output of status
9943         register.
9944         (grub_atapi_identify): Add wait after drive select.
9945         (grub_ata_identify): Do more strict status register check before
9946         calling grub_atapi_identify ().  Suppress error message if status
9947         register is 0x00 after command failure.  Add status register
9948         check after PIO read to avoid bogus identify due to stuck DRQ.
9949         Thanks to Pavel Roskin for testing.
9950         (grub_device_initialize): Remove unsafe status register check.
9951         Thanks to 'phcoder' for problem report and patch.
9952         Prevent sign extension in debug message.
9954 2009-05-23  Colin D Bennett  <colin@gibibit.com>
9956         Cleaned up `include/grub/normal.h'.  Grouped prototypes by
9957         definition file, and functions defined in `normal/menu.c' have had
9958         their prototypes moved to `include/grub/menu.h' for consistency.
9960         * include/grub/menu.h (grub_menu_execute_callback): Added; moved
9961         from normal.h.
9962         (grub_menu_get_entry): Likewise.
9963         (grub_menu_get_timeout): Likewise.
9964         (grub_menu_set_timeout): Likewise.
9965         (grub_menu_execute_entry): Likewise.
9966         (grub_menu_execute_with_fallback): Likewise.
9967         (grub_menu_entry_run): Likewise.
9969         * include/grub/normal.h: Re-ordered and grouped function
9970         prototypes by file that the function is defined in.
9971         (grub_menu_execute_callback): Removed; moved to menu.h.
9972         (grub_menu_get_entry): Likewise.
9973         (grub_menu_get_timeout): Likewise.
9974         (grub_menu_set_timeout): Likewise.
9975         (grub_menu_execute_entry): Likewise.
9976         (grub_menu_execute_with_fallback): Likewise.
9977         (grub_menu_entry_run): Likewise.
9978         (grub_menu_addentry): Renamed from this ...
9979         (grub_normal_add_menu_entry): ... to this.
9981         * normal/main.c (grub_menu_addentry): Renamed from this ...
9982         (grub_normal_add_menu_entry): ... to this.
9984         * script/sh/execute.c (grub_script_execute_menuentry): Update
9985         reference to renamed grub_menu_addentry function.
9987 2009-05-23  Felix Zielcke  <fzielcke@z-51.de>
9989         * commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users.
9991 2009-05-22  Pavel Roskin  <proski@gnu.org>
9993         * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove.
9994         * configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG.  Define
9995         NESTED_FUNC_ATTR using AH_BOTTOM.  Use regparm(1) only when
9996         compiling for the i386 targets, but not for the utilities.
9998         * include/grub/i386/pc/kernel.h (grub_boot_drive): Change type
9999         to grub_uint8_t.
10000         (grub_root_drive): Likewise.
10001         * kern/i386/pc/startup.S (grub_boot_drive): Change size to byte,
10002         remove alignment.
10003         (grub_root_drive): Change size to byte.
10004         (grub_start_addr): Remove.
10005         (grub_end_addr): Likewise.
10006         (grub_apm_bios_info): Likewise.
10008 2009-05-21  Felix Zielcke  <fzielcke@z-51.de>
10010         * normal/i386: Remove.
10011         * normal/powerpc: Likewise.
10012         * normal/sparc64: Likewise.
10013         * normal/x86_64: Likewise.
10015 2009-05-19  Vladimir Serbinenko  <phcoder@gmail.com>
10017         * conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable
10018         * loader/i386/linux_trampoline.S: Fix indentation
10019         * loader/i386/xnu_helper.S: Likewise
10021 2009-05-18  Colin D Bennett  <colin@gibibit.com>
10023         Display error messages when parsing a Lua statement fails.
10024         Previously, executing a syntactically invalid statement like
10025         ")foo" or "bar;" would silently fail.
10027         * script/lua/grub_main.c (handle_lua_error): New function.
10028         (grub_lua_parse_line): Improved reporting of Lua parser and
10029         execution errors.
10031 2009-05-17  Vladimir Serbinenko  <phcoder@gmail.com>
10033         Remove -Werror which causes build to fail on some systems
10035         * conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall
10036         * conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise
10037         * conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise
10039 2009-05-17  Vladimir Serbinenko  <phcoder@gmail.com>
10041         trampoline for linux on 64-bit platform
10043         * conf/x86_64-efi.rmk (linux_mod_SOURCES): added
10044         loader/i386/efi/linux_trampoline.S
10045         * include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed
10046         declaration
10047         * kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from
10048         here
10049         * loader/i386/linux_trampoline.S: moved here
10050         * loader/i386/efi/linux.c (allocate_pages): reserve space for
10051         trampoline
10052         (jumpvector): removed
10053         (grub_linux_trampoline_start): new declaration
10054         (grub_linux_trampoline_end): likewise
10055         (grub_linux_boot): use trampoline when on 64-bit platform
10056         * loader/i386/linux.c: likewise
10058 2009-05-16  Pavel Roskin  <proski@gnu.org>
10060         * script/lua/grub_lib.c (grub_lua_getenv): Make name and value
10061         const to avoid a warning.
10062         (grub_lua_setenv): Likewise.
10063         * script/lua/grub_main.c (grub_lua_parse_line): Use size_t for
10064         lmsg to fix a warning.
10066 2009-05-16  Felix Zielcke  <fzielcke@z-51.de>
10068         * conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ...
10069         (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
10070         * conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ...
10071         (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
10072         * conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
10073         (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
10074         * conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
10075         (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
10077 2009-05-16  Felix Zielcke  <fzielcke@z-51.de>
10079         * util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT.
10081 2009-05-16  Bean  <bean123ch@gmail.com>
10083         * conf/common.rmk (pkglib_MODULES): Add lua.mod.
10084         (lua_mod_SOURCES): New variable.
10085         (lua_mod_CFLAGS): Likewise.
10086         (lua_mod_LDFLAGS): Likewise.
10088         * conf/i386.rmk (pkglib_MODULES): Add setjmp.mod.
10089         (setjmp_mod_SOURCES): New variable.
10090         (setjmp_mod_CFLAGS): Likewise.
10091         (setjmp_LDFLAGS): Likewise.
10093         * conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod.
10094         (setjmp_mod_SOURCES): New variable.
10095         (setjmp_mod_CFLAGS): Likewise.
10096         (setjmp_LDFLAGS): Likewise.
10098         * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
10099         (setjmp_mod_SOURCES): New variable.
10100         (setjmp_mod_CFLAGS): Likewise.
10101         (setjmp_LDFLAGS): Likewise.
10103         * conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
10104         (setjmp_mod_SOURCES): New variable.
10105         (setjmp_mod_CFLAGS): Likewise.
10106         (setjmp_LDFLAGS): Likewise.
10108         * normal/i386/setjmp.S: Moved from here ...
10109         * lib/i386/setjmp.S: ... Moved here
10110         * normal/x86_64/setjmp.S: Moved from here ...
10111         * lib/x86_64/setjmp.S: ... Moved here
10112         * normal/powerpc/setjmp.S: Moved from here ...
10113         * lib/powerpc/setjmp.S: ... Moved here
10114         * normal/sparc64/setjmp.S: Moved from here ...
10115         * lib/sparc64/setjmp.S: ... Moved here
10117         * include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute
10118         returns_twice in mingw.
10120         * script/lua/grub_lib.c: New file.
10121         * script/lua/grub_lib.h: Likewise.
10122         * script/lua/grub_lua.h: Likewise.
10123         * script/lua/grub_main.c: Likewise.
10124         * script/lua/lapi.c: Likewise.
10125         * script/lua/lapi.h: Likewise.
10126         * script/lua/lauxlib.c: Likewise.
10127         * script/lua/lauxlib.h: Likewise.
10128         * script/lua/lbaselib.c: Likewise.
10129         * script/lua/lcode.c: Likewise.
10130         * script/lua/lcode.h: Likewise.
10131         * script/lua/ldblib.c: Likewise.
10132         * script/lua/ldebug.c: Likewise.
10133         * script/lua/ldebug.h: Likewise.
10134         * script/lua/ldo.c: Likewise.
10135         * script/lua/ldo.h: Likewise.
10136         * script/lua/ldump.c: Likewise.
10137         * script/lua/lfunc.c: Likewise.
10138         * script/lua/lfunc.h: Likewise.
10139         * script/lua/lgc.c: Likewise.
10140         * script/lua/lgc.h: Likewise.
10141         * script/lua/linit.c: Likewise.
10142         * script/lua/liolib.c: Likewise.
10143         * script/lua/llex.c: Likewise.
10144         * script/lua/llex.h: Likewise.
10145         * script/lua/llimits.h: Likewise.
10146         * script/lua/lmathlib.c: Likewise.
10147         * script/lua/lmem.c: Likewise.
10148         * script/lua/lmem.h: Likewise.
10149         * script/lua/loadlib.c: Likewise.
10150         * script/lua/lobject.c: Likewise.
10151         * script/lua/lobject.h: Likewise.
10152         * script/lua/lopcodes.c: Likewise.
10153         * script/lua/lopcodes.h: Likewise.
10154         * script/lua/loslib.c: Likewise.
10155         * script/lua/lparser.c: Likewise.
10156         * script/lua/lparser.h: Likewise.
10157         * script/lua/lstate.c: Likewise.
10158         * script/lua/lstate.h: Likewise.
10159         * script/lua/lstring.c: Likewise.
10160         * script/lua/lstring.h: Likewise.
10161         * script/lua/lstrlib.c: Likewise.
10162         * script/lua/ltable.c: Likewise.
10163         * script/lua/ltable.h: Likewise.
10164         * script/lua/ltablib.c: Likewise.
10165         * script/lua/ltm.c: Likewise.
10166         * script/lua/ltm.h: Likewise.
10167         * script/lua/lua.h: Likewise.
10168         * script/lua/luaconf.h: Likewise.
10169         * script/lua/lualib.h: Likewise.
10170         * script/lua/lundump.c: Likewise.
10171         * script/lua/lundump.h: Likewise.
10172         * script/lua/lvm.c: Likewise.
10173         * script/lua/lvm.h: Likewise.
10174         * script/lua/lzio.c: Likewise.
10175         * script/lua/lzio.h: Likewise.
10177 2009-05-16  Bean  <bean123ch@gmail.com>
10179         * include/grub/kernel.h (grub_module_header_types): Add type
10180         OBJ_TYPE_CONFIG.
10182         * kern/main.c (grub_load_config): New function.
10183         (grub_main): Call grub_load_config to read boot config.
10185         * grub-mkimage (generate_image): New parameter config_path.
10186         (options): New option --config.
10187         (main): Parse --config option, and pass it to generate_image.
10189 2009-05-14  Christian Franke  <franke@computer.org>
10191         * commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols.
10192         This fixes build on Cygwin.
10194 2009-05-14  Pavel Roskin  <proski@gnu.org>
10196         * commands/i386/pc/drivemap_int13h.S: Eliminate unconditional
10197         jump.  This saves two bytes, so the typical case of 2 swapped
10198         drives would fit 32 bytes.
10200 2009-05-13  Pavel Roskin  <proski@gnu.org>
10202         * loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to
10203         grub_uint32_t to avoid a warning.
10205         * loader/i386/linux.c (allocate_pages): When assigning
10206         real_mode_mem, cast through grub_size_t to fix a warning.  The
10207         code already makes sure that the value would fit a pointer.
10208         (grub_linux_setup_video): Cast render_target->data to
10209         grub_size_t to fix a warning.
10211 2009-05-13  Javier Martín  <lordhabbit@gmail.com>
10213         * commands/i386/pc/drivemap.c: New file - implement drivemap
10214         command.
10215         * commands/i386/pc/drivemap_int13h.S: New file - int13 handler.
10216         * conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S.
10218 2009-05-13  Pavel Roskin  <proski@gnu.org>
10220         * util/i386/pc/grub-setup.c (setup): Remove unused variable
10221         embedding_area_exists.
10223 2009-05-13  Robert Millan  <rmh.grub@aybabtu.com>
10225         * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
10226         it easier to understand / work with.
10227         Improve warning messages for cases where there's no embedding area,
10228         or when it is too small (or core.img too large).
10230 2009-05-13  Pavel Roskin  <proski@gnu.org>
10232         * loader/i386/pc/multiboot2.c: Add necessary includes for
10233         grub_multiboot2_real_boot().
10235         * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
10236         PX record is always little-endian.  We only need the lower 2
10237         bytes of the mode.
10239         * fs/cpio.c: Use the same name "struct head" for tar and cpio to
10240         facilitate code reuse.
10241         (grub_cpio_mount): Use "struct head", not a char buffer.  This
10242         fixes a warning reported by gcc 4.4.
10244         * kernel/disk.c (grub_disk_read): Use void pointer for the
10245         buffer.
10246         (grub_disk_write): Use const void pointer for the buffer.
10247         Adjust all callers.  Remove unnecessary casts.
10249 2009-05-10  Robert Millan  <rmh.grub@aybabtu.com>
10251         * util/i386/pc/grub-install.in: Update copyright year.
10253 2009-05-09  Vladimir Serbinenko  <phcoder@gmail.com>
10255         gptsync
10257         * commands/gptsync.c: new file
10258         * conf/common.rmk (pkglib_MODULES): add gptsync.mod
10259         (gptsync_mod_SOURCES): new variable
10260         (gptsync_mod_CFLAGS): likewise
10261         (gptsync_mod_LDFLAGS): likewise
10262         * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS):
10263         new definition
10264         (GRUB_PC_PARTITION_TYPE_HFS): likewise
10265         * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c
10266         * conf/i386-ieee1275.rmk: likewise
10267         * conf/i386-pc.rmk: likewise
10268         * conf/powerpc-ieee1275.rmk: likewise
10270 2009-05-09  Vladimir Serbinenko  <phcoder@gmail.com>
10272         Fixed grub-emu
10274         * kern/dl.c (grub_dl_ref): omit when compiling grub-emu
10275         (grub_dl_ref): likewise
10277 2009-05-08  Robert Millan  <rmh.grub@aybabtu.com>
10279         * util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(),
10280         split in two functions (one for msdos and one for gpt).
10282 2009-05-08  Pavel Roskin  <proski@gnu.org>
10284         * disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's
10285         not modified.
10287         * disk/raid6_recover.c (grub_raid6_recover): Fix warnings about
10288         uninitialized err[0] and err[1].  Rename them to bad1 and bad2.
10289         Initialize them with -1.  Add sanity check for bad1.  Eliminate
10290         nerr variable.
10292 2009-05-08  David S. Miller  <davem@davemloft.net>
10294         * util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname.
10296 2009-05-06  Robert Millan  <rmh.grub@aybabtu.com>
10298         * util/i386/pc/grub-setup.c (setup): Fix check for embed region
10299         existence.
10301 2009-05-05  Felix Zielcke  <fzielcke@z-51.de>
10303         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
10304         `kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'.
10306 2009-05-05  David S. Miller  <davem@davemloft.net>
10308         * util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting.
10310 2009-05-05  Pavel Roskin  <proski@gnu.org>
10312         * include/grub/dl.h [GRUB_UTIL]: Provide inline implementations
10313         of grub_dl_ref() and grub_dl_unref().
10314         * commands/parttool.c: Remove preprocessor conditionals around
10315         grub_dl_ref() and grub_dl_unref().
10316         * fs/affs.c: Likewise.
10317         * fs/afs.c: Likewise.
10318         * fs/cpio.c: Likewise.
10319         * fs/ext2.c: Likewise.
10320         * fs/fat.c: Likewise.
10321         * fs/hfs.c: Likewise.
10322         * fs/hfsplus.c: Likewise.
10323         * fs/iso9660.c: Likewise.
10324         * fs/jfs.c: Likewise.
10325         * fs/minix.c: Likewise.
10326         * fs/ntfs.c: Likewise.
10327         * fs/reiserfs.c: Likewise.
10328         * fs/sfs.c: Likewise.
10329         * fs/udf.c: Likewise.
10330         * fs/ufs.c: Likewise.
10331         * fs/xfs.c: Likewise.
10332         * include/grub/dl.h: Likewise.
10333         * loader/xnu.c: Likewise.
10335 2009-05-04  Pavel Roskin  <proski@gnu.org>
10337         * commands/acpi.c: Remove unused variable my_mod.
10338         * partmap/amiga.c: Likewise.
10339         * partmap/apple.c: Likewise.
10340         * partmap/gpt.c: Likewise.
10341         * partmap/pc.c: Likewise.
10342         * partmap/sun.c: Likewise.
10343         * term/gfxterm.c: Likewise.
10344         * term/i386/pc/vesafb.c: Likewise.
10345         * term/i386/pc/vga.c: Likewise.
10347 2009-05-04  David S. Miller  <davem@davemloft.net>
10349         * kern/ieee1275/openfw.c (grub_children_iterate): Fix string
10350         pointer args to grub_ieee1275_get_property().
10352         * conf/sparc64-ieee1275.rmk: Fix build due to missing '\'.
10354         * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
10355         devices, and do not traverse down under controller nodes.
10357         * disk/ieee1275/ofdisk.c (compute_dev_path): New.
10358         (grub_ofdisk_open): Use it to un-escape "," characters.
10359         * kern/disk.c (find_part_sep): New.
10360         (grub_disk_open): Use it to find the first non-escaped ','
10361         character in the disk name.
10362         * util/ieee1275/devicemap.c (escape_of_path): New.
10363         (grub_util_emit_devicemap_entry): Use it.
10364         * util/sparc64/ieee1275/grub-install.in: Update script to
10365         strip partition specifiers properly by not triggering on
10366         '\' escaped ',' characters.
10368 2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>
10370         * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set
10371         to 0x300.
10372         * loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few
10373         resolutions.
10374         (linux_vesafb_modes): Add a lot of additional modes to the list (based
10375         on documentation from Wikipedia).
10377 2009-05-04  Pavel Roskin  <proski@gnu.org>
10379         * disk/ata.c: Spelling fixes.
10380         * disk/raid.c: Likewise.
10381         * disk/usbms.c: Likewise.
10382         * disk/dmraid_nvidia.c: Likewise.
10383         * kern/ieee1275/openfw.c: Likewise.
10384         * kern/ieee1275/init.c: Likewise.
10385         * kern/ieee1275/cmain.c: Likewise.
10386         * boot/i386/pc/cdboot.S: Likewise.
10387         * video/readers/png.c: Likewise.
10388         * video/i386/pc/vbe.c: Likewise.
10389         * fs/udf.c: Likewise.
10390         * fs/hfs.c: Likewise.
10391         * fs/reiserfs.c: Likewise.
10392         * efiemu/runtime/efiemu.c: Likewise.
10393         * efiemu/main.c: Likewise.
10394         * efiemu/mm.c: Likewise.
10395         * include/grub/elf.h: Likewise.
10396         * include/grub/xnu.h: Likewise.
10397         * include/grub/usbdesc.h: Likewise.
10398         * include/grub/usb.h: Likewise.
10399         * include/grub/script_sh.h: Likewise.
10400         * include/grub/lib/LzmaEnc.h: Likewise.
10401         * include/grub/efiemu/efiemu.h: Likewise.
10402         * include/grub/command.h: Likewise.
10403         * normal/menu.c: Likewise.
10404         * normal/main.c: Likewise.
10405         * normal/datetime.c: Likewise.
10406         * bus/usb/uhci.c: Likewise.
10407         * mmap/i386/uppermem.c: Likewise.
10408         * mmap/mmap.c: Likewise.
10409         * commands/acpi.c: Likewise.
10410         * commands/test.c: Likewise.
10411         * partmap/apple.c: Likewise.
10412         * font/font.c: Likewise.
10413         * loader/sparc64/ieee1275/linux.c: Likewise.
10414         * loader/macho.c: Likewise.
10415         * loader/i386/bsd_trampoline.S: Likewise.
10416         * loader/i386/bsd.c: Likewise.
10417         * loader/xnu.c: Likewise.
10418         * term/i386/pc/vesafb.c: Likewise.
10419         * term/usb_keyboard.c: Likewise.
10420         * util/resolve.c: Likewise.
10421         * util/getroot.c: Likewise.
10423 2009-05-04  Felix Zielcke  <fzielcke@z-51.de>
10425         * conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA.
10427 2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>
10429         * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix
10430         build error.
10432 2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>
10434         * loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility
10435         parameter only available on BIOS.
10437 2009-05-04  Vladimir Serbinenko  <phcoder@gmail.com>
10439         Removed wrong semicolon in declaration
10441         * grub/misc.h (grub_dprintf): remove semicolon
10443 2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>
10445         * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro.
10446         (grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this
10447         is done by grub_cmd_linux() now).
10448         [! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set,
10449         restore video to text mode.
10450         (grub_cmd_linux): Default `vid_mode' initialization to 0, which
10451         indicates lack of "vga=" parameter.  "vga=0" is mapped to
10452         `GRUB_LINUX_VID_MODE_NORMAL'.
10454 2009-05-04  Felix Zielcke  <fzielcke@z-51.de>
10456         * conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c',
10457         `normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c'
10458         and `normal/script.c'.  Add `kern/rescue_reader.c',
10459         `kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c',
10460         `script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and
10461         `grub_script.tab.c'.
10463         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10464         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
10465         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10466         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
10467         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10469         * Makefile.in: Remove duplicated 2008 in Copyright line.
10471 2009-05-04  Robert Millan  <rmh.grub@aybabtu.com>
10473         * util/misc.c (grub_util_warn): New function.  Emits a warning
10474         unconditionally.
10475         * include/grub/util/misc.h (grub_util_warn): New declaration.
10477         * util/i386/pc/grub-install.in: Understand --force and pass it down
10478         to grub-setup.
10480         * util/i386/pc/grub-setup.c (main): Understand --force and pass it
10481         down to setup().
10482         (setup): Improve error messages and add warnings when requested to
10483         install in odd layouts.  Refuse to install using blocklists unless
10484         --force was set.
10486 2009-05-04  martin f. krafft  <madduck@madduck.net>
10488         * disk/raid.c (grub_raid_scan_device): Improve debug message.
10490 2009-05-04  Vladimir Serbinenko  <phcoder@gmail.com>
10492         Updated copyright year
10494         * fs/hfsplus.c: updated copyright year
10496 2009-05-04  Vladimir Serbinenko  <phcoder@gmail.com>
10498         HFS+ UUID
10500         * fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field
10501         in the space previously used by unused3
10502         (grub_hfsplus_uuid): new function
10503         (grub_hfsplus_fs): added uuid field
10505 2009-05-03  Pavel Roskin  <proski@gnu.org>
10507         * disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to
10508         suppress warnings.  It's no longer needed.
10509         * disk/host.c: Likewise.
10510         * disk/ata_pthru.c: Likewise.
10511         * disk/loopback.c: Likewise.
10512         * hook/datehook.c: Likewise.
10513         * parttool/pcpart.c: Likewise.
10514         * fs/i386/pc/pxe.c: Likewise.
10515         * fs/ntfscomp.c: Likewise.
10516         * efiemu/main.c: Likewise.
10517         * mmap/mmap.c: Likewise.
10518         * commands/crc.c: Likewise.
10519         * commands/hexdump.c: Likewise.
10520         * commands/hdparm.c: Likewise.
10521         * commands/acpi.c: Likewise.
10522         * commands/echo.c: Likewise.
10523         * commands/minicmd.c: Likewise.
10524         * commands/blocklist.c: Likewise.
10525         * commands/memrw.c: Likewise.
10526         * commands/loadenv.c: Likewise.
10527         * commands/usbtest.c: Likewise.
10528         * commands/lsmmap.c: Likewise.
10529         * commands/boot.c: Likewise.
10530         * commands/parttool.c: Likewise.
10531         * commands/configfile.c: Likewise.
10532         * commands/search.c: Likewise.
10533         * commands/ieee1275/suspend.c: Likewise.
10534         * commands/cat.c: Likewise.
10535         * commands/i386/pc/pxecmd.c: Likewise.
10536         * commands/i386/pc/play.c: Likewise.
10537         * commands/i386/pc/halt.c: Likewise.
10538         * commands/i386/pc/vbeinfo.c: Likewise.
10539         * commands/i386/pc/vbetest.c: Likewise.
10540         * commands/lspci.c: Likewise.
10541         * commands/date.c: Likewise.
10542         * commands/handler.c: Likewise.
10543         * commands/ls.c: Likewise.
10544         * commands/test.c: Likewise.
10545         * commands/cmp.c: Likewise.
10546         * commands/efi/loadbios.c: Likewise.
10547         * commands/efi/fixvideo.c: Likewise.
10548         * commands/halt.c: Likewise.
10549         * commands/help.c: Likewise.
10550         * commands/reboot.c: Likewise.
10551         * hello/hello.c: Likewise.
10552         * script/sh/main.c: Likewise.
10553         * loader/xnu.c: Likewise.
10554         * term/terminfo.c: Likewise.
10555         * term/i386/pc/serial.c: Likewise.
10556         * term/usb_keyboard.c: Likewise.
10558 2009-05-03  David S. Miller  <davem@davemloft.net>
10560         * normal/menu.c: Include grub/parser.h
10562 2009-05-03  Pavel Roskin  <proski@gnu.org>
10564         * mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*,
10565         not char*.
10566         * mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise.
10567         Suggested by Javier Martín <lordhabbit@gmail.com>
10569         * util/i386/pc/grub-mkrescue.in: Allow for the case when
10570         efiemu??.o doesn't exist.
10571         * util/i386/pc/grub-install.in: Likewise.  Use "cp -f" for
10572         copying.
10574 2009-05-03  Bean  <bean123ch@gmail.com> Vladimir Serbinenko  <phcoder@gmail.com>
10576         FreeBSD 64-bit support
10578         * conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S
10579         and loader/i386/bsd_trampoline.S
10580         (bsd_mod_ASFLAGS): new variable
10581         * include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition
10582         (FREEBSD_MODTYPE_KERNEL64): likewise
10583         (grub_bsd64_trampoline_start): likewise
10584         (grub_bsd64_trampoline_end): likewise
10585         (grub_bsd64_trampoline_selfjump): likewise
10586         (grub_bsd64_trampoline_gdt): likewise
10587         * include/grub/i386/loader.h (grub_unix_real_boot): moved from here ...
10588         * include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here
10589         * kern/i386/loader.S (grub_unix_real_boot): moved from here ...
10590         * loader/i386/bsd_helper.S (grub_unix_real_boot): moved here
10591         * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
10592         of "attrib" member
10593         * loader/i386/bsd_pagetable.c: new file
10594         * loader/i386/bsd_trampoline.S: likewise
10595         * loader/i386/bsd.c (ALIGN_QWORD): new macro
10596         (ALIGN_VAR): likewise
10597         (entry_hi): new variable
10598         (kern_end_mdofs): likewise
10599         (is_64bit): likewise
10600         (grub_freebsd_add_meta): use ALIGN_VAR
10601         (grub_e820_mmap): new declaration
10602         (grub_freebsd_add_mmap): new function
10603         (grub_freebsd_add_meta_module): support 64 bit kernels
10604         (grub_freebsd_list_modules): use ALIGN_VAR
10605         (gdt_descriptor): new declaration
10606         (grub_freebsd_boot): support 64 bit kernels
10607         (grub_bsd_elf64_hook): new function
10608         (grub_bsd_load_elf): support elf64
10610 2009-05-03  Bean  <bean123ch@gmail.com>
10612         * script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno
10613         after we get the result of if statement.
10615 2009-05-03  Bean  <bean123ch@gmail.com>
10617         * Makefile.in (enable_efiemu): New variable.
10619         * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is
10620         set.
10621         (efiemu32.o): Use macro $< for source file, add $(srcdir) to include
10622         path.
10623         (efi64_c.o): Use macro $< for source file, add $(srcdir) to include
10624         path, add -mno-red-zone option.
10625         (efiemu64_s.o): Likewise.
10626         (efiemu64.o): Use macro $^ for source file.
10628         * configure.ac (--enable-efiemu): New option.
10630 2009-05-03  Vladimir Serbinenko  <phcoder@gmail.com>
10632         xnu support
10634         * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h
10635         (pkglib_MODULES): add xnu.mod
10636         (xnu_mod_SOURCES): new variable
10637         (xnu_mod_CFLAGS): likewise
10638         (xnu_mod_LDFLAGS): likewise
10639         (xnu_mod_ASFLAGS): likewise
10640         * conf/i386-pc.rmk: likewise
10641         * conf/x86_64-efi.rmk: likewise
10642         * include/grub/efi/efi.h (grub_efi_finish_boot_services):
10643         new declaration
10644         * include/grub/i386/macho.h: new file
10645         * include/grub/i386/xnu.h: likewise
10646         * include/grub/macho.h: likewise
10647         * include/grub/machoload.h: likewise
10648         * include/grub/x86_64/macho.h: likewise
10649         * include/grub/x86_64/xnu.h: likewise
10650         * include/grub/xnu.h: likewise
10651         * kern/efi/efi.c (grub_efi_finish_boot_services): new function
10652         * kern/efi/mm.c (MAX_HEAP_SIZE): increase
10653         * loader/i386/efi/xnu.c: new file
10654         * loader/i386/pc/xnu.c: likewise
10655         * loader/i386/xnu.c: likewise
10656         * loader/i386/xnu_helper.S: likewise
10657         * loader/macho.c: likewise
10658         * loader/xnu.c: likewise
10659         * loader/xnu_resume.c: likewise
10660         * util/grub-dumpdevtree: likewise
10661         * include/grub/i386/pit.h: include grub/err.h
10662         (grub_pit_wait): export
10663         * util/grub.d/30_os-prober.in: support Darwin/Mac OS X
10665 2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>
10667         Efiemu
10669         * conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram,
10670         _linux_efi, linux_efi.
10671         new files in grub-emu
10672         new targets efiemu32.o and efiemu64.o
10673         * loader/linux_normal_efiemu.c: likewise
10674         * loader/i386/efi/linux.c: added preliminary efiemu support
10675         * util/i386/pc/grub-install.in: add efiemu??.o to the list of
10676         files to copy
10677         * include/grub/autoefi.h: new file
10678         * include/grub/i386/efiemu.h: likewise
10679         * include/grub/i386/pc/efiemu.h: likewise
10680         * include/grub/efi/api.h: add LL suffix when necessary
10681         new definitions relating to tables
10682         * include/grub/efiemu/efiemu.h: new file
10683         * include/grub/efiemu/runtime.h: likewise
10684         * efiemu/prepare.c: likewise
10685         * efiemu/loadcore_common.c: likewise
10686         * efiemu/loadcore64.c: likewise
10687         * efiemu/runtime/efiemu.sh: likewise
10688         * efiemu/runtime/efiemu.S: likewise
10689         * efiemu/runtime/efiemu.c: likewise
10690         * efiemu/runtime/config.h: likewise
10691         * efiemu/prepare32.c: likewise
10692         * efiemu/main.c: likewise
10693         * efiemu/modules/pnvram.c: likewise
10694         * efiemu/modules/i386: likewise
10695         * efiemu/modules/i386/pc: likewise
10696         * efiemu/modules/acpi.c: likewise
10697         * efiemu/i386/pc/cfgtables.c: likewise
10698         * efiemu/i386/loadcore64.c: likewise
10699         * efiemu/i386/loadcore32.c: likewise
10700         * efiemu/prepare64.c: likewise
10701         * efiemu/loadcore.c: likewise
10702         * efiemu/symbols.c: likewise
10703         * efiemu/mm.c: likewise
10704         * efiemu/loadcore32.c: likewise
10706 2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>
10708         ACPI spoofing
10710         * commands/acpi.c: new file
10711         * commands/i386/pc/acpi.c: likewise
10712         * commands/efi/acpi.c: likewise
10713         * include/grub/acpi.h: likewise
10714         * conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod
10715         (acpi_mod_SOURCES): new variable
10716         (acpi_mod_CFLAGS): likewise
10717         (acpi_mod_LDFLAGS): likewise
10718         * conf/i386-efi.rmk: likewise
10719         * conf/x86_64-efi.rmk: likewise
10721 2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>
10723         Missing part from mmap patch
10725         * mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to
10726         (grub_mmap_unregister)
10727         (grub_mmap_free_and_unregister): use grub_mmap_register
10729 2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>
10731         Mmap services
10733         * loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate
10734         * loader/i386/linux.c (find_mmap_size): likewise
10735         (allocate_pages): likewise
10736         * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise
10737         (grub_fill_multiboot_mmap): likewise
10738         (grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper
10739         * loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower
10740         * include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition
10741         (OPENBSD_MMAP_RESERVED): likewise
10742         * include/grub/i386/pc/memory.h: include grub/memory.h
10743         (grub_lower_mem): removed
10744         (grub_upper_mem): likewise
10745         (GRUB_MACHINE_MEMORY_ACPI): new definition
10746         (GRUB_MACHINE_MEMORY_NVS): likewise
10747         (GRUB_MACHINE_MEMORY_MAX_TYPE): likewise
10748         (GRUB_MACHINE_MEMORY_HOLE): likewise
10749         (grub_machine_mmap_register): likewise
10750         (grub_machine_mmap_unregister): likewise
10751         (grub_machine_get_upper): likewise
10752         (grub_machine_get_lower): likewise
10753         (grub_machine_get_post64): likewise
10754         * include/grub/i386/efi/memory.h: new file
10755         * include/grub/x86_64/efi/memory.h: likewise
10756         * include/grub/efi/memory.h: likewise
10757         * conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod
10758         (mmap_mod_SOURCES): new variable
10759         (mmap_mod_LDFLAGS): likewise
10760         (mmap_mod_ASFLAGS): likewise
10761         * conf/i386-coreboot.rmk: likewise
10762         * conf/i386-ieee1275.rmk: likewise
10763         * conf/i386-efi.rmk: likewise
10764         * conf/x86_64-efi.rmk: likewise
10765         * include/grub/types.h (UINT_TO_PTR): new macro
10766         (PTR_TO_UINT32): likewise
10767         (PTR_TO_UINT64): likewise
10768         * include/grub/memory.h: new file
10769         * mmap/i386/pc/mmap.c: likewise
10770         * mmap/i386/pc/mmap_helper.S: likewise
10771         * mmap/i386/uppermem.c: likewise
10772         * mmap/mmap.c: likewise
10773         * mmap/efi/mmap.c: likewise
10774         * kern/i386/coreboot/init.c (grub_machine_init): don't use
10775         grub_upper_mem
10776         * kern/i386/pc/init.c (grub_lower_mem): removed variable
10777         (grub_upper_mem): likewise
10778         (grub_machine_init): don't use grub_upper_mem,
10779         make grub_lower_mem local
10780         * loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower,
10781         grub_mmap_iterate and grub_mmap_get_upper
10782         (grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper
10784 2009-05-02  Bean  <bean123ch@gmail.com>
10786         * conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
10787         script/sh/parser.y.
10788         (pkglib_MODULES): Add normal.mod and sh.mod.
10789         (normal_SOURCES): New variable.
10790         (normal_mod_CFLAGS): Likewise.
10791         (normal_mod_LDFLAGS): Likewise.
10792         (sh_mod_SOURCES): Likewise.
10793         (sh_mod_CFLAGS): Likewise.
10794         (sh_mod_LDFLAGS): Likewise.
10796         * conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
10797         script/sh/lexer.c_DEPENDENCIES.
10798         (kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
10799         kern/rescue_reader.c and kern/rescue_parser.c.
10800         (kernel_img_HEADERS): Remove rescue.h, add reader.h.
10801         (grub_emu_SOURCES): Change source files.
10802         (pkglib_MODULES): Remove normal.mod.
10803         (normal_SOURCES): Removed.
10804         (normal_mod_CFLAGS): Likewise.
10805         (normal_mod_LDFLAGS): Likewise.
10806         * conf/i386-coreboot.rmk: Likewise.
10807         * conf/i386-efi.rmk: Likewise.
10808         * conf/i386-ieee1276.rmk: Likewise.
10809         * conf/powerpc-ieee1275.rmk: Likewise.
10810         * conf/sparc64-ieee1275.rmk: Likewise.
10811         * conf/x86_64-efi.rmk: Likewise.
10813         * include/grub/command.h (grub_command_execute): New inline function.
10815         * include/grub/menu.h (grub_menu_entry): Removed commands field.
10817         * include/grub/normal.h: Remove <grub/setjmp.h>.
10818         (grub_fs_module_list): Moved to normal/autofs.c.
10819         (grub_exit_env): Removed.
10820         (grub_command_execute): Likewise.
10821         (grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
10822         parameter script.
10823         (read_command_list): New function declaration.
10824         (read_fs_list): Likewise.
10826         * include/parser.h: Include <grub/reader.h>.
10827         (grub_parser_split_cmdline): Change type of getline parameter.
10828         (grub_parser): New structure.
10829         (grub_parser_class): New variable.
10830         (grub_parser_execute): New function declaration.
10831         (grub_register_rescue_parser): Likewise.
10832         (grub_parser_register): New inline function.
10833         (grub_parser_unregister): Likewise.
10834         (grub_parser_get_current): Likewise.
10835         (grub_parser_set_current): Likewise.
10837         * include/grub/reader.h: New file.
10838         * kern/reader.c: Likewise.
10839         * kern/rescue_parser.c: Likewise.
10840         * kern/rescue_reader.c: Likewise.
10841         * normal/autofs.c: Likewise.
10842         * normal/dyncmd.c: Likewise.
10844         * include/grub/rescue.h: Removed.
10845         * normal/command.h: Likewise.
10847         * include/grub/script.h: Moved to ...
10848         * include/grub/script_sh.h: ... Moved here.
10849         * normal/execute.c: Moved to ...
10850         * script/sh/execute.c: ... Moved here.
10851         * normal/function.c: Moved to ...
10852         * script/sh/function.c: ... Moved here.
10853         * normal/lexer.c: Moved to ...
10854         * script/sh/lexer.c: ... Moved here.
10855         * normal/parser.y: Moved to ...
10856         * script/sh/parser.y: ... Moved here.
10857         * normal/script.c: Moved to ...
10858         * script/sh/script.c: ... Moved here.
10860         * normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
10861         <grub/reader.h>.
10862         (grub_exit_env): Removed.
10863         (fs_module_list): Moved to normal/autofs.c.
10864         (grub_file_getline): Don't handle comment here.
10865         (free_menu): Skip removed field entry->commands.
10866         (grub_normal_menu_addentry): Removed as grub_menu_entry, removed
10867         script parameter.
10868         (read_config_file): Removed nested parameter, change getline function.
10869         (grub_enter_normal_mode): Removed.
10870         (grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
10871         (read_command_list): Likewise.
10872         (autoload_fs_module): Moved to normal/autofs.c.
10873         (read_fs_list): Likewise.
10874         (reader_nested): New variable.
10875         (grub_normal_execute): Run parser.sh to switch to sh parser.
10876         (grub_cmd_rescue): Removed.
10877         (cmd_normal): Removed.
10878         (grub_cmd_normal): Unregister itself at the beginning. Don't register
10879         rescue command.
10880         (grub_cmdline_run): New function.
10881         (grub_normal_reader_init): Likewise.
10882         (grub_normal_read_line): Likewise.
10883         (grub_env_write_pager): Likewise.
10884         (cmdline): New variable.
10885         (grub_normal_reader): Likewise.
10886         (GRUB_MOD_INIT): Register normal reader and set as current, register
10887         pager hook, register normal command with grub_register_command_prio,
10888         so that it won't show up in command.lst.
10889         (GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
10890         grub_fs_autoload_hook.
10892         * normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
10893         (grub_menu_execute_entry): Replace grub_script_execute with
10894         grub_parser_execute, change parameter to grub_command_execute.
10896         * normal/menu_text.c: Remove <grub/script.h>.
10898         * normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
10899         and <grub/parser.h>.
10900         (run): Change editor_getline to use new parser interface. Change
10901         parameter to grub_command_execute.
10903         * kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
10904         <grub/reader.h> and <grub/parser.h>.
10905         (grub_load_normal_mode): Execute normal command.
10906         (grub_main): Call grub_register_core_commands,
10907         grub_register_rescue_parser and grub_register_rescue_reader, use
10908         grub_reader_loop to enter input loop.
10910         * kern/parser.c (grub_parser_split_cmdline): Change type of
10911         getline parameter.
10912         (grub_parser_class): New variable.
10913         (grub_parser_execute): New function.
10915         * loader/i386/multiboot.c: Remove <grub/rescue.h>.
10916         * loader/multiboot2.c: Likewise.
10917         * loader/sparc64/ieee1275/linux.c: Likewise.
10919         * util/grub-emu.c (read_command_list): New dummy function.
10921 2009-05-02  Robert Millan  <rmh.grub@aybabtu.com>
10923         * util/deviceiter.c (grub_util_iterate_devices): Increase max drive
10924         count to 16 for CCISS and IDA.
10926 2009-05-02  Robert Millan  <rmh.grub@aybabtu.com>
10928         * normal/menu_text.c  (grub_wait_after_message): Print a newline
10929         after waiting for user input.
10931         * loader/i386/linux.c: Include `<grub/normal.h>'.
10932         (grub_cmd_linux): Improve the error message about `ask' mode, by
10933         waiting for user input so it's not missed (we can do this, since
10934         user requested interaction).
10936 2009-05-02  Vladimir Serbinenko  <phcoder@gmail.com>
10938         Added missing lst to grub-mkrescue
10940         * util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst
10941         and ${input_dir}/parttool.lst
10943 2009-04-30  David S. Miller  <davem@davemloft.net>
10945         * util/hostdisk.c (device_is_wholedisk): New function.
10946         (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is
10947         zero only if device_is_wholedisk() returns true.
10949         * util/hostdisk.c (convert_system_partition_to_system_disk):
10950         Handle virtual disk devices named /dev/vdiskX as found on sparc
10951         and powerpc.
10953         * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If
10954         lettered partition specifier is found, convert to numbered.
10956 2009-04-29  David S. Miller  <davem@davemloft.net>
10958         * include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h.
10959         * include/grub/sparc64/ieee1275/memory.h: Likewise.
10961         * normal/command.c: Add missing newline at end of file.
10963         * commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf
10964         warnings.
10965         * kern/ieee1275/openfw.c (grub_claimmap): Likewise.
10966         * disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close,
10967         grub_ofdisk_read): Likewise, and deal similarly with the fact that
10968         ihandles have a 32-bit type but need to be stored in a "void *".
10970 2009-04-28  Pavel Roskin  <proski@gnu.org>
10972         * disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev,
10973         not disk.  Adjust all dependencies.
10974         (grub_fs_uuid_close): Use grub_device_close(), not
10975         grub_disk_close().
10977         * disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy
10978         parent's partition, don't copy it by reference, as it gets freed
10979         on close.
10981 2009-04-27  Vladimir Serbinenko  <phcoder@gmail.com>
10983         Preboot hooks support
10985         * commands/boot.c (struct grub_preboot_t): new declaration
10986         (preboots_head): new variable
10987         (preboots_tail): likewise
10988         (grub_loader_register_preboot_hook): new function
10989         (grub_loader_unregister_preboot_hook): likewise
10990         (grub_loader_set): launch preboot hooks
10991         * include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type
10992         (grub_loader_register_preboot_hook): new declaration
10993         (grub_loader_unregister_preboot_hook): likewise
10995 2009-04-27  Vladimir Serbinenko  <phcoder@gmail.com>
10997         Warning fix
10999         * disk/scsi.c (grub_scsi_open): added missing cast when
11000         calling grub_dprintf
11002 2009-04-26  Vladimir Serbinenko  <phcoder@gmail.com>
11004         Bug and warning fixes
11006         * include/grub/i386/pc/init.h (grub_stop_floppy): added missing
11007         declaration
11008         * commands/test.c (test_parse): fixed bug with file tests and corrected
11009         declaration of find_file
11011 2009-04-26  Pavel Roskin  <proski@gnu.org>
11013         * Makefile.in: Don't install empty manual pages if help2man is
11014         missing.  Use help2man option for output, not shell redirection.
11016 2009-04-26  David S. Miller  <davem@davemloft.net>
11018         * util/grub-mkdevicemap.c (make_device_map): Add missing
11019         NESTED_FUNC_ATTR to process_device().
11021 2009-04-25  Vladimir Serbinenko  <phcoder@gmail.com>
11023         Test command
11025         * commands/test.c: rewritten to use bash-like test
11027 2009-04-25  Vladimir Serbinenko  <phcoder@gmail.com>
11029         Parttool autoloading and improvements
11031         * Makefile.in (pkglib_DATA): add parttool.lst
11032         (parttool.lst): new target
11033         * genmk.rb: generate parttool-*
11034         (CLEANFILES): add #{parttool}
11035         (PARTTOOLFILES): new variable
11036         * genparttoollist.sh: new file
11037         * parttool/pcpart.c (grub_pcpart_boot): more feedback
11038         (grub_pcpart_type): likewise
11039         * commands/parttool.c (helpmsg): new variable
11040         (grub_cmd_parttool): output help if not enough arguments are supplied
11041         autoload modules
11042         (GRUB_MOD_INIT(parttool)): use helpmsg
11044 2009-04-24  David S. Miller  <davem@davemloft.net>
11046         Avoiding opening same device multiple times in device iterator.
11048         * kern/device.c: (grub_device_iterate): Define struct part_ent,
11049         and use it to build a list of partitions in iterate_disk() and
11050         iterate_partition().
11052         * disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close()
11053         on disk->data.
11055         * disk/ieee1275/nand.c (grub_nand_iterate): Return
11056         grub_devalias_iterate() result instead of unconditional 0.
11057         * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise.
11058         Also, capture hook return value, either directly or via
11059         grub_children_iterate(), and propagate to caller.
11060         * include/grub/ieee1275/ieee1275.h (grub_devalias_iterate,
11061         grub_children_iterate): Return value is now 'int' instead of
11062         'grub_err_t'.
11063         * kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave
11064         like a proper iterator, stopping when hooks return non-zero.
11065         (grub_devalias_iterate): Likewise.
11067 2009-04-23  David S. Miller  <davem@davemloft.net>
11069         * kern/sparc64/ieee1275/openfw.c: Unused, delete.
11071 2009-04-22  David S. Miller  <davem@davemloft.net>
11073         * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells
11074         is larger than address_cells, use that value for address_cells too.
11076         * include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN,
11077         IEEE1275_MAX_PATH_LEN): Define.
11078         * kern/ieee1275/openfw.c (grub_children_iterate): Dynamically
11079         allocate 'childtype', 'childpath', 'childname', and 'fullname'.
11080         (grub_devalias_iterate): Dynamically allocate 'aliasname' and
11081         'devtype'.  Explicitly NULL terminate devalias expansion.
11083         * util/sparc64/ieee1275/misc.c: New file.
11084         * util/sparc64/ieee1275/grub-setup.c: New file.
11085         * util/sparc64/ieee1275/grub-ofpathname.c: New file.
11086         * util/sparc64/ieee1275/grub-mkimage.c: New file.
11087         * util/sparc64/ieee1275/grub-install.in: New file.
11088         * util/ieee1275/ofpath.c: New file.
11089         * util/ieee1275/devicemap.c: New file.
11090         * util/devicemap.c: New file.
11091         * util/deviceiter.c: New file.
11092         * kern/sparc64/ieee1275/init.c: New file.
11093         * include/grub/util/ofpath.h: New file.
11094         * include/grub/util/deviceiter.h: New file.
11095         * util/grub-mkdevicemap.c: Include deviceiter.h.
11096         Implement using grub_util_emit_devicemap_entry and
11097         grub_util_iterate_devices.
11098         * conf/i386-corebook.rmk: Build util/deviceiter.c and
11099         util/devicemap.c into grub-mkdevicemap
11100         * conf/i386-efi.rmk: Likewise.
11101         * conf/i386-ieee1275.rmk: Likewise.
11102         * conf/i386-pc.rmk: Likewise.
11103         * conf/powerpc-ieee1275.rmk: Likewise.
11104         * conf/sparc64-ieee1275.rmk: Add rules to build boot block
11105         images and installation utilities.  Build kernel as image
11106         instead of as elf binary.  Use common rules as much as possible.
11108 2009-04-19  Vladimir Serbinenko  <phcoder@gmail.com>
11110         Correct GPT definition
11112         * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
11113         of "attrib" member
11115 2009-04-19  Felix Zielcke  <fzielcke@z-51.de>
11117         * INSTALL: Replace `autogen.sh' with `./autogen.sh'.
11119 2009-04-19  David S. Miller  <davem@davemloft.net>
11121         * loader/sparc64/ieee1275/linux.c: Include grub/command.h
11122         (grub_rescue_cmd_linux): Rename to...
11123         (grub_cmd_linux): and fix prototype.
11124         (grub_rescue_cmd_initrd): Rename to...
11125         (grub_cmd_initrd): and fix prototype.
11126         (cmd_linux, cmd_initrd): New.
11127         (GRUB_MOD_INIT(linux)): Use grub_register_command().
11128         (GRUB_MOD_FINI(linux): Use grub_unregister_command().
11130 2009-04-17  Pavel Roskin  <proski@gnu.org>
11132         * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
11133         format.
11134         (grub_ohci_transfer): Likewise.
11136         * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.
11138         * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
11139         return without a value.  Fix inconsistent indentation.
11141         * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
11142         match struct grub_fs.
11144         * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
11145         * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
11146         * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
11147         * commands/lspci.c (grub_lspci_iter): Likewise.
11149 2009-04-16  Bean  <bean123ch@gmail.com>
11151         * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
11152         value.
11154 2009-04-15  Pavel Roskin  <proski@gnu.org>
11156         * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
11157         LONG_MAX to GRUB_LONG_MAX.  Introduce GRUB_LONG_MIN.  Update all
11158         users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
11159         definitions.
11161 2009-04-15  Felix Zielcke  <fzielcke@z-51.de>
11163         * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
11164         that no multiple data or metadata areas are supported and `Unknown
11165         metadata header'.
11167 2009-04-15  Vladimir Serbinenko  <phcoder@gmail.com>
11169         Move loader out of the kernel
11171         * kern/loader.c: moved to ...
11172         * commands/boot.c: ... moved here
11173         * commands/minicmd.c (grub_mini_cmd_boot): moved to ...
11174         * commands/boot.c (grub_cmd_boot): moved here. All users updated
11175         * include/grub/kernel.h (grub_machine_fini): export
11176         * include/grub/loader.h (grub_loader_is_loaded): update declaration
11177         (grub_loader_set): likewise
11178         (grub_loader_unset): likewise
11179         (grub_loader_boot): likewise
11180         * conf/common.rmk: new module boot.mod
11181         (pkglib_MODULES): add boot.mod
11182         * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
11183         (grub_emu_SOURCES): likewise
11184         * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
11185         (grub_emu_SOURCES): likewise
11186         * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
11187         (grub_emu_SOURCES): likewise
11188         * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
11189         (grub_emu_SOURCES): likewise
11190         * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
11191         (grub_emu_SOURCES): likewise
11192         * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise
11193         (grub_emu_SOURCES): likewise
11194         * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
11195         (grub_emu_SOURCES): likewise
11197 2009-04-15  Vladimir Serbinenko  <phcoder@gmail.com>
11199         use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
11201         * kern/misc.c (grub_itoa): Removed function
11202         (grub_ltoa): likewise
11203         (grub_vsprintf): use grub_lltoa
11205 2009-04-15  Vladimir Serbinenko  <phcoder@gmail.com>
11207         Restore grub-emu
11209         * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
11210         * conf/i386-coreboot.rmk: likewise
11211         * conf/i386-ieee1275.rmk: likewise
11212         * conf/powerpc-ieee1275.rmk: likewise
11214 2009-04-15  Felix Zielcke  <fzielcke@z-51.de>
11216         * INSTALL: Add that `./autogen.sh' needs to be run before
11217         `./configure.'.
11219 2009-04-14  Bean  <bean123ch@gmail.com>
11221         * Makefile.in (pkglib_DATA): Add handler.lst.
11222         (handler.lst): New rule.
11224         * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
11225         * conf/i386-coreboot.rmk: Likewise.
11226         * conf/i386-ieee1275.rmk: Likewise.
11227         * conf/i386-efi.rmk: Likewise.
11228         * conf/x86_64-efi.rmk: Likewise.
11229         * conf/powerpc-ieee1275.rmk: Likewise.
11230         * conf/sparc64-ieee1275.rmk: Likewise.
11232         * genhandlerlist.sh: New file.
11234         * genmk.rb: Add rules to generate handler.lst.
11236         * include/grub/normal.h (grub_file_getline): New function definition.
11237         (read_handler_list): Likewise.
11238         (free_handler_list): Likewise.
11240         * include/grub/term.h (grub_term_register_input): Add name parameter
11241         for auto generation of handler.lst.
11242         (grub_term_register_output): Likewise.
11244         * normal/handler.c: New file.
11246         * normal/main.c (get_line): Renamed to grub_file_getline.
11247         (read_config_file): Use the newly renamed grub_file_getline.
11248         (read_command_list): Likewise.
11249         (read_fs_list): Likewise.
11250         (grub_normal_execute): Call read_handler_list to parse handler.lst.
11251         (GRUB_MOD_FINI): Call free_handler_list to free handler list.
11253         * term/efi/console.c (grub_console_init): Add name parameter for auto
11254         generation of handler.lst.
11255         * term/gfxterm.c: Likewise.
11256         * term/i386/pc/at_keyboard.c: Likewise.
11257         * term/i386/pc/console.c: Likewise.
11258         * term/i386/pc/serial.c: Likewise.
11259         * term/i386/pc/vesafb.c: Likewise.
11260         * term/i386/pc/vga.c: Likewise.
11261         * term/i386/pc/vga_text.c: Likewise.
11262         * term/ieee1275/ofconsole.c: Likewise.
11263         * term/usb_keyboard.c: Likewise.
11265 2009-04-14  Bean  <bean123ch@gmail.com>
11267         * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
11268         properly with null character.
11270 2009-04-14  Felix Zielcke  <fzielcke@z-51.de>
11272         * configure: Remove.
11273         * config.h.in: Likewise.
11274         * stamp-h.in: Likewise.
11275         * DISTLIST: Likewise.
11276         * conf/common.mk: Likewise.
11277         * conf/i386-coreboot.mk: Likewise.
11278         * conf/i386-efi.mk: Likewise.
11279         * conf/i386-ieee1275.mk: Likewise.
11280         * conf/i386.mk: Likewise.
11281         * conf/i386-pc.mk: Likewise.
11282         * conf/powerpc-ieee1275.mk: Likewise.
11283         * conf/sparc64-ieee1275.mk: Likewise.
11284         * conf/x86_64-efi.mk: Likewise.
11286         * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
11287         develop on GRUB.
11289 2009-04-14  John Stanley  <jpsinthemix@verizon.net>
11290             David S. Miller  <davem@davemloft.net>
11292         * util/hostdisk.c (make_device_name): Fix buffer length
11293         calculations.
11295 2009-04-14  Felix Zielcke  <fzielcke@z-51.de>
11297         * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
11298         <sys/param.h> and <sys/sysctl.h>.
11299         (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
11300         to add 0x10 to `kern.geom.debugflags' if it's not already set, before
11301         opening the device and reset them afterwards.
11303 2009-04-13  Pavel Roskin  <proski@gnu.org>
11305         * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
11306         Reported by John Stanley <jpsinthemix@verizon.net>
11308 2009-04-13  Robert Millan  <rmh@aybabtu.com>
11310         * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
11311         that name for menuentries when appropriate.
11313 2009-04-13  Felix Zielcke  <fzielcke@z-51.de>
11315         * util/grub.d/10_freebsd.in: Add a missing `fi'.
11317 2009-04-13  Robert Millan  <rmh@aybabtu.com>
11319         * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
11320         to Linux, simply abort telling the user it's no longer supported.
11322 2009-04-13  Felix Zielcke  <fzielcke@z-51.de>
11324         * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
11325         doesn't exist.  Check also for /boot/kernel/kernel.gz.  Print
11326         `freebsd_loadenv' only when devices.hints exist.
11328 2009-04-13  Pavel Roskin  <proski@gnu.org>
11330         * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
11332 2009-04-13  Felix Zielcke  <fzielcke@z-51.de>
11334         * util/i386/pc/grub-install.in (install_drive): Remove the BSD
11335         partition number.
11336         (grub_drive): Likewise.
11338 2009-04-13  David S. Miller  <davem@davemloft.net>
11340         * kern/sparc64/ieee1275/ieee1275.c: New file.
11341         * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
11342         IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
11343         IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
11344         IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
11345         (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
11346         grub_ieee1275_alloc_physmem): Declare new exported functions.
11348         * include/grub/sparc64/ieee1275/loader.h: New file.
11349         * include/grub/sparc64/ieee1275/memory.h: Likewise.
11350         * include/grub/sparc64/kernel.h: Likewise.
11351         * loader/sparc64/ieee1275/linux.c: Likewise.
11353         * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
11354         (grub_fstest_SOURCES): Likewise.
11356         * util/hostdisk.c (make_device_name): Do not make any assumptions
11357         about the length of drive names.
11359         * kern/dl.c (grub_dl_load_file): Close file immediately when
11360         we are done using it.
11362 2009-04-12  David S. Miller  <davem@davemloft.net>
11364         * kern/misc.c (grub_ltoa): Fix cast when handling negative
11365         values.  Noticed by Pavel Roskin.
11367         * configure.ac: Check for __bswapsi2 and__bswapdi2 using
11368         target compiler.
11370         * genmk.rb: Add more flexible image type specification, also
11371         pass --strip-unneeded to objcopy.
11372         * conf/i386-pc.rmk: Use *_FORMAT.
11373         * conf/i386-pc.mk: Rebuilt.
11375         * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
11376         (OFDISK_HASH_SZ): Define.
11377         (ofdisk_hash): New hash table.
11378         (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
11379         (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
11380         instead of device phandle which is not unique.
11382         * kern/sparc64/ieee1275/init.c: Delete, replace with...
11383         * kern/sparc64/ieee1275/crt0.S: assembler implementation.
11384         * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
11385         (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
11386         GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
11387         GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
11388         GRUB_KERNEL_MACHINE_DATA_END): Define.
11389         (grub_kernel_image_size, grub_total_module_size): Declare.
11391 2009-04-12  Pavel Roskin  <proski@gnu.org>
11393          * configure.ac: Change the logic when we check for target tools.
11394          Do it when the target is specified and it's different from the
11395          specified value of the host.
11397 2009-04-11  Felix Zielcke  <fzielcke@z-51.de>
11399         * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
11400         (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
11401         GNU/kFreeBSD. Check if a device is a character device. Use
11402         DIOCGMEDIASIZE to get the size.
11403         (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
11404         support for GNU/kFreeBSD.
11405         (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
11406         is a character device instead of a block device. Add support for
11407         FreeBSD device names.
11409         * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
11410         is a character device instead of a block device.
11412         * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
11413         is a character device instead of a block device.
11415 2009-04-11  Andrey Shuvikov  <mr_hyro@yahoo.com>
11417         * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
11418         (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
11419         FreeBSD. Check if a device is a character device. Use
11420         DIOCGMEDIASIZE to get the size.
11421         (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
11422         support for FreeBSD.
11423         (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
11424         is a character device instead of a block device. Add support for
11425         FreeBSD device names.
11427         * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
11428         a character device instead of a block device.
11429         (grub_util_check_char_device): New function.
11431         * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
11432         a character device instead of a block device.
11434         * include/grub/util/getroot.h (grub_util_check_char_device): New
11435         prototype.
11437 2009-04-11  David S. Miller  <davem@davemloft.net>
11439         * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
11440         static libgcc.
11441         * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
11442         * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
11443         function, if present.
11444         (__bswapdi2): Likewise.
11446         * include/grub/sparc64/ieee1275/boot.h: New file.
11447         * boot/sparc64/ieee1275/boot.S: Likewise.
11448         * boot/sparc64/ieee1275/diskboot.S: Likewise.
11450         * kern/misc.c (grub_ltoa): New function.
11451         (grub_vsprintf): Use it to format 'long' integers.
11453 2009-04-10  David S. Miller  <davem@davemloft.net>
11455         * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
11456         slots are of type grub_ieee1275_cell_t.
11457         (grub_nand_read): Likewise.
11458         * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
11459         IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
11460         macros are used to compare values in arg/ret block of the call.
11461         (grub_ieee1275_finddevice, grub_ieee1275_get_property,
11462         grub_ieee1275_next_property, grub_ieee1275_get_property_length,
11463         grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
11464         grub_ieee1275_instance_to_path, grub_ieee1275_write,
11465         grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
11466         grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
11467         grub_ieee1275_close, grub_ieee1275_set_property,
11468         grub_ieee1275_set_color): All ieee1275 call arg slots are of type
11469         grub_ieee1275_cell_t.
11470         * kern/ieee1275/openfw.c (grub_map): Likewise.
11471         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
11472         grub_ieee1275_phandle_t): Define as grub_unit32_t type.
11474         * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
11475         * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
11476         (grub_devalias_iterate): Likewise.
11478 2009-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
11480         UFS improvements
11482         * fs/ufs.c (INODE_NBLOCKS): new definition
11483         (struct grub_ufs_dirent): added fields for non-BSD dirents
11484         (grub_ufs_get_file_block): fixed double indirect handling
11485         (grub_ufs_lookup_symlink): use more robust way to determine whether
11486         symlink is inline
11487         (grub_ufs_find_file): support for non-BSD dirents
11488         (grub_ufs_dir): support for non-BSD dirents
11490 2009-04-10  Bean  <bean123ch@gnail.com>
11492         * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
11493         attribute, otherwise the size would be wrong for i386 platform.
11495         * include/grub/pci.h (grub_pci_read_word): New inline function.
11496         (grub_pci_read_byte): Likewise.
11497         (grub_pci_write): Likewise.
11498         (grub_pci_write_word): Likewise.
11499         (grub_pci_write_byte): Likewise.
11501         * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
11503         * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
11504         (find_framebuf): Scan pci to locate the frame buffer address.
11506         * commands/efi/fixvideo.c: New file.
11508         * commands/efi/loadbios.c: Likewise.
11510         * commands/memrw.c: Likewise.
11512         * util/grub-dumpbios.in: Likewise.
11514         * conf/common.rmk (grub-dumpbios): New utility.
11515         (pkglib_MODULES): New module memrw.mod.
11516         (memrw_mod_SOURCE): New macro.
11517         (memrw_mod_CFLAGS): Likewise.
11518         (memrw_mod_LDFLAGS): Likewise.
11520         * conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and
11521         fixvideo.mod.
11522         (loadbios_mod_SOURCE): New macro.
11523         (loadbios_mod_CFLAGS): Likewise.
11524         (loadbios_mod_LDFLAGS): Likewise.
11525         (fixvideo_mod_SOURCE): Likewise.
11526         (fixvideo_mod_CFLAGS): Likewise.
11527         (fixvideo_mod_LDFLAGS): Likewise.
11529         * conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and
11530         fixvideo.mod.
11531         (loadbios_mod_SOURCE): New macro.
11532         (loadbios_mod_CFLAGS): Likewise.
11533         (loadbios_mod_LDFLAGS): Likewise.
11534         (fixvideo_mod_SOURCE): Likewise.
11535         (fixvideo_mod_CFLAGS): Likewise.
11536         (fixvideo_mod_LDFLAGS): Likewise.
11538 2009-04-08  Felix Zielcke  <fzielcke@z-51.de>
11540         * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
11542 2009-04-07  David S. Miller  <davem@davemloft.net>
11544         * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
11545         support for R_SPARC_OLO10 relocations.  Fix compile warning for
11546         R_SPARC_WDISP30 case.
11547         * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
11549 2009-04-06  Pavel Roskin  <proski@gnu.org>
11551         * include/grub/misc.h (ARRAY_SIZE): New macro.
11552         * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
11553         New macro.
11554         * loader/i386/linux.c (allocate_pages): Use free_pages().
11555         (grub_linux_unload): Don't use free_pages().
11556         (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
11557         wrong index.  Treat all other modes as text modes.
11558         (grub_cmd_linux): Initialize vid_mode unconditionally to
11559         GRUB_LINUX_VID_MODE_NORMAL.  Recognize and support "vga=ask".
11561         * commands/help.c (print_command_help): Use cmd->prio, not
11562         cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
11564 2009-04-06  Vladimir Serbinenko  <phcoder@gmail.com>
11566         Parttool
11568         * parttool/pcpart.c: new file
11569         * commands/parttool.c: likewise
11570         * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
11571         (parttool_mod_SOURCES): new variable
11572         (parttool_mod_CFLAGS): likewise
11573         (parttool_mod_LDFLAGS): likewise
11574         (pcpart_mod_SOURCES): likewise
11575         (pcpart_mod_CFLAGS): likewise
11576         (pcpart_mod_LDFLAGS): likewise
11577         * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
11578         and parttool/pcpart.c
11579         * conf/i386-efi.rmk: likewise
11580         * conf/i386-ieee1275.rmk: likewise
11581         * conf/i386-pc.rmk: likewise
11582         * conf/powerpc-ieee1275.rmk: likewise
11583         * conf/sparc64-ieee1275.rmk: likewise
11584         * conf/x86_64-ieee1275.rmk: likewise
11586 2009-04-05  Vladimir Serbinenko  <phcoder@gmail.com>
11588         Support for mtime and further expandability of dir command
11590         * include/grub/lib/datetime.h: moved to ...
11591         * include/grub/datetime.h: ... moved here and added
11592         declaration of grub_unixtime2datetime. All users updated
11593         * include/grub/fs.h: new syntax for dir and mtime functions in
11594         struct grub_fs
11595         * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
11596         and GRUB_FSHELP_FLAGS_MASK
11597         * commands/ls.c (grub_ls_list_files): Write mtime in long format
11598         * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
11599         (grub_ext2_mtime): new function
11600         * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
11601         (grub_hfsplus_mtime): new function
11602         * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
11603         (GRUB_UFS_ATTR_FILE): likewise
11604         (GRUB_UFS_ATTR_LNK): likewise
11605         (struct grub_ufs_sblock): new fields mtime
11606         (grub_ufs_read_inode): new parameter to read inode to a separate buffer
11607         all users updated
11608         (grub_ufs_dir): mtime support
11609         (grub_ufs_mtime): new function
11610         * fs/affs.c (grub_affs_dir): use new dir syntax
11611         * fs/afs.c (grub_afs_dir): likewise
11612         * fs/cpio.c (grub_cpio_dir): likewise
11613         * fs/fat.c (grub_fat_find_dir): likewise
11614         * fs/hfs.c (grub_hfs_dir): likewise
11615         * fs/iso9660.c (grub_iso9660_dir): likewise
11616         * fs/jfs.c (grub_jfs_dir): likewise
11617         * fs/minix.c (grub_minix_dir): likewise
11618         * fs/ntfs.c (grub_ntfs_dir): likewise
11619         * fs/reiserfs.c (grub_reiserfs_dir): likewise
11620         * fs/sfs.c (grub_sfs_dir): likewise
11621         * fs/xfs.c (grub_xfs_dir): likewise
11622         * util/hostfs.c (grub_hostfs_dir): likewise
11623         * lib/datetime.c: moved to ...
11624         * normal/datetime.c: ... moved here
11625         (grub_unixtime2datetime): new function
11626         * kern/rescue.c (grub_rescue_print_files): use new dir syntax
11627         * normal/completion.c (iterate_dir): use new dir syntax
11628         * normal/misc.c (grub_normal_print_device_info): tell the
11629         last modification time of a volume
11630         * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
11631         * conf/common.rmk: added lib/datetime.c to ls.mod
11632         * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
11633         (normal_mod_SOURCES): likewise
11634         (datetime_mod_SOURCES): Removed lib/datetime.c
11635         * conf/i386-efi.rmk: likewise
11636         * conf/i386-ieee1275.rmk: likewise
11637         * conf/i386-pc.rmk: likewise
11638         * conf/powerpc-ieee1275.rmk: likewise
11639         * conf/sparc64-ieee1275.rmk: likewise
11640         * conf/x86_64-efi.rmk: likewise
11642 2009-04-05  Vladimir Serbinenko  <phcoder@gmail.com>
11644         Trim trailing spaces in FAT label and support mtools-like labels
11646         * fs/fat.c (grub_fat_iterate_dir): New function based
11647         on grub_fat_find_dir
11648         (grub_fat_find_dir): use grub_fat_iterate_dir
11649         (grub_fat_label): likewise
11651 2009-04-04  Vladimir Serbinenko  <phcoder@gmail.com>
11653         * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
11654         and command.h
11655         remove extraneous kernel_elf_HEADERS
11657 2009-04-04  Bean  <bean123ch@gnail.com>
11659         * include/grub/util/misc.h: Add dummy function fsync for mingw.
11661         * util/misc.c: Likewise.
11663 2009-04-04  Yoshinori K. Okuji  <okuji@enbug.org>
11665         * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
11666         instead of grub_printf.
11668 2009-04-03  Robert Millan  <rmh@aybabtu.com>
11670         * loader/i386/linux.c (grub_linux_setup_video): Fill
11671         `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
11672         values from `mode info' structure instead of hardcoded
11673         values.
11675 2009-04-01  Pavel Roskin  <proski@gnu.org>
11677         * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
11678         unused now.
11679         * genmk.rb: Likewise.
11680         * configure.ac: Likewise.
11682 2009-04-01  Manoel Abranches  <mrabran@linux.vnet.ibm.com>
11684         * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
11685         TARGET_LDFLAGS.  This corrects a problem with grub-mkelfimage.
11687 2009-04-01  David S. Miller  <davem@davemloft.net>
11689         * normal/sparc64/setjmp.S: Fix setjmp implementation.
11690         * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
11691         (grub_setjmp): Mark with 'returns_twice' attribute.
11692         * include/grub/i386/setjmp.h (grub_setjmp): Likewise
11693         * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
11694         * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
11696 2009-04-01  Robert Millan  <rmh@aybabtu.com>
11698         Reapply fix from 2008-07-28 which was accidentally reverted; also
11699         perform the same fix to a similar check in same function.
11701         * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
11702         with the same number are found, just use issue a warning with
11703         grub_dprintf(), as this error has been reported to be non-fatal.
11705 2009-03-31  Pavel Roskin  <proski@gnu.org>
11707         * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
11708         for cross-compilation.
11710 2009-03-30  Robert Millan  <rmh@aybabtu.com>
11712         Fix i386-ieee1275 build.
11714         * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
11715         Remove declaration.
11717 2009-03-30  Pavel Roskin  <proski@gnu.org>
11719         * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
11720         (grub_hfs_cmp_catkeys): ... this.  Don't assume strings to be
11721         zero-terminated, rely only on the strlen value.  Fix comparison
11722         of strings differing in length.
11724 2009-03-30  Robert Millan  <rmh@aybabtu.com>
11726         * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
11727         checking for abi version.  Improve error messages on BIOS to notify
11728         user about `linux16' command.
11730 2009-03-29  Vladimir Serbinenko  <phcoder@gmail.com>
11732         Leak fixes
11734         * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
11735         in case of collision
11736         * disk/scsi.c (grub_scsi_open): free scsi in case of error
11738 2009-03-29  Robert Millan  <rmh@aybabtu.com>
11740         * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
11741         set `vid_mode' accordingly.
11742         (grub_linux_boot): Process `vid_mode' and set video mode.
11744 2009-03-29  Robert Millan  <rmh@aybabtu.com>
11746         * util/grub.d/10_linux.in (linux_entry): New function.
11747         Factorize generation of Linux boot entries.
11749 2009-03-29  Yoshinori K. Okuji  <okuji@enbug.org>
11751         Make the format of Environment Block plain text. The boot loader
11752         part is not tested well yet.
11754         * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
11755         (buffer): Removed.
11756         (envblk): Likewise.
11757         (usage): Remove "info" and "clear". Add "unset". Update the
11758         description of "set", as this does not delete variables any
11759         longer.
11760         (create_envblk_file): Complete rewrite.
11761         (open_envblk_file): Likewise.
11762         (cmd_info): Removed.
11763         (cmd_list): Likewise.
11764         (cmd_set): Likewise.
11765         (cmd_clear): Likewise.
11766         (list_variables): New function.
11767         (write_envblk): Likewise.
11768         (set_variables): Likewise.
11769         (unset_variables): Likewise.
11770         (main): Complete rewrite.
11772         * commands/loadenv.c (buffer): Removed.
11773         (envblk): Likewise.
11774         (open_envblk_file): New function.
11775         (read_envblk_file): Complete rewrite.
11776         (grub_cmd_load_env): Likewise.
11777         (grub_cmd_list_env): Likewise.
11778         (struct blocklist): New struct.
11779         (free_blocklists): New function.
11780         (check_blocklists): Likewise.
11781         (write_blocklists): Likewise.
11782         (grub_cmd_save_env): Complete rewrite.
11784         * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
11785         a plain text signature.
11786         (GRUB_ENVBLK_MAXLEN): Removed.
11787         (struct grub_envblk): Complete rewrite.
11788         (grub_envblk_find): Removed.
11789         (grub_envblk_insert): Likewise.
11790         (grub_envblk_open): New prototype.
11791         (grub_envblk_set): Likewise.
11792         (grub_envblk_delete): Put const to VALUE.
11793         (grub_envblk_iterate): Put const to NAME and VALUE.
11794         (grub_envblk_close): New prototype.
11795         (grub_envblk_buffer): New inline function.
11796         (grub_envblk_size): Likewise.
11798         * lib/envblk.c: Include grub/mm.h.
11799         (grub_env_find): Removed.
11800         (grub_envblk_open): New function.
11801         (grub_envblk_close): Likewise.
11802         (escaped_value_len): Likewise.
11803         (find_next_line): Likewise.
11804         (grub_envblk_insert): Removed.
11805         (grub_envblk_set): New function.
11806         (grub_envblk_delete): Complete rewrite.
11807         (grub_envblk_iterate): Likewise.
11809 2009-03-28  Robert Millan  <rmh@aybabtu.com>
11811         * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
11812         (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
11813         variables.  Use 16-bit loader.
11814         (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
11815         loader.
11816         * kern/i386/loader.S (grub_linux_boot): Rename to ...
11817         (grub_linux16_boot): ... this.  Update all users.
11818         * loader/i386/linux.c (grub_linux32_boot): Rename to ...
11819         (grub_linux_boot): ... this.  Update all users.
11821         * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
11822         (GRUB_MOD_INIT(linux16)): ... this.  Rename `linux' and `initrd'
11823         commands to `linux16' and `initrd16'.
11824         (GRUB_MOD_FINI(linux)): Rename to ...
11825         (GRUB_MOD_FINI(linux16)): ... this.
11827 2009-03-24  Pavel Roskin  <proski@gnu.org>
11829         * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
11830         not just for compilation.
11832 2009-03-22  Vladimir Serbinenko  <phcoder@gmail.com>
11834         Move multiboot helper out of kernel
11836         * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
11837         `loader/i386/multiboot_helper.S'.
11838         * conf/i386-coreboot.rmk: Likewise
11839         * conf/i386-ieee1275.rmk: Likewise
11841         * kern/i386/loader.S: Move multiboot helpers from here...
11842         * loader/i386/multiboot_helper.S: ...moved here
11843         * include/grub/i386/loader.h: Move declarations of multiboot
11844         helpers from here...
11845         * include/grub/i386/multiboot.h: ...moved here
11846         * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
11848 2009-03-22  Yoshinori K. Okuji  <okuji@enbug.org>
11850         * kern/env.c (grub_env_context_open): Added an argument to specify
11851         whether a new context inherits exported variables from current
11852         one. This is useful when making a sandbox to interpret a config
11853         file.
11854         All callers updated.
11856         * include/grub/env.h (grub_env_context_open): Updated the prototype.
11858 2009-03-22  Yoshinori K. Okuji  <okuji@enbug.org>
11860         * kern/env.c (grub_env_context_close): Fix memory leaks.
11862 2009-03-22  Yoshinori K. Okuji  <okuji@enbug.org>
11864         * normal/main.c (grub_normal_execute): Added an argument
11865         BATCH to specify if an interactive interface should be provided
11866         after reading a config file.
11867         All callers updated.
11868         (read_command_list): Prevent being executed twice.
11869         (read_fs_list): Likewise.
11871         * include/grub/normal.h (grub_normal_execute): Updated the
11872         prototype.
11874 2009-03-22  Pavel Roskin  <proski@gno.org>
11876         * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
11877         _start.
11878         * kern/i386/pc/startup.S: Likewise.
11879         * kern/i386/efi/startup.S: Likewise.
11880         * kern/i386/ieee1275/startup.S: Likewise.
11881         * kern/i386/coreboot/startup.S: Likewise.
11882         * kern/x86_64/efi/startup.S: Likewise.
11884         * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
11885         * configure.ac: Don't call grub_CHECK_START_SYMBOL.
11886         * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
11888 2009-03-21  Vladimir Serbinenko  <phcoder@gmail.com>
11890         Bugfixes in multiboot for bugs uncovered by solaris kernel.
11892         * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
11893         limit detection.
11894         Use vaddr of correct segment for entry_point.
11896 2009-03-21  Bean  <bean123ch@gmail.com>
11898         * commands/blocklist.c: Add include file <grub/command.h>, remove
11899         <grub/normal.h> and <grub/arg.h>.
11900         (grub_cmd_blocklist): Use the new command interface.
11901         (GRUB_MOD_INIT): Likewise.
11902         (GRUB_MOD_FINI): Likewise.
11903         * commands/boot.c: Likewise.
11904         * commands/cat.c: Likewise.
11905         * commands/cmp.c: Likewise.
11906         * commands/configfile.c: Likewise.
11907         * commands/crc.c: Likewise.
11908         * commands/echo.c: Likewise.
11909         * commands/halt.c: Likewise.
11910         * commands/handler.c: Likewise.
11911         * commands/hdparm.c: Likewise.
11912         * commands/help.c: Likewise.
11913         * commands/hexdump.c: Likewise.
11914         * commands/loadenv.c: Likewise.
11915         * commands/ls.c: Likewise.
11916         * commands/lsmmap.c: Likewise.
11917         * commands/lspci.c: Likewise.
11918         * commands/loadenv.c: Likewise.
11919         * commands/read.c: Likewise.
11920         * commands/reboot.c: Likewise.
11921         * commands/search.c: Likewise.
11922         * commands/sleep.c: Likewise.
11923         * commands/test.c: Likewise.
11924         * commands/usbtest.c: Likewise.
11925         * commands/videotest.c: Likewise.
11926         * commands/i386/cpuid.c: Likewise.
11927         * commands/i386/pc/halt.c: Likewise.
11928         * commands/i386/pc/play.c: Likewise.
11929         * commands/i386/pc/pxecmd.c: Likewise.
11930         * commands/i386/pc/vbeinfo.c: Likewise.
11931         * commands/i386/pc/vbetest.c: Likewise.
11932         * commands/ieee1275/suspend.c: Likewise.
11933         * disk/loopback.c: Likewise.
11934         * font/font_cmd.c: Likewise.
11935         * hello/hello.c: Likewise.
11936         * loader/efi/appleloader.c: Likewise.
11937         * loader/efi/chainloader.c: Likewise.
11938         * loader/i386/bsd.c: Likewise.
11939         * loader/i386/efi/linux.c: Likewise.
11940         * loader/i386/ieee1275/linux.c: Likewise.
11941         * loader/i386/linux.c: Likewise.
11942         * loader/i386/pc/chainloader.c: Likewise.
11943         * loader/i386/pc/linux.c: Likewise.
11944         * loader/powerpc/ieee1275/linux.c: Likewise.
11945         * loader/multiboot_loader.c: Likewise.
11946         * term/gfxterm.c: Likewise.
11947         * term/i386/pc/serial.c: Likewise.
11948         * term/terminfo.c: Likewise.
11950         * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
11951         * term/i386/pc/vga.c: Likewise.
11952         * video/readers/jpeg.c: Likewise.
11953         * video/readers/png.c: Likewise.
11954         * video/readers/tga.c: Likewise.
11956         * util/grub-fstest (cmd_loopback): Removed.
11957         (cmd_blocklist): Likewise.
11958         (cmd_ls): Likewise.
11959         (grub_register_command): Likewise.
11960         (grub_unregister_command): Likewise.
11961         (execute_command): Use grub_command_find to locate command and execute
11962         it.
11964         * include/grub/efi/chainloader.h: Removed.
11965         * loader/efi/chainloader_normal.c: Likewise.
11966         * loader/i386/bsd_normal.c: Likewise.
11967         * loader/i386/pc/chainloader_normal.c: Likewise.
11968         * loader/i386/pc/multiboot_normal.c: Likewise.
11969         * loader/linux_normal.c: Likewise.
11970         * loader/multiboot_loader_normal.c: Likewise.
11971         * loader/powerpc/ieee1275/linux_normal.c: Likewise.
11973         * gencmdlist.sh: Scan new registration command grub_register_extcmd
11974         and grub_register_command_p1.
11976         * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
11977         kern/command.c, lib/arg.c and commands/extcmd.c.
11978         (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
11979         (minicmd_mod_SOURCES): New variable.
11980         (minicmd_mod_CFLAGS): Likewise.
11981         (minicmd_mod_LDFLAGS): Likewise.
11982         (extcmd_mod_SOURCES): Likewise.
11983         (extcmd_mod_CFLAGS): Likewise.
11984         (extcmd_mod_LDFLAGS): Likewise.
11985         (boot_mod_SOURCES): Removed.
11986         (boot_mod_CFLAGS): Likewise.
11987         (boot_mod_LDFLAGS): Likewise.
11989         * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
11990         kern/corecmd.c.
11991         (kernel_img_HEADERS): Add command.h.
11992         (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
11993         commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
11994         and lib/arg.c.
11995         (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
11996         _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
11997         remove the corresponding normal mode command.
11998         (normal_mod_SOURCES): Remove normal/arg.c.
11999         * conf/i386-coreboot.rmk: Likewise.
12000         * conf/i386-efi.rmk: Likewise.
12001         * conf/i386-ieee1275.rmk: Likewise.
12002         * conf/powerpc-ieee1275.rmk: Likewise.
12003         * conf/x86_64-efi.rmk: Likewise.
12005         * include/grub/arg.h: Move from here ...
12006         * include/grub/lib/arg.h: ... to here.
12008         * normal/arg.c: Move from here ...
12009         * lib/arg.c: ... to here.
12011         * commands/extcmd.c: New file.
12012         * commands/minicmd.c: Likewise.
12013         * include/grub/command.h: Likewise.
12014         * include/grub/extcmd.h: Likewise.
12015         * kern/command.c: Likewise.
12016         * kern/corecmd.c: Likewise.
12018         * kern/list.c (grub_list_iterate): Return int instead of void.
12019         (grub_list_insert): New function.
12020         (grub_prio_list_insert): Likewise.
12022         * kern/rescue.c (grub_rescue_command): Removed.
12023         (grub_rescue_command_list): Likewise.
12024         (grub_rescue_register_command): Likewise.
12025         (grub_rescue_unregister_command): Likewise.
12026         (grub_rescue_cmd_boot): Move to minicmd.c
12027         (grub_rescue_cmd_help): Likewise.
12028         (grub_rescue_cmd_info): Likewise.
12029         (grub_rescue_cmd_boot): Likewise.
12030         (grub_rescue_cmd_testload): Likewise.
12031         (grub_rescue_cmd_dump): Likewise.
12032         (grub_rescue_cmd_rmmod): Likewise.
12033         (grub_rescue_cmd_lsmod): Likewise.
12034         (grub_rescue_cmd_exit): Likewise.
12035         (grub_rescue_print_devices): Moved to corecmd.c.
12036         (grub_rescue_print_files): Likewise.
12037         (grub_rescue_cmd_ls): Likewise.
12038         (grub_rescue_cmd_insmod): Likewise.
12039         (grub_rescue_cmd_set): Likewise.
12040         (grub_rescue_cmd_unset): Likewise.
12041         (attempt_normal_mode): Use grub_command_find to get normal module.
12042         (grub_enter_rescue_mode): Use grub_register_core_commands to register
12043         commands, remove grub_rescue_register_command calls.
12045         * normal/command.c (grub_register_command): Removed.
12046         (grub_unregister_command): Likewise.
12047         (grub_command_find): Likewise.
12048         (grub_iterate_commands): Likewise.
12049         (rescue_command): Likewise.
12050         (export_command): Moved to corecmd.c.
12051         (set_command): Removed.
12052         (unset_command): Likewise.
12053         (insmod_command): Likewise.
12054         (rmmod_command): Likewise.
12055         (lsmod_command): Likewise.
12056         (grub_command_init): Likewise.
12058         * normal/completion.c (iterate_command): Use cmd->prio to check for
12059         active command.
12060         (complete_arguments): Use grub_extcmd_t structure to find options.
12061         (grub_normal_do_completion): Change function grub_iterate_commands to
12062         grub_command_iterate.
12064         * normal/execute.c (grub_script_execute_cmd): No need to parse
12065         argument here.
12067         * normal/main.c (grub_dyncmd_dispatcher): New function.
12068         (read_command_list): Register unload commands as dyncmd.
12069         (grub_cmd_normal): Use new command interface, register rescue,
12070         unregister normal at entry, register normal, unregister rescue at exit.
12072         * include/grub/list.h (grub_list_test_t): New type.
12073         (grub_list_iterate): Return int instead of void.
12074         (grub_list_insert): New function.
12075         (GRUB_AS_NAMED_LIST_P): New macro.
12076         (GRUB_AS_PRIO_LIST): Likewise.
12077         (GRUB_AS_PRIO_LIST_P): Likewise.
12078         (GRUB_PRIO_LIST_PRIO_MASK): New constant.
12079         (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
12080         (grub_prio_list): New structure.
12081         (grub_prio_list_insert): New function.
12082         (grub_prio_list_remove): New inline function.
12084         * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
12085         (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
12086         (GRUB_COMMAND_FLAG_MENU): Likewise.
12087         (GRUB_COMMAND_FLAG_BOTH): Likewise.
12088         (GRUB_COMMAND_FLAG_TITLE): Likewise.
12089         (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
12090         (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
12091         (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
12092         (grub_command): Likewise.
12093         (grub_register_command): Likewise.
12094         (grub_command_find): Likewise.
12095         (grub_iterate_commands): Likewise.
12096         (grub_command_init): Likewise.
12097         (grub_arg_parse): Likewise.
12098         (grub_arg_show_help): Likewise.
12100         * include/grub/rescue.h (grub_rescue_register_command): Removed.
12101         (grub_rescue_unregister_command): Likewise.
12103         * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
12104         grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
12105         grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
12107         * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
12108         grub_rescue_cmd_initrd.
12109         * include/grub/i386/loader.h: Likewise.
12110         * include/grub/x86_64/loader.h: Likewise.
12112         * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
12114 2009-03-21  Bean  <bean123ch@gmail.com>
12116         * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
12117         instead of stat in mingw environment.
12119         * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
12121         * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
12123         * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
12124         AC_CONFIG_LINKS.
12126 2009-03-21  Bean  <bean123ch@gmail.com>
12128         * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
12129         out of range error.
12131 2009-03-18  Michel Dänzer  <michel@daenzer.net>
12133         * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
12134         checking inode flags for EXT4_EXTENTS_FLAG.
12136 2009-03-18  Robert Millan  <rmh@aybabtu.com>
12138         * loader/i386/linux.c: Include `<grub/video.h>' and
12139         `<grub/i386/pc/vbe.h>'..
12140         (grub_linux_setup_video): New function.  Loosely based on the EFI one.
12141         (grub_linux32_boot): Attempt to configure video settings with
12142         grub_linux_setup_video().
12143         (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
12144         to avoid grub_console_fini() which would step out of graphical mode
12145         unconditionally.
12147 2009-03-14  Robert Millan  <rmh@aybabtu.com>
12149         Fix build on powerpc.
12150         * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
12152 2009-03-12  Vladimir Serbinenko  <phcoder@gmail.com>
12154         * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
12155         background image command.
12157 2009-03-12  Colin D Bennett  <colin@gibibit.com>
12159         * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
12160         (grub_gfxterm_putchar): Extract pairs of identical calls to
12161         draw_cursor out of conditional blocks.
12163 2009-03-11  Pavel Roskin  <proski@gnu.org>
12165         * fs/hfs.c (grub_hfs_strncasecmp): New function.
12166         (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
12168 2009-03-11  Robert Millan  <rmh@aybabtu.com>
12170         * loader/i386/multiboot_elfxx.c
12171         (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
12173 2009-03-11  Felix Zielcke  <fzielcke@z-51.de>
12175         * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
12176         `kern/handler.c'.
12178 2009-03-11  Robert Millan  <rmh@aybabtu.com>
12180         * loader/i386/multiboot.c (code_size): New variable.
12181         (grub_multiboot): Define offsets by adding to `code_size' rather
12182         than subtracting from `grub_multiboot_payload_size'.  Provide
12183         4-byte alignment to MBI and others by increasing
12184         `boot_loader_name_length' appropriately.
12186         * loader/i386/multiboot_elfxx.c
12187         (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
12189 2009-03-09  Felix Zielcke  <fzielcke@z-51.de>
12191         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
12192         `fs/ext2.c'.
12194 2009-03-08  Robert Millan  <rmh@aybabtu.com>
12196         Make loader/i386/linux.c usable on i386-pc again.
12198         * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
12199         memory to heap.
12200         * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
12201         `#error' stanza.
12203 2009-03-07  Bean  <bean123ch@gmail.com>
12205         * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
12206         allocation.
12208 2009-03-06  Robert Millan  <rmh@aybabtu.com>
12210         Fix display issue on terminals with screen size other than 80x25
12211         (e.g. gfxterm with resolution higher than 640x480).
12213         * normal/main.c (grub_normal_init_page): Display title text in a
12214         position relative to the center of the terminal instead of relying
12215         on a hardcoded offset.
12217 2009-03-04  Robert Millan  <rmh@aybabtu.com>
12219         Filter /etc/grub.d/10_* so that only add-ons for native kernels are
12220         installed.
12222         * Makefile.in (host_kernel): New variable.
12223         * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
12224         scripts instead of just the windows one.
12225         * configure.ac: Initialize and AC_SUBST `host_kernel'.
12227 2009-03-04  Felix Zielcke  <fzielcke@z-51.de>
12229         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
12230         `kern/handler.c'.
12231         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
12232         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
12233         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
12234         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12235         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12236         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12238 2009-03-04  Felix Zielcke  <fzielcke@z-51.de>
12240         * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
12241         or if there's no space for the disk label and print the partition number on a
12242         invalid magic.
12244 2009-03-04  Felix Zielcke  <fzielcke@z-51.de>
12246         * util/misc.c: Include <time.h>.
12247         (grub_millisleep): New function.
12249 2009-03-04  Bean  <bean123ch@gmail.com>
12251         * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
12252         another option -mno-red-zone.
12254         * commands/handler.c: Change module description.
12256         * kern/handler.c: Add missing space at the end of description line.
12258         * kern/list.c: Likewise.
12260 2009-03-03  Robert Millan  <rmh@aybabtu.com>
12262         Move more components to the relocation area, and fix mbi pointer
12263         handling to use the destination rather than the origin (thanks to
12264         Vladimir Serbinenko for spotting).
12266         * loader/i386/multiboot.c (mbi_dest): New variable.
12267         (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
12268         (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
12269         relocation area.
12271 2009-03-01  Bean  <bean123ch@gmail.com>
12273         * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
12274         (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
12275         (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
12276         (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
12278         * loader/i386/efi/linux.c (acpi_guid): New variable.
12279         (acpi_guid): Likewise.
12280         (EBDA_SEG_ADDR): New constant.
12281         (LOW_MEM_ADDR): Likewise.
12282         (FAKE_EBDA_SEG): Likewise.
12283         (fake_bios_data): New function.
12284         (grub_linux_boot): Call fake_bios_data.
12286 2009-03-01  Bean  <bean123ch@gmail.com>
12288         * commands/terminal.c: Removed.
12290         * commands/handler.c: New file.
12292         * include/grub/list.h: Likewise.
12294         * include/grub/handler.h: Likewise.
12296         * kern/list.c: Likewise.
12298         * kern/handler.c: Likewise.
12300         * kern/term.h: Include header file <grub/handler.h>.
12301         (grub_term_input): Move next field to the beginning.
12302         (grub_term_output): Likewise.
12303         (grub_term_input_class): New variable.
12304         (grub_term_output_class): Likewise.
12305         (grub_term_register_input): Changed to inline function.
12306         (grub_term_register_output): Likewise.
12307         (grub_term_unregister_input): Likewise.
12308         (grub_term_unregister_output): Likewise.
12309         (grub_term_set_current_input): Likewise.
12310         (grub_term_set_current_output): Likewise.
12311         (grub_term_get_current_input): Likewise.
12312         (grub_term_get_current_output): Likewise.
12313         (grub_term_iterate_input): Removed.
12314         (grub_term_iterate_output): Likewise.
12316         * kern/term.c (grub_term_list_input): Removed.
12317         (grub_term_list_output): Likewise.
12318         (grub_term_input_class): New variable.
12319         (grub_term_output_class): Likewise.
12320         (grub_cur_term_input): Change variable as macro.
12321         (grub_cur_term_output): Likewise.
12322         (grub_term_register_input): Removed.
12323         (grub_term_register_output): Likewise.
12324         (grub_term_unregister_input): Likewise.
12325         (grub_term_unregister_output): Likewise.
12326         (grub_term_set_current_input): Likewise.
12327         (grub_term_set_current_output): Likewise.
12328         (grub_term_iterate_input): Likewise.
12329         (grub_term_iterate_output): Likewise.
12330         (grub_term_get_current_input): Likewise.
12331         (grub_term_get_current_output): Likewise.
12333         * util/grub-editenv.c: Include header file <grub/handler.h>.
12334         (grub_term_get_current_input): Removed.
12335         (grub_term_get_current_output): Likewise.
12336         (grub_term_input_class): New variable.
12337         (grub_term_output_class): Likewise.
12339         * util/grub-fstest.c (grub_term_get_current_input): Removed.
12340         (grub_term_get_current_output): Likewise.
12341         (grub_term_input_class): New variable.
12342         (grub_term_output_class): Likewise.
12344         * util/grub-probe.c (grub_term_get_current_input): Removed.
12345         (grub_term_get_current_output): Likewise.
12346         (grub_term_input_class): New variable.
12347         (grub_term_output_class): Likewise.
12349         * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
12350         (grub_term_get_current_output): Likewise.
12351         (grub_term_input_class): New variable.
12352         (grub_term_output_class): Likewise.
12354         * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
12355         (terminal_mod_SOURCES): Likewise.
12356         (terminal_mod_CFLAGS): Likewise.
12357         (terminal_mod_LDFLAGS): Likewise.
12359         * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
12360         handler.c.
12361         (kernel_img_SOURCES): Add list.c and handler.c.
12362         (kernel_img_HEADERS): Add list.h and handler.h.
12364         * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
12365         handler.c.
12366         (kernel_mod_SOURCES): Add list.c and handler.c.
12367         (kernel_mod_HEADERS): Add list.h and handler.h.
12369         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
12370         handler.c.
12371         (kernel_elf_SOURCES): Add list.c and handler.c.
12372         (kernel_elf_HEADERS): Add list.h and handler.h.
12374         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
12375         handler.c.
12376         (kernel_elf_SOURCES): Add list.c and handler.c.
12377         (kernel_elf_HEADERS): Add list.h and handler.h.
12379         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
12380         handler.c.
12381         (kernel_mod_SOURCES): Add list.c and handler.c.
12382         (kernel_mod_HEADERS): Add list.h and handler.h.
12384         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
12385         handler.c.
12386         (kernel_elf_SOURCES): Add list.c and handler.c.
12387         (kernel_elf_HEADERS): Add list.h and handler.h.
12389 2009-02-27  Robert Millan  <rmh@aybabtu.com>
12391         Factorize elf32 / elf64 code in Multiboot loader.  This will
12392         prevent it from getting out of sync again.
12394         * loader/i386/multiboot.c (grub_multiboot_is_elf32,
12395         grub_multiboot_load_elf32, grub_multiboot_is_elf64,
12396         grub_multiboot_load_elf64): Move from here ...
12397         * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
12398         grub_multiboot_load_elf): ... to here (new file).
12400 2009-02-27  Robert Millan  <rmh@aybabtu.com>
12402         * util/grub.d/10_linux.in: Rename "single-user mode" to
12403         "recovery mode".
12405 2009-02-27  Vladimir Serbinenko  <phcoder@gmail.com>
12407         Don't leak in SCSI code.
12408         * disk/scsi.c (grub_scsi_close): free `scsi'.
12410 2009-02-27  Robert Millan  <rmh@aybabtu.com>
12412         * loader/i386/pc/multiboot.c: Move from here ...
12413         * loader/i386/multiboot.c: ... to here.  Update all users.
12415 2009-02-27  Robert Millan  <rmh@aybabtu.com>
12417         Patch from Alexandre Bique <bique.alexandre@gmail.com>
12418         * util/i386/pc/grub-setup.c (setup): Fix directory path.
12420 2009-02-27  Krzysztof Smiechowicz  <deadwood@wp.pl>
12422         * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
12423         b-tree.
12425 2009-02-27  Robert Millan  <rmh@aybabtu.com>
12427         * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
12428         `0x' qualifier as 0 when base is specified as parameter).
12430 2009-02-24  Bean  <bean123ch@gmail.com>
12432         * configure.ac: Check for -mcmodel=large in x86_64 target.
12434         * include/grub/efi/api.h (efi_call_10): New macro.
12435         (efi_wrap_10): New function.
12437         * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
12438         (GRUB_PE32_REL_BASED_HIGH): Likewise.
12439         (GRUB_PE32_REL_BASED_LOW): Likewise.
12440         (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
12441         (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
12442         (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
12443         (GRUB_PE32_REL_BASED_SECTION): Likewise.
12444         (GRUB_PE32_REL_BASED_REL): Likewise.
12445         (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
12446         (GRUB_PE32_REL_BASED_DIR64): Likewise.
12447         (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
12449         * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
12450         issue.
12452         * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
12453         (efi_wrap_10): New function.
12455         * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
12457         * loader/efi/appleloader.c (devpath_5): Add support for late 2008
12458         MB/MBP model (NV chipset).
12459         (devdata_devs): Add devpath_5 to the list.
12461         * load/i386/efi/linux.c (video_base): Remove variable.
12462         (RGB_MASK): New macro.
12463         (RGB_MAGIC): Likewise.
12464         (LINE_MIN): Likewise.
12465         (LINE_MAX): Likewise.
12466         (FBTEST_STEP): Likewise.
12467         (FBTEST_COUNT): Likewise.
12468         (fb_list): New variable.
12469         (grub_find_video_card): Remove function.
12470         (find_framebuf): New function.
12471         (grub_linux_setup_video): Use find_framebuf to get frame buffer and
12472         line length.
12474         * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
12475         problem for x86_64.
12477 2009-02-22  Vesa Jääskeläinen  <chaac@nic.fi>
12479         Patch #25624 by Kevin Lacquement <kevin@lacqui>.
12481         * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
12482         coding tool name.
12484 2009-02-22  Robert Millan  <rmh@aybabtu.com>
12486         * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
12487         * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
12488         in our relocation, instead of using it directly from heap.  Also
12489         use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
12491 2009-02-21  Robert Millan  <rmh@aybabtu.com>
12493         Implement USB keyboard support (based on patch by Marco Gerards)
12495         * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
12496         (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
12497         (usb_keyboard_mod_LDFLAGS): New variables.
12499         * term/usb_keyboard.c: New file.
12501 2009-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
12503         Corrected wrong declaration
12505         * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
12507 2009-02-14  Christian Franke  <franke@computer.org>
12509         * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
12510         (grub_lspci_iter): Print class code and programming interface byte.
12512 2009-02-14  Christian Franke  <franke@computer.org>
12514         * gendistlist.sh: Ignore `.svn' directories.
12516 2009-02-14  Felix Zielcke  <fzielcke@z-51.de>
12518         * fs/fat.c: Add 2009 to Copyright line.
12520 2009-02-14  Christian Franke  <franke@computer.org>
12522         * commands/hdparm.c: New file.  Provides `hdparm' command
12523         which sends ATA commands via grub_disk_ata_pass_through ().
12525         * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
12527         * disk/ata.c: Include <grub/ata.h>.  Move <grub/misc.h>
12528         and <grub/cpu/io.h> to include/grub/ata.h.
12529         (enum grub_ata_addressing_t): Move to include/grub/ata.h.
12530         (GRUB_CDROM_SECTOR_SIZE): Remove.
12531         (GRUB_ATA_*): Move to include/grub/ata.h.
12532         (GRUB_ATAPI_*): Likewise.
12533         (enum grub_ata_commands): Likewise.
12534         (enum grub_ata_timeout_milliseconds): Likewise.
12535         (struct grub_ata_device): Likewise.
12536         (grub_ata_regset): Likewise.
12537         (grub_ata_regget): Likewise.
12538         (grub_ata_regset2): Likewise.
12539         (grub_ata_regget2): Likewise.
12540         (grub_ata_check_ready): Likewise.
12541         (grub_ata_wait_not_busy): Remove static, exported in
12542         include/grub/ata.h.
12543         (grub_ata_wait_drq): Likewise.
12544         (grub_ata_pio_read): Likewise.
12546         * disk/ata_pthru.c: New file.  Provides grub_ata_pass_through ()
12547         function for hdparm.mod.
12549         * include/grub/ata.h: New file, contains declarations from
12550         disk/ata.c.
12551         (enum grub_ata_commands): Add new commands for commands/hdparm.c.
12553         * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
12554         (grub_disk_ata_pass_through): New exported variable.
12556         * kern/disk.c (grub_disk_ata_pass_through): New variable.
12558 2009-02-13  Colin D Bennett  <colin@gibibit.com>
12560         Support multiple fallback entries, and provide an API to support
12561         executing default+fallback menu entries.  Renamed the `terminal' menu
12562         viewer to `text'.
12564         * include/grub/normal.h (grub_normal_text_menu_viewer): New global
12565         variable declaration.
12566         (grub_menu_execute_callback): New structure declaration.
12567         (grub_menu_execute_callback_t): New typedef.
12568         (grub_menu_execute_with_fallback): New function declaration.
12569         (grub_menu_get_entry): Likewise.
12570         (grub_menu_get_timeout): Likewise.
12571         (grub_menu_set_timeout): Likewise.
12573         * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
12575         * normal/menu.c (grub_wait_after_message): Moved to
12576         `normal/menu_text.c'.
12577         (draw_border): Likewise.
12578         (print_message): Likewise.
12579         (print_entry): Likewise.
12580         (print_entries): Likewise.
12581         (grub_menu_init_page): Likewise.
12582         (get_entry_number): Likewise.
12583         (print_timeout): Likewise.
12584         (run_menu): Likewise.
12585         (grub_menu_execute_entry): Likewise.
12586         (show_text_menu): Likewise.
12587         (get_and_remove_first_entry_number): New function.
12588         (grub_menu_execute_with_fallback): Likewise.
12589         (get_entry): Renamed to ...
12590         (grub_menu_get_entry): .. this and made it global.
12591         (get_timeout): Renamed to ...
12592         (grub_menu_get_timeout): ... this and made it global.
12593         (set_timeout): Renamed to ...
12594         (grub_menu_set_timeout): ... this and made it global.
12595         (grub_normal_terminal_menu_viewer): Renamed to ...
12596         (grub_normal_text_menu_viewer): ... this.
12598         * normal/menu_text.c: New file.  Extracted text-menu-specific code
12599         from normal/menu.c.
12601         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
12602         (normal_mod_SOURCES): Likewise.
12604         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
12605         (normal_mod_SOURCES): Likewise.
12607         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12608         (normal_mod_SOURCES): Likewise.
12610         * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
12611         (normal_mod_SOURCES): Likewise.
12613         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12614         (normal_mod_SOURCES): Likewise.
12616         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12617         (normal_mod_SOURCES): Likewise.
12619         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
12620         (normal_mod_SOURCES): Likewise.
12622 2009-02-11  Robert Millan  <rmh@aybabtu.com>
12624         * util/grub.d/00_header.in: Update old reference to `font' command.
12626 2009-02-10  Felix Zielcke  <fzielcke@z-51.de>
12628         * fs/fat.c (grub_fat_mount): Fix wrong comparison.
12630         Based on patch from Javier Martín.
12632 2009-02-09  Felix Zielcke  <fzielcke@z-51.de>
12634         * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
12635         to avoid false positives with FAT.
12636         (grub_fstest_SOURCES): Likewise.
12637         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
12638         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
12639         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12640         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
12641         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12642         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12644 2009-02-09  Felix Zielcke  <fzielcke@z-51.de>
12646         * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
12647         bpb.version_specific.fat12_or_fat16.fstype and
12648         bpb.version_specific.fat32.fstype.
12650 2009-02-08  Robert Millan  <rmh@aybabtu.com>
12652         * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
12654 2009-02-08  Robert Millan  <rmh@aybabtu.com>
12656         * Makefile.in (host_os, host_cpu): New variables.
12657         (target_os): Remove.  Update all users.
12659 2009-02-08  Marco Gerards  <marco@gnu.org>
12661         * Makefile.in (enable_grub_emu_usb): New variable.
12662         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
12663         (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
12664         `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
12665         (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
12666         (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
12667         `usbtest.mod' and `usbms.mod'.
12668         (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
12669         (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
12670         (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
12671         (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
12672         (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
12673         variables.
12675         * disk/usbms.c: New file.
12677         * include/grub/usb.h: Likewise.
12679         * include/grub/usbtrans.h: Likewise.
12681         * include/grub/usbdesc.h: Likewise.
12683         * bus/usb/usbtrans.c: Likewise.
12685         * bus/usb/ohci.c: Likewise.
12687         * bus/usb/uhci.c: Likewise.
12689         * bus/usb/usbhub.c: Likewise.
12691         * bus/usb/usb.c: Likewise.
12693         * commands/usbtest.c: Likewise.
12695         * util/usb.c: Likewise.
12697         * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
12699         * configure.ac: Test for libusb presence.
12701         * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
12703 2009-02-08  Vesa Jääskeläinen  <chaac@nic.fi>
12705         * kern/mm.c: Add more comments.
12707 2009-02-08  Robert Millan  <rmh@aybabtu.com>
12709         Patch from Javier Martín.
12710         * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
12711         `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
12713 2009-02-08  Robert Millan  <rmh@aybabtu.com>
12715         * fs/cpio.c: Split tar functionality to ...
12716         * fs/tar.c: ... here (new file).  Update all users.
12718 2009-02-07  Robert Millan  <rmh@aybabtu.com>
12720         * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
12721         backward-incompatible features.
12723         Based on patch from Javier Martín, with some adjustments.
12725 2009-02-07  Michael Scherer  <misc@mandriva.org>
12727         * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
12729 2009-02-07  Robert Millan  <rmh@aybabtu.com>
12731         * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
12732         position of `disk/lvm.c' to ensure grub_init_all() always picks it
12733         after the RAID stuff.
12735 2009-02-05  Vesa Jääskeläinen  <chaac@nic.fi>
12737         Fixes problem when running vbetest command as reported by
12738         Vladimir Serbinenko <phcoder@gmail.com>.
12740         * (grub_vbe_set_video_mode): Fixed problem with text modes.
12742 2009-02-04  Felix Zielcke  <fzielcke@z-51.de>
12744         util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
12745         /dev/md/NpN style mdraid devices.
12747 2009-02-03  Felix Zielcke  <fzielcke@z-51.de>
12749         * util/unifont2pff.rb: Remove.
12751 2009-02-03  Felix Zielcke  <fzielcke@z-51.de>
12753         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
12754         `#'.
12756 2009-02-03  Felix Zielcke  <fzielcke@z-51.de>
12758         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
12759         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
12760         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
12761         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
12762         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12763         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12764         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12766 2009-02-02  Christian Franke  <franke@computer.org>
12768         * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
12770 2009-02-01  Felix Zielcke  <fzielcke@z-51.de>
12772         * INSTALL: Note that we now require at least autoconf 2.59 and
12773         that LZO is optional.
12775 2009-02-01  Vesa Jääskeläinen  <chaac@nic.fi>
12777         Base on patch on bug #24154 created by Tomas Tintera
12778         <trosos@seznam.cz>.
12780         * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
12782 2009-02-01  Vesa Jääskeläinen  <chaac@nic.fi>
12784         Based on patch on bug #25318 created by Bernhard Rosenkraenzer
12785         <bero@arklinux.org>.
12787         * normal/parser.y (script_init): Add missing semicolon.
12789 2009-01-31  Colin D Bennett  <colin@gibibit.com>
12791         * normal/main.c: Add include to grub/menu_viewer.h.
12792         (free_menu_entry_classes): Added.
12793         (grub_normal_menu_addentry): Added class property handling.
12794         (grub_normal_execute): Changed to use new menu viewer for menu viewing.
12795         (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
12797         * normal/menu_viewer.c: New file.
12799         * normal/menu.c (run_menu_entry): Renamed to ...
12800         (grub_menu_execute_entry): ... this and made it as global.
12801         (grub_menu_run): Renamed to ...
12802         (show_text_menu): ... this and made it local.
12803         (show_text_menu): Adapt to new function names.
12804         (grub_normal_terminal_menu_viewer): New global variable.
12806         * include/grub/menu.h: New file.
12808         * include/grub/menu_viewer.h: New file.
12810         * include/grub/normal.h: Added include to grub/menu.h.
12811         (grub_menu_entry): Moved to include/grub/menu.h.
12812         (grub_menu_entry_t): Likewise.
12813         (grub_menu): Likewise.
12814         (grub_menu_t): Likewise.
12815         (grub_normal_terminal_menu_viewer): Added.
12816         (grub_menu_execute_entry): Likewise.
12817         (grub_menu_run): Removed.
12819         * DISTLIST: Added include/grub/menu.h.
12820         Added include/grub/menu_viewer.h.
12821         Added normal/menu_viewer.c.
12823 2009-01-31  Vesa Jääskeläinen  <chaac@nic.fi>
12825         * normal/execute.c (grub_script_execute_menuentry): Changed to use
12826         arglist for menutitle arguments.
12828         * normal/main.c (grub_normal_menu_addentry): Likewise.
12830         * normal/parser.y (menuentry): Likewise.
12832         * normal/script.c (grub_script_create_cmdmenu): Likewise.
12834         * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
12835         (grub_script_create_cmdmenu): Likewise.
12837         * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
12839         * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
12840         changes.
12842         * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
12844         * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
12846         * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
12848         * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
12850         * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
12852         * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
12854 2009-01-30  Christian Franke  <franke@computer.org>
12856         * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
12857         in option help text.
12859 2009-01-27  Pavel Roskin  <proski@gnu.org>
12861         * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
12863 2009-01-27  Vesa Jääskeläinen  <chaac@nic.fi>
12865         * commands/lsmmap.c: Add include to grub/machine/memory.h.
12867         * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
12869         * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
12870         unregister function.
12872 2009-01-27  Vesa Jääskeläinen  <chaac@nic.fi>
12874         * disk/scsi.c (grub_scsi_read): Fix sign problem.
12876         * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
12878         * util/grub-mkfont.c (usage): Fix typo.
12880         * util/elf/grub-mkimage.c (load_modules): Fix warning.
12882 2009-01-26  Daniel Mierswa  <impulze@impulze.org>
12884         * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
12886         * commands/search.c (search_fs_uuid): Ignore case of the UUID.
12888         * kern/misc.c (grub_strcasecmp): New function.
12889         (grub_strcasecmp): Use grub_size_t instead of int for length.
12890         Fix return value.
12891         * include/grub/misc.h: Update function prototypes.
12893 2009-01-26  Robert Millan  <rmh@aybabtu.com>
12895         * configure.ac: Fix cross-compilation check.
12897 2009-01-22  Christian Franke  <franke@computer.org>
12899         * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
12900         (precision) digit string.  Allow `.format2' without `format1' (width).
12901         Limit input chars for `%s' output to `format2' if specified.  This is
12902         compatible with standard printf ().
12904 2009-01-22  Christian Franke  <franke@computer.org>
12906         * disk/ata.c (grub_ata_wait_status): Replace by ...
12907         (grub_ata_wait_not_busy): ... this function.  Checks only BSY bit,
12908         other status bits may be invalid while BSY is asserted.
12909         (grub_ata_check_ready): New function.
12910         (grub_ata_cmd): Removed.
12911         (grub_ata_wait_drq): New function.
12912         (grub_ata_strncpy): Remove inline.
12913         (grub_ata_pio_read): Reduce to actual block transfer.  BSY wait
12914         and error check now done by grub_ata_wait_drq ().
12915         (grub_ata_pio_write): Likewise.
12916         (grub_atapi_identify): Set DEV before check for !BSY.  Use
12917         grub_ata_wait_drq () to wait for data.
12918         (grub_ata_device_initialize): Add status register check to
12919         detect missing SATA slave devices.  Add debug messages.
12920         (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
12921         (grub_atapi_packet): Set DEV before check for !BSY.  Replace
12922         transfer loop by grub_ata_pio_write ().
12923         (grub_ata_identify): Set DEV before check for !BSY. Use
12924         grub_ata_wait_drq () to wait for data.
12925         (grub_ata_setaddress): Set DEV before check for !BSY.
12926         (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
12927         read/write in one loop.  Fix invalid command on write.  Fix incomplete
12928         command on (size % batch) == 0.  Add missing error check after write of
12929         last block.  Add debug messages.
12930         (grub_atapi_read):  Replace transfer loop by grub_ata_pio_read ().
12932 2009-01-19  Christian Franke  <franke@computer.org>
12934         * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
12935         (GRUB_ATAPI_IREASON_*): Likewise.
12936         (grub_ata_pio_write): Fix timeout error return.
12937         (grub_atapi_identify): Add grub_ata_wait () after cmd.
12938         (grub_atapi_wait_drq): New function.
12939         (grub_atapi_packet): New parameter `size'.
12940         Use grub_atapi_wait_drq () and direct write instead of
12941         grub_ata_pio_write ().
12942         (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
12943         reads the number of bytes requested by the device for each DRQ
12944         assertion.
12945         (grub_atapi_write): Remove old implementation, return not
12946         implemented instead.
12948 2009-01-19  Christian Franke  <franke@computer.org>
12950         * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
12951         of 512 to calculate data size.
12952         (grub_scsi_read12): Likewise.
12953         (grub_scsi_write10): Likewise.
12954         (grub_scsi_write12): Likewise.
12955         (grub_scsi_read): Adjust size according to blocksize.
12956         Add checks for invalid blocksize and unaligned transfer.
12958 2009-01-19  Vesa Jääskeläinen  <chaac@nic.fi>
12960         * font/font.c (grub_font_loader_init): Re-position unknown glyph.
12962         * term/gfxterm.c (write_char): Fix background rendering for wide
12963         width glyphs.
12965 2009-01-19  Robert Millan  <rmh@aybabtu.com>
12967         * config.guess: Update to latest version from config git.
12968         * config.sub: Likewise.
12970 2009-01-17  Felix Zielcke  <fzielcke@z-51.de>
12972         * Makefile.in: Change font compilation to use new grub-mkfont instead
12973         of java version.
12975         * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
12976         * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
12977         * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
12978         * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
12979         * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
12980         * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
12981         * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
12982         * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
12983         * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
12985 2009-01-16  Christian Franke  <franke@computer.org>
12987         * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
12988         (enum grub_ata_timeout_milliseconds): New enum.
12989         (grub_ata_wait_status): Add parameter milliseconds.
12990         (grub_ata_cmd): Remove variable `err'.  Remove wait for !DRQ to allow
12991         recovery from timed-out commands.
12992         (grub_ata_pio_read): Add parameter milliseconds.  Fix error return,
12993         return grub_errno instead of REG_ERROR.
12994         (grub_ata_pio_write): Add parameter milliseconds.
12995         (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
12996         Pass milliseconds to grub_ata_wait_status () and
12997         grub_ata_pio_read ().
12998         (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
12999         (grub_ata_identify): Remove variable `ataerr'.  Pass milliseconds to
13000         grub_ata_wait_status ().  Fix IDENTIFY timeout check.
13001         (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
13002         It is not suitable for device detection, because DEV bit is ignored,
13003         the command may run too long, and not all devices set the signature
13004         properly.
13005         (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
13006         (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
13007         Fix device selection, DEV bit must be set first to address the registers
13008         of the correct device.
13009         (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
13010         grub_ata_pio_read/write ().
13011         (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
13012         (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
13014 2009-01-13  Carles Pina i Estany  <carles@pina.cat>
13016         * util/grub-editenv.c (main): Use fseeko(), not fseek().
13018 2009-01-13  Bean  <bean123ch@gmail.com>
13020         * util/grub-mkfont.c (write_font): forget to remove some debug code.
13022 2009-01-13  Bean  <bean123ch@gmail.com>
13024         * Makefile.in: (enable_grub_mkfont): New variable.
13025         (freetype_cflags): Likewise.
13026         (freetype_libs): Likewise.
13028         * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
13029         (grub_mkfont_SOURCES): New variable.
13030         (grub_mkfont_CFLAGS): Likewise.
13031         (grub_mkfont_LDFLAGS): Likewise.
13033         * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
13034         library if `--enable-grub-mkfont' is requested.
13035         (enable_grub_mkfont): New variable.
13036         (freetype_cflags): Likewise.
13037         (freetype_libs): Likewise.
13039         * util/grub-mkfont.c: New file.
13041 2009-01-12  Christian Franke  <franke@computer.org>
13043         * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
13044         mode check.  Fix setting of compat_use[].
13046 2009-01-10  Robert Millan  <rmh@aybabtu.com>
13048         Update a few copyright years which we forgot to do in 2008 (only for
13049         files whose changes made in 2008 were copyright-significant)
13051         * Makefile.in: Add 2008 to Copyright line.
13052         * disk/ieee1275/ofdisk.c: Likewise.
13053         * disk/efi/efidisk.c: Likewise.
13054         * kern/dl.c: Likewise.
13055         * kern/sparc64/ieee1275/init.c: Likewise.
13056         * kern/mm.c: Likewise.
13057         * kern/efi/mm.c: Likewise.
13058         * boot/i386/pc/boot.S: Likewise.
13059         * genfslist.sh: Likewise.
13060         * fs/iso9660.c: Likewise.
13061         * fs/hfs.c: Likewise.
13062         * fs/jfs.c: Likewise.
13063         * fs/minix.c: Likewise.
13064         * fs/ufs.c: Likewise.
13065         * gensymlist.sh.in: Likewise.
13066         * genkernsyms.sh.in: Likewise.
13067         * include/grub/misc.h: Likewise.
13068         * include/grub/types.h: Likewise.
13069         * include/grub/symbol.h: Likewise.
13070         * include/grub/elf.h: Likewise.
13071         * include/grub/kernel.h: Likewise.
13072         * include/grub/disk.h: Likewise.
13073         * include/grub/dl.h: Likewise.
13074         * include/grub/i386/linux.h: Likewise.
13075         * include/grub/i386/pc/biosdisk.h: Likewise.
13076         * include/grub/efi/api.h: Likewise.
13077         * include/grub/efi/pe32.h: Likewise.
13078         * include/grub/util/misc.h: Likewise.
13079         * normal/execute.c: Likewise.
13080         * normal/arg.c: Likewise.
13081         * normal/completion.c: Likewise.
13082         * normal/lexer.c: Likewise.
13083         * normal/parser.y: Likewise.
13084         * normal/misc.c: Likewise.
13085         * commands/i386/pc/vbeinfo.c: Likewise.
13086         * commands/hexdump.c: Likewise.
13087         * commands/terminal.c: Likewise.
13088         * commands/ls.c: Likewise.
13089         * commands/help.c: Likewise.
13090         * partmap/pc.c: Likewise.
13091         * loader/efi/chainloader.c: Likewise.
13092         * loader/multiboot_loader.c: Likewise.
13093         * loader/i386/pc/multiboot2.c: Likewise.
13094         * term/efi/console.c: Likewise.
13095         * term/i386/pc/serial.c: Likewise.
13096         * util/lvm.c: Likewise.
13097         * util/console.c: Likewise.
13098         * util/i386/efi/grub-mkimage.c: Likewise.
13099         * util/raid.c: Likewise.
13101 2009-01-06  Vesa Jääskeläinen  <chaac@nic.fi>
13103         * commands/videotest.c: Removed include to grub/machine/memory.h.
13105         * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
13106         videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
13107         (video_mod_SOURCES): Removed.
13108         (video_mod_CFLAGS): Likewise.
13109         (video_mod_LDFLAGS): Likewise.
13110         (gfxterm_mod_SOURCES): Likewise.
13111         (gfxterm_mod_CFLAGS): Likewise.
13112         (gfxterm_mod_LDFLAGS): Likewise.
13113         (videotest_mod_SOURCES): Likewise.
13114         (videotest_mod_CFLAGS): Likewise.
13115         (videotest_mod_LDFLAGS): Likewise.
13116         (bitmap_mod_SOURCES): Likewise.
13117         (bitmap_mod_CFLAGS): Likewise.
13118         (bitmap_mod_LDFLAGS): Likewise.
13119         (tga_mod_SOURCES): Likewise.
13120         (tga_mod_CFLAGS): Likewise.
13121         (tga_mod_LDFLAGS): Likewise.
13122         (jpeg_mod_SOURCES): Likewise.
13123         (jpeg_mod_CFLAGS): Likewise.
13124         (jpeg_mod_LDFLAGS): Likewise.
13125         (png_mod_SOURCES): Likewise.
13126         (png_mod_CFLAGS): Likewise.
13127         (png_mod_LDFLAGS): Likewise.
13129         * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
13130         bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
13131         (video_mod_SOURCES): Added.
13132         (video_mod_CFLAGS): Likewise.
13133         (video_mod_LDFLAGS): Likewise.
13134         (videotest_mod_SOURCES): Likewise.
13135         (videotest_mod_CFLAGS): Likewise.
13136         (videotest_mod_LDFLAGS): Likewise.
13137         (bitmap_mod_SOURCES): Likewise.
13138         (bitmap_mod_CFLAGS): Likewise.
13139         (bitmap_mod_LDFLAGS): Likewise.
13140         (tga_mod_SOURCES): Likewise.
13141         (tga_mod_CFLAGS): Likewise.
13142         (tga_mod_LDFLAGS): Likewise.
13143         (jpeg_mod_SOURCES): Likewise.
13144         (jpeg_mod_CFLAGS): Likewise.
13145         (jpeg_mod_LDFLAGS): Likewise.
13146         (png_mod_SOURCES): Likewise.
13147         (png_mod_CFLAGS): Likewise.
13148         (png_mod_LDFLAGS): Likewise.
13149         (gfxterm_mod_SOURCES): Likewise.
13150         (gfxterm_mod_CFLAGS): Likewise.
13151         (gfxterm_mod_LDFLAGS): Likewise.
13153         * term/gfxterm.c: Removed include to grub/machine/memory.h,
13154         grub/machine/console.h.
13156 2009-01-04  Jerone Young  <jerone@gmail.com>
13158         Make on screen instructions clearer
13160         Based on patch created by Jidanni <jidanni@jidanni.org>
13162         * normal/menu.c: print clearer instructions on the screen
13164 2009-01-02  Colin D Bennett  <colin@gibibit.com>
13166         New font engine.
13168         Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
13169         build system and fixed gfxterm.c to work with different sized fonts.
13171         * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
13173         * configure: Re-generated.
13175         * DISTLIST: Removed font/manager.c.
13176         Added font/font.c.
13177         Added font/font_cmd.c.
13179         * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF.  Added Font tool
13180         compilation.
13182         * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype.  Changed users.
13184         * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
13186         * kern/term.c: Changed users of grub_utf8_to_ucs4.
13188         * normal/menu.c: Likewise.
13190         * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
13191         (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
13193         * include/grub/font.h: Replaced with new file.
13195         * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
13196         (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
13197         (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
13198         (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
13199         (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
13200         (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
13201         fg_red, fg_green, fg_blue, fg_alpha.
13202         (grub_video_adapter): Removed blit_glyph.
13203         (grub_video_blit_glyph): Removed.
13205         * font/manager.c: Removed file.
13207         * font/font.c: New file.
13209         * font/font_cmd.c: Likewise.
13211         * video/video.c (grub_video_blit_glyph): Removed.
13213         * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
13214         (grub_video_vbe_map_rgba): Likewise.
13215         (grub_video_vbe_unmap_color_int): Likewise.
13216         (grub_video_vbe_blit_glyph): Removed.
13217         (grub_video_vbe_adapter): Removed blit_glyph.
13219         * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
13220         (get_pixel): Likewise.
13221         (set_pixel): Likewise.
13223         * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
13225         * term/gfxterm.c: Adapted to new font engine.
13227         * term/i386/pc/vesafb.c: Marked as deprecated.  Made it compile.
13229         * term/i386/pc/vga.c: Likewise.
13231         * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
13233         * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
13235         * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
13237         * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
13239         * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
13241         * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
13243         * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
13245         * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
13247         * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
13249         * util/grub.d/00_header.in: Changed to use new loadfont command.
13251         * util/grub-mkconfig_lib.in: Changed font extension.
13253 2008-12-28  Felix Zielcke  <fzielcke@z-51.de>
13255         * util/getroot.c (grub_util_get_grub_dev): Add support for
13256         /dev/md/dNNpNN style partitionable mdraid devices.
13258 2008-12-12  Alex Smith  <alex@alex-smith.me.uk>
13260         * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
13261         at a time limit of the PXE TFTP API correctly.
13262         (grub_pxefs_close): Likewise.
13264 2008-11-29  Robert Millan  <rmh@aybabtu.com>
13266         * disk/ata.c (grub_ata_pciinit): Handle errors raised by
13267         grub_ata_device_initialize() calls.
13269 2008-11-28  Krzysztof Smiechowicz  <deadwood@wp.pl>
13271         * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
13272         iteration failed.
13273         * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
13275 2008-11-28  Robert Millan  <rmh@aybabtu.com>
13277         Fix build on powerpc-ieee1275.  Based on patch created by
13278         Manoel Abranches <mrabran@linux.vnet.ibm.com>.
13279         * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
13280         `kern/ieee1275/mmap.c'.
13281         * include/grub/powerpc/ieee1275/memory.h: New file.
13283         Provide grub-install on coreboot.
13284         * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
13285         (grub_install_SOURCES): New variable.
13286         * util/i386/pc/grub-install.in: Add a few condition checks to make it
13287         usable on coreboot.
13289 2008-11-25  Felix Zielcke  <fzielcke@z-51.de>
13291         * util/grub-fstest.c (grub_term_get_current_input): Change return type
13292         to `grub_term_input_t'.
13293         (grub_term_get_current_output): Change return type to
13294         `grub_term_output_t'.
13296 2008-11-22  Robert Millan  <rmh@aybabtu.com>
13298         Fix breakage on coreboot due to declaration mismatch.
13299         * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
13300         (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
13301         grub_vga_text_cls().
13303         * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
13304         comments.  Avoid copying one more byte than necessary (just in case).
13306         * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
13307         to 0x200000 (avoids trouble with some OFW implementations, and matches
13308         with the one in Yaboot).
13309         Reported by Manoel Abranches
13311 2008-11-20  Robert Millan  <rmh@aybabtu.com>
13313         * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
13314         (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
13316         * util/grub-mkconfig_lib.in (grub_warn): New function.
13317         (convert_system_path_to_grub_path): Use grub_warn() when issuing
13318         warnings, to obtain consistent formatting.
13319         * util/grub.d/00_header.in: Likewise.
13320         * util/update-grub_lib.in: Likewise.
13322         * loader/i386/linux.c (allocate_pages): Fix a warning.
13323         Move comment text to `#error' stanza.
13325         Harmonize ieee1275's grub_available_iterate() with the generic
13326         grub_machine_mmap_iterate() interface (fixes a recently-introduced
13327         build problem on i386-ieee1275):
13328         * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
13329         * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here.  Add third
13330         parameter `type'.  Update all users of this function.
13331         * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
13332         `kern/ieee1275/mmap.c'.
13333         * kern/ieee1275/init.c
13334         * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
13335         with ...
13336         (grub_machine_mmap_iterate): ... this.
13337         * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
13338         return type to `grub_err_t'.  Update all implementations of this
13339         function prototype.
13340         * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
13341         Likewise.
13343         Add `lsmmap' command (lists firmware-provided memory map):
13344         * commands/lsmmap.c: New file.
13345         * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
13346         (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
13347         variables.
13348         * conf/powerpc-ieee1275.rmk: Likewise.
13349         * conf/i386-coreboot.rmk: Likewise.
13350         * conf/i386-ieee1275.rmk: Likewise.
13352 2008-11-19  Robert Millan  <rmh@aybabtu.com>
13354         * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
13355         * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
13356         constraints to initrd allocation (based on code from
13357         loader/i386/pc/linux.c).  Without them, initrd was allocated too high
13358         for Linux to find it.
13360 2008-11-14  Robert Millan  <rmh@aybabtu.com>
13362         * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
13363         order to cope with duplicate slashes.
13365 2008-11-14  Robert Millan  <rmh@aybabtu.com>
13367         * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
13368         Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000).  We
13369         don't want to mess with lower memory, because it is used in the Linux
13370         loader.
13372         * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
13373         an appropriate place in lower memory, between 0x10000 and 0x90000,
13374         like loader/i386/efi/linux.c does.  Linux often panics if real_mode_mem
13375         is in our heap (probably as a result of it being corrupted during
13376         decompression).  Add #error instance with comment to explain why this
13377         loader isn't currently usable on PC/BIOS.
13379 2008-11-14  Robert Millan  <rmh@aybabtu.com>
13381         * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
13382         (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
13384 2008-11-12  Robert Millan  <rmh@aybabtu.com>
13386         Make loader/i386/linux.c buildable on i386-pc (although disabled).
13388         * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
13389         (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
13390         from here ...
13391         * include/grub/i386/pc/memory.h: ... to here.
13393 2008-11-12  Robert Millan  <rmh@aybabtu.com>
13395         Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
13396         split).
13398         * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
13399         (grub_console_cur_color, grub_console_real_putchar)
13400         (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
13401         (grub_console_setcolorstate, grub_console_setcolor)
13402         (grub_console_getcolor): Move from here ...
13403         * include/grub/i386/vga_common.h: ... to here (new file).
13405         * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
13406         `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
13407         `<grub/i386/io.h>'.
13408         * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
13409         `<grub/i386/vga_common.h>'.
13411 2008-11-12  Robert Millan  <rmh@aybabtu.com>
13413         * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
13414         * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
13415         (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
13416         variables.
13417         * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
13418         `term/i386/pc/console.c' with `term/i386/vga_common.c'.
13420         * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
13421         grub_console_init() with call to grub_vga_text_init().
13422         (grub_machine_fini): Replace call to
13423         grub_console_fini() with call to grub_vga_text_fini() and
13424         grub_at_keyboard_fini().
13426         * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
13427         (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
13428         (grub_console_setcolorstate, grub_console_setcolor)
13429         (grub_console_getcolor): New function prototypes.
13431         * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
13432         (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
13433         (grub_vga_text_setcursor): Static-ize.
13434         (grub_vga_text_term): New structure.
13435         (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
13437         * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
13438         (grub_console_cur_color, grub_console_standard_color)
13439         (grub_console_normal_color, grub_console_highlight_color)
13440         (map_char, grub_console_putchar, grub_console_getcharwidth)
13441         (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
13442         (grub_console_getcolor): Move from here ...
13443         * term/i386/vga_common.c: ... to here (same function names).
13445 2008-11-12  Robert Millan  <rmh@aybabtu.com>
13447         Use newly-added Multiboot support in coreboot.
13449         * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
13450         `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
13452         * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
13453         alignment, set `MULTIBOOT_MEMORY_INFO' flag.
13454         (codestart): Store the MBI in `startup_multiboot_info' when we're
13455         being loaded using Multiboot.
13457         * kern/i386/coreboot/init.c (grub_machine_init): Move
13458         grub_at_keyboard_init() call to beginning of function (useful for
13459         debugging).  Call grub_machine_mmap_init() before attempting to use
13460         grub_machine_mmap_iterate().
13461         (grub_lower_mem, grub_upper_mem): Move from here ...
13462         * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
13463         here (new file).
13465         * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
13466         function prototype.
13468 2008-11-12  Robert Millan  <rmh@aybabtu.com>
13470         Fix a regression introduced by the at_keyboard.mod split.  Because
13471         some terminals are default on some platforms and non-default on
13472         others, the first terminal being registered determines which is
13473         going to be default.
13475         * kern/term.c (grub_term_register_input): If this is the first
13476         terminal being registered, set it as the current one.
13477         (grub_term_register_output): Likewise.
13479         * term/efi/console.c (grub_console_init): Do not call
13480         grub_term_set_current_output() or grub_term_set_current_input().
13481         * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
13482         * term/i386/pc/console.c (grub_console_init): Likewise.
13483         (grub_console_fini): Do not call grub_term_set_current_input()
13484         (but leave grub_term_set_current_output() to restore text mode).
13486 2008-11-10  Robert Millan  <rmh@aybabtu.com>
13488         * util/grub.d/00_header.in: Add backward compatibility check for
13489         versions of terminal.mod that don't understand `terminal_input' or
13490         `terminal_output'.
13492 2008-11-09  Robert Millan  <rmh@aybabtu.com>
13494         * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
13495         `terminal_input' / `terminal_output', not `terminal'.
13497 2008-11-08  Robert Millan  <rmh@aybabtu.com>
13499         * Makefile.in (include_DATA): Fix srcdir=. assumption.
13500         (DISTCLEANFILES): Add `build_env.mk'.
13502 2008-11-08  Robert Millan  <rmh@aybabtu.com>
13504         * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
13505         `struct grub_term_output'.  Remove `.checkkey' and `.getkey'
13506         members.  Update all users.
13507         * util/console.c (grub_ncurses_term): Split in ...
13508         (grub_ncurses_term_input): ... this, and ...
13509         (grub_ncurses_term_output): ... this.  Update all users.
13510         * term/ieee1275/ofconsole.c: Remove stale `#endif'.
13512 2008-11-08  Robert Millan  <rmh@aybabtu.com>
13514         * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
13515         (PKGDATA): Add $(pkgdata_SRCDIR).
13516         (pkglib_BUILDDIR): New variable.
13517         (pkgdata_SRCDIR): New variable.
13518         (build_env.mk): New target.
13519         (include_DATA): New variable.
13520         (install-local): Install $(include_DATA) files in $(includedir).
13522 2008-11-07  Pavel Roskin  <proski@gnu.org>
13524         * gendistlist.sh: Use C locale for sorting to ensure consistent
13525         output on all systems.
13527         * util/grub.d/00_header.in: Remove incorrect space before
13528         "serial".
13530 2008-11-07  Robert Millan  <rmh@aybabtu.com>
13532         * include/multiboot2.h (struct multiboot_header): Add `flags' member as
13533         per specification.
13534         * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
13535         * loader/multiboot_loader.c (find_multi_boot2_header): New function
13536         (based on find_multi_boot1_header).
13537         (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
13538         using find_multi_boot2_header(), and abort if neither Multiboot or
13539         Multiboot headers were found.
13541 2008-11-07  Robert Millan  <rmh@aybabtu.com>
13543         Modularize at_keyboard.mod:
13545         * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
13546         (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
13547         (at_keyboard_mod_LDFLAGS): New variables.
13549         Actual terminal split:
13551         * include/grub/term.h (struct grub_term): Split in ...
13552         (struct grub_term_input): ... this, and ...
13553         (struct grub_term_output): ... this.  Update all users.
13554         (grub_term_set_current): Split in ...
13555         (grub_term_set_current_input): ... this, and ...
13556         (grub_term_set_current_output): ... this.
13557         (grub_term_get_current): Split in ...
13558         (grub_term_get_current_input): ... this, and ...
13559         (grub_term_get_current_output): ... this.
13560         (grub_term_register): Split in ...
13561         (grub_term_register_input): ... this, and ...
13562         (grub_term_register_output): ... this.
13563         (grub_term_unregister): Split in ...
13564         (grub_term_unregister_input): ... this, and ...
13565         (grub_term_unregister_output): ... this.
13566         (grub_term_iterate): Split in ...
13567         (grub_term_iterate_input): ... this, and ...
13568         (grub_term_iterate_output): ... this.
13570         * kern/term.c (grub_term_list): Split in ...
13571         (grub_term_list_input): ... this, and ...
13572         (grub_term_list_output): ... this.  Update all users.
13573         (grub_cur_term): Split in ...
13574         (grub_cur_term_input): ... this, and ...
13575         (grub_cur_term_output): ... this.  Update all users.
13576         (grub_term_set_current): Split in ...
13577         (grub_term_set_current_input): ... this, and ...
13578         (grub_term_set_current_output): ... this.
13579         (grub_term_get_current): Split in ...
13580         (grub_term_get_current_input): ... this, and ...
13581         (grub_term_get_current_output): ... this.
13582         (grub_term_register): Split in ...
13583         (grub_term_register_input): ... this, and ...
13584         (grub_term_register_output): ... this.
13585         (grub_term_unregister): Split in ...
13586         (grub_term_unregister_input): ... this, and ...
13587         (grub_term_unregister_output): ... this.
13588         (grub_term_iterate): Split in ...
13589         (grub_term_iterate_input): ... this, and ...
13590         (grub_term_iterate_output): ... this.
13592         * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
13593         a check for input and one for output (and only attempt to get keys
13594         from user when input works).
13596         * util/grub-probe.c (grub_term_get_current): Split in ...
13597         (grub_term_get_current_input): ... this, and ...
13598         (grub_term_get_current_output): ... this.
13599         * util/grub-fstest.c: Likewise.
13600         * util/i386/pc/grub-setup.c: Likewise.
13601         * util/grub-editenv.c: Likewise.
13603         Portability adjustments:
13605         * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
13606         `term/i386/pc/at_keyboard.c'.
13607         * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
13608         grub_keyboard_controller_init() (now handled by terminal .init).
13609         * kern/i386/coreboot/init.c (grub_machine_init): Add call to
13610         grub_at_keyboard_init().
13611         * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
13612         (grub_console_checkkey, grub_console_getkey): Remove (now provided by
13613         at_keyboard.mod via input terminal interface).
13614         * include/grub/i386/coreboot/console.h: Convert into a stub for
13615         `<grub/i386/pc/console.h>'.
13617         Migrate full terminals to new API:
13619         * term/efi/console.c (grub_console_term): Split into ...
13620         (grub_console_term_input): ... this, and ...
13621         (grub_console_term_output): ... this.  Update all users.
13622         * term/ieee1275/ofconsole.c: Remove __i386__ hack.
13623         (grub_ofconsole_init): Split into ...
13624         (grub_ofconsole_init_input): ... this, and ...
13625         (grub_ofconsole_init_output): ... this.
13626         (grub_ofconsole_term): Split into ...
13627         (grub_ofconsole_term_input): ... this, and ...
13628         (grub_ofconsole_term_output): ... this.  Update all users.
13629         * term/i386/pc/serial.c (grub_serial_term): Split into ...
13630         (grub_serial_term_input): ... this, and ...
13631         (grub_serial_term_output): ... this.  Update all users.
13632         * term/i386/pc/console.c (grub_console_term): Split into ...
13633         (grub_console_term_input): ... this, and ...
13634         (grub_console_term_output): ... this.  Update all users.
13635         (grub_console_term_input): Only enable it on PC/BIOS platform.
13636         (grub_console_init): Remove grub_keyboard_controller_init() call.
13638         Migrate input terminals to new API:
13640         * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
13641         `i386' and `i386/pc' to enable build on x86_64 (this driver is
13642         i386-specific anyway).
13643         (grub_console_checkkey): Rename to ...
13644         (grub_at_keyboard_checkkey): ... this.  Static-ize.  Update all
13645         users.
13646         (grub_keyboard_controller_orig): New variable.
13647         (grub_console_getkey): Rename to ...
13648         (grub_at_keyboard_getkey): ... this.  Static-ize.  Update all
13649         users.
13650         (grub_keyboard_controller_init): Static-ize.  Save original
13651         controller value so that it can be restored ...
13652         (grub_keyboard_controller_fini): ... here (new function).
13653         (grub_at_keyboard_term): New structure.
13654         (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
13655         functions.
13657         Migrate output terminals to new API:
13659         * term/i386/pc/vga.c (grub_vga_term): Change type to
13660         `struct  grub_term_output'.  Remove `.checkkey' and `.getkey'
13661         members.  Update all users.
13662         * term/gfxterm.c (grub_video_term): Change type to
13663         `struct  grub_term_output'.  Remove `.checkkey' and `.getkey'
13664         members.  Update all users.
13665         * include/grub/i386/pc/console.h (grub_console_checkkey)
13666         (grub_console_getkey): Do not export (no longer needed by gfxterm,
13667         etc).
13669         Migrate `terminal' command and userland tools to new API:
13671         * commands/terminal.c (grub_cmd_terminal): Split into ...
13672         (grub_cmd_terminal_input): ... this, and ...
13673         (grub_cmd_terminal_output): ... this.
13674         (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
13675         `terminal_input' and `terminal_output'.
13676         * util/grub.d/00_header.in: Adjust `terminal' calls to new
13677         `terminal_input' / `terminal_output' API.
13678         * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
13679         ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
13680         provided ${GRUB_TERMINAL}, convert it).
13682 2008-11-04  Robert Millan  <rmh@aybabtu.com>
13684         * util/grub.d/10_freebsd.in: New file.  Generate grub configuration
13685         for FreeBSD.
13686         * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
13688 2008-11-03  Bean  <bean123ch@gmail.com>
13690         * kern/elf.c (grub_elf32_load): Revert to previous code.
13691         (grub_elf64_load): Likewise.
13693         * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
13695 2008-11-01  Robert Millan  <rmh@aybabtu.com>
13697         * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
13698         (TARGET_CPPFLAGS): Likewise.
13699         * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
13701 2008-11-01  Carles Pina i Estany  <carles@pina.cat>
13703         * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
13705 2008-10-29  Guillem Jover  <guillem.jover@nokia.com>
13707         * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
13708         addition of objects until the code is not going to be able to fail.
13710 2008-10-29  Guillem Jover  <guillem.jover@nokia.com>
13712         * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
13713         (add a missing NULL check, and correct them by moving the pointer
13714         operations after the actual check).
13716 2008-10-29  Robert Millan  <rmh@aybabtu.com>
13718         * util/i386/pc/grub-install.in: Handle empty string as output from
13719         make_system_path_relative_to_its_root().
13721 2008-10-05  Hans Lambermont  <hans@lambermont.dyndns.org>
13723         * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
13724         circular metadata worst case scenario. If the metadata is circular
13725         then copy the wrap in place.
13726         * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
13727         project lib/format_text/layout.h
13728         Circular metadata bug found and patch debugged by Jan Derk Gerlings.
13730 2008-10-03  Felix Zielcke  <fzielcke@z-51.de>
13732         * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
13734 2008-10-03  Felix Zielcke  <fzielcke@z-51.de>
13736         * util/update-grub_lib.in: Mention filename in warning message.
13738 2008-09-29  Felix Zielcke  <fzielcke@z-51.de>
13740         * NEWS: Update for rename of update-grub to grub-mkconfig.
13742 2008-09-29  Felix Zielcke  <fzielcke@z-51.de>
13744         * util/update-grub_lib.in: Copy to ...
13745         * util/grub-mkconfig_lib.in: ... this.  Update all users.
13746         * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
13747         * util/update-grub.in: Rename to ...
13748         * util/grub-mkconfig.in: ... this.  Update all users.  Remove `-y'
13749         option. Add `--output' option to allow users to specify the generated
13750         configuration file.  Default to stdout.
13751         (update_grub_dir): Rename to ...
13752         (grub_mkconfig_dir): ... this.
13753         (grub_cfg): Default to an empty string.
13754         * conf/common.rmk (update-grub): Rename to ...
13755         (grub-mkconfig): ... this.
13756         (update-grub_lib): Copy to ...
13757         (grub-mkconfig_lib): ... this.
13758         (update-grub_SCRIPTS): Copy to ...
13759         (grub-mkconfig_SCRIPTS): ... this. Update all users.
13760         (update-grub_DATA): Rename to ...
13761         (grub-mkconfig_DATA): ... this.
13763 2008-09-28  Robert Millan  <rmh@aybabtu.com>
13765         * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
13766         to `modified'.  Add the real `created' field.
13767         (grub_iso9660_uuid): Use `modified' rather than `created' for
13768         constructing the UUID.
13770 2008-09-28  Felix Zielcke  <fzielcke@z-51.de>
13772         fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
13773         Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
13775 2008-09-28  Bean  <bean123ch@gmail.com>
13777         * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
13778         Thanks to Christian Franke for finding this bug.
13780 2008-09-25  Robert Millan  <rmh@aybabtu.com>
13782         * util/grub-mkdevicemap.c (make_device_map): Actually replace all
13783         instances of grub_util_get_disk_name() (see previous commit).
13785 2008-09-25  Robert Millan  <rmh@aybabtu.com>
13787         * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
13788         `util/i386/get_disk_name.c'.
13789         * conf/i386-efi.rmk: Likewise.
13790         * conf/x86_64-efi.rmk: Likewise.
13791         * conf/i386-coreboot.rmk: Likewise.
13792         * conf/i386-ieee1275.rmk: Likewise.
13793         * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
13794         `util/ieee1275/get_disk_name.c'.
13795         * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
13796         * util/ieee1275/get_disk_name.c: Remove file.
13797         * util/i386/get_disk_name.c: Remove file.
13798         * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
13799         "hd%d" for device.map entries, rather than using
13800         grub_util_get_disk_name().
13802 2008-09-24  Carles Pina i Estany  <carles@pina.cat>
13804         * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
13805         warning.
13806         * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
13808 2008-09-24  Carles Pina i Estany  <carles@pina.cat>
13810         * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
13811         Changed to 0x5100.
13812         (GRUB_TERM_PPAGE): Changed to 0x4900.
13814 2008-09-24  Robert Millan  <rmh@aybabtu.com>
13816         * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
13817         macros (they were i386-pc specific).
13818         * include/grub/sparc64/ieee1275/console.h: Likewise.
13819         * include/grub/efi/console.h: Likewise.
13821 2008-09-22  Bean  <bean123ch@gmail.com>
13823         * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
13824         resident and in attribute list.
13826         * include/grub/ntfs.h (BMP_LEN): Removed.
13828 2008-09-22  Bean  <bean123ch@gmail.com>
13830         * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
13831         scsi->name and scsi->luns, as they will be set in grub_scsi_open.
13833         * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
13834         error occurs, as grub_disk_open will call grub_disk_close, which will
13835         call p->close (scsi).
13837 2008-09-21  Felix Zielcke  <fzielcke@z-51.de>
13839         * configure.ac (AC_INIT): Quote `GRUB' string and version number.
13840         (AC_PREREQ): Bumped to 2.59.
13841         (AC_TRY_COMPILE): Replace obsolete macro with ...
13842         (AC_COMPILE_IFELSE): ... this.
13843         * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
13844         (AC_LINK_IFELSE): ... this.
13846 2008-09-21  Felix Zielcke  <fzielcke@z-51.de>
13848         * autogen.sh: Add a call to `gendistlist.sh'.
13850 2008-09-19  Christian Franke  <franke@computer.org>
13852         * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
13853         * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
13854         * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
13855         Export __enable_execute_stack() to modules.
13856         * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
13857         New function.
13859 2008-09-09  Felix Zielcke  <fzielcke@z-51.de>
13861         * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
13862         Sort the list.
13864 2008-09-09  Felix Zielcke  <fzielcke@z-51.de>
13866         * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
13867         #include <grub/util/hostdisk.h>.
13869 2008-09-08  Robert Millan  <rmh@aybabtu.com>
13871         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
13872         segments when their filesz is zero (grub_file_read() interprets
13873         zero-size as "read until EOF", which results in memory corruption).
13874         Use `lowest_segment' rather than 0 for calculating the current
13875         segment load address.
13877 2008-09-08  Robert Millan  <rmh@aybabtu.com>
13879         * util/hostdisk.c (open_device): Replace a grub_util_info() call
13880         with grub_dprintf("hostdisk", ...), as it was so verbose that it
13881         clobbered useful information.
13883 2008-09-08  Robert Millan  <rmh@aybabtu.com>
13885         * include/grub/util/biosdisk.h: Move to ...
13886         * include/grub/util/hostdisk.h: ... here.  Update all users.
13887         * util/biosdisk.c: Move to ...
13888         * util/hostdisk.c: ... here.  Update all users.
13890 2008-09-07  Robert Millan  <rmh@aybabtu.com>
13892         * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
13893         variables.
13894         (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
13895         and length can be stored directly in the `mbi->mmap_addr' and
13896         `mbi->mmap_length' struct fields.
13898 2008-09-07  Robert Millan  <rmh@aybabtu.com>
13900         * conf/i386.rmk: New file.  Provides declaration for building
13901         `cpuid.mod'.
13902         * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
13903         (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
13904         variables.
13905         Include `conf/i386.mk'.
13906         * conf/i386-efi.rmk: Likewise.
13907         * conf/x86_64-efi.rmk: Likewise.
13908         * conf/i386-coreboot.rmk: Likewise.
13909         * conf/i386-ieee1275.rmk: Likewise.
13911 2008-09-07  Vesa Jääskeläinen  <chaac@nic.fi>
13913         Based on patch created by Colin D Bennett <colin@gibibit.com>.
13914         Adds optimization support for BGR based modes.
13916         * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
13917         (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
13918         (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
13919         (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
13920         (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
13921         (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
13922         (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
13923         (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
13924         (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
13925         (grub_video_i386_vbeblit_index_index): Likewise.
13926         (grub_video_i386_vbeblit_replace_directN): Added.
13927         (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
13928         (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
13929         (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
13930         (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
13931         (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
13932         (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
13933         (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
13934         (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
13935         (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
13936         (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
13937         (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
13938         (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
13939         (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
13941         * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
13942         (grub_video_i386_vbefill_R8G8B8): Likewise.
13943         (grub_video_i386_vbefill_index): Likewise.
13944         (grub_video_i386_vbefill_direct32): Added.
13945         (grub_video_i386_vbefill_direct24): Likewise.
13946         (grub_video_i386_vbefill_direct16): Likewise.
13947         (grub_video_i386_vbefill_direct8): Likewise.
13949         * include/grub/video.h (grub_video_blit_format): Removed
13950         GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
13951         (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
13952         GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
13953         GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
13954         GRUB_VIDEO_BLIT_FORMAT_BGR_565.
13956         * video/video.c (grub_video_get_blit_format): Updated to use new
13957         blit formats.  Added handling for 16 bit color modes.
13959         * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
13960         fillers.
13961         (common_blitter): Updated to use new blitters.
13963         * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
13964         Removed.
13965         (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
13966         (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
13967         (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
13968         (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
13969         (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
13970         (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
13971         (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
13972         (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
13973         (grub_video_i386_vbeblit_index_index): Likewise.
13974         (grub_video_i386_vbeblit_replace_directN): Added.
13975         (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
13976         (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
13977         (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
13978         (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
13979         (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
13980         (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
13981         (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
13982         (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
13983         (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
13984         (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
13985         (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
13986         (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
13987         (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
13989         * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
13990         (grub_video_i386_vbefill_R8G8B8): Likewise.
13991         (grub_video_i386_vbefill_index): Likewise.
13992         (grub_video_i386_vbefill_direct32): Added.
13993         (grub_video_i386_vbefill_direct24): Likewise.
13994         (grub_video_i386_vbefill_direct16): Likewise.
13995         (grub_video_i386_vbefill_direct8): Likewise.
13997         * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
13998         types.
14000         * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
14001         types.
14003         * video/readers/png.c (grub_png_decode_image_header): Adapt to new
14004         blitter types.
14006         * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
14007         types.
14009 2008-09-06  Felix Zielcke  <fzielcke@z-51.de>
14011         * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
14012         RAID level 1.
14014 2008-09-06  Felix Zielcke  <fzielcke@z-51.de>
14016         * fs/iso9660.c (grub_iso9660_date): New structure.
14017         (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
14018         (grub_iso9660_uuid): New function.
14020 2008-09-05  Bean  <bean123ch@gmail.com>
14022         * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
14024         * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
14025         insensitive bit for names in Win32 and Win32 & DOS namespace.
14027         * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
14029         * include/grub/types.h (LONG_MAX): Likewise.
14031 2008-09-04  Felix Zielcke  <fzielcke@z-51.de>
14033         * util/getroot.c: Include <config.h>.
14034         (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
14035         add support for /dev/md/N devices and handle LVM double dash escaping.
14037 2008-09-04  Felix Zielcke  <fzielcke@z-51.de>
14039         * config.guess: Update to latest version from config git.
14040         * config.sub: Likewise.
14042 2008-09-03  Robert Millan  <rmh@aybabtu.com>
14044         * disk/scsi.c (grub_scsi_open): Remove size limit when printing
14045         `disk->total_sectors'.
14047 2008-09-01  Colin D Bennett  <colin@gibibit.com>
14049         * include/grub/normal.h: Fixed incorrect comment for
14050         GRUB_COMMAND_FLAG_NO_ARG_PARSE.
14052 2008-09-01  Colin D Bennett  <colin@gibibit.com>
14054         * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
14055         values with defines.
14057         * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
14058         (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
14059         (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
14060         (GRUB_VBE_MODEATTR_COLOR): Likewise.
14061         (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
14062         (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
14063         (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
14064         (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
14065         (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
14066         (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
14067         (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
14068         (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
14069         (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
14070         (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
14071         (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
14072         (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
14073         (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
14074         (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
14075         (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
14077 2008-08-31  Robert Millan  <rmh@aybabtu.com>
14079         * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
14080         declaration.
14081         (grub_multiboot): Fix a few warnings.
14083 2008-08-31  Robert Millan  <rmh@aybabtu.com>
14085         * loader/i386/pc/multiboot.c: Update comment not to say that
14086         boot_device support is unimplemented.
14088 2008-08-31  Robert Millan  <rmh@aybabtu.com>
14090         * loader/i386/pc/multiboot.c: Update comment not to say that a.out
14091         or memory map support are unimplemented.
14093 2008-08-31  Colin D Bennett  <colin@gibibit.com>
14095         * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
14097 2008-08-31  Colin D Bennett  <colin@gibibit.com>
14099         * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
14100         total video memory in 'vbeinfo' output; show color format details for
14101         each video mode.
14103 2008-08-30  Pavel Roskin  <proski@gnu.org>
14105         * util/genmoddep.c: Remove for real this time.
14106         * DISTLIST: Remove util/genmoddep.c.
14108 2008-08-30  Robert Millan  <rmh@aybabtu.com>
14110         * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
14111         as required by Multiboot spec (it was already 4-byte aligned, but
14112         only by chance).
14114 2008-08-29  Pavel Roskin  <proski@gnu.org>
14116         * kern/powerpc/ieee1275/crt0.S: Rename to ...
14117         * kern/powerpc/ieee1275/startup.S: ... this.
14118         * conf/powerpc-ieee1275.rmk: Adjust for the above.
14119         * DISTLIST: Likewise.
14121         * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
14122         grub/cpu/kernel.h.  Add start label for consistency with other
14123         platforms.  Add grub_prefix immediately after start.  Add jump
14124         to the code after grub_prefix.
14125         * include/grub/powerpc/kernel.h: Provide valid values for
14126         GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
14128 2008-08-29  Bean  <bean123ch@gmail.com>
14130         * configure.ac: Change host_os to cygwin for mingw.
14131         (asprintf): New check for function.
14133         * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
14134         #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
14136         * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
14137         declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
14138         sync, sleep and grub_util_get_disk_size for mingw.
14140         * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
14141         to get size in mingw.
14142         (open_device): Use flag O_BINARY if it's defined.
14143         (find_root_device): Add dummy code for mingw.
14145         * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
14146         (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
14147         (get_scsi_disk_name): Return 0 for mingw.
14149         * util/hostfs.c: #include <grub/util/misc.h>.
14150         (grub_hostfs_open): Use "rb" flag to open file, use
14151         grub_util_get_disk_size to get disk size for mingw.
14153         * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
14154         (asprintf): New function if HAVE_ASPRINTF is not set.
14155         (sync): New function for mingw.
14156         (sleep): Likewise.
14157         (grub_util_get_disk_size): Likewise.
14159 2008-08-28  Pavel Roskin  <proski@gnu.org>
14161         * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
14162         kern/time.c.
14164 2008-08-28  Robert Millan  <rmh@aybabtu.com>
14166         * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
14168 2008-08-28  Robert Millan  <rmh@aybabtu.com>
14170         Change find_grub_drive() syntax so it doesn't prevent it from
14171         detecting NULL names as errors.
14173         * util/biosdisk.c (find_grub_drive): Move free slot search code
14174         from here ...
14175         (find_free_slot): ... to here.
14176         (read_device_map): Use find_free_slot() to search for free slots.
14178 2008-08-27  Marco Gerards  <marco@gnu.org>
14180         * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
14181         (scsi_mod_SOURCES): New variable.
14182         (scsi_mod_CFLAGS): Likewise
14183         (scsi_mod_LDFLAGS): Likewise.
14185         * disk/scsi.c: New file.
14187         * include/grub/scsi.h: Likewise.
14189         * include/grub/scsicmd.h: Likewise.
14191         * disk/ata.c: Include <grub/scsi.h>.
14192         (grub_atapi_packet): Do not use grub_ata_cmd, use registers
14193         instead.
14194         (grub_ata_iterate): Skip ATAPI devices.
14195         (grub_ata_open): Only handle ATAPI devices.
14196         (struct grub_atapi_read): Removed.
14197         (grub_atapi_readsector): Likewise.
14198         (grub_ata_read): No longer handle ATAPI devices.
14199         (grub_ata_write): Likewise.
14200         (grub_atapi_iterate): New function.
14201         (grub_atapi_read): Likewise.
14202         (grub_atapi_write): Likewise.
14203         (grub_atapi_open): Likewise.
14204         (grub_atapi_close): Likewise.
14205         (grub_atapi_dev): New variable.
14206         (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
14207         (GRUB_MOD_FINI(ata)): Unregister ATAPI.
14209         * include/grub/disk.h (enum grub_disk_dev_id): Add
14210         `GRUB_DISK_DEVICE_SCSI_ID'.
14212 2008-08-26  Robert Millan  <rmh@aybabtu.com>
14214         * util/biosdisk.c (grub_util_biosdisk_open, open_device)
14215         (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
14216         descriptive.
14218 2008-08-23  Bean  <bean123ch@gmail.com>
14220         * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
14221         (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
14222         disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
14223         (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
14224         dm_nv.mod.
14225         (raid5rec_mod_SOURCES): New macro.
14226         (raid5rec_mod_CFLAGS): Likewise.
14227         (raid5rec_mod_LDFLAGS): Likewise.
14228         (raid6rec_mod_SOURCES): Likewise.
14229         (raid6rec_mod_CFLAGS): Likewise.
14230         (raid6rec_mod_LDFLAGS): Likewise.
14231         (mdraid_mod_SOURCES): Likewise.
14232         (mdraid_mod_CFLAGS): Likewise.
14233         (mdraid_mod_LDFLAGS): Likewise.
14234         (dm_nv_mod_SOURCES): Likewise.
14235         (dm_nv_mod_CFLAGS): Likewise.
14236         (dm_nv_mod_LDFLAGS): Likewise.
14238         * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
14239         (grub_emu_SOURCES):  Add disk/raid5_recover.c, disk/raid6_recover.c,
14240         disk/mdraid_linux.c and disk/dmraid_nvidia.c.
14242         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
14243         disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
14245         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
14247         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
14249         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
14251         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
14253         * disk/raid5_recover.c: New file.
14255         * disk/raid6_recover.c: Likewise.
14257         * disk/mdraid_linux.c: Likewise.
14259         * disk/dmraid_nvidia.c: Likewise.
14261         * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
14262         ULONG_MAX.
14264         * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
14265         calculate the size of raid device.
14266         (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
14267         different layout of raid5.
14268         (grub_raid_scan_device): Remove code specific to mdraid.
14269         (grub_raid_list): New variable.
14270         (free_array): New function.
14271         (grub_raid_register): Likewise.
14272         (grub_raid_unregister): Likewise.
14273         (grub_raid_rescan): Likewise.
14274         (GRUB_MOD_INIT): Don't iterate device here.
14275         (GRUB_MOD_FINI): Use free_array to release resource.
14277         * include/grub/raid.h: Remove macro and structure specific to mdraid.
14278         (grub_raid5_recover_func_t): New function variable type.
14279         (grub_raid6_recover_func_t): Likewise.
14280         (grub_raid5_recover_func): New variable.
14281         (grub_raid6_recover_func): Likewise.
14282         (grub_raid_register): New function.
14283         (grub_raid_unregister): Likewise.
14284         (grub_raid_rescan): Likewise.
14285         (grub_raid_block_xor): Likewise.
14287         * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
14288         (CMD_CRC): New macro.
14289         (part): Removed.
14290         (read_file): Handle device as well as file.
14291         (cmd_crc): New function.
14292         (fstest): Handle multiple disks.
14293         (options): Remove part, raw and long, add root and diskcount.
14294         (usage): Add crc, remove -p, -r, -l, add -r and -c.
14295         (main): Find the first non option entry and ignore subsequent options,
14296         add handling for the new options, support multiple disks.
14298         * util/grub-probe.c (probe): Add mdraid to abstraction_name.
14300 2008-08-23  Bean  <bean123ch@gmail.com>
14302         * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
14304         * genfslist.sh: Ignore kernel.mod.
14306         * genpartmaplist.sh: Likewise.
14308 2008-08-23  Robert Millan  <rmh@aybabtu.com>
14310         * util/getroot.c (find_root_device): Skip anything that starts with
14311         a dot, not just directories.  This avoids things like /dev/.tmp.md0.
14313 2008-08-22  Felix Zielcke  <fzielcke@z-51.de>
14315         * util/update-grub.in (GRUB_GFXMODE): Export variable.
14316         * util/grub.d/00_header.in: Allow the administrator to change default
14317         gfxmode via ${GRUB_GFXMODE}.
14319 2008-08-21  Felix Zielcke  <fzielcke@z-51.de>
14321         * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
14323 2008-08-21  Robert Millan  <rmh@aybabtu.com>
14325         * loader/i386/linux.c: New file.  Implements generic 32-bit Linux
14326         loader.
14327         * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
14328         `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
14330 2008-08-20  Carles Pina i Estany  <carles@pina.cat>
14332         * menu/normal.c (run_menu): Replace hardcoded numbers with macros
14333         (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
14335 2008-08-19  Robert Millan  <rmh@aybabtu.com>
14337         * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
14338         (struct grub_virtual_screen): Remove `cursor_color'.
14339         (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
14340         initialization.
14341         (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
14343 2008-08-18  Robert Millan  <rmh@aybabtu.com>
14345         Unify (identical) linux_normal.c files.
14346         * loader/i386/efi/linux_normal.c: Move from here ...
14347         * loader/linux_normal.c: ... to here.  Update all users.
14348         * loader/i386/pc/linux_normal.c: Delete.  Update all users.
14349         * loader/i386/ieee1275/linux_normal.c: Likewise.
14351 2008-08-18  Robert Millan  <rmh@aybabtu.com>
14353         * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
14354         (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
14355         (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
14356         (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
14357         (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
14358         New macros.
14359         (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
14360         * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
14361         (GRUB_LINUX_CL_END_OFFSET): ... to here.
14362         * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
14363         (GRUB_LINUX_CL_OFFSET): ... this.  Update all users.
14364         (GRUB_EFI_CL_END_OFFSET): Rename to ...
14365         (GRUB_LINUX_CL_END_OFFSET): ... this.  Update all users.
14366         (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
14367         Initialize `params->video_cursor_x' and `params->video_cursor_y'
14368         portably using grub_getxy().
14369         Replace `-EFI' with `-bzImage' in boot message.
14371 2008-08-17  Robert Millan  <rmh@aybabtu.com>
14373         * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
14375 2008-08-17  Robert Millan  <rmh@aybabtu.com>
14377         * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
14379         * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
14380         (GRUB_MACHINE_MEMORY_RESERVED): New macros.
14381         (grub_machine_mmap_iterate): New function declaration.
14382         * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
14383         structure.
14384         (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
14385         macros.
14387         * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
14388         type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
14389         Move e820 parsing from here ...
14390         * kern/i386/pc/mmap.c: New file.
14391         (grub_machine_mmap_iterate): ... to here.
14393         * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
14394         (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
14395         (GRUB_MACHINE_MEMORY_AVAILABLE): ... this.  Update all users.
14396         (grub_available_iterate): Redeclare to return `void', and redeclare
14397         its hook to use grub_uint64_t as addr and size parameters, and rename
14398         to ...
14399         (grub_machine_mmap_iterate): ... this.  Update all users.
14401         * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
14402         to make it more readable.  Rename to ...
14403         (grub_machine_mmap_iterate): ... this.
14405         * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
14406         (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
14407         (grub_multiboot): Allocate an extra region after the payload, and fill
14408         it with a Multiboot memory map.  Adjust a.out loader to calculate size
14409         with the extra space.
14410         (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
14411         with the extra space.
14413 2008-08-17  Carles Pina i Estany  <carles@pina.cat>
14415         * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
14417 2008-08-17  Felix Zielcke  <fzielcke@z-51.de>
14419         * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
14420         mdate-sh to the list `find' searches for.
14421         * DISTLIST: Regenerated.
14423 2008-08-16  Felix Zielcke  <fzielcke@z-51.de>
14425         * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
14426         genkernsyms.sh.  Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
14427         genmoddep.awk, gensymlist.sh.in.
14428         (DISTDIRS): Add bus, docs, hook, lib.
14429         * DISTLIST: Regenerated.
14430         * NEWS: Add cygwin support and change the `os-prober' entry a bit.
14432 2008-08-16  Robert Millan  <rmh@aybabtu.com>
14434         * disk/raid.c (grub_raid_init): Handle/report errors set by
14435         grub_device_iterate().
14436         * disk/lvm.c (grub_lvm_init): Likewise.
14438 2008-08-15  Bean  <bean123ch@gmail.com>
14440         * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
14441         and datehook.mod.
14442         (datetime_mod_SOURCES): New macro.
14443         (datetime_mod_CFLAGS): Likewise.
14444         (datetime_mod_LDFLAGS): Likewise.
14445         (date_mod_SOURCES): Likewise.
14446         (date_mod_CFLAGS): Likewise.
14447         (date_mod_LDFLAGS): Likewise.
14448         (datehook_mod_SOURCES): Likewise.
14449         (datehook_mod_CFLAGS): Likewise.
14450         (datehook_mod_LDFLAGS): Likewise.
14452         * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
14453         and datehook.mod.
14454         (datetime_mod_SOURCES): New macro.
14455         (datetime_mod_CFLAGS): Likewise.
14456         (datetime_mod_LDFLAGS): Likewise.
14457         (date_mod_SOURCES): Likewise.
14458         (date_mod_CFLAGS): Likewise.
14459         (date_mod_LDFLAGS): Likewise.
14460         (datehook_mod_SOURCES): Likewise.
14461         (datehook_mod_CFLAGS): Likewise.
14462         (datehook_mod_LDFLAGS): Likewise.
14464         * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
14465         and datehook.mod.
14466         (datetime_mod_SOURCES): New macro.
14467         (datetime_mod_CFLAGS): Likewise.
14468         (datetime_mod_LDFLAGS): Likewise.
14469         (date_mod_SOURCES): Likewise.
14470         (date_mod_CFLAGS): Likewise.
14471         (date_mod_LDFLAGS): Likewise.
14472         (datehook_mod_SOURCES): Likewise.
14473         (datehook_mod_CFLAGS): Likewise.
14474         (datehook_mod_LDFLAGS): Likewise.
14476         * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
14477         and datehook.mod.
14478         (datetime_mod_SOURCES): New macro.
14479         (datetime_mod_CFLAGS): Likewise.
14480         (datetime_mod_LDFLAGS): Likewise.
14481         (date_mod_SOURCES): Likewise.
14482         (date_mod_CFLAGS): Likewise.
14483         (date_mod_LDFLAGS): Likewise.
14484         (datehook_mod_SOURCES): Likewise.
14485         (datehook_mod_CFLAGS): Likewise.
14486         (datehook_mod_LDFLAGS): Likewise.
14488         * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
14489         and datehook.mod.
14490         (datetime_mod_SOURCES): New macro.
14491         (datetime_mod_CFLAGS): Likewise.
14492         (datetime_mod_LDFLAGS): Likewise.
14493         (date_mod_SOURCES): Likewise.
14494         (date_mod_CFLAGS): Likewise.
14495         (date_mod_LDFLAGS): Likewise.
14496         (datehook_mod_SOURCES): Likewise.
14497         (datehook_mod_CFLAGS): Likewise.
14498         (datehook_mod_LDFLAGS): Likewise.
14500         * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
14502         * commands/date.c: New file.
14504         * hook/datehook.c: Likewise.
14506         * include/grub/lib/datetime.h: Likewise.
14508         * include/grub/i386/cmos.h: Likewise.
14510         * lib/datetime.c: Likewise.
14512         * lib/i386/datetime.c: Likewise.
14514         * lib/efi/datetime.c: Likewise.
14516 2008-08-14  Robert Millan  <rmh@aybabtu.com>
14518         * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
14519         (grub_mkelfimage_SOURCES): New variable.
14520         (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
14522         * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
14523         (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
14524         * conf/powerpc-ieee1275.rmk: Likewise.
14525         * conf/i386-ieee1275.rmk: Likewise.
14527         * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
14528         * kern/i386/coreboot/init.c: Likewise.
14530         * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
14531         with `<grub/cpu/kernel.h>'.
14532         (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
14533         to ...
14534         (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
14535         * kern/i386/coreboot/startup.S: Likewise.
14537         * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
14538         (GRUB_MOD_GAP): Remove.
14539         * include/grub/powerpc/kernel.h: New file.
14540         * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
14541         (GRUB_KERNEL_MACHINE_DATA_END): Remove.
14542         * include/grub/i386/kernel.h: New file.
14543         * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
14544         (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
14545         (GRUB_KERNEL_MACHINE_DATA_END): Remove.
14547         * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
14548         `grub-mkelfimage'.
14549         Use --directory when invoking grub_mkimage.
14551         * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
14552         (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
14553         GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
14554         and GRUB_KERNEL_CPU_PREFIX.
14556 2008-08-14  Felix Zielcke  <fzielcke@z-51.de>
14558         * include/grub/err.h (grub_err_printf): New function prototype.
14559         * util/misc.c (grub_err_printf): New function.
14560         * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
14561         grub_printf.
14562         * kern/err.c (grub_print_error): Use grub_err_printf.
14564 2008-08-13  Robert Millan  <rmh@aybabtu.com>
14566         * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
14568 2008-08-13  Robert Millan  <rmh@aybabtu.com>
14570         * docs/grub.cfg: Use the native device name for the example GNU/Hurd
14571         boot entry.
14573 2008-08-12  Robert Millan  <rmh@aybabtu.com>
14575         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
14576         of the relocation code from here ...
14577         (grub_multiboot): ... to here.
14578         (forward_relocator, backward_relocator): Move from here ...
14579         * kern/i386/loader.S (grub_multiboot_forward_relocator)
14580         (grub_multiboot_backward_relocator): ... to here.
14581         (grub_multiboot_real_boot): Use %edx for entry offset.  Put Multiboot
14582         magic in %eax.  Use %ebp for jumping (so %edx is not trashed).
14583         * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
14584         (grub_multiboot_forward_relocator_end)
14585         (grub_multiboot_backward_relocator)
14586         (grub_multiboot_backward_relocator_end): New variables.
14588 2008-08-12  Bean  <bean123ch@gmail.com>
14590         * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
14592 2008-08-11  Robert Millan  <rmh@aybabtu.com>
14594         * kern/i386/linuxbios/startup.S: Move from here ...
14595         * kern/i386/coreboot/startup.S: ... to here.
14597         * kern/i386/linuxbios/init.c: Move from here ...
14598         * kern/i386/coreboot/init.c: ... to here.
14600         * kern/i386/linuxbios/table.c: Move from here ...
14601         * kern/i386/coreboot/mmap.c: ... to here.
14603         * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
14605 2008-08-11  Robert Millan  <rmh@aybabtu.com>
14607         * kern/device.c (grub_device_open): Do not handle grub_disk_open()
14608         errors.  Leave it to the upper layer to handle them.
14610 2008-08-09  Christian Franke  <franke@computer.org>
14612         * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
14613         * conf/common.rmk: Install `grub-pe2elf' only if requested.
14614         Install `grub.d/10_windows' only on Cygwin.
14615         * configure.ac: Add subst of `target_os'.
14616         Check `target_os' also before setting TARGET_OBJ2ELF.
14617         Add `--enable-grub-pe2elf'.
14619 2008-08-08  Robert Millan  <rmh@aybabtu.com>
14621         * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
14622         (grub_last_time): Change type to grub_uint64_t.
14623         (grub_disk_open): Migrate code from to using grub_get_time_ms().
14624         (grub_disk_close): Likewise.
14626         * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
14627         (run_menu): Migrate code from to using grub_get_time_ms().
14629         * util/misc.c (grub_get_time_ms): New function.
14631 2008-08-08  Marco Gerards  <marco@gnu.org>
14633         * disk/ata.c (grub_ata_regget): Change return type to
14634         `grub_uint8_t'.
14635         (grub_ata_regget2): Likewise.
14636         (grub_ata_wait_status): New function.
14637         (grub_ata_wait_busy): Removed function, updated all users to use
14638         `grub_ata_wait_status'.
14639         (grub_ata_wait_drq): Likewise.
14640         (grub_ata_cmd): New function.
14641         (grub_ata_pio_read): Change return type to `grub_uint8_t'.  Add
14642         error handling.
14643         (grub_ata_pio_write): Add error handling.
14644         (grub_atapi_identify): Likewise.
14645         (grub_atapi_packet): Use `grub_ata_cmd' and improve error
14646         handling.
14647         (grub_ata_identify): Use `grub_ata_cmd' and improve error
14648         handling.  Actually use the detected registers.  Reorder the
14649         detection logic such that it is easier to read.
14650         (grub_ata_pciinit): Do not assign the same ID to each controller.
14651         (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
14652         handling.
14653         (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
14655         * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
14657 2008-08-08  Marco Gerards  <marco@gnu.org>
14659         * NEWS: Update.
14661 2008-08-07  Bean  <bean123ch@gmail.com>
14663         * include/grub/x86_64/pci.h: New file.
14665 2008-08-07  Christian Franke  <franke@computer.org>
14667         * kern/i386/pit.c (TIMER2_SPEAKER): New define.
14668         (TIMER2_GATE): Likewise.
14669         (grub_pit_wait): Add enable/disable of the timer2 gate
14670         bit of port 0x61.  This fixes a possible infinite loop.
14672 2008-08-07  Bean  <bean123ch@gmail.com>
14674         * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
14675         kern/i386/tsc.c and kern/i386/pit.c.
14677         * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
14678         x86_64 platform.
14680         * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
14681         <grub/i386/tsc.h>.
14683         * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
14685 2008-08-07  Bean  <bean123ch@gmail.com>
14687         * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
14689         * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
14691         * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
14692         multiple inclusion. Add #include <grub/types.h>.
14694 2008-08-06  Christian Franke  <franke@computer.org>
14696         * conf/common.rmk: Build and install `10_windows'.
14697         * util/grub.d/10_windows.in: New script.
14699 2008-08-06  Pavel Roskin  <proski@gnu.org>
14701         * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
14703 2008-08-06  Robert Millan  <rmh@aybabtu.com>
14705         * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
14706         * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
14708 2008-08-06  Bean  <bean123ch@gmail.com>
14710         * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
14711         (grub_pxefs_fs_int): Remove dummy definition.
14712         (grub_pxefs_open): Use data->block_size to store the current block
14713         size setting.
14714         (grub_pxefs_read): Use block size stored in data->block_size. As the
14715         value of grub_pxe_blksize can be changed after the file is opened.
14717 2008-08-06  Bean  <bean123ch@gmail.com>
14719         * fs/i386/pc/pxe.c (curr_file): new variable.
14720         (grub_pxefs_open): Simply the handling of pxe file system. Don't
14721         require the dummy internal file system anymore.
14722         (grub_pxefs_read): Removed.
14723         (grub_pxefs_close): Likewise.
14724         (grub_pxefs_fs_int): Likewise.
14725         (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
14726         connection when we switch file.
14727         (grub_pxefs_close_int): Renamed to grub_pxefs_close.
14729 2008-08-06  Robert Millan  <rmh@aybabtu.com>
14731         * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
14732         `halt.mod'.
14733         (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
14734         (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
14736         * kern/i386/halt.c: New file.
14737         * kern/i386/reboot.c: Likewise.
14738         * include/grub/i386/reboot.h: Likewise.
14739         * include/grub/i386/halt.h: Likewise.
14741         * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
14742         Include `<grub/cpu/halt.h>'.
14743         * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
14744         [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
14746         * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
14747         (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
14748         (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
14749         (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
14750         (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
14751         (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
14752         from here ...
14753         * include/grub/i386/at_keyboard.h: ... to here.
14755 2008-08-05  Robert Millan  <rmh@aybabtu.com>
14757         * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
14758         * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
14759         * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
14760         `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
14761         `kern/generic/millisleep.c'.
14763         * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
14764         instead of grub_get_rtc().
14765         (grub_tsc_init): Initialize `tsc_boot_time'.
14767         * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
14768         (grub_machine_init): Use grub_tsc_init() rather than
14769         installing an RTC-based handler via grub_install_get_time_ms().
14771         * kern/i386/pit.c: New file.
14772         * include/grub/i386/pit.h: Likewise.
14774 2008-08-05  Bean  <bean123ch@gmail.com>
14776         * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
14778         * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
14779         (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
14780         (pxe_mod_SOURCES): New macro.
14781         (pxe_mod_CFLAGS): Likewise.
14782         (pxe_mod_LDFLAGS): Likewise.
14783         (pxecmd_mod_SOURCES): Likewise.
14784         (pxecmd_mod_CFLAGS): Likewise.
14785         (pxecmd_mod_LDFLAGS): Likewise.
14787         * kern/i386/pc/startup.S (grub_pxe_scan): New function.
14788         (grub_pxe_call): Likewise.
14790         * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
14792         * commands/i386/pc/pxecmd.c: New file.
14794         * fs/i386/pc/pxe.c: Likewise.
14796         * include/grub/i386/pc/pxe.h: Likewise.
14798 2008-08-05  Bean  <bean123ch@gmail.com>
14800         * util/console.c (grub_console_cur_color): New variable.
14801         (grub_console_standard_color): Likewise.
14802         (grub_console_normal_color): Likewise.
14803         (grub_console_highlight_color): Likewise.
14804         (color_map): Likewise.
14805         (use_color): Likewise.
14806         (NUM_COLORS): New macro.
14807         (grub_ncurses_setcolorstate): Handle color properly.
14808         (grub_ncurses_setcolor): Don't change color here, just remember the
14809         settings, color will be set in grub_ncurses_setcolorstate.
14810         (grub_ncurses_getcolor): New function.
14811         (grub_ncurses_init): Initialize color pairs.
14812         (grub_ncurses_term): New member grub_ncurses_getcolor.
14814 2008-08-05  Colin D Bennett  <colin@gibibit.com>
14816         High resolution timer support.  Implemented for x86 CPUs using TSC.
14817         Extracted generic grub_millisleep() so it's linked in only as needed.
14818         This requires a Pentium compatible CPU; if the RDTSC instruction is
14819         not supported, then it falls back on the generic grub_get_time_ms()
14820         implementation that uses the machine's RTC.
14822         * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
14823         `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
14824         `kern/generic/millisleep.c'.
14826         * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
14827         `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
14829         * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
14830         `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
14832         * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
14834         * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
14835         `kern/generic/millisleep.c'.
14837         * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
14839         * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
14841         * kern/generic/rtc_get_time_ms.c: New file.
14843         * kern/generic/millisleep.c: New file.
14845         * kern/misc.c: Don't include
14846         <kern/time.h> anymore.
14847         (grub_millisleep_generic): Removed.
14849         * commands/sleep.c (grub_interruptible_millisleep): Uses
14850         grub_get_time_ms() instead of grub_get_rtc().
14852         * include/grub/i386/tsc.h (grub_get_tsc): New file.  New inline
14853         function.
14854         (grub_cpu_is_cpuid_supported): New inline function.
14855         (grub_cpu_is_tsc_supported): New inline function.
14856         (grub_tsc_init): New function prototype.
14857         (grub_tsc_get_time_ms): New function prototype.
14859         * kern/i386/tsc.c (grub_get_time_ms): New file.
14861         * include/grub/time.h: Include <grub/types.h.
14862         (grub_millisleep_generic): Removed.
14863         (grub_get_time_ms): New prototype.
14864         (grub_install_get_time_ms): New prototype.
14865         (grub_rtc_get_time_ms): New prototype.
14867         * kern/time.c (grub_get_time_ms): New function.
14868         (grub_install_get_time_ms): New function.
14870         * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>.  Don't include
14871         <grub/time.h> anymore.
14872         (grub_millisleep): Removed.
14873         (grub_machine_init): Call grub_tsc_init.
14875         * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
14876         get_time_ms() implementation.
14878         * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
14879         (ieee1275_get_time_ms): New function.
14880         (grub_machine_init): Install get_time_ms() implementation.
14882         * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
14883         (grub_machine_init): Call grub_tsc_init().
14884         (grub_millisleep): Removed.
14886         * kern/ieee1275/init.c (grub_millisleep): Removed.
14887         (grub_machine_init): Install ieee1275_get_time_ms()
14888         implementation.
14889         (ieee1275_get_time_ms): New function.
14890         (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
14891         real work.
14893 2008-08-05  Marco Gerards  <marco@gnu.org>
14895         * disk/ata.c: Include <grub/pci.h>.
14896         (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
14897         (grub_ata_initialize): Rewritten.
14898         (grub_ata_device_initialize): New function.
14900 2008-08-04  Pavel Roskin  <proski@gnu.org>
14902         * kern/main.c: Include grub/mm.h.
14904 2008-08-04  Robert Millan  <rmh@aybabtu.com>
14906         * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
14907         (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
14908         corruption problem).
14910 2008-08-04  Robert Millan  <rmh@aybabtu.com>
14912         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
14913         warnings introduced in my last commit.
14915 2008-08-03  Robert Millan  <rmh@aybabtu.com>
14917         Make PCI available on all i386 architectures.
14919         * include/grub/i386/pc/pci.h: Move from here ...
14920         * include/grub/i386/pci.h: ... to here.
14922         * include/grub/i386/pc/pci.h: Remove.
14923         * include/grub/i386/efi/pci.h: Remove.
14924         * include/grub/x86_64/efi/pci.h: Remove.
14926         * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
14927         `<grub/cpu/pci.h>'.
14929         * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
14930         (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
14931         (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
14933         * conf/i386-ieee1275.rmk: Likewise.
14935 2008-08-03  Robert Millan  <rmh@aybabtu.com>
14937         * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
14938         (grub_console_setcursor): Make it possible to set cursor off.
14940 2008-08-03  Robert Millan  <rmh@aybabtu.com>
14942         * util/grub.d/00_header.in: Be platform-agnostic.  Probe for existence
14943         of modules instead of assuming which platform provides what.
14944         * util/update-grub.in: Likewise.
14946 2008-08-03  Robert Millan  <rmh@aybabtu.com>
14948         * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
14949         instead of `grub_install_dos_part' to determine whether a drive needs
14950         to be prepended to prefix (`grub_install_dos_part' is not reliable,
14951         because it can be overridden when loading GRUB via Multiboot).
14953 2008-08-02  Robert Millan  <rmh@aybabtu.com>
14955         * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
14957 2008-08-02  Robert Millan  <rmh@aybabtu.com>
14959         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
14960         of informational grub_dprintf() calls.
14962 2008-08-02  Robert Millan  <rmh@aybabtu.com>
14964         * disk/memdisk.c (memdisk_size): Don't initialize.
14965         (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
14967         * include/grub/i386/pc/kernel.h
14968         (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
14969         (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
14970         (grub_memdisk_image_size, grub_arch_memdisk_addr)
14971         (grub_arch_memdisk_size): Remove.
14973         * include/grub/kernel.h (struct grub_module_header): Remove `offset'
14974         field (was only used to transfer a constant).  Add `type' field to
14975         support multiple module types.
14976         (grub_module_iterate): New function.
14978         * kern/device.c (grub_device_open): Do not hide error messages
14979         when grub_disk_open() fails.  Use grub_print_error() instead.
14981         * kern/i386/pc/init.c (grub_arch_modules_addr)
14982         (grub_arch_memdisk_size): Remove functions.
14983         (grub_arch_modules_addr): Return the module address in high memory
14984         (now that it isn't copied anymore).
14986         * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
14987         (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
14988         decompression routine (grub_total_module_size already includes that
14989         now).  Don't copy modules back to low memory.
14991         * kern/main.c: Include `<grub/mm.h>'.
14992         (grub_load_modules): Split out (and use) ...
14993         (grub_module_iterate): ... this function, which iterates through
14994         module objects and runs a hook.
14995         Comment out grub_mm_init_region() call, as it would cause non-ELF
14996         modules to be overwritten.
14998         * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
14999         the memdisk image in its own region, make it part of the module list.
15000         * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
15001         (main): Parse --memdisk|-m option, and pass user-provided path as
15002         parameter to generate_image().
15003         (add_segments): Pass `memdisk_path' down to load_modules().
15004         (load_modules): Embed memdisk image in module section when requested.
15005         * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
15006         `header.type' instead of `header.offset'.
15008         * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
15009         (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
15010         (memdisk_mod_LDFLAGS): New variables.
15011         * conf/i386-coreboot.rmk: Likewise.
15012         * conf/i386-ieee1275.rmk: Likewise.
15014 2008-08-02  Robert Millan  <rmh@aybabtu.com>
15016         * loader/i386/pc/multiboot.c (playground, forward_relocator)
15017         (backward_relocator): New variables.  Used to allocate and relocate
15018         the payload, respectively.
15019         (grub_multiboot_load_elf32): Load into heap instead of requested
15020         address, install the appropriate relocator code in each bound of
15021         the payload, and set the entry point such that
15022         grub_multiboot_real_boot() will jump to one of them.
15024         * kern/i386/loader.S (grub_multiboot_payload_size)
15025         (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
15026         (grub_multiboot_payload_entry_offset): New variables.
15027         (grub_multiboot_real_boot): Set cpu context to what the relocator
15028         expects, and jump to the relocator instead of the payload.
15030         * include/grub/i386/loader.h (grub_multiboot_payload_size)
15031         (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
15032         (grub_multiboot_payload_entry_offset): Export.
15034 2008-08-01  Bean  <bean123ch@gmail.com>
15036         * normal/menu_entry.c (editor_getline): Don't return the original
15037         string as result, as it will be released by lexer once it has done
15038         using it.
15040 2008-08-01  Robert Millan  <rmh@aybabtu.com>
15042         * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
15043         within menuentries, not before them.
15044         util/grub.d/10_hurd.in: Likewise.
15046 2008-08-01  Bean  <bean123ch@gmail.com>
15048         * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
15049         (bufio_mod_SOURCES): New macro.
15050         (bufio_mod_CFLAGS): Likewise.
15051         (bufio_mod_LDFLAGS): Likewise.
15053         * include/grub/bufio.h: New file.
15055         * io/bufio.c: Likewise.
15057         * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
15058         (grub_video_reader_png): Use grub_buffile_open to open file.
15060         * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
15061         (grub_video_reader_jpeg): Use grub_buffile_open to open file.
15063         * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
15064         (grub_video_reader_tga): Use grub_buffile_open to open file.
15066         * font/manager.c: Include <grub/bufio.h>.
15067         (add_font): Use grub_buffile_open to open file.
15069 2008-07-31  Robert Millan  <rmh@aybabtu.com>
15071         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
15072         ELF segments, use a macro for arbitrarily accessing any of them instead
15073         of preparing a pointer that allows access to one at a time.
15074         (grub_multiboot_load_elf64): Likewise.
15076 2008-07-31  Bean  <bean123ch@gmail.com>
15078         * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
15079         GRUB_KERNEL_MACHINE_DATA_END.
15081 2008-07-30  Robert Millan  <rmh@aybabtu.com>
15083         * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
15084         Increase from 0x50 to 0x60.
15085         * util/i386/pc/grub-install.in: Detect cross-disk installs, and
15086         use UUIDs to identify the root drive for them.  If that's not
15087         possible, abort.
15088         * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
15089         check, for cross-disk installs.
15091 2008-07-30  Robert Millan  <rmh@aybabtu.com>
15093         * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
15094         is non-empty, use it to set the `prefix' environment variable instead
15095         of the usual approach.
15096         * kern/i386/linuxbios/init.c (make_install_device): Remove function.
15097         (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
15098         environment variable instead of dummy make_install_device().
15100         * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
15101         (start): Insert a data section, with `grub_prefix' variable.
15102         * kern/i386/linuxbios/startup.S: Likewise.
15104         * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
15105         New variable reference.
15106         * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
15107         New macro.  Defines offset of `grub_prefix' within startup.S (relative
15108         to `start').
15109         (GRUB_KERNEL_MACHINE_DATA_END): New macro.  Defines the end of data
15110         section within startup.S (relative to `start').
15111         * include/grub/i386/coreboot/kernel.h: Likewise.
15113         * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
15114         Overwrite grub_prefix with its contents, at the beginning of the
15115         first segment.
15116         (main): Understand -p|--prefix.
15118 2008-07-30  Robert Millan  <rmh@aybabtu.com>
15120         * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
15122 2008-07-30  Robert Millan  <rmh@aybabtu.com>
15124         * term/i386/pc/vga_text.c (grub_console_cls): Use
15125         grub_console_gotoxy() to go back to beginning of the screen.
15126         Found by Patrick Georgi <patrick.georgi@coresystems.de>
15128 2008-07-29  Christian Franke  <franke@computer.org>
15130         * util/update-grub_lib.in (make_system_path_relative_to_its_root):
15131         Add conversion of emulated mount points on Cygwin.
15133 2008-07-29  Christian Franke  <franke@computer.org>
15135         * util/update-grub.in: Add a check for admin
15136         group on Cygwin.
15137         Remove old `grub.cfg.new' before creation.
15138         Add `-f' to `mv' to handle the different filesystem
15139         semantics of Windows.
15141 2008-07-29  Bean  <bean123ch@gmail.com>
15143         * normal/main.c (get_line): Fix buffer overflow bug.
15145 2008-07-28  Robert Millan  <rmh@aybabtu.com>
15147         * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
15148         (struct grub_apple_header): New struct.  Describes the layout of
15149         the partmap header.
15150         (apple_partition_map_iterate): Check the header magic as well as the
15151         partition magic (which was already being checked).
15153 2008-07-28  Pavel Roskin  <proski@gnu.org>
15155         * genmk.rb: Add a warning to the beginning of the output that
15156         it's a generated file and should not be edited.
15158 2008-07-28  Robert Millan  <rmh@aybabtu.com>
15160         * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
15161         with the same number are found, just use issue a warning with
15162         grub_dprintf(), as this error has been reported to be non-fatal.
15164 2008-07-27  Robert Millan  <rmh@aybabtu.com>
15166         * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
15167         information.
15169 2008-07-27  Bean  <bean123ch@gmail.com>
15171         * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
15172         (grub_fat_find_dir): Ignore case when comparing filename.
15174 2008-07-27  Bean  <bean123ch@gmail.com>
15176         * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
15177         smallino, as it's more descriptive, and i8count can be confused with
15178         the other field count.
15179         (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
15180         inode type.
15182 2008-07-27  Bean  <bean123ch@gmail.com>
15184         * commands/crc.c: New file.
15186         * lib/crc.c: Likewise.
15188         * include/grub/lib/crc.h: Likewise.
15190         * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
15192         * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
15193         (hexdump): Move this function to ...
15195         * lib/hexdump.c: ... here.
15197         * include/grub/hexdump.h: Renamed to ...
15199         * include/grub/lib/hexdump.h: ... this.
15201         * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
15203         * util/grub-editenv.c: Likewise.
15205         * include/envblk.h: Renamed to ...
15207         * include/lib/envblk.h: ... this.
15209         * util/envblk.c: Renamed to ...
15211         * lib/envblk.c: ... this.
15213         * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
15214         lib/hexdump.c.
15215         (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
15216         (pkglib_MODULES): Add crc.mod.
15217         (hexdump_mod_SOURCES): Add lib/hexdump.c.
15218         (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
15219         (crc_mod_SOURCES): New macro.
15220         (crc_mod_CFLAGS): Likewise.
15221         (crc_mod_LDFLAGS): Likewise.
15223         * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
15225         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
15227         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
15229         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
15231         * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
15233 2008-07-27  Felix Zielcke  <fzielcke@z-51.de>
15235         * commands/help.c: Include <grub/term.h>.
15236         (TERM_WIDTH): Removed.  Updated all users.
15238 2008-07-27  Pavel Roskin  <proski@gnu.org>
15240         * util/getroot.c (find_root_device): Rephrase a comment to avoid
15241         spurious warnings about a comment within a comment.
15243 2008-07-25  Robert Millan  <rmh@aybabtu.com>
15245         * util/getroot.c (find_root_device): Skip devices that match
15246         /dev/dm-[0-9].  This lets the real device be found for any type of
15247         abstraction (LVM, EVMS, RAID..).
15248         (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
15249         and /dev/evms (for EVMS) before traversing /dev.  If a /dev/dm-[0-9]
15250         device is found first, find_root_device() will now skip it.
15252 2008-07-24  Pavel Roskin  <proski@gnu.org>
15254         * include/grub/types.h: Use __builtin_bswap32() and
15255         __builtin_bswap64() with gcc 4.3 and newer.
15257 2008-07-24  Christian Franke  <franke@computer.org>
15259         * util/i386/pc/grub-install.in: If `--debug' is specified,
15260         pass `--verbose' to grub-setup.
15261         Abort script if make_system_path_relative_to_its_root() fails.
15263 2008-07-24  Bean  <bean123ch@gmail.com>
15265         * configure.ac: Fixed a bug caused by the previous cygwin patch,
15266         variable `target_platform' should be `platform'.
15268 2008-07-24  Bean  <bean123ch@gmail.com>
15270         * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
15271         (grub_png_init_fixed_block): New function.
15272         (grub_png_decode_image_data): Handle fixed huffman code compression.
15274 2008-07-24  Bean  <bean123ch@gmail.com>
15276         * common.rmk (bin_UTILITIES): Add grub-pe2elf.
15277         (grub_pe2elf_SOURCES): New macro.
15278         (CLEANFILES): Add grub-pe2elf.
15280         * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
15281         (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
15282         (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
15283         (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
15284         (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
15285         (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
15286         (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
15287         (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
15288         (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
15289         (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
15290         (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
15291         (GRUB_PE32_SYM_CLASS_FILE): Likewise.
15292         (GRUB_PE32_DT_FUNCTION): Likewise.
15293         (GRUB_PE32_REL_I386_DIR32): Likewise.
15294         (GRUB_PE32_REL_I386_REL32): Likewise.
15295         (grub_pe32_symbol): New structure.
15296         (grub_pe32_reloc): Likewise.
15298         * util/grub-pe2elf.c: New file.
15300         * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
15301         start symbol in non pc platform.
15303         * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
15305         The following patches are from Christian Franke.
15307         * include/grub/dl.h: Remove .previous, gas supports this only
15308         for ELF format.
15310         * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
15311         Remove .type, gas supports this only for ELF format.
15313         * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
15314         nullbytes in symbol table. This fixes an infinite loop if table is
15315         zero filled.
15317         * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
15318         TARGET_IMG_LDFLAGS and EXEEXT.
15320         * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
15321         TARGET_IMG_LDFLAGS_AC.
15322         (grub_CHECK_STACK_ARG_PROBE): New function.
15324         * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
15326         * conf/i386-pc-cygwin-ld-img.sc: New linker script.
15328         * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
15329         to set TARGET_IMG_LD* accordingly.
15330         Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
15331         Add call to grub_CHECK_STACK_ARG_PROBE.
15332         Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
15334         * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
15336         * genmk.rb: Add EXEEXT to CLEANFILES.
15338 2008-07-23  Robert Millan  <rmh@aybabtu.com>
15340         * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
15341         define the codes for arrows and lines used for the menu).
15342         (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
15343         as well.
15345         * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
15346         fonts, because the latter are too slow.
15348 2008-07-21  Bean  <bean123ch@gmail.com>
15350         * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
15351         a20. Run keyboard test last, as it will cause macbook to halt.
15353 2008-07-18  Pavel Roskin  <proski@gnu.org>
15355         * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P.  We cannot
15356         load foreign architecture modules correctly anyway.  Keep
15357         support for loading host architecture modules, whether we
15358         compile them or not.
15360 2008-07-17  Pavel Roskin  <proski@gnu.org>
15362         * configure.ac: Use -m32 or -m64 regardless of whether we had to
15363         change target_cpu.  The compiler default can mismatch target_cpu
15364         in any case.
15366         * disk/efi/efidisk.c: Fix format warnings on x86_64.
15367         * kern/efi/efi.c: Likewise.
15369         * aclocal.m4 (grub_PROG_TARGET_CC): New macro.  Check if the
15370         target compiler is functional.
15371         * configure.ac: Call grub_PROG_TARGET_CC once all target flags
15372         are set up.
15374         * configure.ac: Default to efi platform for x86_64-apple.  Allow
15375         powerpc64 CPU, default to ieee1275 platform for it.  Split CPU
15376         adjustments from the rest, only do them if target is not
15377         explicitly given.  Merge other adjustments with the final sanity
15378         check.  Remove an extraneous check for supported CPU.  Be
15379         specific which CPU and which platform is not supported.
15381         * configure.ac: Default to pc platform for x86_64.
15383 2008-07-17  Robert Millan  <rmh@aybabtu.com>
15385         Partial LinuxBIOS -> Coreboot rename.
15387         * conf/i386-linuxbios.rmk: Renamed to ...
15388         * conf/i386-coreboot.rmk: ... this.
15389         * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
15390         * configure.ac: Accept "coreboot" as input platform (but maintain
15391         compatibility with "linuxbios").
15392         * include/grub/i386/linuxbios: Renamed to ...
15393         * include/grub/i386/coreboot: ... this.
15395 2008-07-17  Bean  <bean123ch@gmail.com>
15397         * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
15398         (appleldr_mod_SOURCE): New variable.
15399         (appleldr_mod_CFLAGS): Likewise.
15400         (appleldr_mod_LDFLAGS): Likewise.
15401         (pci_mod_SOURCES): Likewise.
15402         (pci_mod_CFLAGS): Likewise.
15403         (pci_mod_LDFLAGS): Likewise.
15404         (lspci_mod_SOURCES): Likewise.
15405         (lspci_mod_CFLAGS): Likewise.
15406         (lspci_mod_LDFLAGS): Likewise.
15408         * conf/x86_64-efi.rmk: New file.
15410         * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
15411         macro.
15412         (grub_efidisk_write): Likewise.
15414         * include/efi/api.h (efi_call_0): New macro.
15415         (efi_call_1): Likewise.
15416         (efi_call_2): Likewise.
15417         (efi_call_3): Likewise.
15418         (efi_call_4): Likewise.
15419         (efi_call_5): Likewise.
15420         (efi_call_6): Likewise.
15422         * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
15423         grub_rescue_cmd_chainloader.
15425         * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
15426         (grub_pe32_optional_header): Change some fields based on i386 or
15427         x86_64 platform.
15428         (GRUB_PE32_PE32_MAGIC): Likewise.
15430         * include/grub/efi/uga_draw.h: New file.
15432         * include/grub/elf.h (STN_ABS): New constant.
15433         (R_X86_64_NONE): Relocation constant for x86_64.
15434         (R_X86_64_64): Likewise.
15435         (R_X86_64_PC32): Likewise.
15436         (R_X86_64_GOT32): Likewise.
15437         (R_X86_64_PLT32): Likewise.
15438         (R_X86_64_COPY): Likewise.
15439         (R_X86_64_GLOB_DAT): Likewise.
15440         (R_X86_64_JUMP_SLOT): Likewise.
15441         (R_X86_64_RELATIVE): Likewise.
15442         (R_X86_64_GOTPCREL): Likewise.
15443         (R_X86_64_32): Likewise.
15444         (R_X86_64_32S): Likewise.
15445         (R_X86_64_16): Likewise.
15446         (R_X86_64_PC16): Likewise.
15447         (R_X86_64_8): Likewise.
15448         (R_X86_64_PC8): Likewise.
15450         * include/grub/i386/efi/pci.h: New file.
15452         * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
15453         Change it value based on platform.
15454         (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
15455         (GRUB_E820_RAM): Likewise.
15456         (GRUB_E820_RESERVED): Likewise.
15457         (GRUB_E820_ACPI): Likewise.
15458         (GRUB_E820_NVS): Likewise.
15459         (GRUB_E820_EXEC_CODE): Likewise.
15460         (GRUB_E820_MAX_ENTRY): Likewise.
15461         (grub_e820_mmap): New structure.
15462         (linux_kernel_header): Change the efi field according to different
15463         kernel version, also field from linux_kernel_header.
15465         * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
15467         * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
15468         (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
15469         (GRUB_PCI_ADDR_SPACE_IO): Likewise.
15470         (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
15471         (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
15472         (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
15473         (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
15474         (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
15475         (GRUB_PCI_ADDR_MEM_MASK): Likewise.
15476         (GRUB_PCI_ADDR_IO_MASK): Likewise.
15478         * include/grub/x86_64/efi/kernel.h: New file.
15480         * include/grub/x86_64/efi/loader.h: Likewise.
15482         * include/grub/x86_64/efi/machine.h: Likewise.
15484         * include/grub/x86_64/efi/pci.h: Likewise.
15486         * include/grub/x86_64/efi/time.h: Likewise.
15488         * include/grub/x86_64/linux.h: Likewise.
15490         * include/grub/x86_64/setjmp.h: Likewise.
15492         * include/grub/x86_64/time.h: Likewise.
15494         * include/grub/x86_64/types.h: Likewise.
15496         * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
15497          GRUB_TARGET_SIZEOF_VOID_P.
15499         * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
15500         (grub_efi_locate_handle): Likewise.
15501         (grub_efi_open_protocol): Likewise.
15502         (grub_efi_set_text_mode): Likewise.
15503         (grub_efi_stall): Likewise.
15504         (grub_exit): Likewise.
15505         (grub_reboot): Likewise.
15506         (grub_halt): Likewise.
15507         (grub_efi_exit_boot_services): Likewise.
15508         (grub_get_rtc): Likewise.
15510         * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
15511         (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
15512         (grub_efi_allocate_pages): Wrap efi calls.
15513         (grub_efi_free_pages): Wrap efi calls.
15514         (grub_efi_get_memory_map): Wrap efi calls.
15516         * kern/x86_64/dl.c: New file.
15518         * kern/x86_64/efi/callwrap.S: Likewise.
15520         * kern/x86_64/efi/startup.S: Likewise.
15522         * loader/efi/appleloader.c: Likewise.
15524         * loader/efi/chainloader.c (cmdline): New variable.
15525         (grub_chainloader_unload): Wrap efi calls.
15526         (grub_chainloader_boot): Likewise.
15527         (grub_rescue_cmd_chainloader): Wrap efi calls, handle
15528         command line.
15530         * loader/efi/chainloader_normal.c (chainloader_command):
15531         Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
15532         command line.
15534         * loader/i386/efi/linux.c (allocate_pages): Change allocation
15535         method.
15536         (grub_e820_add_region): New function.
15537         (grub_linux_boot): Construct e820 map from efi map, handle x86_64
15538         booting.
15539         (grub_find_video_card): New function.
15540         (grub_linux_setup_video): New function.
15541         (grub_rescue_cmd_linux): Probe for video information.
15543         * normal/x86_64/setjmp.S: New file.
15545         * term/efi/console.c (map_char): New function.
15546         (grub_console_putchar): Map unicode char.
15547         (grub_console_checkkey): Wrap efi calls.
15548         (grub_console_getkey): Likewise.
15549         (grub_console_getwh): Likewise.
15550         (grub_console_gotoxy): Likewise.
15551         (grub_console_cls): Likewise.
15552         (grub_console_setcolorstate): Likewise.
15553         (grub_console_setcursor): Likewise.
15555         * util/i386/efi/grub-mkimage.c: Add support for x86_64.
15557 2008-07-16  Pavel Roskin  <proski@gnu.org>
15559         * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
15560         format strings.
15562         * util/i386/efi/grub-mkimage.c (get_target_address): Return a
15563         pointer, not an integer.  This fixes a warning and prevents
15564         precision loss on 64-bit systems.
15565         (relocate_addresses): Remove unneeded cast.
15567 2008-07-15  Pavel Roskin  <proski@gnu.org>
15569         * kern/i386/ieee1275/init.c: Include grub/cache.h.
15571         * term/ieee1275/ofconsole.c: Disable code unused on i386.
15573         * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
15574         Fix comparison between signed and unsigned.
15576         * include/grub/i386/ieee1275/console.h: Declare
15577         grub_console_init() and grub_console_fini().
15579         * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
15580         It's empty and unused.
15582         * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
15583         beginning to avoid warnings with some compilers.
15585         * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
15586         [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
15588 2008-07-14  Pavel Roskin  <proski@gnu.org>
15590         * kern/env.c (grub_register_variable_hook): Don't copy empty
15591         string, it leaks memory.  Pass "" to grub_env_set(), it should
15592         handle constant strings.
15594         * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
15595         * commands/cmp.c (grub_cmd_cmp): Likewise.
15596         * kern/dl.c (grub_dl_flush_cache): Likewise.
15597         (grub_dl_load_core): Likewise.
15598         * kern/elf.c (grub_elf32_load_phdrs): Likewise.
15599         (grub_elf64_load_phdrs): Likewise.
15601 2008-07-13  Pavel Roskin  <proski@gnu.org>
15603         * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
15604         between signed and unsigned.
15605         (LzmaEnc_Finish): Fix warning about an unused parameter.
15607 2008-07-13  Bean  <bean123ch@gmail.com>
15609         * Makefile.in (enable_lzo): New rule.
15611         * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
15613         * configure.ac (ENABLE_LZO): New option --enable-lzo.
15615         * boot/i386/pc/lnxboot.S: #include <config.h>.
15617         * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
15618         its value according to the compression algorithm used, lzo or lzma.
15620         * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
15621         compression algorithm according to configure macro.
15623         * kern/i386/pc/startup.S (codestart): Likewise.
15625         * kern/i386/pc/lzma_decode.S: New file.
15627         * include/grub/lib/LzFind.h: Likewise.
15629         * include/grub/lib/LzHash.h: Likewise.
15631         * include/grub/lib/LzmaDec.h: Likewise.
15633         * include/grub/lib/LzmaEnc.h: Likewise.
15635         * include/grub/lib/LzmaTypes.h: Likewise.
15637         * lib/LzFind.c: Likewise.
15639         * lib/LzmaDec.c: Likewise.
15641         * lib/LzmaEnc.c: Likewise.
15643 2008-07-13  Bean  <bean123ch@gmail.com>
15645         * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
15646         (grub_ext4_extent_header): New structure.
15647         (grub_ext4_extent): Likewise.
15648         (grub_ext4_extent_idx): Likewise.
15649         (grub_ext4_find_leaf): New function.
15650         (grub_ext2_read_block): Handle extents.
15652 2008-07-12  Robert Millan  <rmh@aybabtu.com>
15654         * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
15656 2008-07-11  Robert Millan  <rmh@aybabtu.com>
15658         * util/grub.d/40_custom.in: New file. Example on how to add custom
15659         entries to /etc/grub.d.
15660         * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
15661         40_custom (implicitly, by merging all the grub.d rules).
15663 2008-07-11  Pavel Roskin  <proski@gnu.org>
15665         * commands/read.c (grub_getline): Fix invalid memory access.
15666         Don't add newline to the variable value.
15668         * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
15669         [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
15670         (serial_hw_get_port): Check validity of the port number.
15671         (grub_cmd_serial): Check return value of serial_hw_get_port().
15673 2008-07-07  Pavel Roskin  <proski@gnu.org>
15675         * boot/i386/pc/diskboot.S (notification_string): Replace
15676         "Loading kernel" with just "loading".  This is shorter, less
15677         confusing and saves a few bytes for possible future changes.
15679 2008-07-05  Pavel Roskin  <proski@gnu.org>
15681         * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
15682         size for ATAPI devices, they are undefined.  Output sector
15683         number in decimal form.
15685         * disk/ata.c: Use named constants for status bits.
15687 2008-07-04  Pavel Roskin  <proski@gnu.org>
15689         * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
15690         grub_addr_t before casting it to the void pointer to fix a
15691         warning.  Non-addressable regions are discarded earlier.
15692         (grub_arch_modules_addr): Cast _end to grub_addr_t.
15693         * kern/i386/linuxbios/table.c: Include grub/misc.h.
15694         (check_signature): Don't shadow table_header.
15695         (grub_linuxbios_table_iterate): Cast numeric constants to
15696         grub_linuxbios_table_header_t.
15697         * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
15698         grub_stop().
15700         * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
15701         prevent warnings.
15703         * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
15704         pointer, which can cause warnings.  Support 64-bit addresses.
15706         * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
15707         of sizeof(long).  This fixes PowerPC image generation on x86_64.
15709 2008-07-04  Robert Millan  <rmh@aybabtu.com>
15711         This fixes a performance issue when pc & gpt partmap iterators
15712         didn't abort iteration even after our hook found what it was
15713         looking for (often causing expensive probes of non-existent drives).
15715         Some callers relied on previous buggy behaviour, since they would
15716         raise an error when their own hooks caused early abortion of its
15717         iteration.
15719         * kern/device.c (grub_device_open): Improve error message.
15720         * disk/lvm.c (grub_lvm_open): Likewise.
15721         * disk/raid.c (grub_raid_open): Likewise.
15723         * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
15724         when hook requests it, independently of grub_errno.
15725         (pc_partition_map_probe): Do not fail when find_func() caused
15726         early abortion of pc_partition_map_iterate().
15728         * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
15729         when hook requests it, independently of grub_errno.
15730         (gpt_partition_map_probe): Do not fail when find_func() caused
15731         early abortion of gpt_partition_map_iterate().
15733         * kern/partition.c (grub_partition_iterate): Abort parent iteration
15734         when hook requests it, independently of grub_errno.  Do not fail when
15735         part_map_iterate_hook() caused early abortion of p->iterate().
15737         * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
15738         when grub_partition_iterate() returned with non-zero.
15740 2008-07-03  Pavel Roskin  <proski@gnu.org>
15742         * disk/ata.c (grub_ata_pio_write): Check status before writing,
15743         like we do in grub_ata_pio_read().
15744         (grub_ata_readwrite): Always write individual sectors.  Fix the
15745         sector count for the remainder.
15746         (grub_ata_write): Enable writing to ATA devices.  Correctly
15747         report error for ATAPI devices.
15749 2008-07-02  Pavel Roskin  <proski@gnu.org>
15751         * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
15752         warning.
15754         * disk/ata.c (grub_ata_readwrite): Don't increment sector number
15755         for every read sector, we already increment it for the whole
15756         batch.  This fixes reading more than 256 sectors at once.
15758         * util/grub-editenv.c (cmd_info): Cast argument to long
15759         explicitly.  ptrdiff_t reduces to int on i386.
15761         * util/grub-editenv.c (main): Be specific which parameter is
15762         missing.
15764         * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
15765         (memdisk): Make memdisk_orig_addr a pointer.
15767         * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
15768         for file offsets, use grub_off_t instead.  Fix printf format
15769         warnings.
15771         * fs/reiserfs.c: Remove #warning, TODO list items don't belong
15772         there.  Real unexpected warnings should not drown in the noise
15773         about known problems.
15775         * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
15776         grub_disk_addr_t for memory addresses.
15778         * loader/aout.c (grub_aout_load): Cast load_addr to pointer
15779         explicitly to fix a warning.
15781         * util/grub-editenv.c (cmd_info): Fix warning in printf format.
15783         * Makefile.in (MODULE_LDFLAGS): New variable.
15784         * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro.  Check if
15785         the linker accepts --build-id=none.
15786         * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE.  Substitute
15787         MODULE_LDFLAGS.
15788         * genmk.rb: Use MODULE_LDFLAGS when linking modules.
15790         * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
15791         those in Linux XFS code.  Provide a way to access 64-bit parent
15792         inode.
15793         (grub_xfs_iterate_dir): Use the new names.  Avoid reading past
15794         the end of struct grub_xfs_dir_header.
15796 2008-07-02  Bean  <bean123ch@gmail.com>
15798         * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
15799         GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
15800         and GRUB_IEEE1275_FLAG_NO_ANSI.
15802         * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
15803         GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
15804         and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
15806         * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
15807         immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
15809         * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
15810         GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
15812         * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
15813         esc sequence on non ANSI terminal.
15814         (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
15816         * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
15817         beginning of file.
15819 2008-07-02  Bean  <bean123ch@gmail.com>
15821         * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
15822         (grub_editenv_SOURCES): New variable.
15823         (pkglib_MODULES): Add loadenv.mod.
15824         (loadenv_mod_SOURCES): New variable.
15825         (loadenv_mod_CFLAGS): Likewise.
15826         (loadenv_mod_LDFLAGS): Likewise.
15828         * include/grub/envblk.h: New file.
15830         * util/envblk.c: New file.
15832         * util/grub-editenv.c: New file.
15834         * commands/loadenv.c: New file.
15836 2008-07-01  Pavel Roskin  <proski@gnu.org>
15838         * include/multiboot2.h (struct multiboot_tag_module): Use char,
15839         not unsigned char.  This fixes warnings and is consistent with
15840         other tags.
15842         * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
15844         * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
15846         * term/tparm.c (analyze): Always set *popcount.
15848         * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
15849         cast to fix a warning.
15851         * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
15852         cast to suppress a warning.
15854         * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
15855         grub_fshelp_read_file() expects.
15857         * fs/fat.c: Fix UUID calculation on big-endian systems.  We
15858         write uuid as a 32-bit value in CPU byte order, so declare and
15859         use it as such.
15861         * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
15862         long if the format specifier expects it.
15863         * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
15864         * partmap/pc.c (pc_partition_map_iterate): Likewise.
15865         * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
15866         long to fix a warning.
15867         * fs/reiserfs.c (grub_reiserfs_read): Change casts in
15868         grub_dprintf() arguments to fix warnings.
15870 2008-06-30  Pavel Roskin  <proski@gnu.org>
15872         * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
15873         install_bsd_part immediately before core.img is embedded or
15874         modified on disk.  This fixes core.img verification if core.img
15875         cannot be embedded.
15877         * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
15878         core_path to calculate the blocklist.
15879         Patch from Javier Martín <lordhabbit@gmail.com>
15881 2008-06-29  Robert Millan  <rmh@aybabtu.com>
15883         * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro.  Maps filesystem
15884         block to disk block.
15885         (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
15886         Patch from Niels Böhm <bitbucket@arcor.de>
15888 2008-06-29  Robert Millan  <rmh@aybabtu.com>
15890         * util/update-grub_lib.in (font_path): Search for fonts in
15891         /boot/grub first, which is more likely to be readable (we aren't
15892         deciding where fonts live, just looking for them).
15894 2008-06-26  Pavel Roskin  <proski@gnu.org>
15896         * util/biosdisk.c (read_device_map): Don't leave dead map
15897         entries for devices failing stat() check.
15899         * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
15900         core_path_dev for the core.img path on the target device.
15902 2008-06-26  Robert Millan  <rmh@aybabtu.com>
15904         * disk/fs_uuid.c: New file.
15905         * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
15906         (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
15907         (fs_uuid_mod_LDFLAGS): New variables.
15908         * include/grub/disk.h (grub_disk_dev_id): Add
15909         `GRUB_DISK_DEVICE_UUID_ID'.
15910         * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
15911         implement iterate().
15913 2008-06-26  Robert Millan  <rmh@aybabtu.com>
15915         * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
15916         "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
15917         Linux image includes no initrd.
15919 2008-06-21  Javier Martín  <lordhabbit@gmail.com>
15921         * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
15922         call to resolve the core image location that effectively appended the
15923         name twice.
15925 2008-06-21  Robert Millan  <rmh@aybabtu.com>
15927         * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
15928         call from here ...
15930         * util/grub.d/10_hurd.in: ... to here ...
15931         * util/grub.d/10_linux.in: ... and here.
15933 2008-06-19  Robert Millan  <rmh@aybabtu.com>
15935         * kern/main.c (grub_main): Export `prefix' variable immediately
15936         after it has been set by grub_machine_set_prefix().
15938 2008-06-19  Robert Millan  <rmh@aybabtu.com>
15940         * commands/search.c (search_label, search_fs_uuid, search_file): Print
15941         search result when not saving to variable, not the other way around.
15942         When saving to variable, abort iteration as soon as a match is found.
15944 2008-06-19  Robert Millan  <rmh@aybabtu.com>
15946         * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
15947         check for partition that provides /boot/grub.  Its logic is flawed,
15948         as it prevents prepare_grub_to_access_device() from being called
15949         multiple times.
15951 2008-06-19  Robert Millan  <rmh@aybabtu.com>
15953         * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
15954         "insmod" command directly when abstraction modules are needed,
15955         instead of relying on GRUB_PRELOAD_MODULES (which had no effect
15956         since it had already been processed).
15958 2008-06-19  Pavel Roskin  <proski@gnu.org>
15960         * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
15961         changed.  This is needed in case GRUB_LIBDIR changes.
15962         * conf/i386-ieee1275.rmk: Likewise.
15963         * conf/i386-linuxbios.rmk: Likewise.
15964         * conf/i386-pc.rmk: Likewise.
15965         * conf/powerpc-ieee1275.rmk: Likewise.
15967 2008-06-18  Pavel Roskin  <proski@gnu.org>
15969         * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
15970         kernel_elf_symlist.c to symlist.c for consistency with other
15971         architectures.  Update all users.
15972         * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
15974 2008-06-18  Robert Millan  <rmh@aybabtu.com>
15976         * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
15977         it in prefix.
15979         * util/i386/pc/grub-setup.c (main): Don't handle prefix at all.  Set
15980         `must_embed' to 1 when root_dev is a RAID device.  When dest_dev is
15981         a RAID device, run setup() for all members independently on whether
15982         LVM abstraction is being used.
15983         (setup): Don't handle prefix at all; let grub-mkimage take care of it.
15984         If grub-mkimage has set `*install_dos_part == -2', don't override this
15985         value.
15986         Perform *install_dos_part adjustments independently on whether
15987         we're embedding or not.
15988         Clarify error message when image is too big for embedding.
15989         Remove duplicate *install_dos_part stanza.
15991 2008-06-17  Robert Millan  <rmh@aybabtu.com>
15993         * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
15994         (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
15995         variables.
15996         (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
15997         values in grub_ofconsole_normal_color and
15998         grub_ofconsole_highlight_color (they're not directly related to
15999         background and foreground).
16000         (grub_ofconsole_setcolorstate): Extract background and foreground
16001         from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
16003 2008-06-17  Robert Millan  <rmh@aybabtu.com>
16005         * util/update-grub_lib.in (prepare_grub_to_access_device): Use
16006         /boot/grub for the check in last commit, not /boot (they could be
16007         different partitions).
16009 2008-06-16  Robert Millan  <rmh@aybabtu.com>
16011         * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
16012         asked to setup access for the same partition that provides /boot,
16013         don't bother using UUIDs since our root already has the value we
16014         want.
16016 2008-06-16  Robert Millan  <rmh@aybabtu.com>
16018         * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
16019         I2O devices.
16020         Patch from Sven Mueller <sven@debian.org>.
16022 2008-06-16  Robert Millan  <rmh@aybabtu.com>
16024         * util/update-grub.in: Check for $EUID instead of $UID.
16025         Reported by Vincent Zweije.
16027 2008-06-16  Bean  <bean123ch@gmail.com>
16029         * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
16030         (grub_ext2_read_block): Likewise.
16031         (grub_ext2_read_inode): Likewise.
16032         (grub_ext2_mount): Likewise.
16033         (grub_ext2_close): Likewise.
16034         (grub_ext3_get_journal): Removed.
16036         * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
16037         (grub_reiserfs_read_symlink): Likewise.
16038         (grub_reiserfs_mount): Likewise.
16039         (grub_reiserfs_open): Likewise.
16040         (grub_reiserfs_read): Likewise.
16041         (grub_reiserfs_close): Likewise.
16042         (grub_reiserfs_get_journal): Removed.
16044         * fs/fshelp.c (grub_fshelp_read): Removed.
16045         (grub_fshelp_map_block): Likewise.
16047         * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
16048         (grub_fshelp_journal): Likewise.
16049         (grub_fshelp_read): Likewise.
16050         (grub_fshelp_map_block): Likewise.
16052 2008-06-16  Pavel Roskin  <proski@gnu.org>
16054         * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
16055         floating point anymore.
16056         * include/grub/powerpc/libgcc.h: Leave only necessary exports.
16058 2008-06-15  Pavel Roskin  <proski@gnu.org>
16060         * commands/ls.c (grub_ls_list_files): Use integer calculations
16061         for human readable format, avoid floating point use.
16062         * kern/misc.c (grub_ftoa): Remove.
16063         (grub_vsprintf): Remove floating point support.
16065 2008-06-15  Robert Millan  <rmh@aybabtu.com>
16067         * util/grub.d/10_linux.in: Use the underlying device for loop-AES
16068         devices.
16069         Reported by Max Vozeler.
16071 2008-06-15  Robert Millan  <rmh@aybabtu.com>
16073         * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
16074         in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
16075         skipped later.
16076         (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
16077         the beginning of the prefix.
16079         * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
16080         It is assumed that if we have a memdisk, grub-mkimage has set
16081         grub_prefix to include the "(memdisk)" drive in it.
16083 2008-06-15  Robert Millan  <rmh@aybabtu.com>
16085         * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
16086         Initialize keyboard controller after registering the terminal, so that
16087         grub_printf() can be called from grub_keyboard_controller_init().
16089 2008-06-15  Robert Millan  <rmh@aybabtu.com>
16091         * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
16092         extent-btree which is written as big endian on disk.
16093         Reported by Alain Greppin  <al@chilibi.org>.
16095 2008-06-14  Robert Millan  <rmh@aybabtu.com>
16097         * util/i386/efi/grub-install.in (modules): Remove `_chain'.
16098         * util/i386/pc/grub-install.in (modules): Likewise.
16100 2008-06-13  Pavel Roskin  <proski@gnu.org>
16102         * commands/ls.c (grub_ls_list_files): Fix format warnings.
16104 2008-06-13  Bean  <bean123ch@gmail.com>
16106         * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
16108         * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
16110         * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
16111         to indicate sparse block.
16113 2008-06-12  Pavel Roskin  <proski@gnu.org>
16115         * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
16116         number, grub_fshelp_read() does it for us.
16118         * fs/fshelp.c (grub_fshelp_read): New function.  Implement
16119         linear disk read with journal translation.
16120         * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
16121         * include/grub/fshelp.h: Declare grub_fshelp_read().
16123 2008-06-09  Pavel Roskin  <proski@gnu.org>
16125         * fs/minix.c (grub_minix_mount): Handle error reading
16126         superblock.
16128 2008-06-08  Robert Millan  <rmh@aybabtu.com>
16130         * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
16131         don't append the RAID prefix afterwards.
16132         Reported by Clint Adams.
16134 2008-06-08  Robert Millan  <rmh@aybabtu.com>
16136         Based on description from Pavel:
16137         * kern/disk.c (grub_disk_check_range): Rename to ...
16138         (grub_disk_adjust_range): ... this.  Add a comment explaining the
16139         tasks performed by this function.
16141 2008-06-08  Robert Millan  <rmh@aybabtu.com>
16143         * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
16144         `num_serial' (for consistency with other variables).
16145         (struct grub_ntfs_data): Add `uuid' member.
16146         * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
16147         (grub_ntfs_uuid): New function.
16148         (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
16150 2008-06-07  Pavel Roskin  <proski@gnu.org>
16152         * util/biosdisk.c (open_device): Revert last change to the
16153         function, it broke installation.  The sector needs to be
16154         different dependent on which device is opened.
16156 2008-06-06  Robert Millan  <rmh@aybabtu.com>
16158         Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
16159         rest of GRUB, and breakage doesn't happen if its value were modified.
16161         * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
16162         Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
16163         a constant (same value).
16164         * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
16165         `GRUB_KERNEL_MACHINE_DATA_END' (same value).
16167 2008-06-06  Robert Millan  <rmh@aybabtu.com>
16169         * util/biosdisk.c (open_device): Do not modify sector offset when
16170         accessing a partition.  kern/disk.c already handles this for us.
16172 2008-06-06  Robert Millan  <rmh@aybabtu.com>
16174         * util/grub-emu.c (grub_machine_init): Move code in this function from
16175         here ...
16176         (main): ... to here (before grub_util_biosdisk_init() call, to prevent
16177         segfault in case grub_printf() is called).
16179         * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
16180         grub_probe.  Update all users not to explicitly add it again.
16181         (grub_device): New variable; contains corresponding device for grubdir.
16182         (fs_module, partmap_module, devabstraction_module): Pass
16183         `--device ${grub_device}' to grub_probe to avoid traversing /dev
16184         every time.
16186 2008-06-05  Robert Millan  <rmh@aybabtu.com>
16188         * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
16189         is found, print it (same layout as with labels).
16191 2008-06-04  Robert Millan  <rmh@aybabtu.com>
16193         * util/biosdisk.c (get_drive): Rename to ...
16194         (find_grub_drive): ... this.  Update all users.
16196         (get_os_disk): Rename to ...
16197         (convert_system_partition_to_system_disk): ... this.  Update all users.
16199         (find_drive): Rename to ...
16200         (find_system_device): ... this.  Update all users.
16202 2008-06-04  Robert Millan  <rmh@aybabtu.com>
16204         * util/biosdisk.c (get_os_disk): Handle IDA devices.
16205         * util/grub-mkdevicemap.c (get_mmc_disk_name)
16206         (make_device_map): Likewise.
16208 2008-06-01  Robert Millan  <rmh@aybabtu.com>
16210         *  util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
16211         before dereferencing it.
16213         * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
16214         union with fat12/fat16-specific ones.  Add some new fields, including
16215         `num_serial' for both versions.
16216         (struct grub_fat_data): Add `uuid' member.
16217         (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
16218         names.  Initialize `data->uuid' using `num_serial'.
16219         (grub_fat_uuid): New function.
16220         (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
16222         * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
16223         (grub_reiserfs_uuid): New function.
16224         (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
16225         member.
16227         * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
16228         (grub_xfs_uuid): New function.
16229         (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
16231 2008-06-01  Robert Millan  <rmh@aybabtu.com>
16233         * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
16234         code that is backward compatible with pre-uuid search command.
16236 2008-05-31  Robert Millan  <rmh@aybabtu.com>
16238         * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
16239         floppies after everything else, to ensure floppy drive isn't accessed
16240         unnecessarily (patch from Bean).
16242 2008-05-31  Robert Millan  <rmh@aybabtu.com>
16244         * commands/search.c (search_label, search_fs_uuid, search_file): Do
16245         not print device names when we were asked to set a variable.
16247 2008-05-31  Robert Millan  <rmh@aybabtu.com>
16249         * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
16250         using "cursor-on" and "cursor-off" commands (understood at least by
16251         the Open Firmware flavour on OLPC).
16253 2008-05-31  Michael Gorven  <michael@gorven.za.net>
16255         * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
16256         on and off sequences.
16258 2008-05-31  Robert Millan  <rmh@aybabtu.com>
16260         * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
16261         * util/update-grub.in: Likewise.
16263 2008-05-30  Pavel Roskin  <proski@gnu.org>
16265         * util/biosdisk.c (linux_find_partition): Simplify logic and
16266         make the code more universal.  Keep special processing for
16267         devfs, but use a simple rule for all other devices.  If the
16268         device ends with a number, append 'p' and the partition number.
16269         Otherwise, append only the partition number.
16271 2008-05-30  Robert Millan  <rmh@aybabtu.com>
16273         * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
16274         * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
16275         GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
16276         the `root' parameter to Linux.
16278 2008-05-30  Robert Millan  <rmh@aybabtu.com>
16280         * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
16281         * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
16282         --fs_uuid with --fs-uuid.
16283         * util/update-grub.in: Allow filesystem UUID probes to fail (since not
16284         all filesystems support them).
16286 2008-05-30  Robert Millan  <rmh@aybabtu.com>
16288         * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
16289         grub_printf() flags, since we're printing in units of 2 bytes.
16291 2008-05-30  Robert Millan  <rmh@aybabtu.com>
16293         * util/grub.d/00_header.in: Remove obsolete comment referencing
16294         convert_system_path_to_grub_path().
16295         * util/update-grub.in: Likewise.
16296         * util/update-grub_lib.in (is_path_readable_by_grub): New function.
16297         (convert_system_path_to_grub_path): Add a warning message explaining
16298         that this function is deprecated.  Rely on is_path_readable_by_grub()
16299         for the readability checks.
16300         (font_path): Use is_path_readable_by_grub() for the readability
16301         check rather than convert_system_path_to_grub_path().
16303 2008-05-30  Robert Millan  <rmh@aybabtu.com>
16305         * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
16306         * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
16307         converting it first.
16308         * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
16309         grub.cfg for access to font file, and afterwards call it again to set
16310         the root device.
16312 2008-05-30  Robert Millan  <rmh@aybabtu.com>
16314         * commands/search.c (options): Add --fs_uuid option.
16315         (search_fs_uuid): New function.
16316         (grub_cmd_search): Fix --set argument passing.
16317         Use search_fs_uuid() when requested via --fs_uuid.
16318         (grub_search_init): Update help message.
16319         * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
16320         and redeclare it as an array of 16-bit words.
16321         (grub_ext2_uuid): New function.
16322         (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
16323         * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
16324         * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
16325         (GRUB_DEVICE_BOOT_UUID): New variables.
16326         (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
16327         * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
16328         whenever possible.
16329         * util/grub.d/10_hurd.in: Avoid explicit use of root drive.  Instead,
16330         just assume `root' variable has the right value.
16331         * util/grub.d/10_linux.in: Likewise.
16332         * util/grub-probe.c (probe): Probe for filesystem UUID when requested
16333         via PRINT_FS_UUID.
16334         (main): Recognise `-t fs_uuid' argument.
16336 2008-05-30  Robert Millan  <rmh@aybabtu.com>
16338         * util/biosdisk.c (map): Redefine structure to hold information
16339         about GRUB drive name.
16340         (get_drive): Reimplement without assuming (and verifying) BIOS-like
16341         drive names.
16342         (call_hook): Remove.
16343         (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
16344         member.  Assume drive has partitions.
16345         (grub_util_biosdisk_open): Access device names via `.device' struct
16346         member.
16347         (open_device): Likewise.
16348         (find_drive): Likewise.
16349         (read_device_map): Adjust map[] usage to match the new struct
16350         definition.  Don't check for duplicates (still possible, but not cheap
16351         anymore).
16352         (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
16353         (make_device_name): Remove assumption of BIOS-like drive names.
16355 2008-05-30  Pavel Roskin  <proski@gnu.org>
16357         * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
16358         compiling execute.c doesn't need grub_script.tab.h anymore.
16359         (normal/command.c_DEPENDENCIES): Likewise.
16360         (normal/function.c_DEPENDENCIES): Likewise.
16361         * conf/i386-ieee1275.rmk: Likewise.
16362         * conf/i386-linuxbios.rmk: Likewise.
16363         * conf/i386-pc.rmk: Likewise.
16364         * conf/powerpc-ieee1275.rmk: Likewise.
16365         * conf/sparc64-ieee1275.rmk: Likewise.
16367 2008-05-29  Pavel Roskin  <proski@gnu.org>
16369         * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
16370         when scanning metadata for volume group name.
16372         * include/grub/script.h: Don't include grub_script.tab.h.  It's
16373         a generated file, which may only be included from the files with
16374         DEPENDENCIES rules in the makefile.  Don't use typedef YYSTYPE,
16375         use union YYSTYPE, as the later allows forward declaration.
16376         * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
16378 2008-05-29  Robert Millan  <rmh@aybabtu.com>
16380         * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
16381         (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
16382         [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
16383         (grub_console_checkkey): Add grub_dprintf() call to report unknown
16384         scan codes.
16386 2008-05-29  Robert Millan  <rmh@aybabtu.com>
16388         * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
16389         control key combinations.
16391 2008-05-29  Robert Millan  <rmh@aybabtu.com>
16393         * util/powerpc/ieee1275/grub-install.in: Move from here ...
16394         * util/ieee1275/grub-install.in: ... to here.
16395         * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
16396         * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
16397         (grub_install_SOURCES): Likewise.
16399 2008-05-29  Robert Millan  <rmh@aybabtu.com>
16401         * fs/affs.c: Update copyright year.
16402         * fs/ext2.c: Likewise.
16403         * fs/fshelp.c: Likewise.
16404         * fs/hfsplus.c: Likewise.
16405         * fs/ntfs.c: Likewise.
16406         * fs/xfs.c: Likewise.
16407         * include/grub/fshelp.h: Likewise.
16408         * util/grub-mkdevicemap.c: Likewise.
16410 2008-05-28  Robert Millan  <rmh@aybabtu.com>
16412         * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
16413         might need to be fatfs to support some firmware implementations
16414         (e.g. OFW or EFI).
16416 2008-05-28  Robert Millan  <rmh@aybabtu.com>
16418         * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
16419         devices.
16420         * util/grub-mkdevicemap.c (get_mmc_disk_name)
16421         (make_device_map): Likewise.
16423 2008-05-20  Bean  <bean123ch@gmail.com>
16425         * fs/fshelp.c (grub_fshelp_map_block): New function.
16426         (grub_fshelp_find_file): Use 64-bit type for pos and block address.
16427         Use `>>' and `&' operator to avoid 64-bit divide and modulo.
16429         * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
16430         (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
16431         (grub_fshelp_journal): New structure.
16432         (grub_fshelp_map_block): New function prototype.
16433         (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
16434         (grub_fshelp_map_block): Likewise.
16436         * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
16437         (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
16438         (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
16439         (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
16440         (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
16441         (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
16442         (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
16443         (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
16444         (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
16445         (EXT3_JOURNAL_FLAG_DELETED): Likewise.
16446         (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
16447         (grub_ext2_sblock): New members for journal support.
16448         (grub_ext3_journal_header): New structure.
16449         (grub_ext3_journal_revoke_header): Likewise.
16450         (grub_ext3_journal_block_tag): Likewise.
16451         (grub_ext3_journal_sblock): Likewise.
16452         (grub_fshelp_node): New members logfile and journal.
16453         (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
16454         grub_fshelp_map_block to get real block number.
16455         (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
16456         number.
16457         (grub_ext2_read_inode): Likewise.
16458         (grub_ext3_get_journal): New function.
16459         (grub_read_inode): Initialize journal using grub_ext3_get_journal.
16460         (grub_ext2_close): Release memory used by journal.
16462         * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
16463         (REISERFS_MAGIC_DESC_BLOCK): New macro.
16464         (grub_reiserfs_transaction_header): Renamed to
16465         grub_reiserfs_description_block, replace field data with real_blocks.
16466         (grub_reiserfs_commit_block): New structure.
16467         (grub_reiserfs_data): New member journal.
16468         (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
16469         number.
16470         (grub_reiserfs_read_symlink): Likewise.
16471         (grub_reiserfs_iterate_dir): Likewise.
16472         (grub_reiserfs_open): Likewise.
16473         (grub_reiserfs_read): Likewise.
16474         (grub_reiserfs_get_journal): New function.
16475         (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
16476         three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
16477         using grub_reiserfs_get_journal.
16478         (grub_reiserfs_close): Release memory used by journal.
16480         * fs/affs.c (grub_affs_read_block): Change block type to
16481         grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
16483         * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
16485         * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
16487         * fs/ntfs.c (grub_ntfs_read_block): Likewise.
16489         * fs/udf.c (grub_udf_read_block): Change block type to
16490         grub_disk_addr_t. Use type cast to avoid warning.
16492         * fs/xfs.c (grub_xfs_read_block): Likewise.
16494 2008-05-16  Christian Franke  <franke@computer.org>
16496         * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
16497         to ensure that break with ESC will always work.
16498         * commands/sleep.c (grub_interruptible_millisleep): Likewise.
16499         Remove ESC from keyboard queue.
16501 2008-05-16  Christian Franke  <franke@computer.org>
16503         * util/biosdisk.c: [__CYGWIN__] Add includes.
16504         (grub_util_biosdisk_open): Use Linux code also for Cygwin.
16505         (get_os_disk): Move variable declarations to OS specific
16506         parts to avoid warning.
16507         [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
16508         [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
16509         (grub_util_biosdisk_get_grub_dev): Use Linux code also for
16510         Cygwin.
16511         * util/getroot.c: [__CYGWIN__] Add includes.
16512         (strip_extra_slashes): Fix "/" case.
16513         [__CYGWIN__] (get_win32_path): New function.
16514         [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
16515         [__CYGWIN__] (find_root_device): Disable.
16516         [__CYGWIN__] (get_bootsec_serial): New function.
16517         [__CYGWIN__] (find_cygwin_root_device): Likewise.
16518         [__linux__] (grub_guess_root_device): Add early returns to simplify
16519         structure.
16520         [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
16521         [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
16522         check for Linux only.
16524 2008-05-15  Bean  <bean123ch@gmail.com>
16526         * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
16527         keyboard hang problem in apple's intel mac.
16529 2008-05-09  Robert Millan  <rmh@aybabtu.com>
16531         * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
16532         devices.
16533         * util/grub-mkdevicemap.c (get_virtio_disk_name)
16534         (make_device_map): Likewise.
16535         Reported by Aurelien Jarno <aurel32@debian.org>
16537 2008-05-07  Ian Campbell  <ijc@hellion.org.uk>
16539         * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
16540         * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
16541         (make_device_map): Output entries for xvd type disks.
16543 2008-05-07  Robert Millan  <rmh@aybabtu.com>
16545         * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
16546         devices.
16547         * util/grub-mkdevicemap.c (get_cciss_disk_name)
16548         (make_device_map): Likewise.
16549         Reported by Roland Dreier <rdreier@cisco.com>
16551 2008-05-07  Robert Millan  <rmh@aybabtu.com>
16553         * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
16554         grub_strstr() call.  Correct a few mistakes in failure path handling.
16556 2008-05-06  Robert Millan  <rmh@aybabtu.com>
16558         * util/update-grub_lib.in (make_system_path_relative_to_its_root):
16559         Do not print a trailing slash (therefore, the root directory is an
16560         empty string).
16561         (convert_system_path_to_grub_path): Do not remove trailing slash
16562         from make_system_path_relative_to_its_root() output.
16564         * util/i386/pc/grub-install.in: Add trailing slash to output from
16565         make_system_path_relative_to_its_root().
16567 2008-05-06  Robert Millan  <rmh@aybabtu.com>
16569         * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'.  This
16570         ensures that output lines aren't intermangled with those sent to
16571         stderr (via grub_util_info()).
16572         * util/grub-probe.c (grub_refresh): Likewise.
16573         * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
16575 2008-05-05  Christian Franke  <franke@computer.org>
16577         * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
16578         Add Cygwin device names.
16579         (get_ide_disk_name) [__CYGWIN__]: Likewise.
16580         (get_scsi_disk_name) [__CYGWIN__]: Likewise.
16581         (check_device): Return error instead of success on empty name.
16582         (make_device_map): Move label inside linux specific code to
16583         prevent compiler warning.
16585 2008-04-30  Robert Millan  <rmh@aybabtu.com>
16587         Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
16588         * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
16589         first boot option.
16590         * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
16592 2008-04-29  Robert Millan  <rmh@aybabtu.com>
16594         * docs/grub.cfg: New file (example GRUB configuration).
16596 2008-04-26  Robert Millan  <rmh@aybabtu.com>
16598         * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST).  Add
16599         `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
16600         and `disk/ieee1275/nand.c'.
16602 2008-04-25  Bean  <bean123ch@gmail.com>
16604         * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
16605         i386-linuxbios.
16607         * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
16608         change the buffer size to 4096 for cdrom device.
16610         * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
16611         and nand.mod.
16612         (_linux_mod_SOURCES): New variable.
16613         (_linux_mod_CFLAGS): Likewise.
16614         (_linux_mod_LDFLAGS): Likewise.
16615         (linux_mod_SOURCES): Likewise.
16616         (linux_mod_CFLAGS): Likewise.
16617         (linux_mod_LDFLAGS): Likewise.
16618         (nand_mod_SOURCES): Likewise.
16619         (nand_mod_CFLAGS): Likewise.
16620         (nand_mod_LDFLAGS): Likewise.
16622         * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
16623         GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
16624         type property. (nand device in olpc don't have this property)
16626         * include/grub/disk.h (grub_disk_dev_id): New macro
16627         GRUB_DISK_DEVICE_NAND_ID.
16629         * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
16630         function prototype.
16631         (grub_rescue_cmd_initrd): Likewise.
16633         * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
16634         (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
16635         ofw_cif_handler and ofw_idt, adjust padding number.
16637         * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
16638         GRUB_MACHINE_IEEE1275 is defined.
16640         * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
16641         Use NESTED_FUNC_ATTR attribute on the hook parameter.
16643         * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
16644         on nested function heap_init.
16645         (grub_upper_mem): New variable for i386-ieee1275.
16646         (grub_get_extended_memory): New function for i386-ieee1275.
16647         (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
16649         * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
16650         NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
16651         property.
16653         * loader/i386/ieee1275/linux.c: New file.
16655         * loader/i386/ieee1275/linux_normal.c: New file.
16657         * disk/ieee1275/nand.c: New file.
16659 2008-04-18  Thomas Schwinge  <tschwinge@gnu.org>
16661         * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
16662         value.
16663         * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
16665 2008-04-18  Robert Millan  <rmh@aybabtu.com>
16667         Restructures early code path on ieee1275 to unify grub_main() as
16668         the first C function that is executed in every platform.
16670         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
16671         * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
16672         cmain().
16673         * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
16674         * kern/ieee1275/cmain.c (cmain): Rename to ...
16675         * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
16676         * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
16677         at the beginning.
16679 2008-04-18  Robert Millan  <rmh@aybabtu.com>
16681         * util/update-grub.in: Fix syntax error when setting
16682         `GRUB_PRELOAD_MODULES'.
16683         Reported by Stephane Chazelas <stephane@artesyncp.com>
16685 2008-04-17  Lubomir Kundrak  <lkundrak@redhat.com>
16687         * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
16688         section into account, newer toolchains generate unique build ids
16689         * configure.ac: remove the test for --build-id=none acceptance,
16690         we want build ids to be preserved
16691         * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
16692         far from other sections don't cause the raw binary images grow
16693         size
16695 2008-04-15  Robert Millan  <rmh@aybabtu.com>
16697         * disk/lvm.c: Update copyright year.
16698         * kern/misc.c: Likewise.
16700 2008-04-14  Vesa Jaaskelainen  <chaac@nic.fi>
16702         * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
16703         there is no memory left for physical volume name.
16705 2008-04-14  Vesa Jaaskelainen  <chaac@nic.fi>
16707         * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
16708         volume name mapping to support bigger than 9 character names properly.
16710 2008-04-13  Robert Millan  <rmh@aybabtu.com>
16712         * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
16713         as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
16715 2008-04-13  Christian Franke  <franke@computer.org>
16717         * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
16718         to create a floppy emulation boot CD when non emulation mode
16719         does not work.
16720         Enable Joliet CD filesystem extension.
16722 2008-04-13  Robert Millan  <rmh@aybabtu.com>
16724         * kern/misc.c (grub_strncat): Fix off-by-one error.
16725         Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
16727         * kern/env.c (grub_env_context_close): Clear current context, not
16728         previous one.
16729         Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
16731         * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
16733 2008-04-13  Robert Millan  <rmh@aybabtu.com>
16735         Improve robustness when handling LVM.
16737         * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
16738         (and leave `*p' unmodified).
16739         (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
16740         through it.
16741         (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
16742         iterating through it.
16743         (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
16744         through it.
16745         (grub_lvm_scan_device): Check the return value (and fail gracefully
16746         when due) on each grub_lvm_getvalue() or grub_strstr() call.
16747         Don't assume `vg->pvs != NULL' when iterating through it.
16749 2008-04-13  Robert Millan  <rmh@aybabtu.com>
16751         * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
16752         * genmk.rb (partmap): New variable.
16753         (CLEANFILES, PARTMAPFILES): Add #{partmap}.
16754         (#{partmap}): New target rule.
16755         * genpartmaplist.sh: New file.
16756         * Makefile.in (pkglib_DATA): Add partmap.lst.
16757         (partmap.lst): New target rule.
16758         * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
16759         modules (including all partition maps), instead of preloading them.
16761 2007-04-13  Fabian Greffrath  <fabian.greffrath@web.de>
16763         * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
16764         `linux-boot-prober' (if installed) to detect other operating
16765         systems which are installed on the computer and add them to
16766         the boot menu.
16767         * conf/common.rmk: Build and install 30_os-prober.
16769 2008-04-12  Robert Millan  <rmh@aybabtu.com>
16771         * kern/powerpc/ieee1275/init.c: Move from here ...
16772         * kern/ieee1275/init.c: ... to here.  Update all users.
16774         * kern/powerpc/ieee1275/cmain.c: Move from here ...
16775         * kern/ieee1275/cmain.c: ... to here.  Update all users.
16777         * kern/powerpc/ieee1275/openfw.c: Move from here ...
16778         * kern/ieee1275/openfw.c: ... to here.  Update all users.
16780         * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
16781         * loader/ieee1275/multiboot2.c: ... to here.  Update all users.
16783 2008-04-10  Pavel Roskin  <proski@gnu.org>
16785         * configure.ac: Always use "_cv_" in cache variables for
16786         compatibility with Autoconf 2.62.
16788 2008-04-07  Robert Millan  <rmh@aybabtu.com>
16790         Revert grub/machine/init.h addition by Pavel (since it breaks on
16791         i386-ieee1275 and others):
16792         * util/i386/pc/misc.c: Remove grub/machine/init.h.
16793         * util/powerpc/ieee1275/misc.c: Likewise.
16795 2008-04-07  Robert Millan  <rmh@aybabtu.com>
16797         * util/grub-probe.c (probe): Improve error message.
16799 2008-04-07  Robert Millan  <rmh@aybabtu.com>
16801         * util/biosdisk.c (read_device_map): Skip devices that don't exist
16802         (this prevents the presence of a bogus entry from ruining the whole
16803         thing).
16805 2008-04-06  Pavel Roskin  <proski@gnu.org>
16807         * util/biosdisk.c: Include grub/util/biosdisk.h.
16808         * util/grub-fstest.c (execute_command): Make static.
16809         * util/grub-mkdevicemap.c (check_device): Likewise.
16810         * util/i386/pc/misc.c: Include grub/machine/init.h.
16811         * util/powerpc/ieee1275/misc.c: Likewise.
16812         * util/lvm.c: Include grub/util/lvm.h.
16813         * util/misc.c: Include grub/kernel.h, grub/misc.h and
16814         grub/cache.h.
16815         * util/raid.c: Include grub/util/raid.h.
16816         (grub_util_getdiskname): Make static.
16818         * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
16819         grub_hostfs_fini(), as they are called from grub_init_all() and
16820         grub_fini_all() respectively.  This fixes an infinite loop in
16821         grub-fstest due to double registration of hostfs.
16822         Reported by Christian Franke <Christian.Franke@t-online.de>
16824 2008-04-05  Pavel Roskin  <proski@gnu.org>
16826         * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
16827         all 8 functions.  Otherwise, probe function 0 only.
16829 2008-04-04  Pavel Roskin  <proski@gnu.org>
16831         * commands/lspci.c (grub_lspci_iter): Print the bus number
16832         correctly.
16834         * commands/lspci.c (grub_pci_classes): Fix typos.
16835         (grub_lspci_iter): Don't print func twice.  Print vendor ID
16836         before device ID, as it's normally done.
16838         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
16839         Fix signedness warnings.
16840         * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
16841         Likewise.
16842         * util/ieee1275/get_disk_name.c: Include config.h so that
16843         _GNU_SOURCE is defined and getline() is declared.  Mark an
16844         unused argument as such.  Fix a signedness warning.
16846 2008-04-02  Pavel Roskin  <proski@gnu.org>
16848         * genkernsyms.sh.in: Use more robust assignments for CC and
16849         srcdir.  Quote srcdir.
16850         * gensymlist.sh.in: Likewise.  Assert at the compile time that
16851         the symbol table is not empty.
16853         * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
16854         * fs/cpio.c (grub_cpio_read): Likewise.
16856 2008-04-01  Pavel Roskin  <proski@gnu.org>
16858         * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
16859         * disk/host.c (grub_host_open): Likewise.
16860         * disk/loopback.c (grub_loopback_open): Likewise.
16861         * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
16862         disk->id as in disk/host.c, not a multi-character constant.
16864         * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek().  The
16865         later is obsolete, potentially dangerous and sets a bad example.
16866         * util/i386/efi/grub-mkimage.c (make_header): Likewise.
16867         * util/misc.c (grub_util_get_image_size): Likewise.
16869         * disk/loopback.c (options): Improve help for "--partitions".
16871         * normal/arg.c (grub_arg_show_help): Fix spacing of the long
16872         options to align them with the short options, e.g. "echo -e".
16874 2008-03-31  Bean  <bean123ch@gmail.com>
16876         * video/reader/png.c (grub_png_data): New member is_16bit and
16877         image_data.
16878         (grub_png_decode_image_header): Detect 16 bit png image.
16879         (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
16880         (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
16881         (grub_video_reader_png): Release memory occupied by image_data.
16883         * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
16884         4096 bytes.
16885         (grub_nfs_mount): Skip the test for sector per cluster.
16887         * include/grub/ntfs.h (MAX_SPC): Removed.
16889 2008-03-31  Bean  <bean123ch@gmail.com>
16891         * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
16892         (grub_probe_SOURCES): Add fs/afs.c.
16893         (grub_fstest_SOURCES): Likewise.
16894         (afs_mod_SOURCES): New variable.
16895         (afs_mod_CFLAGS): Likewise.
16896         (afs_mod_LDFLAGS): Likewise.
16898         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
16899         (grub_emu_SOURCES): Likewise.
16901         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
16903         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
16905         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
16907         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
16909         * fs/afs.c: New file.
16911 2008-03-30  Pavel Roskin  <proski@gnu.org>
16913         * disk/host.c: Include grub/misc.h to fix a warning.
16914         * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
16915         warnings about implicit declarations.
16917         * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
16918         variable.
16919         * include/grub/i386/loader.h: Change declaration of
16920         grub_linux_boot() to match what grub_loader_set() expects.
16921         * util/getroot.c (grub_guess_root_device): Return const char* to
16922         fix a warning.
16923         * util/grub-probe.c (probe): Fix a warning about uninitialized
16924         abstraction_name variable.
16925         * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
16926         second argument as unused to fix a warning.
16928         * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
16929         missing grub_error() call.
16931         * util/update-grub_lib.in: Define datarootdir, since Autoconf
16932         2.60 and newer uses it to define datadir.
16934         * commands/sleep.c: Fix warning about implicit declaration.
16935         * disk/memdisk.c: Likewise.
16936         * loader/aout.c: Likewise.
16937         * loader/i386/bsd_normal.c: Likewise.
16938         * util/grub-probe.c: Likewise.
16940         * commands/i386/cpuid.c (has_longmode): Make static.
16941         * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
16942         * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
16944         * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
16945         GDT.  This is more robust, as %ds can change.
16946         (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
16947         calling real_to_prot().
16948         (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
16950 2008-03-28  Pavel Roskin  <proski@gnu.org>
16952         * kern/i386/pc/startup.S: Assert that uncompressed functions
16953         don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
16954         * kern/i386/pc/lzo1x.S: Remove all .align directives in the
16955         code, as they push parts of the code (error handlers) beyond
16956         GRUB_KERNEL_MACHINE_RAW_SIZE.  Speed is not as important in this
16957         code as correctness and size.
16959 2008-03-28  Pavel Roskin  <proski@gnu.org>
16961         * kern/i386/pc/startup.S
16962         (grub_biosdisk_get_diskinfo_int13_extensions): When converting
16963         data block address to the real mode, keep offset minimal.  This
16964         works around a bug in AWARD BIOS on old Athlon systems, which
16965         makes CD detection hang.
16967 2008-03-26  Pavel Roskin  <proski@gnu.org>
16969         * normal/color.c (grub_parse_color_name_pair): Make `name' a
16970         const.
16971         * include/grub/normal.h: Add grub_parse_color_name_pair()
16972         declaration.
16974 2008-03-24  Bean  <bean123ch@gmail.com>
16976         * disk/i386/pc/biosdisk.c (cd_start): Removed.
16977         (cd_count): Removed.
16978         (cd_drive): New variable.
16979         (grub_biosdisk_get_drive): Don't check for (cdN) device.
16980         (grub_biosdisk_call_hook): Likewise.
16981         (grub_biosdisk_iterate): Change cdrom detection method.
16982         (grub_biosdisk_open): Replace cd_start with cd_drive.
16983         (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
16984         detect cdrom device.
16986         * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
16987         Removed.
16988         (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
16989         (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
16990         (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
16991         (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
16992         (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
16993         (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
16994         (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
16995         (grub_biosdisk_cdrp): New structure.
16996         (grub_biosdisk_get_cdinfo_int13_extensions): New function.
16998         * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
17000         * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
17001         device.
17003         * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
17004         New function.
17006 2008-03-20  Robert Millan  <rmh@aybabtu.com>
17008         Remove 2 TiB limit in ata.mod.
17009         * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
17010         (grub_ata_dumpinfo): Print sector count with 0x%llx.
17011         (grub_ata_identify): Interpret `&info16[100]' as a pointer to
17012         grub_uint64_t instead of grub_uint32_t.
17014 2008-03-05  Bean  <bean123ch@gmail.com>
17016         * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
17017         (grub_multiboot): Set boot device.
17019         * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
17021 2008-03-02  Bean  <bean123ch@gmail.com>
17023         * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
17024         symlink_buffer.
17026 2008-03-01  Yoshinori K. Okuji  <okuji@enbug.org>
17028         * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
17029         texinfo.tex.
17031         * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
17032         modified.
17034         * docs/fdl.texi: New file.
17036         * docs/mdate-sh: New file. Copied from gnulib.
17037         * docs/texinfo.tex: Likewise.
17039         * config.guess: Updated from gnulib.
17040         * install-sh: Likewise.
17042 2008-02-28  Robert Millan  <rmh@aybabtu.com>
17044         * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
17045         (aout_mod_SOURCES): New variable.
17046         (aout_mod_CFLAGS): Likewise.
17047         (aout_mod_LDFLAGS): Likewise.
17049         * conf/i386-ieee1275.rmk: Likewise.
17051 2008-02-28  Robert Millan  <rmh@aybabtu.com>
17053         * util/update-grub.in: Reorganise terminal validity check.  Accept
17054         `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
17055         Based on suggestion by Franklin PIAT.
17057 2008-02-28  Fabian Greffrath  <greffrath@leat.rub.de>
17059         * include/grub/util/getroot.h (grub_util_check_block_device): Export new
17060         function.
17061         * util/getroot.c (grub_util_check_block_device): New function that
17062         returns the given argument if it is a block device and returns NULL else.
17063         * util/grub-probe.c (argument_is_device): New variable.
17064         (probe): Promote device_name from a variable to an argument. Receive
17065         device_name from grub_util_check_block_device() if path is NULL and from
17066         grub_guess_root_device() else. Do not free() device_name anymore.
17067         (options): Introduce new parameter '-d, --device'.
17068         (main): Add description of the new parameter to the help screen.
17069         Rename path variable to argument. Set argument_is_device if the '-d'
17070         option is given. Pass argument to probe() depending on
17071         argument_is_device.
17073 2008-02-24  Bean  <bean123ch@gmail.com>
17075         * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
17076         (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
17077         (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
17078         (GRUB_ISO9660_VOLDESC_PART): Likewise.
17079         (GRUB_ISO9660_VOLDESC_END): Likewise.
17080         (grub_iso9660_primary_voldesc): New member escape.
17081         (grub_iso9660_data): New member joliet.
17082         (grub_iso9660_convert_string): New function.
17083         (grub_iso9660_mount): Detect joliet extension.
17084         (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
17085         (grub_iso9660_iso9660_label): Likewise.
17087         * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
17088         (grub_setup_SOURCES): Add fs/udf.c.
17089         (grub_fstest_SOURCES): Likewise.
17090         (udf_mod_SOURCES): New variable.
17091         (udf_mod_CFLAGS): Likewise.
17092         (udf_mod_LDFLAGS): Likewise.
17094         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
17095         (grub_emu_SOURCES): Likewise.
17097         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
17099         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
17101         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
17103         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
17105         * fs/udf.c: New file.
17107 2008-02-24  Robert Millan  <rmh@aybabtu.com>
17109         * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
17110         (normal/lexer.c_DEPENDENCIES): New variables.
17111         * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
17112         (normal/lexer.c_DEPENDENCIES): Likewise.
17113         * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
17114         (normal/lexer.c_DEPENDENCIES): Likewise.
17115         * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
17116         (normal/lexer.c_DEPENDENCIES): Likewise.
17117         * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
17118         (normal/lexer.c_DEPENDENCIES): Likewise.
17119         * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
17120         (normal/lexer.c_DEPENDENCIES): Likewise.
17122 2008-02-23  Robert Millan  <rmh@aybabtu.com>
17124         * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
17125         since they were intended to be in hex.  This didn't break previously
17126         because of a bug in gpt_partition_map_iterate() (see below).
17128         (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
17129         when checking the validity of GPT header.
17130         Remove `partno', since it always provides the same information as `i'.
17132 2008-02-21  Yoshinori K. Okuji  <okuji@enbug.org>
17134         * include/grub/efi/time.h: Fix a wrong comment.
17136 2008-02-19  Pavel Roskin  <proski@gnu.org>
17138         * kern/rescue.c (grub_enter_rescue_mode): Improve initial
17139         message.
17141 2008-02-19  Bean  <bean123ch@gmail.com>
17143         * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
17144         (aout_mod_SOURCES): New variable.
17145         (aout_mod_CFLAGS): Likewise.
17146         (aout_mod_LDFLAGS): Likewise.
17147         (_bsd_mod_SOURCES): New variable.
17148         (_bsd_mod_CFLAGS): Likewise.
17149         (_bsd_mod_LDFLAGS): Likewise.
17150         (bsd_mod_SOURCES): New variable.
17151         (bsd_mod_CFLAGS): Likewise.
17152         (bsd_mod_LDFLAGS): Likewise.
17154         * include/grub/aout.h: New file.
17156         * include/grub/i386/loader.h (grub_unix_real_boot): New function.
17158         * include/grub/i386/bsd.h: New file.
17160         * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
17161         to make it public.
17163         * kern/elf.c (grub_elf32_load): Get the physical address after the hook
17164         function is called, so that it's possible to change it inside the hook.
17165         (grub_elf64_load): Likewise.
17166         (grub_elf_file): Don't close the file if elf header is not found.
17167         (grub_elf_close): Close the file if grub_elf_file fails (The new
17168         grub_elf_file won't close it).
17169         (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
17170         (grub_elf64_size): Likewise.
17172         * kern/i386/loader.S (grub_unix_real_boot): New function.
17174         * loader/aout.c: New file.
17176         * loader/i386/bsd.c: New file.
17178         * loader/i386/bsd_normal.c: New file.
17180         * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
17182         * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
17183         can test other formats.
17185 2008-02-19  Robert Millan  <rmh@aybabtu.com>
17187         * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
17188         (grub_gpt_partition_type_empty): Redefine with macro from
17189         `<grub/gpt_partition.h>'.
17190         (gpt_partition_map_iterate): Adjust partition type comparison.
17192         Export `entry' as partmap-specific `part.data' struct.
17193         (grub_gpt_header, grub_gpt_partentry): Move from here ...
17195         * include/grub/gpt_partition.h (grub_gpt_header)
17196         (grub_gpt_partentry): ... to here (new file).
17198         * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
17200         (grub_gpt_partition_type_bios_boot): New const variable, defined
17201         with macro from `<grub/gpt_partition.h>'.
17203         (setup): Replace `first_start' with `embed_region', which keeps
17204         track of the embed region (and is partmap-agnostic).
17206         Replace find_first_partition_start() with find_usable_region(),
17207         which finds a usable region for embedding using partmap-specific
17208         knowledge (supports PC/MSDOS and GPT).
17210         Fix all assumptions that the embed region start at sector 1, using
17211         `embed_region.start' from now on.  Similarly, use `embed_region.end'
17212         rather than `first_start' to calculate available size.
17214         In grub_util_info() message, replace "into after the MBR" with an
17215         indication of the specific sector our embed region starts at.
17217 2008-02-19  Robert Millan  <rmh@aybabtu.com>
17219         * DISTLIST: Replace `commands/ieee1275/halt.c' and
17220         `commands/ieee1275/reboot.c' with `commands/halt.c' and
17221         `commands/reboot.c'.
17222         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
17223         (halt_mod_SOURCES): Likewise.
17224         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
17225         (halt_mod_SOURCES): Likewise.
17227 2008-02-17  Christian Franke  <franke@computer.org>
17229         * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
17231 2008-02-17  Robert Millan  <rmh@aybabtu.com>
17233         * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
17234         set `first_start' to 0 for non-PC/MSDOS partition maps.
17236 2008-02-16  Robert Millan  <rmh@aybabtu.com>
17238         * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
17239         do not assume partition map is PC/MSDOS before performing checks that
17240         are specific to that layout.
17242 2008-02-13  Robert Millan  <rmh@aybabtu.com>
17244         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
17245         `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
17246         * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
17248 2008-02-13  Yoshinori K. Okuji  <okuji@enbug.org>
17250         * configure.ac: Only a cosmetic change on the handling of
17251         -fno-stack-protector.
17253 2008-02-12  Alexandre Boeglin  <alex@boeglin.org>
17255         * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
17256         commands/i386/pc/halt.c and reboot.c by commands/halt.c and
17257         reboot.c.
17258         (grub_install_SOURCES): Add halt.mod and reboot.mod.
17259         (halt_mod_SOURCES): New variable.
17260         (halt_mod_CFLAGS): Likewise.
17261         (halt_mod_LDFLAGS): Likewise.
17262         (reboot_mod_SOURCES): Likewise.
17263         (reboot_mod_CFLAGS): Likewise.
17264         (reboot_mod_LDFLAGS): Likewise.
17266         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
17267         commands/ieee1275/halt.c and reboot.c by commands/halt.c and
17268         reboot.c.
17269         (halt_mod_SOURCES): Likewise.
17270         (reboot_mod_SOURCES): Likewise.
17272         * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
17273         commands/i386/pc/reboot.c by commands/reboot.c.
17274         (reboot_mod_SOURCES): Likewise.
17276         * commands/i386/pc/reboot.c: merge this file ...
17278         * commands/ieee1275/reboot.c: ... and this file ...
17280         * commands/reboot.c: ... to this file.
17281         Add some precompiler directive to include the correct header for
17282         each machine.
17284         * commands/ieee1275/halt.c: move this file ...
17286         * commands/halt.c: ... to here.
17287         Add some precompiler directive to include the correct header for
17288         each machine.
17290         * include/grub/efi/efi.h (grub_reboot): New function declaration.
17291         (grub_halt): Likewise.
17293         * kern/efi/efi.c (grub_reboot): New function.
17294         (grub_halt): Likewise.
17296 2008-02-12  Robert Millan  <rmh@aybabtu.com>
17298         * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
17299         /dev (like it is done for /dev/mapper).  This doesn't provide support
17300         for EVMS, but at least it is now easy to identify the problem when it
17301         arises.
17303 2008-02-11  Robert Millan  <rmh@aybabtu.com>
17305         * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
17306         (grub_util_biosdisk_get_grub_dev): Check open() exit status by
17307         comparing it with -1, not 0.
17309 2008-02-10  Robert Millan  <rmh@aybabtu.com>
17311         * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
17312         `disk/lvm.c'.
17313         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
17314         * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
17316         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
17317         `disk/lvm.c' to the end of the list.
17318         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
17319         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
17321 2008-02-10  Robert Millan  <rmh@aybabtu.com>
17323         * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'.  Call
17324         grub_print_error() instead.  This will let user know why we're entering
17325         rescue mode.
17326         Based on suggestions from Sam Morris.
17328 2008-02-10  Alexandre Boeglin  <alex@boeglin.org>
17330         * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
17331         on remaining N args, instead of "--" arg N times.
17333 2008-02-09  Vesa Jaaskelainen  <chaac@nic.fi>
17335         * font/manager.c (unknown_glyph): Added variable for unknown glyph.
17336         (fill_with_default_glyph): Changed to use unknown_glyph for fill
17337         pattern for unknown glyphs.
17339 2008-02-09  Robert Millan  <rmh@aybabtu.com>
17341         * configure.ac: Probe for `help2man'.
17342         * Makefile.in (builddir): New variable.
17343         (HELP2MAN): Likewise.  Set to `true' when @HELP2MAN@ doesn't provide it,
17344         or otherwise add a few flags/options to it.
17345         (install-local): For every executable utility or script that is
17346         installed, invoke $(HELP2MAN) to install a manpage based on --help
17347         output.
17349         * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
17350         that it doesn't prevent --help from working in build tree.
17352         * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
17353         with `bug-grub@gnu.org'.
17354         * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
17355         * util/update-grub.in (usage): New function.
17356         Implement proper argument check, with support for --help and --version
17357         (as well as existing -y).
17359 2008-02-09  Christian Franke  <franke@computer.org>
17361         * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
17362         avoid overwriting previous output.
17363         * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
17365 2008-02-09  Robert Millan  <rmh@aybabtu.com>
17367         * normal/menu.c (run_menu): If timeout is set to zero, don't bother
17368         drawing the menu.
17370 2008-02-09  Robert Millan  <rmh@aybabtu.com>
17372         * commands/sleep.c: New file.
17373         * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
17374         (sleep_mod_SOURCES): New variable.
17375         (sleep_mod_CFLAGS): Likewise.
17376         (sleep_mod_LDFLAGS): Likewise.
17378 2008-02-09  Robert Millan  <rmh@aybabtu.com>
17380         * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
17381         situations in which we can deduce the RAID size and the superblock
17382         doesn't match it.
17384 2008-02-09  Robert Millan  <rmh@aybabtu.com>
17386         * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function.  Construct
17387         and return a grub_diskmemberlist_t composed of LVM physical volumes.
17388         [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
17390         * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function.  Construct
17391         and return a grub_diskmemberlist_t composed of physical array members.
17392         [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
17394         * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
17395         prototype.
17396         [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
17397         [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
17398         [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
17400         * util/grub-probe.c (probe): Move partmap probing code from here ...
17401         (probe_partmap): ... to here.
17402         (probe): Use probe_partmap() once for the disk we're probing, and
17403         additionally, when such disk contains a memberlist() struct member,
17404         once for each disk that is contained in the structure returned by
17405         memberlist().
17407 2008-02-09  Robert Millan  <rmh@aybabtu.com>
17409         * util/grub-probe.c (main): When `verbosity > 1', set `debug'
17410         environment variable to 'all' in order to obtain debug output from
17411         non-util/ code.
17412         * util/i386/pc/grub-setup.c (main): Likewise.
17414 2008-02-08  Robert Millan  <rmh@aybabtu.com>
17416         * disk/raid.c (grub_raid_scan_device): Check for
17417         `array->device[sb.this_disk.number]' rather than for
17418         `array->device[sb.this_disk.number]->name', since the latter is not
17419         guaranteed to be accessible.
17421 2008-02-08  Robert Millan  <rmh@aybabtu.com>
17423         * disk/raid.c: Update copyright.
17424         * fs/cpio.c: Likewise.
17425         * include/grub/raid.h: Likewise.
17426         * loader/i386/pc/multiboot.c: Likewise.
17427         * util/hostfs.c: Likewise.
17429 2008-02-08  Robert Millan  <rmh@aybabtu.com>
17431         * include/grub/raid.h (struct grub_raid_array): Change type of `device'
17432         to a grub_disk_t array.
17433         * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
17434         `device[x]'.
17435         (grub_raid_scan_device): Replace `device[x].name' accesses with
17436         `device[x]->name'.  Simplify initialization of `array->device[x]'.
17438 2008-02-08  Robert Millan  <rmh@aybabtu.com>
17440         * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
17441         grub_dprintf() calls.
17442         * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
17443         error message.
17445 2008-02-07  Christian Franke  <franke@computer.org>
17447         * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
17448         instead of fseek and ftell to support large files.
17449         (grub_hostfs_read): Likewise.
17451 2008-02-07  Robert Millan  <rmh@aybabtu.com>
17453         Patch from Jeroen Dekkers.
17454         * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
17455         failure, since successfully reading all array members might not be
17456         required.
17458 2008-02-06  Robert Millan  <rmh@aybabtu.com>
17460         * util/grub-probe.c (probe): Simplify partmap probing (with the
17461         assumption that the first word up to the underscore equals to
17462         the module name).
17464 2008-02-06  Christian Franke  <franke@computer.org>
17466         * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
17467         (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
17468         last block of a cpio or tar stream.
17469         Check for "TRAILER!!!" instead of any empty data
17470         block to detect last block of a cpio stream.
17471         (grub_cpio_dir): Fix constness of variable np.
17472         (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
17473         cpio or tar trailer is detected.  This fixes a crash
17474         on open of a non existing file.
17476 2008-02-05  Bean  <bean123ch@gmail.com>
17478         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
17479         address of entry.
17480         (grub_multiboot_load_elf64): Likewise.
17481         (grub_multiboot): Initialize mbi structure.
17483         * util/grub-fstest.c: Don't include unused header file script.h.
17485         * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
17486         of file.
17487         (grub_fstest_SOURCES): Likewise.
17489 2008-02-05  Robert Millan  <rmh@aybabtu.com>
17491         * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
17492         (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
17493         (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
17494         (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
17496         * kern/i386/pc/startup.S: Include `<grub/term.h>'.
17497         (translation_table): Replace hardcoded values with macros
17498         provided by `<grub/term.h>'.
17500         * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
17501         (keyboard_map): Correct/add a few values, with macros provided
17502         by `<grub/term.h>'.
17503         (keyboard_map_shift): Zero values that don't differ from their
17504         `keyboard_map' equivalents.
17505         (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
17506         Discard the second scan code that is always sent by Caps lock.
17507         Only use `keyboard_map_shift' when it provides a non-zero value,
17508         otherwise fallback to `keyboard_map'.
17510 2008-02-04  Bean  <bean123ch@gmail.com>
17512         * Makefile.in (enable_grub_fstest): New variable.
17514         * conf/common.rmk (grub_fstest_init.lst): New rule.
17515         (grub_fstest_init.h): Likewise.
17516         (grub_fstest_init.c): Likewise.
17517         (util/grub-fstest.c_DEPENDENCIES): New variable.
17518         (grub_fstest_SOURCES): Likewise.
17520         * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
17522         * util/grub-fstest.c: New file.
17524 2008-02-03  Yoshinori K. Okuji  <okuji@enbug.org>
17526         Make grub-setup handle a separate root device.
17528         * util/i386/pc/grub-setup.c (setup): Always open the root device,
17529         so that the root device can be compared with the destination
17530         device.
17531         When embedding the core image, if the root and destination devices
17532         are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
17533         0xFF.
17534         When not embedding, set ROOT_DRIVE to 0xFF.
17536 2008-02-03  Yoshinori K. Okuji  <okuji@enbug.org>
17538         Add support for having a grub directory in a different drive. This
17539         is still only the data handling part.
17541         * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
17542         (codestart): Save %dh in GRUB_ROOT_DRIVE.
17543         (grub_root_drive): New variable.
17545         * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
17546         instead of GRUB_BOOT_DRIVE to construct a device name. Set
17547         GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
17548         as it was.
17550         * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
17552         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
17553         macro.
17554         (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
17556         * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
17557         is bogus, because PXE booting does not specify any drive
17558         correctly.
17560         * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
17561         am not sure if this is really correct.
17563         * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
17564         is always identical to the boot drive when booting from a CD.
17566         * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
17567         longer.
17568         (root_drive): New variable.
17569         (real_start): Unconditionally set %dh to ROOT_DRIVE.
17570         (setup_sectors): Push %dx right after popping it, because %dh will
17571         be modified later.
17572         (copy_buffer): Restore %dx.
17574 2008-02-03  Robert Millan  <rmh@aybabtu.com>
17576         * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
17577         use `cdboot.img' for cdrom images.
17579 2008-02-03  Robert Millan  <rmh@aybabtu.com>
17581         * util/grub.d/00_header.in: Issue scripting commands for GRUB to
17582         only setup gfxterm when `font' command has succeeded.
17584 2008-02-03  Robert Millan  <rmh@aybabtu.com>
17586         * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
17587         (grub_rescue_cmd_multiboot_loader)
17588         (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
17590 2008-02-03  Pavel Roskin  <proski@gnu.org>
17592         * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
17593         %edx and %esi from stack only after grub_gate_a20() is called.
17594         grub_gate_a20() clobbers %edx.
17596 2008-02-03  Yoshinori K. Okuji  <okuji@enbug.org>
17598         * configure.ac (AC_INIT): Bumped to 1.96.
17600         * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
17601         commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
17602         include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
17603         video/readers/png.c.
17605 2008-02-03  Bean  <bean123ch@gmail.com>
17607         * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
17608         (cdboot_img_SOURCES): New variable.
17609         (cdboot_img_ASFLAGS): New variable.
17610         (cdboot_img_LDFLAGS): New variable.
17612         * boot/i386/pc/cdboot.S: New file.
17614         * disk/i386/pc/biosdisk.c (cd_start): New variable.
17615         (cd_count): Likewise.
17616         (grub_biosdisk_get_drive): Add support for cd device.
17617         (grub_biosdisk_call_hook): Likewise.
17618         (grub_biosdisk_iterate): Likewise.
17619         (grub_biosdisk_open): Likewise.
17620         (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
17621         (grub_biosdisk_rw): Support reading from cd device.
17622         (GRUB_MOD_INIT): Iterate cd devices.
17624         * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
17625         (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
17626         (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
17628         * kern/i386/pc/init.c (make_install_device): Check for cd device.
17630 2008-02-02  Robert Millan  <rmh@aybabtu.com>
17632         * commands/read.c: New file.
17633         * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
17634         (read_mod_SOURCES): New variable.
17635         (read_mod_CFLAGS): Likewise.
17636         (read_mod_LDFLAGS): Likewise.
17638 2008-02-02  Robert Millan  <rmh@aybabtu.com>
17640         * normal/main.c (grub_normal_execute): Check for `menu->size' when
17641         determining whether menu has to be displayed.
17643 2008-02-02  Marco Gerards  <marco@gnu.org>
17645         * bus/pci.c: New file.
17647         * include/grub/pci.h: Likewise.
17649         * include/grub/i386/pc/pci.h: Likewise.
17651         * commands/lspci.c: Likewise.
17653         * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
17654         `lspci.mod'.
17655         (pci_mod_SOURCES): New variable.
17656         (pci_mod_CFLAGS): Likewise.
17657         (pci_mod_LDFLAGS): Likewise.
17658         (lspci_mod_SOURCES): Likewise.
17659         (lspci_mod_CFLAGS): Likewise.
17660         (lspci_mod_LDFLAGS): Likewise.
17662 2008-02-02  Bean  <bean123ch@gmail.com>
17664         * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
17665         (grub_ufs_get_file_block): Fix indirect block calculation problem.
17667         * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
17668         (grub_xfs_btree_node): New structure.
17669         (grub_xfs_btree_root): New structure.
17670         (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
17671         (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
17672         (GRUB_XFS_EXTENT_BLOCK): Likewise.
17673         (GRUB_XFS_EXTENT_SIZE): Likewise.
17674         (grub_xfs_read_block): Support btree format type.
17675         (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
17676         Use directory block as basic unit.
17678         * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
17680         * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
17681         __attribute__ ((__regparm__ (1))).
17683 2008-02-01  Robert Millan  <rmh@aybabtu.com>
17685         Correct a mistake in previous commit.
17687         * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
17688         top.
17689         (normal/command.c_DEPENDENCIES): New variable.
17691 2008-02-01  Robert Millan  <rmh@aybabtu.com>
17693         * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
17694         top.
17695         (normal/command.c_DEPENDENCIES): New variable.
17696         (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
17697         * conf/i386-ieee1275.rmk: Likewise.
17698         * conf/i386-linuxbios.rmk: Likewise.
17699         * conf/i386-pc.rmk: Likewise.
17700         * conf/sparc64-ieee1275.rmk: Likewise.
17701         * conf/powerpc-ieee1275.rmk: Likewise.
17702         (grub_emu_SOURCES): Add `fs/fshelp.c'.
17704         * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
17706 2008-02-01  Robert Millan  <rmh@aybabtu.com>
17708         * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
17709         call at beginning of function.
17711 2008-01-31  Pavel Roskin  <proski@gnu.org>
17713         * util/powerpc/ieee1275/grub-mkrescue.in: New file.
17714         * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
17715         (grub_mkrescue_SOURCES): Likewise.
17716         * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
17718 2008-01-30  Robert Millan  <rmh@aybabtu.com>
17720         * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
17721         (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
17722         * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
17723         (grub_probe_SOURCES): ... to here.
17725         * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
17726         (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
17727         * conf/i386-ieee1275.rmk: Likewise.
17728         * conf/i386-linuxbios.rmk: Likewise.
17729         * conf/powerpc-ieee1275.rmk: Likewise.
17731 2008-01-30  Tristan Gingold  <gingold@free.fr>
17733         * kern/rescue.c: Silently accept empty lines.
17735 2008-01-29  Bean  <bean123ch@gmail.com>
17737         * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
17738         (real_code_2): Code cleanup and change comment style.
17739         (move_memory): Avoid using 32-bit address mode.
17741 2008-01-29  Bean  <bean123ch@gmail.com>
17743         * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
17744         (png_mod_SOURCES): New variable.
17745         (png_mod_CFLAGS): Likewise.
17746         (png_mod_LDFLAGS): Likewise.
17748         * video/readers/png.c: New file.
17750 2008-01-28  Robert Millan  <rmh@aybabtu.com>
17752         * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
17753         * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
17754         `ifndef GRUB_MOD_GAP' hack.
17755         * util/elf/grub-mkimage.c (add_segments): Likewise.
17757 2008-01-27  Robert Millan  <rmh@aybabtu.com>
17759         * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
17760         `GRUB_MOD_GAP' for platforms in which it's not defined.
17761         * util/elf/grub-mkimage.c (add_segments): Likewise.
17763 2008-01-27  Robert Millan  <rmh@aybabtu.com>
17765         Get grub-emu to build again (including parallel builds).
17767         * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
17768         Split into ...
17769         (util/grub-emu.c_DEPENDENCIES): ... this, ...
17770         (normal/execute.c_DEPENDENCIES): ... this, ...
17771         (grub-emu_DEPENDENCIES): ... and this.
17773         * conf/i386-efi.rmk: Likewise.
17774         * conf/i386-linuxbios.rmk: Likewise.
17775         * conf/i386-ieee1275.rmk: Likewise.
17776         * conf/powerpc-ieee1275.rmk: Likewise.
17777         (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
17779 2008-01-27  Robert Millan  <rmh@aybabtu.com>
17781         * NEWS: Add a few items.
17783 2008-01-27  Robert Millan  <rmh@aybabtu.com>
17785         Fix parallel builds with grub-emu.  Based on earlier commit for
17786         grub-probe and grub-setup.
17788         * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
17789         (util/grub-emu.c_DEPENDENCIES): ... this.
17790         * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
17791         (util/grub-emu.c_DEPENDENCIES): ... this.
17792         * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
17793         (util/grub-emu.c_DEPENDENCIES): ... this.
17794         * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
17795         (util/grub-emu.c_DEPENDENCIES): ... this.
17796         * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
17797         (util/grub-emu.c_DEPENDENCIES): ... this.
17799 2008-01-27  Pavel Roskin  <proski@gnu.org>
17801         * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
17802         to create a gap between _end and the modules added to the image
17803         with grub-mkrescue.  That fixes "CLAIM failed" on PowerMAC.
17804         * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
17805         * util/elf/grub-mkimage.c (add_segments): Likewise.
17807 2008-01-26  Pavel Roskin  <proski@gnu.org>
17809         * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
17810         just return an error.
17812 2008-01-26  Bean  <bean123ch@gmail.com>
17814         * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
17815         (grub_reiserfs_get_item): Save offset of the next item.
17816         (grub_reiserfs_iterate_dir): Use next_offset to find next item.
17818 2008-01-25  Robert Millan  <rmh@aybabtu.com>
17820         * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
17821         make all filesystem sources appear together (possibly fixing omissions
17822         while at it).
17823         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
17824         * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
17825         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
17826         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
17828         * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.  Additionally,
17829         add `kern/file.c'.
17830         * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
17831         * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
17832         * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
17833         * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
17835         * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
17836         (probe): Add a sanity check to make sure of our ability to read
17837         requested files when probing for filesystem type.
17839         * genmk.rb: Update copyright year (2007).
17841         * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
17842         (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
17843         (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
17844         (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
17845         (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
17846         : Remove function prototypes.
17848 2008-01-25  Robert Millan  <rmh@aybabtu.com>
17850         Revert my previous commits (based on wrong assumption of how grub_errno
17851         works).
17853         * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
17854         * kern/file.c (grub_file_open): Likewise.
17856 2008-01-24  Pavel Roskin  <proski@gnu.org>
17858         * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
17859         that hang if GRUB tries to setup colors.
17860         * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
17861         colors for firmwares that don't support it.
17862         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
17863         Recognize Open Hack'Ware, set flags to work around its
17864         limitations.
17866 2008-01-24  Robert Millan  <rmh@aybabtu.com>
17868         * kern/file.c (grub_file_open): Do not account previous failures of
17869         unrelated functions when grub_errno is checked for.
17870         Reported by Oleg Strikov.
17872 2008-01-24  Bean  <bean123ch@gmail.com>
17874         * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
17875         (grub_ufs_sblock): New member volume name.
17876         (grub_ufs_find_file): Fix string copy bug.
17877         (grub_ufs_label): Implement this function properly.
17879         * fs/hfs.c (grub_hfs_cnid_type): New enum.
17880         (grub_hfs_iterate_records): Use the correct file number for extents
17881         and catalog file. Fix problem in next index calculation.
17882         (grub_hfs_find_node): Replace recursive function call with loop.
17883         (grub_hfs_iterate_dir): Replace recursive function call with loop.
17885 2008-01-23  Robert Millan  <rmh@aybabtu.com>
17887         * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
17888         `<grub/symbol.h>' and `<grub/multiboot.h>'.
17889         (grub_multiboot2_real_boot): New function prototype.
17891         * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
17892         [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
17894         * kern/i386/ieee1275/init.c (grub_os_area_addr)
17895         (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
17897 2008-01-23  Robert Millan  <rmh@aybabtu.com>
17899         * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
17900         #ifdef'ed out grub_printf().
17902 2008-01-23  Robert Millan  <rmh@aybabtu.com>
17904         * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
17905         grub_dprintf calls, since they make "debug=all" mode unusable.
17906         (grub_console_checkkey): Likewise.
17908 2008-01-23  Robert Millan  <rmh@aybabtu.com>
17910         * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
17911         `term/i386/pc/at_keyboard.c'.
17912         (pkglib_MODULES): Add `serial.mod'.
17913         (serial_mod_SOURCES): New variable.
17914         (serial_mod_CFLAGS): Likewise.
17915         (serial_mod_LDFLAGS): Likewise.
17917         * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'.  Remove
17918         `<grub/powerpc/ieee1275/console.h>'.
17919         (grub_keyboard_controller_init): New function prototype.
17920         (grub_console_checkkey): Likewise.
17921         (grub_console_getkey): Likewise.
17923         * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
17924         keyboard on i386.
17926         * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
17927         grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
17929 2008-01-23  Robert Millan  <rmh@aybabtu.com>
17931         * kern/i386/pc/init.c (make_install_device): When memdisk image is
17932         present, "(memdisk)/boot/grub" becomes the default prefix.
17934         * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
17935         a memdisk tarball with all the modules.  Add --overlay=DIR option that
17936         allows users to overlay additional files into the image.
17938 2008-01-23  Robert Millan  <rmh@aybabtu.com>
17940         * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
17941         and `machine/memory.h'.
17942         (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
17943         (_multiboot_mod_SOURCES): New variable.
17944         (_multiboot_mod_CFLAGS): Likewise.
17945         (_multiboot_mod_LDFLAGS): Likewise.
17946         (multiboot_mod_SOURCES): Likewise.
17947         (multiboot_mod_CFLAGS): Likewise.
17948         (multiboot_mod_LDFLAGS): Likewise.
17950         * include/grub/i386/ieee1275/loader.h: New file.
17952         * include/grub/i386/ieee1275/machine.h: Likewise.
17954         * include/grub/i386/ieee1275/memory.h: Likewise.
17956         * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
17957         variable declaration.
17958         (grub_os_area_size): Likewise.
17960         * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
17961         (grub_lower_mem, grub_upper_mem): New variables.
17962         (grub_stop_floppy): New function (just to make
17963         grub_multiboot2_real_boot() happy).
17965         * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
17966         `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
17967         (grub_stop): New function.
17968         Include `"../realmode.S"' and `"../loader.S"'.
17970         * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
17971         Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
17973         * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
17974         rely on grub_multiboot2_real_boot() for final boot.
17976 2008-01-22  Robert Millan  <rmh@aybabtu.com>
17978         * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
17979         `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
17980         device that doesn't look like an SD card.
17981         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
17982         `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
17983         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
17984         OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
17985         found.
17987 2008-01-22  Robert Millan  <rmh@aybabtu.com>
17989         * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
17990         avoid claiming over our own code.
17992 2008-01-22  Bean  <bean123ch@gmail.com>
17994         * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
17995         (jpeg_mod_SOURCES): New variable.
17996         (jpeg_mod_CFLAGS): Likewise.
17997         (jpeg_mod_LDFLAGS): Likewise.
17999         * video/readers/jpeg.c : New file.
18001 2008-01-22  Bean  <bean123ch@gmail.com>
18003         * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
18004         there are no more items.
18006 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18008         * kern/mm.c (grub_mm_init_region): Improve debug message.
18010 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18012         * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
18013         (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
18014         address.
18015         (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
18016         a C macro.
18017         * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
18018         Indicates start of upper memory.
18019         * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
18020         (generate_image): Abort when image size is big enough to corrupt
18021         upper memory.
18023         * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
18024         (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
18025         * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
18026         instead of hardcoding 0xA0000.
18027         * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
18028         (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
18029         instead of hardcoding 0xA0000.
18031 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18033         * disk/memdisk.c (memdisk_size): New variable.
18034         (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
18035         `memdisk_size'.
18036         (grub_memdisk_init): Initialize `memdisk_size'.  Reallocate memdisk
18037         image to dynamic memory.
18038         (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
18039         `memdisk_size'.  Free memdisk block.
18041 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18043         Fix detection of very small filesystems (like tar).
18045         * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
18046         contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
18047         GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
18048         a problem with this disk).
18050 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18052         * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
18053         on grub_biosdisk_rw_standard() error.
18055 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18057         * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
18058         recent changes.
18059         * kern/elf.c: Likewise.
18060         * kern/ieee1275/ieee1275.c: Likewise.
18061         * kern/powerpc/ieee1275/openfw.c: Likewise.
18062         * term/ieee1275/ofconsole.c: Likewise.
18064 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18066         * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
18068         * include/grub/kernel.h (grub_arch_memdisk_addr)
18069         (grub_arch_memdisk_size): Moved from here ...
18071         * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
18072         (grub_arch_memdisk_size): ... to here.
18074 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18076         Mostly based on bugfix from Bean.
18078         * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
18079         attribute with hook() parameter.
18080         (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
18081         declaration.
18082         (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
18083         attribute with hook() parameter.
18084         (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
18085         declaration.
18087 2008-01-21  Robert Millan  <rmh@aybabtu.com>
18089         * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
18090         (pkglib_MODULES): Add `memdisk.mod'.
18091         (memdisk_mod_SOURCES): New variable.
18092         (memdisk_mod_CFLAGS): Likewise.
18093         (memdisk_mod_LDFLAGS): Likewise.
18095         * disk/memdisk.c: New file.
18097         * include/grub/disk.h (grub_disk_dev_id): Add
18098         `GRUB_DISK_DEVICE_MEMDISK_ID'.
18100         * include/grub/i386/pc/kernel.h
18101         (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
18102         (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
18103         (grub_kernel_image_size): New variable declaration.
18104         (grub_total_module_size): Likewise.
18105         (grub_memdisk_image_size): Likewise.
18107         * include/grub/i386/pc/memory.h
18108         (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
18110         * include/grub/kernel.h: Include `<grub/symbol.h>'.
18111         (grub_arch_memdisk_addr): New variable declaration.
18112         (grub_arch_memdisk_size): Likewise.
18114         * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
18115         (grub_arch_memdisk_size): Likewise.
18117         * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
18118         (codestart): Replace hardcoded `0x100000' with
18119         `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
18121         * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
18122         (generate_image): Add `memdisk_path' parameter.  When `memdisk_path' is
18123         not NULL, append the contents of the file it refers to, at the end of
18124         the compressed kernel image.  Initialize `grub_memdisk_image_size'
18125         variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
18126         (options): Add "memdisk"|'m' option.
18127         (main): Parse --memdisk|-m option, and pass user-provided path as
18128         parameter to generate_image().
18130 2008-01-20  Robert Millan  <rmh@aybabtu.com>
18132         * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
18133         grub_dprintf() calls from here ...
18134         * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
18136 2008-01-20  Robert Millan  <rmh@aybabtu.com>
18138         Fix detection of "real mode" when /options/real-mode? doesn't exist.
18140         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
18141         declaration.
18142         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
18143         (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
18144         `GRUB_IEEE1275_FLAG_REAL_MODE'.
18145         (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
18146         property).
18147         * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
18148         `grub_ieee1275_mmu' rather than obtaining a handler on every call.
18150 2008-01-19  Robert Millan  <rmh@aybabtu.com>
18152         Get rid of confusing function (superseded by
18153         `grub_ieee1275_get_integer_property')
18154         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
18155         prototype.
18156         * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
18157         function.
18158         * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
18159         grub_ieee1275_decode_int_4(), by obtaining integer properties directly
18160         in native endianness from grub_ieee1275_get_integer_property().
18162 2008-01-19  Robert Millan  <rmh@aybabtu.com>
18164         * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
18165         command after "shut-down", since implementations differ on which
18166         the command for halt is.
18168 2008-01-19  Robert Millan  <rmh@aybabtu.com>
18170         * include/grub/i386/linuxbios/console.h: Add header protection.
18171         (grub_keyboard_controller_init): New function prototype.
18172         * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
18173         (KEYBOARD_COMMAND_READ): Likewise.
18174         (KEYBOARD_COMMAND_WRITE): Likewise.
18175         (KEYBOARD_SCANCODE_SET1): Likewise.
18176         (grub_keyboard_controller_write): New function.
18177         (grub_keyboard_controller_read): Likewise.
18178         (grub_keyboard_controller_init): Likewise.
18180         * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
18181         (grub_console_init): On coreboot/LinuxBIOS, call
18182         grub_keyboard_controller_init().
18184 2008-01-19  Robert Millan  <rmh@aybabtu.com>
18186         PowerPC changes provided by Pavel Roskin.
18188         * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
18189         * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
18190         don't rely on cmain() doing it.
18191         * kern/i386/ieee1275/startup.S (_start): Store %eax in
18192         grub_ieee1275_entry_fn, don't rely on cmain() doing it.
18194 2008-01-16  Robert Millan  <rmh@aybabtu.com>
18196         * include/grub/i386/linuxbios/memory.h
18197         (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
18198         * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
18199         receive `table_header' as argument.  Instead, probe for it in the
18200         known memory ranges where it can be present.
18201         (grub_available_iterate): Do not pass a fixed `table_header' address
18202         to grub_linuxbios_table_iterate().
18204 2008-01-15  Robert Millan  <rmh@aybabtu.com>
18206         * configure.ac: Add `i386-ieee1275' to the list of supported targets.
18207         * conf/i386-ieee1275.rmk: New file.
18208         * include/grub/i386/ieee1275/console.h: Likewise.
18209         * include/grub/i386/ieee1275/ieee1275.h: Likewise.
18210         * include/grub/i386/ieee1275/kernel.h: Likewise.
18211         * include/grub/i386/ieee1275/time.h: Likewise.
18212         * kern/i386/ieee1275/init.c: Likewise.
18213         * kern/i386/ieee1275/startup.S: Likewise.
18215 2008-01-15  Robert Millan  <rmh@aybabtu.com>
18217         * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
18218         when pointers are 32-bit (but still do set it to one when they are
18219         64-bit).
18221 2008-01-15  Robert Millan  <rmh@aybabtu.com>
18223         * include/grub/ieee1275/ieee1275.h
18224         (grub_ieee1275_get_integer_property): New function prototype.
18226         * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
18227         (grub_ieee1275_get_integer_property): New function.  Wraps around
18228         grub_ieee1275_get_property() to handle endianness.
18230         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
18231         grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
18232         where appropriate.
18233         * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
18234         (grub_map): Likewise.
18235         * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
18237 2008-01-15  Bean  <bean123ch@gmail.com>
18239         * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
18240         (grub_script_execute_cmdline): Reset grub_errno.
18242         * normal/main.c (read_config_file): Reset grub_errno.
18244         * normal/parse.y (script_init): New.
18245         (script): Move function and menuentry here.
18246         (delimiter): New.
18247         (command): Add delimiter at the end of command.
18248         (commands): Adjust to match the new command.
18249         (commandblock): Remove grub_script_lexer_record_start.
18250         (menuentry): Add grub_script_lexer_record_start, use the new commands.
18251         (if): Use the new commands.
18253         * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
18255 2008-01-15  Robert Millan  <rmh@aybabtu.com>
18257         * normal/menu.c (run_menu): Move timeout message from here ...
18258         (print_timeout): ... to here.
18259         (run_menu): Use print_timeout() once during initial draw to print
18260         the whole message, and again in every clock tick to update only
18261         the number of seconds.
18263 2008-01-15  Robert Millan  <rmh@aybabtu.com>
18265         * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
18266         actual size of `available' from grub_ieee1275_get_property(), and
18267         restrict parsing to that bound.
18269 2008-01-15  Christian Franke  <franke@computer.org>
18271         * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
18272         (argp_program_version): Remove variable.
18273         (argp_program_bug_address): Likewise.
18274         (options): Convert from struct argp_option to struct option.
18275         (struct arguments): Remove.
18276         (parse_opt): Remove.
18277         (usage): New function.
18278         (main): Replace struct args members by simple variables.
18279         Replace argp_parse() by getopt_long().
18280         Add switch to evaluate options.
18281         Add missing "(...)" around root_dev in prefix string.
18283 2008-01-14  Robert Millan  <rmh@aybabtu.com>
18285         * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
18286         for grub_ieee1275_exit(), in order to improve portability.
18288 2008-01-14  Robert Millan  <rmh@aybabtu.com>
18290         * util/grub.d/10_linux.in (prefix): Define.
18291         (exec_prefix): Likewise.  Both definitions are later used by `libdir'.
18293 2008-01-13  Pavel Roskin  <proski@gnu.org>
18295         * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
18296         grub_errno if no errors have been detected.
18298 2008-01-12  Robert Millan  <rmh@aybabtu.com>
18300         * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
18301         (grub_util_get_dev_abstraction): New function prototype.
18303         * util/getroot.c: Include `<grub/util/getroot.h>'
18304         (grub_util_get_grub_dev): Move detection of abstraction type to ...
18305         (grub_util_get_dev_abstraction): ... here (new function).
18307         * util/grub-probe.c: Convert PRINT_* to an enum.  Add
18308         `PRINT_ABSTRACTION'.
18309         (probe): Probe for abstraction type when requested.
18310         (main): Understand `--target=abstraction'.
18312         * util/i386/efi/grub-install.in: Add abstraction module to core
18313         image when it is found to be necessary.
18314         * util/i386/pc/grub-install.in: Likewise.
18315         * util/powerpc/ieee1275/grub-install.in: Likewise.
18317         * util/update-grub_lib.in (font_path): Return system path without
18318         converting to GRUB path.
18319         * util/update-grub.in: Convert system path returned by font_path()
18320         to a GRUB path.  Use `grub-probe -t abstraction' to determine what
18321         abstraction module is needed for loading fonts (if any).  Export
18322         that as `GRUB_PRELOAD_MODULES'.
18323         * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
18324         insmod commands).
18326 2008-01-12  Yoshinori K. Okuji  <okuji@enbug.org>
18328         Remove some unused code from reiserfs.
18330         * fs/reiserfs.c (struct grub_reiserfs_key)
18331         [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
18332         (struct grub_reiserfs_node_body): Removed.
18333         (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
18334         Likewise.
18335         (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
18336         Likewise.
18337         (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
18338         Likewise.
18339         (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
18340         Likewise.
18341         (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
18342         Likewise.
18343         (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
18344         Likewise.
18345         (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
18346         (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
18347         (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
18349 2008-01-10  Robert Millan  <rmh@aybabtu.com>
18351         * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
18352         Determines if a file is garbage left by packaging systems, etc.
18353         * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
18354         for processing /etc/grub.d scripts.
18355         * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
18356         * util/grub.d/10_linux.in: Likewise.  Use grub_file_is_not_garbage()
18357         as a condition for processing Linux images.
18359 2008-01-10  Pavel Roskin  <proski@gnu.org>
18361         * include/grub/powerpc/libgcc.h (__ucmpdi2): New export.  Needed
18362         to compile reiserfs.c on PowerPC.
18364 2008-01-10  Robert Millan  <rmh@aybabtu.com>
18366         * kern/device.c (grub_device_iterate): Do not abort device iteration
18367         when one of the devices cannot be opened.
18368         * kern/disk.c (grub_disk_open): Do not account previous failures of
18369         unrelated functions when grub_errno is checked for.
18371 2008-01-08  Robert Millan  <rmh@aybabtu.com>
18373         * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
18374         `! grub_linux_is_bzimage', change order of address comparison to make
18375         it more intuitive, and improve "too big zImage" error message.
18377 2008-01-08  Robert Millan  <rmh@aybabtu.com>
18379         * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
18380         `$(update-grub_DATA)'.
18381         (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
18382         targets.
18384 2008-01-07  Robert Millan  <rmh@aybabtu.com>
18386         * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
18387         which instruction is modified by grub-setup during installation
18388         (since it wasn't obvious by only looking at this file).
18390 2008-01-07  Robert Millan  <rmh@aybabtu.com>
18392         * TODO: Rewrite.  Just refer to the wiki and the BTS instead of
18393         listing actual TODO items.
18395 2008-01-06  Yoshinori K. Okuji  <okuji@enbug.org>
18397         * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
18398         correctly.
18399         (grub_reiserfs_get_key_offset): Likewise.
18400         (grub_reiserfs_set_key_offset): Likewise.
18401         (grub_reiserfs_set_key_type): Likewise.
18402         (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
18404         (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
18405         better to remove the bitfield version completely.
18407 2008-01-06  Yoshinori K. Okuji  <okuji@enbug.org>
18409         * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
18410         allocated from the heap, due to the fshelp implementation.
18411         (grub_reiserfs_dir): Free NODE, due to the same reason.
18413 2008-01-06  Yoshinori K. Okuji  <okuji@enbug.org>
18415         Mostly from Vincent Pelletier:
18417         * fs/reiserfs.c: New file.
18419         * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
18420         (reiserfs_mod_SOURCES): New variable.
18421         (reiserfs_mod_CFLAGS): Likewise.
18422         (reiserfs_mod_LDFLAGS): Likewise.
18424         * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
18425         disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
18426         include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
18427         normal/color.c.
18429 2008-01-06  Robert Millan  <rmh@aybabtu.com>
18431         * normal/color.c: Remove `<grub/env.h>'.
18433 2008-01-05  Jeroen Dekkers  <jeroen@dekkers.cx>
18435         * include/grub/normal.h: Include <grub/env.h>.
18437 2008-01-05  Robert Millan  <rmh@aybabtu.com>
18439         * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
18440         usage example with `(hd0,1)'.
18441         Reported by Samuel Thibault.
18443 2008-01-05  Robert Millan  <rmh@aybabtu.com>
18445         * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
18446         (grub_linux_boot_zimage): Rename to ...
18447         (grub_linux_boot): ... this.
18448         (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
18449         (grub_linux_boot_zimage): Conditionalize zImage copy.
18451         * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
18452         (grub_linux_boot_bzimage): Remove prototype.
18453         (grub_linux_boot_zimage): Rename to ...
18454         (grub_linux_boot): ... this.
18456         * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
18457         (grub_linux_boot): Remove function.
18459 2008-01-05  Robert Millan  <rmh@aybabtu.com>
18461         * include/grub/normal.h (grub_env_write_color_normal): New prototype.
18462         (grub_env_write_color_highlight): Likewise.
18463         (grub_wait_after_message): Likewise.
18465         * normal/color.c: New file.
18467         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
18468         (normal_mod_DEPENDENCIES): Likewise.
18470         * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
18471         (normal_mod_DEPENDENCIES): Likewise.
18473         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
18474         (normal_mod_DEPENDENCIES): Likewise.
18476         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
18477         (normal_mod_DEPENDENCIES): Likewise.
18479         * normal/menu_entry.c (run): Rely on grub_wait_after_message()
18480         for waiting after a message is printed.
18481         * normal/main.c (read_config_file): Likewise.
18482         (grub_normal_init): Register grub_env_write_color_normal() and
18483         grub_env_write_color_highlight() hooks.  Mark `color_normal' and
18484         `color_highlight' variables as global.
18486         * normal/menu.c (grub_wait_after_message): New function.
18487         (grub_color_menu_normal): New variable.  Replaces ...
18488         (GRUB_COLOR_MENU_NORMAL): ... this macro.
18489         (grub_color_menu_highlight): New variable.  Replaces ...
18490         (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
18491         (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
18492         `GRUB_TERM_COLOR_STANDARD'.
18493         (print_message): Use `grub_setcolorstate' to reload colors.  Rename
18494         `normal_code' and `highlight_code' to `old_color_normal' and
18495         `old_color_highlight', respectively.
18496         (grub_menu_init_page): Update colors when drawing the menu, based on
18497         `menu_color_normal' and `menu_color_highlight' variables.
18498         (grub_menu_run): Rely on grub_wait_after_message() for waiting after
18499         a message is printed.
18501 2008-01-05  Robert Millan  <rmh@aybabtu.com>
18503         * kern/env.c (grub_env_context_open): Propagate hooks for global
18504         variables to new context.
18506         * kern/main.c (grub_set_root_dev): Export `root' variable.
18508 2008-01-05  Robert Millan  <rmh@aybabtu.com>
18510         * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
18511         discs unconditionally, since udev and others have options to provide
18512         them.
18514 2008-01-05  Robert Millan  <rmh@aybabtu.com>
18516         * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
18518 2008-01-04  Christian Franke  <franke@computer.org>
18520         * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
18521         of eisa_mmap.
18523 2008-01-03  Pavel Roskin  <proski@gnu.org>
18525         * kern/i386/linuxbios/init.c: Put "void" to all function
18526         declarations with no arguments.
18527         * kern/powerpc/ieee1275/init.c: Likewise.
18528         * term/i386/pc/at_keyboard.c: Likewise.
18529         * term/i386/pc/vga_text.c: Likewise.
18530         * util/grub-mkdevicemap.c: Likewise.
18532 2008-01-02  Robert Millan  <rmh@aybabtu.com>
18534         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
18535         message when loaded image is out of bounds.
18536         (grub_multiboot_load_elf64): Likewise.
18538 2008-01-02  Pavel Roskin  <proski@gnu.org>
18540         * util/grub.d/10_linux.in: Try version without ".old" when
18541         looking for initrd.  It's better to use initrd from the newer
18542         kernel of the same version than no initrd at all.
18544 2008-01-01  Robert Millan  <rmh@aybabtu.com>
18546         * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
18548 2008-01-01  Vesa Jaaskelainen  <chaac@nic.fi>
18550         * include/grub/video.h: Added grub_video_unmap_color and
18551         grub_video_get_active_render_target.
18552         (grub_video_adapter): Added unmap_color and get_active_render_target.
18554         * video/video.c: Added grub_video_unmap_color and
18555         grub_video_get_active_render_target.
18556         (grub_video_get_info): Changed method to accept NULL pointer as an
18557         argument to allow detection of active video adapter.
18559         * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
18560         grub_video_vbe_unmap_color_int.
18561         Added grub_video_vbe_unmap_color and
18562         grub_video_vbe_get_active_render_target.
18563         (grub_video_vbe_adapter): Added unmap_color and
18564         get_active_render_target.
18566         * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
18567         with grub_video_vbe_unmap_color_int.
18569         * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
18570         (DEFAULT_NORMAL_COLOR): Likewise.
18571         (DEFAULT_HIGHLIGHT_COLOR) Likewise.
18572         (DEFAULT_FG_COLOR): Removed.
18573         (DEFAULT_BG_COLOR): Likewise.
18574         (DEFAULT_CURSOR_COLOR): Changed value.
18575         (grub_virtual_screen): Added standard_color_setting,
18576         normal_color_setting, highlight_color_setting and term_color.
18577         (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
18578         (bitmap_width): Added.
18579         (bitmap_height): Likewise.
18580         (bitmap): Likewise.
18581         (set_term_color): Likewise.
18582         (grub_virtual_screen_setup): Changed to use new terminal coloring
18583         settings.
18584         (grub_gfxterm_init): Added init for bitmap.
18585         (grub_gfxterm_fini): Added destroy for bitmap.
18586         (redraw_screen_rect): Updated to use background bitmap and new
18587         terminal coloring.
18588         (scroll_up): Added optimization for case when there is no bitmap.
18589         (grub_gfxterm_cls): Fixed to use correct background color.
18590         (grub_virtual_screen_setcolorstate): Changed to use new terminal
18591         coloring.
18592         (grub_virtual_screen_setcolor): Likewise.
18593         (grub_virtual_screen_getcolor): Added.
18594         (grub_gfxterm_background_image_cmd): Likewise.
18595         (grub_video_term): Added setcolor and getcolor.
18596         (MOD_INIT): Added registration of background_image command.
18597         (MOD_TERM): Added unregistration for background_image command.
18599 2007-12-30  Pavel Roskin  <proski@gnu.org>
18601         * loader/multiboot_loader.c: Fix multiboot command
18602         unregistration.  Fix all typos in the word "multiboot".
18604 2007-12-29  Pavel Roskin  <proski@gnu.org>
18606         * util/grub.d/10_linux.in: Refactor search for initrd.  Add
18607         support for initrd names used in Fedora.
18609 2007-12-26  Bean  <bean123ch@gmail.com>
18611         * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
18612         (cpio_mod_SOURCES): New variable.
18613         (cpio_mod_CFLAGS): Likewise.
18614         (cpio_mod_LDFLAGS): Likewise.
18616         * fs/cpio.c: New file.
18618         * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
18620         * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
18622         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
18624         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
18626 2007-12-25  Robert Millan  <rmh@aybabtu.com>
18628         * include/grub/term.h (struct grub_term): Add `getcolor' function.
18629         (grub_getcolor): New function.
18631         * kern/term.c (grub_getcolor): New function.
18632         * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
18633         (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
18634         (print_entry): Set normal and highlight colors to
18635         `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
18636         respectively, before printing and restore them to old
18637         values afterwards.
18638         (grub_menu_init_page): Likewise.  Fill an additional colored space
18639         that would otherwise be left blank.
18641         * term/efi/console.c (grub_console_getcolor): New function.
18642         (struct grub_console_term.getcolor): New variable.
18643         * term/i386/pc/console.c (grub_console_getcolor): New function.
18644         (struct grub_console_term.getcolor): New variable.
18645         * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
18646         (struct grub_console_term.getcolor): New variable.
18648         * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
18649         (struct grub_console_term.setcolor): Remove variable.
18650         * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
18651         (struct grub_console_term.setcolor): Remove variable.
18652         * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
18653         (struct grub_console_term.setcolor): Remove variable.
18654         * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
18655         (struct grub_console_term.setcolor): Remove variable.
18657 2007-12-25  Robert Millan  <rmh@aybabtu.com>
18659         * configure.ac: Search for possible unifont.hex locations, and
18660         define UNIFONT_HEX if found.
18662         * Makefile.in (UNIFONT_HEX): Define variable.
18663         (DATA): Rename to ...
18664         (PKGLIB): ... this.  Update all users.
18665         (PKGDATA): New variable.
18666         (pkgdata_IMAGES): Rename to ...
18667         (pkglib_IMAGES): ... this. Update all users.
18668         (pkgdata_MODULES): Rename to ...
18669         (pkglib_MODULES): ... this. Update all users.
18670         (pkgdata_PROGRAMS): Rename to ...
18671         (pkglib_PROGRAMS): ... this. Update all users.
18672         (pkgdata_DATA): Rename to ...
18673         (pkglib_DATA): ... this. Update all users.
18674         (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
18675         (unicode.pff, ascii.pff): New rules.
18676         (all-local): Add `$(PKGDATA)' dependency.
18677         (install-local): Process `$(PKGDATA)'.
18679         * util/update-grub_lib.in (font_path): Search for *.pff files in
18680         a few more locations, including `${pkgdata}'.
18682 2007-12-23  Robert Millan  <rmh@aybabtu.com>
18684         Patch from Bean  <bean123ch@gmail.com>:
18685         * disk/loopback.c (grub_loopback_read): Add missing bit shift to
18686         `size'.
18688 2007-12-21  Bean  <bean123ch@gmail.com>
18690         * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
18691         (ntfscomp_mod_SOURCES): New variable.
18692         (ntfscomp_mod_CFLAGS): Likewise.
18693         (ntfscomp_mod_LDFLAGS): Likewise.
18695         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
18696         (grub_probe_SOURCES): Likewise.
18697         (grub_emu_SOURCES): Likewise.
18699         * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
18700         (grub_emu_SOURCES): Likewise.
18702         * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
18703         (grub_emu_SOURCES): Likewise.
18705         * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
18706         (grub_emu_SOURCES): Likewise.
18708         * fs/ntfs.c (grub_ntfscomp_func): New variable.
18709         (read_run_list): Renamed to grub_ntfs_read_run_list.
18710         (decomp_nextvcn): Moved to ntfscomp.c.
18711         (decomp_getch): Likewise.
18712         (decomp_get16): Likewise.
18713         (decomp_block): Likewise.
18714         (read_block): Likewise.
18715         (read_data): Partially moved to ntfscomp.c.
18716         (fixup): Change unsigned to grub_uint16_t.
18717         (read_mft): Change unsigned long to grub_uint32_t.
18718         (read_attr): Likewise.
18719         (read_data): Likewise.
18720         (read_run_data): Likewise.
18721         (read_run_list): Likewise.
18722         (read_mft): Likewise.
18724         * fs/ntfscomp.c: New file.
18726         * include/grub/ntfs.h: New file.
18728 2007-12-16  Robert Millan  <rmh@aybabtu.com>
18730         * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
18731         IDE disk check, since Linux is known to support 20 IDE disks.
18732         Reported by Colin Watson.
18734 2007-12-15  Bean  <bean123ch@gmail.com>
18736         * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
18737         (lnxboot_img_SOURCES): New variable.
18738         (lnxboot_img_ASFLAGS): Likewise.
18739         (lnxboot_img_LDFLAGS): Likewise.
18741         * boot/i386/pc/lnxboot.S: New file.
18743 2007-11-24  Pavel Roskin  <proski@gnu.org>
18745         * configure.ac: Test if '--build-id=none' is supported by the
18746         linker.  If yes, add it to TARGET_LDFLAGS.  Build ID causes
18747         objcopy to generate incorrect binary files (binutils
18748         2.17.50.0.18-1 as shipped by Fedora 8).
18749         * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
18750         linking, so that build ID doesn't break the test.
18752 2007-11-24  Pavel Roskin  <proski@gnu.org>
18754         * include/grub/i386/time.h: use "void" in the argument list
18755         of grub_cpu_idle().
18756         * include/grub/powerpc/time.h: Likewise.
18757         * include/grub/sparc64/time.h: Likewise.
18759 2007-11-18  Christian Franke  <franke@computer.org>
18761         * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
18762         now return control chars instead of GRUB_CONSOLE_KEY_* constants.
18763         This fixes the problem that function keys did not work in grub-emu.
18765 2007-11-18  Christian Franke  <franke@computer.org>
18767         * disk/host.c (grub_host_open): Remove attribute unused from
18768         name parameter. Add check for "host". This fixes the problem
18769         that grub-emu does not find partitions.
18771 2007-11-18  Christian Franke  <franke@computer.org>
18773         * util/hostfs.c (is_dir): New function.
18774         (grub_hostfs_dir):  Handle missing dirent.d_type case.
18775         (grub_hostfs_read): Add missing fseek().
18776         (grub_hostfs_label): Clear label pointer.  This fixes a crash
18777         of grub-emu on "ls (host)".
18779 2007-11-18  Christian Franke  <franke@computer.org>
18781         * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
18782         Add attribute packed, gcc 3.4.4 on Cygwin aligns this
18783         to 64 bit boundary by default.
18785 2007-11-18  Bean  <bean123ch@gmail.com>
18787         * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
18788         (hexdump_mod_SOURCES): New variable.
18789         (hexdump_mod_CFLAGS): Likewise.
18790         (hexdump_mod_LDFLAGS): Likewise.
18792         * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
18794         * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
18796         * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
18798         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
18800         * include/grub/hexdump.h: New file.
18802         * commands/hexdump.c: New file.
18804 2007-11-10  Robert Millan  <rmh@aybabtu.com>
18806         * commands/i386/pc/play.c (beep_off): Switch order of arguments
18807         in grub_outb() calls.
18808         (beep_on): Likewise.
18810 2007-11-10  Christian Franke  <franke@computer.org>
18812         * normal/menu.c (run_menu): Check for empty menu to avoid crash.
18813         (grub_menu_run): Likewise.
18815 2007-11-10  Robert Millan  <rmh@aybabtu.com>
18817         * include/grub/i386/efi/machine.h: New file.
18818         * include/grub/i386/linuxbios/machine.h: Likewise.
18819         * include/grub/i386/pc/machine.h: Likewise.
18820         * include/grub/powerpc/ieee1275/machine.h: Likewise.
18821         * include/grub/sparc64/ieee1275/machine.h: Likewise.
18823         * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
18824         (serial_hw_io_addr): New variable.
18825         (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
18826         instead of `(unsigned short *) 0x400'.
18828 2007-11-10  Bean  <bean123ch@gmail.com>
18830         * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
18832 2007-11-10  Vesa Jaaskelainen  <chaac@nic.fi>
18834         * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
18835         (vga_mod_SOURCES): Added.
18836         (vga_mod_CFLAGS): Likewise.
18837         (vga_mod_LDFLAGS): Likewise.
18839         * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
18840         grub_outb() calls.
18841         (set_map_mask): Likewise.
18842         (set_read_map): Likewise.
18843         (set_read_address): Likewise.
18844         (vga_font): Removed variable.
18845         (get_vga_glyph): Removed function.
18846         (invalidate_char): Likewise.
18847         (write_char): Changed to use grub_font_get_glyph() for font
18848         information.
18849         (grub_vga_putchar): Likewise.
18850         (grub_vga_getcharwidth): Likewise.
18852 2007-11-10  Vesa Jaaskelainen  <chaac@nic.fi>
18854         * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
18855         flags.
18856         (pxeboot_img_LDFLAGS): Likewise.
18857         (diskboot_img_LDFLAGS): Likewise.
18858         (kernel_img_LDFLAGS): Likewise.
18860 2007-11-06  Robert Millan  <rmh@aybabtu.com>
18862         * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
18863         in grub_outb() calls.
18864         (serial_hw_init): Likewise.
18866 2007-11-05  Robert Millan  <rmh@aybabtu.com>
18868         * util/update-grub.in: Allow files in ${update_grub_dir} to contain
18869         spaces.  Skip non-regular files.
18871 2007-11-05  Robert Millan  <rmh@aybabtu.com>
18873         * kern/disk.c (grub_disk_firmware_fini)
18874         (grub_disk_firmware_is_tainted): New variables.
18876         * include/grub/disk.h (grub_disk_firmware_fini)
18877         (grub_disk_firmware_is_tainted): Likewise.
18879         * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
18880         (grub_disk_biosdisk_fini): ... to here.
18881         (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
18882         (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
18883         is set.  Register grub_disk_biosdisk_fini() in
18884         `grub_disk_firmware_fini'.
18886         * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
18887         (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
18888         Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
18889         to finish existing firmware disk interface.
18891         * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
18892         (ata_mod_SOURCES): New variable.
18893         (ata_mod_CFLAGS): Likewise.
18894         (ata_mod_LDFLAGS): Likewise.
18896 2007-11-05  Robert Millan  <rmh@aybabtu.com>
18898         * disk/ata.c: Remove `<grub/machine/time.h>'.  Include `<grub/time.h>'.
18899         (grub_ata_wait): Reimplement using grub_millisleep().
18901         * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
18902         * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
18904 2007-11-03  Marco Gerards  <marco@gnu.org>
18906         * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
18907         (CRTC_ADDR_PORT): New macro.
18908         (CRTC_DATA_PORT): Likewise.
18909         (CRTC_CURSOR): Likewise.
18910         (CRTC_CURSOR_ADDR_HIGH): Likewise.
18911         (CRTC_CURSOR_ADDR_LOW): Likewise.
18912         (update_cursor): New function.
18913         (grub_console_real_putchar): Call `update_cursor'.
18914         (grub_console_gotoxy): Likewise.
18915         (grub_console_cls): Set the default color when clearing the
18916         screen.
18917         (grub_console_setcursor): Implemented.
18919 2007-11-03  Marco Gerards  <marco@gnu.org>
18921         * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
18922         become activate.
18923         (grub_ata_pio_write): Likewise.
18925         (grub_atapi_identify): Wait after issuing an ATA command.
18926         (grub_atapi_packet): Likewise.
18927         (grub_ata_identify): Likewise.
18928         (grub_ata_readwrite): Likewise.
18930 2007-11-03  Marco Gerards  <marco@gnu.org>
18932         * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
18933         (grub_ata_pio_write): Likewise.
18934         (grub_ata_readwrite): Use `grub_error', instead of
18935         returning `grub_errno'.
18937 2007-11-03  Marco Gerards  <marco@gnu.org>
18939         * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
18940         grub_ata_pio_write once for every single sector, instead of for
18941         multiple sectors.
18943 2007-10-31  Robert Millan  <rmh@aybabtu.com>
18945         * configure.ac: Add `i386-linuxbios' to the list of supported targets.
18947         * conf/i386-linuxbios.rmk: New file.
18949         * kern/i386/pc/hardware.c: Likewise.
18950         * term/i386/pc/at_keyboard.c: Likewise.
18951         * term/i386/pc/vga_text.c: Likewise.
18953         * include/grub/i386/linuxbios/boot.h: Likewise.
18954         * include/grub/i386/linuxbios/console.h: Likewise.
18955         * include/grub/i386/linuxbios/init.h: Likewise.
18956         * include/grub/i386/linuxbios/kernel.h: Likewise.
18957         * include/grub/i386/linuxbios/loader.h: Likewise.
18958         * include/grub/i386/linuxbios/memory.h: Likewise.
18959         * include/grub/i386/linuxbios/serial.h: Likewise.
18960         * include/grub/i386/linuxbios/time.h: Likewise.
18962         * kern/i386/linuxbios/init.c: Likewise.
18963         * kern/i386/linuxbios/startup.S: Likewise.
18964         * kern/i386/linuxbios/table.c: Likewise.
18966 2007-10-31  Marco Gerards  <marco@gnu.org>
18968         * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
18969         (ata_mod_SOURCES): New variable.
18970         (ata_mod_CFLAGS): Likewise.
18971         (ata_mod_LDFLAGS): Likewise.
18973         * disk/ata.c: New file.
18975         * include/grub/disk.h (grub_disk_dev_id): Add
18976         `GRUB_DISK_DEV_ATA_ID'.
18978 2007-10-31  Robert Millan  <rmh@aybabtu.com>
18980         * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
18981         * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
18983         * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
18984         * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
18986         * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
18987         `<grub/types.h>'.
18989         * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
18991 2007-10-27  Robert Millan  <rmh@aybabtu.com>
18993         * include/grub/types.h (ULONG_MAX): Define macro.
18995 2007-10-22  Robert Millan  <rmh@aybabtu.com>
18997         * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'.  Include
18998         `"../realmode.S"'.
18999         Remove `"kern/i386/loader.S"'.  Include `"../loader.S"'.
19001 2007-10-22  Robert Millan  <rmh@aybabtu.com>
19003         * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
19004         (pkgdata_MODULES): Add `biosdisk.mod'.
19005         (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
19006         variables.
19008         * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
19009         (grub_biosdisk_init): Replace with ...
19010         (GRUB_MOD_INIT(biosdisk)): ... this.
19011         (grub_biosdisk_fini): Replace with ...
19012         (GRUB_MOD_FINI(biosdisk)): ... this.
19014         * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
19015         (grub_machine_init): Remove call to grub_biosdisk_init().
19016         (grub_machine_fini): Remove call to grub_machine_fini().
19018         * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
19020 2007-10-22  Robert Millan  <rmh@aybabtu.com>
19022         * include/grub/time.h: New file.
19023         * include/grub/i386/time.h: Likewise.
19024         * include/grub/powerpc/time.h: Likewise.
19025         * include/grub/sparc64/time.h: Likewise.
19027         * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
19028         instances to ...
19029         (KERNEL_MACHINE_TIME_HEADER): ... this.
19030         * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
19031         instances to ...
19032         (KERNEL_MACHINE_TIME_HEADER): ... this.
19033         * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
19034         instances to ...
19035         (KERNEL_MACHINE_TIME_HEADER): ... this.
19037         * kern/i386/efi/init.c: Include `<grub/time.h>'.
19038         (grub_millisleep): New function.
19039         * kern/i386/pc/init.c: Include `<grub/time.h>'.
19040         (grub_millisleep): New function.
19041         * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
19042         Remove `grub/machine/time.h' include.
19043         (grub_millisleep): New function.
19044         * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
19045         Remove `grub/machine/time.h' include.
19046         (grub_millisleep): New function.
19048         * include/grub/misc.h (grub_div_roundup): New function.
19050         * kern/misc.c: Include `<grub/time.h>'.
19051         (grub_millisleep_generic): New function.
19053         * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
19054         Add `time.h'.
19055         * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
19056         Add `time.h'.
19057         * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
19058         `machine/time.h'.  Add `time.h'.
19059         * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
19061 2007-10-21  Robert Millan  <rmh@aybabtu.com>
19063         * include/grub/misc.h (grub_max): New function.
19065 2007-10-21  Robert Millan  <rmh@aybabtu.com>
19067         * util/misc.c (grub_util_info): Call fflush() before returning.
19069 2007-10-20  Robert Millan  <rmh@aybabtu.com>
19071         * genmk.rb (Image): Copy `extra_flags' from here ...
19072         (PModule): ... to here.  Use it in `#{obj}: #{src}' rule.
19074         * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
19075         to `argc' and `args' arguments.
19077 2007-10-17  Robert Millan  <rmh@aybabtu.com>
19079         * kern/i386/loader.S: New file.
19081         * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
19082         * kern/i386/loader.S (grub_linux_prot_size)... to here.
19083         * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
19084         * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
19085         * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
19086         * kern/i386/loader.S (grub_linux_real_addr)... to here.
19087         * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
19088         * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
19089         * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
19090         * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
19091         * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
19092         * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
19093         * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
19094         * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
19096         * kern/i386/realmode.S: New file.
19098         * kern/i386/pc/startup.S (protstack): Moved from here ...
19099         * kern/i386/realmode.S (protstack)... to here.
19100         * kern/i386/pc/startup.S (gdt): Moved from here ...
19101         * kern/i386/realmode.S (gdt)... to here.
19102         * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
19103         * kern/i386/realmode.S (prot_to_real)... to here.
19105         * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
19106         `kern/i386/realmode.S'.
19108 2007-10-17  Robert Millan  <rmh@aybabtu.com>
19110         * include/grub/i386/loader.h: New file.
19112         * include/grub/i386/pc/loader.h (grub_linux_prot_size)
19113         (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
19114         (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
19115         (grub_multiboot_real_boot, grub_multiboot2_real_boot)
19116         (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
19117         * include/grub/i386/loader.h (grub_linux_prot_size)
19118         (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
19119         (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
19120         (grub_multiboot_real_boot, grub_multiboot2_real_boot)
19121         (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
19123         * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
19125 2007-10-15  Robert Millan  <rmh@aybabtu.com>
19127         * normal/misc.c (grub_normal_print_device_info): Do not probe for
19128         filesystem when dev->disk is unset.
19129         Do probe for filesystem even when dev->disk->has_partitions is set.
19130         In case a filesystem is found, always report it.
19131         In case it isn't, if dev->disk->has_partitions is set, report that
19132         a partition table was found instead of reporting that no filesystem
19133         could be identified.
19135 2007-10-12  Robert Millan  <rmh@aybabtu.com>
19137         * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
19138         to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
19140         * include/grub/types.h (grub_host_to_target16): New macro.
19141         (grub_host_to_target32): Likewise.
19142         (grub_host_to_target64): Likewise.
19143         (grub_target_to_host16): Likewise.
19144         (grub_target_to_host32): Likewise.
19145         (grub_target_to_host64): Likewise.
19147         * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
19148         Renamed from to ...
19149         (GRUB_MOD_ALIGN): ...this.  Update all users.
19151         * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
19152         grub_host_to_target32.
19153         Replace grub_be_to_cpu32 with grub_target_to_host32.
19154         (load_modules): Likewise.
19155         (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
19156         Replace grub_be_to_cpu32 with grub_target_to_host32.
19157         Replace grub_cpu_to_be16 with grub_host_to_target16.
19158         Replace grub_cpu_to_be32 grub_host_to_target32.
19160 2007-10-12  Robert Millan  <rmh@aybabtu.com>
19162         * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
19163         * util/elf/grub-mkimage.c: ... here.
19165         * DISTLIST: Add `util/elf/grub-mkimage.c'.  Remove
19166         `util/powerpc/ieee1275/grub-mkimage.c'.
19168 2007-10-07  Robert Millan  <rmh@aybabtu.com>
19170         * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
19171         and make it easier to figure out.
19172         Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
19173         (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
19174         Do not avoid claiming a region above HEAP_MAX_ADDR if that would
19175         leave us with less than HEAP_MIN_SIZE total heap.
19176         Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
19178 2007-10-03  Robert Millan  <rmh@aybabtu.com>
19180         * include/grub/i386/io.h: New file.
19181         * commands/i386/pc/play.c (inb): Removed.
19182         (outb): Removed.
19183         Include grub/cpu/io.h.  Replace inb() with grub_inb() and outb()
19184         with grub_outb().
19185         * term/i386/pc/serial.c  (inb): Removed.
19186         (outb): Removed.
19187         Include grub/cpu/io.h.  Replace inb() with grub_inb() and outb()
19188         with grub_outb().
19189         * term/i386/pc/vga.c  (inb): Removed.
19190         (outb): Removed.
19191         Include grub/cpu/io.h.  Replace inb() with grub_inb() and outb()
19192         with grub_outb().
19194 2007-10-02  Robert Millan  <rmh@aybabtu.com>
19196         * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
19197         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
19198         Reported by Marcin Kurek.
19200 2007-09-07  Robert Millan  <rmh@aybabtu.com>
19202         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
19203         SmartFirmware version updates (as released by Sven Luther), and avoid
19204         setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
19205         GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
19206         known broken.
19208 2007-09-03  Yoshinori K. Okuji  <okuji@enbug.org>
19210         From Hitoshi Ozeki:
19211         * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
19212         when merging two regions.
19214 2007-09-03  Yoshinori K. Okuji  <okuji@enbug.org>
19216         * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
19217         * normal/completion.c (grub_normal_do_completion): Likewise.
19218         Reported by Hitoshi Ozeki.
19220 2007-09-03  Yoshinori K. Okuji  <okuji@enbug.org>
19222         Do not use devices at boot in chainloading.
19224         * loader/i386/pc/chainloader.c (boot_drive): New variable.
19225         (boot_part_addr): Likewise.
19226         (grub_chainloader_boot): Simply call grub_chainloader_real_boot
19227         with BOOT_DRIVE and BOOT_PART_ADDR.
19228         (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
19229         Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
19231 2007-08-29  Robert Millan  <rmh@aybabtu.com>
19233         Patch from Simon Peter <dn.tlp@gmx.net>:
19234         * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
19235         * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
19236         util/grub-probe.c_DEPENDENCIES.  Replace grub-setup_DEPENDENCIES with
19237         util/i386/pc/grub-setup.c_DEPENDENCIES.
19238         * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
19239         util/grub-probe.c_DEPENDENCIES.
19240         * conf/powerpc-ieee1275.rmk: Likewise.
19242 2007-08-28  Robert Millan  <rmh@aybabtu.com>
19244         * util/i386/get_disk_name.c: New.  Implement grub_util_get_disk_name()
19245         to tell grub-mkdevicemap how to name devices.
19246         * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
19247         feature).
19249         * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
19250         util/i386/get_disk_name.c.
19251         * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
19252         * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
19253         util/ieee1275/get_disk_name.c.
19255         * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
19257         * DISTLIST: Add util/i386/get_disk_name.c and
19258         util/ieee1275/get_disk_name.c.
19260         * util/grub-mkdevicemap.c: Replace device naming logic with
19261         grub_util_get_disk_name() calls.
19263 2007-08-20  Robert Millan  <rmh@aybabtu.com>
19265         * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
19266         (so that it works for both plural and singular quantities).
19268 2007-08-05  Robert Millan  <rmh@aybabtu.com>
19270         * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
19271         so that [xz] isn't taken into account when determining order.
19273 2007-08-02  Marco Gerards  <marco@gnu.org>
19275         * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
19276         `include/multiboot2.h', `include/grub/elfload.h',
19277         `include/multiboot.h', `include/grub/multiboot.h',
19278         `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
19279         `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
19280         `kern/elf.c', `loader/multiboot_loader.c',
19281         `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
19282         `loader/i386/pc/multiboot2.c',
19283         `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
19284         `util/i386/pc/grub-mkrescue.in'.  Remove
19285         `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
19286         `include/grub/i386/pc/util/biosdisk.h' and
19287         `include/grub/powerpc/ieee1275/multiboot.h'.
19289 2007-08-02  Bean  <bean123ch@gmail.com>
19291         * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
19292         (ntfs_mod_SOURCES): New variable.
19293         (ntfs_mod_CFLAGS): Likewise.
19294         (ntfs_mod_LDFLAGS): Likewise.
19296         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
19297         (grub_probe_SOURCES): Likewise.
19298         (grub_emu_SOURCES): Likewise.
19300         * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
19301         (grub_emu_SOURCES): Likewise.
19303         * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
19304         (grub_emu_SOURCES): Likewise.
19306         * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
19308         * fs/ntfs.c: New file.
19310 2007-08-02  Bean  <bean123ch@gmail.com>
19312         * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
19314         * file.h (grub_file): Likewise.
19316         * fshelp.h (grub_fshelp_read_file): Likewise.
19318         * util/i386/pc/grub-setup.c (setup): Likewise.
19319         (save_first_sector): Likewise.
19320         (save_blocklists): Likewise.
19322         * fs/affs.c (grub_affs_read_file): Likewise.
19324         * fs/ext2.c (grub_ext2_read_file): Likewise.
19326         * fs/fat.c (grub_fat_read_data): Likewise.
19328         * fs/fshelp.c (grub_fshelp_read_file): Likewise.
19330         * fs/hfs.c (grub_hfs_read_file): Likewise.
19332         * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
19334         * fs/jfs.c (grub_jfs_read_file): Likewise.
19336         * fs/minix.c (grub_minix_read_file): Likewise.
19338         * fs/sfs.c (grub_sfs_read_file): Likewise.
19340         * fs/ufs.c (grub_ufs_read_file): Likewise.
19342         * fs/xfs.c (grub_xfs_read_file): Likewise.
19344         * command/blocklist.c (read_blocklist): Likewise.
19345         (print_blocklist): Likewise.
19347 2007-08-02  Marco Gerards  <marco@gnu.org>
19349         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
19350         `util/hostfs.c'.
19352         * disk/host.c: New file.
19354         * util/hostfs.c: Likewise.
19356         * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
19357         return `GRUB_ERR_BAD_FS'.
19358         * fs/sfs.c (grub_sfs_mount): Likewise.
19359         * fs/xfs.c (grub_xfs_mount): Likewise.
19361         * include/grub/disk.h (enum grub_disk_dev_id): Add
19362         `GRUB_DISK_DEVICE_HOST_ID'.
19364         * util/grub-emu.c (main): Initialize and de-initialize hostfs.
19366 2007-07-24  Jerone Young  <jerone@gmail.com>
19368         * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
19369         modules for compilation.
19370         * conf/powerpc-ieee1275.rmk: Likewise.
19372         * include/multiboot.h: Move multiboot definitions to one file. Rename
19373         many definitions to not get grub specific.
19374         * include/multiboot2.h: Create header with multiboot 2 definitions.
19375         * include/grub/multiboot.h: Header for grub specific function
19376         prototypes and definitions.
19377         * include/grub/multiboot2.h: Likewise.
19378         * include/grub/multiboot_loader.h: Likewise.
19379         * include/grub/i386/pc/multiboot.h: Removed.
19380         * include/grub/powerpc/ieee1275/multiboot.h: Removed.
19382         * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
19383         and 2 to allow for one multiboot and module commands.
19384         * loader/multiboot2.c: Add multiboot2 functionality.
19385         * loader/i386/pc/multiboot.c: Modify for new multiboot header location
19386         and definition names.
19387         * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
19388         2 functions.
19389         * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
19390         ieee1275 specific multiboot2 code.
19392         * kern/i386/pc/startup.S: Change headers and definition names for
19393         multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
19395 2007-07-22  Robert Millan  <rmh@aybabtu.com>
19397         * geninitheader.sh: Process file specified in first parameter rather
19398         than hardcoding grub_modules_init.lst.
19399         * geninit.sh: Likewise.  Also, construct header name dynamically rather
19400         than hardcoding grub_modules_init.h.
19402         * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
19403         grub-emu to grub_emu_init.[ch].  Add rules to build analogous
19404         grub_probe_init.[ch] and grub_setup_init.[ch].
19406         * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
19407         grub_modules_init.h with grub_emu_init.h.
19408         (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
19409         grub_probe_init.[ch] files.
19410         * conf/i386-efi.rmk: Likewise.
19411         * conf/i386-pc.rmk: Likewise.
19412         (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
19413         grub_setup_init.[ch] files.
19415         * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
19416         * util/grub-probe.c: Include grub_probe_init.h.  Use grub_init_all()
19417         to initialize modules rather than a list of hardcoded functions.
19418         * util/i386/pc/grub-setup.c: Include grub_setup_init.h.  Use
19419         grub_init_all() to initialize modules rather than a list of hardcoded
19420         functions.
19422 2007-07-22  Robert Millan  <rmh@aybabtu.com>
19424         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
19425         GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
19427 2007-07-22  Robert Millan  <rmh@aybabtu.com>
19429         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
19430         GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
19431         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
19432         flag when running on SmartFirmware.
19433         * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
19434         "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
19435         was set.
19437         * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
19438         Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
19439         rather than decreasing it.
19441         * util/i386/pc/grub-setup.c (setup): When embedding is required, but
19442         there's not enough space to do it, fail in the same way as when it
19443         can't be done because there are no partitions.
19445         * util/powerpc/ieee1275/grub-install.in: Improve error message shown
19446         when nvsetenv failed.
19448 2007-07-22  Yoshinori K. Okuji  <okuji@enbug.org>
19450         * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
19451         because this rule is automatically generated.
19452         (grub-mkrescue): Removed for the same reason as above.
19454 2007-07-22  Yoshinori K. Okuji  <okuji@enbug.org>
19456         Migrate to GNU General Public License Version 3.
19458         * COPYING: Replaced with the plain text version of GPLv3.
19460         * config.guess: Updated from gnulib.
19461         * config.sub: Likewise.
19463         * geninit.sh: Output a GPLv3 copyright notice.
19464         * geninitheader.sh: Likewise.
19465         * genmodsrc.sh: Likewise.
19466         * gensymlist.sh.in: Likewise.
19468         * boot/i386/pc/boot.S: Upgraded to GPLv3.
19469         * boot/i386/pc/diskboot.S: Likewise.
19470         * boot/i386/pc/pxeboot.S: Likewise.
19471         * commands/blocklist.c: Likewise.
19472         * commands/boot.c: Likewise.
19473         * commands/cat.c: Likewise.
19474         * commands/cmp.c: Likewise.
19475         * commands/configfile.c: Likewise.
19476         * commands/echo.c: Likewise.
19477         * commands/help.c: Likewise.
19478         * commands/ls.c: Likewise.
19479         * commands/search.c: Likewise.
19480         * commands/terminal.c: Likewise.
19481         * commands/test.c: Likewise.
19482         * commands/videotest.c: Likewise.
19483         * commands/i386/cpuid.c: Likewise.
19484         * commands/i386/pc/halt.c: Likewise.
19485         * commands/i386/pc/play.c: Likewise.
19486         * commands/i386/pc/reboot.c: Likewise.
19487         * commands/i386/pc/vbeinfo.c: Likewise.
19488         * commands/i386/pc/vbetest.c: Likewise.
19489         * commands/ieee1275/halt.c: Likewise.
19490         * commands/ieee1275/reboot.c: Likewise.
19491         * commands/ieee1275/suspend.c: Likewise.
19492         * disk/loopback.c: Likewise.
19493         * disk/lvm.c: Likewise.
19494         * disk/raid.c: Likewise.
19495         * disk/efi/efidisk.c: Likewise.
19496         * disk/i386/pc/biosdisk.c: Likewise.
19497         * disk/ieee1275/ofdisk.c: Likewise.
19498         * font/manager.c: Likewise.
19499         * fs/affs.c: Likewise.
19500         * fs/ext2.c: Likewise.
19501         * fs/fat.c: Likewise.
19502         * fs/fshelp.c: Likewise.
19503         * fs/hfs.c: Likewise.
19504         * fs/hfsplus.c: Likewise.
19505         * fs/iso9660.c: Likewise.
19506         * fs/jfs.c: Likewise.
19507         * fs/minix.c: Likewise.
19508         * fs/sfs.c: Likewise.
19509         * fs/ufs.c: Likewise.
19510         * fs/xfs.c: Likewise.
19511         * hello/hello.c: Likewise.
19512         * include/grub/acorn_filecore.h: Likewise.
19513         * include/grub/arg.h: Likewise.
19514         * include/grub/bitmap.h: Likewise.
19515         * include/grub/boot.h: Likewise.
19516         * include/grub/cache.h: Likewise.
19517         * include/grub/device.h: Likewise.
19518         * include/grub/disk.h: Likewise.
19519         * include/grub/dl.h: Likewise.
19520         * include/grub/elfload.h: Likewise.
19521         * include/grub/env.h: Likewise.
19522         * include/grub/err.h: Likewise.
19523         * include/grub/file.h: Likewise.
19524         * include/grub/font.h: Likewise.
19525         * include/grub/fs.h: Likewise.
19526         * include/grub/fshelp.h: Likewise.
19527         * include/grub/gzio.h: Likewise.
19528         * include/grub/hfs.h: Likewise.
19529         * include/grub/kernel.h: Likewise.
19530         * include/grub/loader.h: Likewise.
19531         * include/grub/lvm.h: Likewise.
19532         * include/grub/misc.h: Likewise.
19533         * include/grub/mm.h: Likewise.
19534         * include/grub/net.h: Likewise.
19535         * include/grub/normal.h: Likewise.
19536         * include/grub/parser.h: Likewise.
19537         * include/grub/partition.h: Likewise.
19538         * include/grub/pc_partition.h: Likewise.
19539         * include/grub/raid.h: Likewise.
19540         * include/grub/rescue.h: Likewise.
19541         * include/grub/script.h: Likewise.
19542         * include/grub/setjmp.h: Likewise.
19543         * include/grub/symbol.h: Likewise.
19544         * include/grub/term.h: Likewise.
19545         * include/grub/terminfo.h: Likewise.
19546         * include/grub/tparm.h: Likewise.
19547         * include/grub/types.h: Likewise.
19548         * include/grub/video.h: Likewise.
19549         * include/grub/efi/api.h: Likewise.
19550         * include/grub/efi/chainloader.h: Likewise.
19551         * include/grub/efi/console.h: Likewise.
19552         * include/grub/efi/console_control.h: Likewise.
19553         * include/grub/efi/disk.h: Likewise.
19554         * include/grub/efi/efi.h: Likewise.
19555         * include/grub/efi/pe32.h: Likewise.
19556         * include/grub/efi/time.h: Likewise.
19557         * include/grub/i386/linux.h: Likewise.
19558         * include/grub/i386/setjmp.h: Likewise.
19559         * include/grub/i386/types.h: Likewise.
19560         * include/grub/i386/efi/kernel.h: Likewise.
19561         * include/grub/i386/efi/loader.h: Likewise.
19562         * include/grub/i386/efi/time.h: Likewise.
19563         * include/grub/i386/pc/biosdisk.h: Likewise.
19564         * include/grub/i386/pc/boot.h: Likewise.
19565         * include/grub/i386/pc/chainloader.h: Likewise.
19566         * include/grub/i386/pc/console.h: Likewise.
19567         * include/grub/i386/pc/init.h: Likewise.
19568         * include/grub/i386/pc/kernel.h: Likewise.
19569         * include/grub/i386/pc/loader.h: Likewise.
19570         * include/grub/i386/pc/memory.h: Likewise.
19571         * include/grub/i386/pc/multiboot.h: Likewise.
19572         * include/grub/i386/pc/serial.h: Likewise.
19573         * include/grub/i386/pc/time.h: Likewise.
19574         * include/grub/i386/pc/vbe.h: Likewise.
19575         * include/grub/i386/pc/vbeblit.h: Likewise.
19576         * include/grub/i386/pc/vbefill.h: Likewise.
19577         * include/grub/i386/pc/vbeutil.h: Likewise.
19578         * include/grub/i386/pc/vga.h: Likewise.
19579         * include/grub/ieee1275/ieee1275.h: Likewise.
19580         * include/grub/ieee1275/ofdisk.h: Likewise.
19581         * include/grub/powerpc/libgcc.h: Likewise.
19582         * include/grub/powerpc/setjmp.h: Likewise.
19583         * include/grub/powerpc/types.h: Likewise.
19584         * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
19585         * include/grub/powerpc/ieee1275/console.h: Likewise.
19586         * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
19587         * include/grub/powerpc/ieee1275/kernel.h: Likewise.
19588         * include/grub/powerpc/ieee1275/loader.h: Likewise.
19589         * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
19590         * include/grub/powerpc/ieee1275/time.h: Likewise.
19591         * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
19592         * include/grub/sparc64/libgcc.h: Likewise.
19593         * include/grub/sparc64/setjmp.h: Likewise.
19594         * include/grub/sparc64/types.h: Likewise.
19595         * include/grub/sparc64/ieee1275/console.h: Likewise.
19596         * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
19597         * include/grub/sparc64/ieee1275/kernel.h: Likewise.
19598         * include/grub/sparc64/ieee1275/time.h: Likewise.
19599         * include/grub/util/biosdisk.h: Likewise.
19600         * include/grub/util/getroot.h: Likewise.
19601         * include/grub/util/lvm.h: Likewise.
19602         * include/grub/util/misc.h: Likewise.
19603         * include/grub/util/raid.h: Likewise.
19604         * include/grub/util/resolve.h: Likewise.
19605         * io/gzio.c: Likewise.
19606         * kern/device.c: Likewise.
19607         * kern/disk.c: Likewise.
19608         * kern/dl.c: Likewise.
19609         * kern/elf.c: Likewise.
19610         * kern/env.c: Likewise.
19611         * kern/err.c: Likewise.
19612         * kern/file.c: Likewise.
19613         * kern/fs.c: Likewise.
19614         * kern/loader.c: Likewise.
19615         * kern/main.c: Likewise.
19616         * kern/misc.c: Likewise.
19617         * kern/mm.c: Likewise.
19618         * kern/parser.c: Likewise.
19619         * kern/partition.c: Likewise.
19620         * kern/rescue.c: Likewise.
19621         * kern/term.c: Likewise.
19622         * kern/efi/efi.c: Likewise.
19623         * kern/efi/init.c: Likewise.
19624         * kern/efi/mm.c: Likewise.
19625         * kern/i386/dl.c: Likewise.
19626         * kern/i386/efi/init.c: Likewise.
19627         * kern/i386/efi/startup.S: Likewise.
19628         * kern/i386/pc/init.c: Likewise.
19629         * kern/i386/pc/lzo1x.S: Likewise.
19630         * kern/i386/pc/startup.S: Likewise.
19631         * kern/ieee1275/ieee1275.c: Likewise.
19632         * kern/powerpc/cache.S: Likewise.
19633         * kern/powerpc/dl.c: Likewise.
19634         * kern/powerpc/ieee1275/cmain.c: Likewise.
19635         * kern/powerpc/ieee1275/crt0.S: Likewise.
19636         * kern/powerpc/ieee1275/init.c: Likewise.
19637         * kern/powerpc/ieee1275/openfw.c: Likewise.
19638         * kern/sparc64/cache.S: Likewise.
19639         * kern/sparc64/dl.c: Likewise.
19640         * kern/sparc64/ieee1275/init.c: Likewise.
19641         * kern/sparc64/ieee1275/openfw.c: Likewise.
19642         * loader/efi/chainloader.c: Likewise.
19643         * loader/efi/chainloader_normal.c: Likewise.
19644         * loader/i386/efi/linux.c: Likewise.
19645         * loader/i386/efi/linux_normal.c: Likewise.
19646         * loader/i386/pc/chainloader.c: Likewise.
19647         * loader/i386/pc/chainloader_normal.c: Likewise.
19648         * loader/i386/pc/linux.c: Likewise.
19649         * loader/i386/pc/linux_normal.c: Likewise.
19650         * loader/i386/pc/multiboot.c: Likewise.
19651         * loader/i386/pc/multiboot_normal.c: Likewise.
19652         * loader/powerpc/ieee1275/linux.c: Likewise.
19653         * loader/powerpc/ieee1275/linux_normal.c: Likewise.
19654         * normal/arg.c: Likewise.
19655         * normal/cmdline.c: Likewise.
19656         * normal/command.c: Likewise.
19657         * normal/completion.c: Likewise.
19658         * normal/execute.c: Likewise.
19659         * normal/function.c: Likewise.
19660         * normal/lexer.c: Likewise.
19661         * normal/main.c: Likewise.
19662         * normal/menu.c: Likewise.
19663         * normal/menu_entry.c: Likewise.
19664         * normal/misc.c: Likewise.
19665         * normal/parser.y: Likewise.
19666         * normal/script.c: Likewise.
19667         * normal/i386/setjmp.S: Likewise.
19668         * normal/powerpc/setjmp.S: Likewise.
19669         * normal/sparc64/setjmp.S: Likewise.
19670         * partmap/acorn.c: Likewise.
19671         * partmap/amiga.c: Likewise.
19672         * partmap/apple.c: Likewise.
19673         * partmap/gpt.c: Likewise.
19674         * partmap/pc.c: Likewise.
19675         * partmap/sun.c: Likewise.
19676         * term/gfxterm.c: Likewise.
19677         * term/terminfo.c: Likewise.
19678         * term/efi/console.c: Likewise.
19679         * term/i386/pc/console.c: Likewise.
19680         * term/i386/pc/serial.c: Likewise.
19681         * term/i386/pc/vesafb.c: Likewise.
19682         * term/i386/pc/vga.c: Likewise.
19683         * term/ieee1275/ofconsole.c: Likewise.
19684         * util/biosdisk.c: Likewise.
19685         * util/console.c: Likewise.
19686         * util/genmoddep.c: Likewise.
19687         * util/getroot.c: Likewise.
19688         * util/grub-emu.c: Likewise.
19689         * util/grub-mkdevicemap.c: Likewise.
19690         * util/grub-probe.c: Likewise.
19691         * util/lvm.c: Likewise.
19692         * util/misc.c: Likewise.
19693         * util/raid.c: Likewise.
19694         * util/resolve.c: Likewise.
19695         * util/update-grub.in: Likewise.
19696         * util/update-grub_lib.in: Likewise.
19697         * util/grub.d/00_header.in: Likewise.
19698         * util/grub.d/10_hurd.in: Likewise.
19699         * util/grub.d/10_linux.in: Likewise.
19700         * util/i386/efi/grub-install.in: Likewise.
19701         * util/i386/efi/grub-mkimage.c: Likewise.
19702         * util/i386/pc/grub-install.in: Likewise.
19703         * util/i386/pc/grub-mkimage.c: Likewise.
19704         * util/i386/pc/grub-mkrescue.in: Likewise.
19705         * util/i386/pc/grub-setup.c: Likewise.
19706         * util/i386/pc/misc.c: Likewise.
19707         * util/powerpc/ieee1275/grub-install.in: Likewise.
19708         * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
19709         * util/powerpc/ieee1275/misc.c: Likewise.
19710         * video/bitmap.c: Likewise.
19711         * video/video.c: Likewise.
19712         * video/i386/pc/vbe.c: Likewise.
19713         * video/i386/pc/vbeblit.c: Likewise.
19714         * video/i386/pc/vbefill.c: Likewise.
19715         * video/i386/pc/vbeutil.c: Likewise.
19716         * video/readers/tga.c: Likewise.
19718 2007-07-02  Robert Millan  <rmh@aybabtu.com>
19720         * conf/i386-efi.rmk: Replace obsolete reference to
19721         util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
19722         with util/getroot.c.
19723         * conf/powerpc-ieee1275.rmk: Likewise.
19724         * conf/sparc64-ieee1275.rmk: Likewise.
19726         * util/grub-emu.c (main): Fix unchecked pointer handling.
19728 2007-07-02  Robert Millan  <rmh@aybabtu.com>
19730         * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
19731         invocation to fail, in order to support partition-less media.
19733         * util/i386/pc/grub-install.in: Likewise.
19735         * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
19736         which fs or partmap modules are needed (akin to its sister scripts).
19738         Also use grub-probe to get rid of unportable /proc/mounts check.
19740         Print the same informational message that the other scripts do, before
19741         exiting.
19743 2007-06-23  Robert Millan  <rmh@aybabtu.com>
19745         * util/update-grub_lib.in (font_path): New function.  Determine whether
19746         a font file can be found and, if so, echo the GRUB path to it.
19748         * util/update-grub.in: Handle multiple terminals depending on user
19749         input, platform availability and font file presence.  Propagate
19750         variables of our findings to /etc/grub.d/ children.
19752         * util/grub.d/00_header.in: Handle multiple terminals, based on
19753         environment setup by update-grub.
19755 2007-06-23  Robert Millan  <rmh@aybabtu.com>
19757         * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
19759 2007-06-21  Robert Millan  <rmh@aybabtu.com>
19761         * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
19762         indicate end of data section in kernel image.
19763         * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
19764         GRUB_KERNEL_MACHINE_DATA_END.
19766         * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
19767         space for it.
19768         * kern/i386/efi/startup.S: Likewise.
19770         * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
19771         during image generation.  Implement --prefix option to override this
19772         patch.
19773         * util/i386/efi/grub-mkimage.c: Likewise.
19775         * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
19776         code to make path relative to its root into a separate function.
19778         * util/i386/pc/grub-install.in: Use newly provided
19779         make_system_path_relative_to_its_root() to convert ${grubdir}, then
19780         pass the result to grub-install --prefix.
19782 2007-06-13  Robert Millan  <rmh@aybabtu.com>
19784         * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
19785         DEFAULT_DEVICE_MAP.
19786         * util/grub-emu.c: Use above definitions from misc.h instead of
19787         defining them.
19788         * util/grub-mkdevicemap.c: Likewise.
19789         * util/i386/pc/grub-setup.c: Likewise.
19790         * util/grub-probe.c: Likewise.
19791         (probe): Abort with grub_util_error() when either
19792         grub_guess_root_device or grub_util_get_grub_dev fails.
19794 2007-06-12  Robert Millan  <rmh@aybabtu.com>
19796         * normal/command.c (grub_command_execute): Use NULL rather than 0 for
19797         "pager" assignment.
19798         * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
19799         "pcdata".
19800         * util/grub-probe.c (probe): Likewise for "drive_name".
19802 2007-06-11  Robert Millan  <rmh@aybabtu.com>
19804         * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
19805         not just the cdrom one.
19807 2007-06-11  Robert Millan  <rmh@aybabtu.com>
19809         * util/i386/pc/grub-mkrescue.in: Add "set -e".
19810         Add --pkglibdir=DIR option to override pkglibdir.
19811         Mention --image-type=TYPE in help output.
19812         Fix --grub-mkimage (it was a no-op).
19813         Abort gracefully when no parameter is given.
19815 2007-06-11  Robert Millan  <rmh@aybabtu.com>
19817         * util/i386/pc/grub-mkrescue.in: New file.
19818         * conf/i386-pc.rmk: Add its build declarations.  Put it in bin_SCRIPTS.
19819         * Makefile.in: Handle bin_SCRIPTS.
19821 2007-06-10  Vesa Jaaskelainen  <chaac@nic.fi>
19823         * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
19824         list of video modes.
19826 2007-06-06  Robert Millan  <rmh@aybabtu.com>
19828         * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
19829         file doesn't exist, or if it is in a filesystem grub can't read.
19831         * util/update-grub.in: Set fallback for GRUB_FS check to "unknown".  Do
19832         not abort if GRUB_DRIVE could not be defined.  Rearrange generated
19833         header comment to fit in 80 columns when the variables are resolved.
19835         * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
19836         could be identified by update-grub.  Remove redundant check for
19837         unifont.pff existence (since convert_system_path_to_grub_path now
19838         handles that).
19840 2007-06-04  Robert Millan  <rmh@aybabtu.com>
19842         * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
19844         * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
19846         * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
19848 2007-06-04  Robert Millan  <rmh@aybabtu.com>
19850         * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
19852         * include/grub/partition.h: Declare grub_apple_partition_map_init and
19853         grub_apple_partition_map_fini.
19855         * util/biosdisk.c
19856         (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
19857         to access >2 TiB disks).
19859         Print disk->total_sectors with %llu instead of %lu, since this
19860         variable is always 64-bit (prevents wrong disk size from being displayed
19861         on either >2 TiB disk or big-endian CPU).
19863         (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
19864         into a generic case that supports all (sane) partition maps.
19866         Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
19867         breaks big-endian.
19869         * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
19870         and grub_apple_partition_map_fini() after that.
19872 2007-06-01  Robert Millan  <rmh@aybabtu.com>
19874         * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
19876         * util/grub.d/00_header.in: Only enable gfxterm when
19877         convert_system_path_to_grub_path() succeeds.
19879 2007-05-20  Robert Millan  <rmh@aybabtu.com>
19881         * util/update-grub_lib.in: New file.
19882         * DISTLIST: Add update-grub_lib.in.
19883         * conf/common.rmk: Generate update-grub_lib and install it in
19884         $(lib_DATA).
19885         * Makefile.in: Add install routine for $(lib_DATA).
19887         * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
19888         function provided by update-grub_lib to support arbitrary paths of
19889         unifont.pff.
19890         * util/update-grub.in: Use convert_system_path_to_grub_path() to
19891         initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
19893 2007-05-19  Robert Millan  <rmh@aybabtu.com>
19895         * commands/i386/cpuid.c: New module.
19896         * DISTLIST: Add it.
19897         * conf/i386-efi.rmk: Enable cpuid.mod.
19898         * conf/i386-pc.rmk: Likewise.
19900 2007-05-18  Jeroen Dekkers  <jeroen@dekkers.cx>
19902         * kern/disk.c (grub_disk_read): Check return value of
19903         grub_realloc().
19905 2007-05-18  Jeroen Dekkers  <jeroen@dekkers.cx>
19907         * util/getroot.c (grub_util_get_grub_dev): Support partitionable
19908         arrays.
19909         * disk/raid.c (grub_raid_open): Likewise.
19911 2007-05-17  Jeroen Dekkers  <jeroen@dekkers.cx>
19913         * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
19914         stack instead of on the heap.
19916         * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
19917         before doing a read on it.
19919         * configure.ac: Only use -fno-stack-protector for the target
19920         environment.
19922 2007-05-17  Jeroen Dekkers  <jeroen@dekkers.cx>
19924         * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
19925         __attribute_ ((unused)) to mode_type argument.
19927         * util/getroot.c (grub_guess_root_device): Fix #endif.
19929         * kern/misc.c (memcmp): Fix prototype.
19931         * include/grub/partition.h [GRUB_UTIL]
19932         (grub_gpt_partition_map_init): Add prototype.
19933         (grub_gpt_partition_map_fini): Likewise.
19935         * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
19936         at the right place.
19938         * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
19939         (grub_fat_read_data): Likewise.
19940         (grub_fat_find_dir): Likewise.
19942         * font/manager.c (find_glyph): Make table a const.
19943         (grub_font_get_glyph): Remove bitmap from if statement.
19945 2007-05-16  Jeroen Dekkers  <jeroen@dekkers.cx>
19947         * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
19948         code, first search for device in /dev/mapper, then in /dev.
19949         (grub_util_get_grub_dev): New function.
19950         * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
19951         prototype.
19952         * util/grub-probe.c (probe): Remove check for RAID, call
19953         grub_util_get_grub_dev() instead of
19954         grub_util_biosdisk_get_grub_dev().
19955         * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
19956         grub_util_biosdisk_get_grub_dev().
19957         * util/i386/pc/grub-setup.c (main): Likewise.
19959 2007-05-16  Robert Millan  <rmh@aybabtu.com>
19961         * DISTLIST: Update for the latest changes.
19962         * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
19963         util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
19964         * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
19965         grub/util/biosdisk.h.
19966         * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
19967         grub/util/biosdisk.h.
19969 2007-05-16  Robert Millan  <rmh@aybabtu.com>
19971         * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
19973 2007-05-16  Robert Millan  <rmh@aybabtu.com>
19975         * util/i386/efi/grub-install.in: New.
19976         * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
19977         newly added grub-install.
19978         * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
19979         include.
19980         * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
19981         grub/util/biosdisk.h.
19982         * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
19983         grub/util/biosdisk.h.
19985 2007-05-16  Robert Millan  <rmh@aybabtu.com>
19987         * include/grub/i386/pc/util/biosdisk.h: Moved to ...
19988         * include/grub/util/biosdisk.h: ... here.
19989         * util/i386/pc/biosdisk.c: Moved to ...
19990         * util/biosdisk.c: ... here.
19991         * util/i386/pc/getroot.c: Moved to ...
19992         * util/getroot.c: ... here.
19993         * util/i386/pc/grub-mkdevicemap.c: Moved to ...
19994         * util/grub-mkdevicemap.c: ... here.
19995         * util/i386/pc/grub-probe.c: Moved to ...
19996         * util/grub-probe.c: ... here.
19998 2007-05-15  Robert Millan  <rmh@aybabtu.com>
20000         * util/update-grub.in: Remove duplicated line in grub.cfg header
20001         message.
20003 2007-05-13  Robert Millan  <rmh@aybabtu.com>
20005         * util/update-grub.in: Fix a few assumptions about the devices holding
20006         /, /boot and /boot/grub being the same.
20007         * util/grub.d/00_header.in: Likewise.
20008         * util/grub.d/10_hurd.in: Likewise.
20009         * util/grub.d/10_linux.in: Likewise.
20011         * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
20012         patterns.  Use that to define the `.old' suffix as older than `'.
20014         * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
20016         * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
20017         the grub.cfg header message.
20019 2007-05-11  Robert Millan  <rmh@aybabtu.com>
20021         * util/update-grub.in: Create device.map if it doesn't already exist,
20022         before attempting to run grub-probe.
20023         Check for grub-probe and grub-mkdevicemap with the same code
20024         grub-install is using.
20025         Remove test mode.
20027 2007-05-09  Jeroen Dekkers  <jeroen@dekkers.cx>
20029         * Makefile.in: Add the datarootdir autoconf variable.
20031 2007-05-09  Robert Millan  <rmh@aybabtu.com>
20033         * util/i386/pc/grub-probe.c (probe): When detecting partition map,
20034         fail gracefully if dev->disk->partition == NULL.
20036 2007-05-07  Robert Millan  <rmh@aybabtu.com>
20038         * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
20039         determine partition map module.
20040         * util/i386/pc/grub-install.in: Use this feature to decide which
20041         partition module to load, instead of hardcoding pc and gpt.
20043 2007-05-07  Robert Millan  <rmh@aybabtu.com>
20045         * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
20046         source directory differs from build directory.
20048 2007-05-05  Robert Millan  <rmh@aybabtu.com>
20050         * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
20051         initialisation.
20053 2007-05-05  Robert Millan  <rmh@aybabtu.com>
20055         * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
20057 2007-05-05  Robert Millan  <rmh@aybabtu.com>
20059         * util/grub.d/10_linux.in: Allow the administrator to insert Linux
20060         command-line arguments via ${GRUB_CMDLINE_LINUX}.
20062 2007-05-05  Robert Millan  <rmh@aybabtu.com>
20064         * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
20065         (grub_probe_SOURCES): Likewise.
20066         * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
20067         GPT and initialize dos_part and bsd_part accordingly.
20068         * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
20069         install_bsd_part.
20070         (main): Activate gpt module for use during partition identification,
20071         and deactivate it afterwards.
20072         * util/i386/pc/grub-install.in: Add gpt module to core.img.
20073         * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
20074         partition identification, and deactivate it afterwards.
20076 2007-05-05  Robert Millan  <rmh@aybabtu.com>
20078         * term/i386/pc/console.c (grub_console_fini): Call
20079         grub_term_set_current() before grub_term_unregister().
20081 2007-05-04  Robert Millan  <rmh@aybabtu.com>
20083         * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
20084         util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
20085         * Makefile.in: Build update-grub_SCRIPTS.  Install update-grub_SCRIPTS
20086         and update-grub_DATA.
20087         * conf/common.rmk: Build and install update-grub components.
20088         * conf/common.mk: Regenerate.
20089         * util/update-grub.in: New.  Core of update-grub.
20090         * util/grub.d/00_header.in: New.  Generates grub.cfg header.
20091         * util/grub.d/10_hurd.in: New.  Generates boot entries for the Hurd.
20092         * util/grub.d/10_linux.in: New.  Generates boot entries for Linux.
20093         * util/grub.d/README: New.  Document grub.d directory layout.
20095 2007-05-01  Robert Millan  <rmh@aybabtu.com>
20097         * util/grub-emu.c: Move initialization functions
20098         grub_util_biosdisk_init() and grub_init_all() before
20099         grub_util_biosdisk_get_grub_dev(), which relies on them.
20101 2007-04-19  Robert Millan  <rmh@aybabtu.com>
20103         * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
20104         it is used later.
20106 2007-04-18  Jerone Young  <jerone@gmail.com>
20108         * kernel/elf.c: Add missing parenthesis for conditional statement
20109         stanza.
20111 2007-04-10  Jerone Young  <jerone@gmail.com>
20113         * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
20114         continue on and look for device node with real device name.
20116 2007-04-10  Jerone Young  <jerone@gmail.com>
20118         * configure.ac: Add argument for autoconf to use transformation
20119         ability.
20120         * Makefile.in: Add autoconf package transformation code.
20121         * util/i386/pc/grub-install.in: Likewise.
20122         * util/powerpc/ieee1275/grub-install.in: Likewise.
20124 2007-03-19  Yoshinori K. Okuji  <okuji@enbug.org>
20126         * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
20127         (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
20128         (EXT2_REVISION): Likewise.
20129         (EXT2_INODE_SIZE): Likewise.
20130         (struct grub_ext2_block_group): Added a missing member
20131         "used_dirs".
20132         (grub_ext2_read_inode): Divide by the inode size in a superblock
20133         instead of 128 to obtain INODES_PER_BLOCK.
20134         Use the macro EXT2_INODE_SIZE instead of directly using
20135         SBLOCK->INODE_SIZE.
20137 2007-03-18  Yoshinori K. Okuji  <okuji@enbug.org>
20139         * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
20140         superblock instead of the structure size to compute an
20141         offset. This fixes the problem that GRUB could not read a
20142         filesystem when inode size is different from 128-byte.
20144 2007-03-05  Marco Gerards  <marco@gnu.org>
20146         * normal/main.c (read_config_file): When "menu" is not set, create
20147         an initial context.
20149 2007-02-21  Hollis Blanchard  <hollis@penguinppc.org>
20151         * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
20152         (HEAP_LIMIT): New macro.
20153         (grub_claim_heap): Claim memory up to `heaplimit'.
20155 2007-02-21  Hollis Blanchard  <hollis@penguinppc.org>
20157         * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
20158         * kern/powerpc/ieee1275/init.c (_end): Add declaration.
20159         (_start): Likewise.
20160         (grub_arch_modules_addr): Return address after `_end'.
20161         * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
20162         (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
20163         (add_segments): Calculate `_end' from phdr size and location.
20164         (ALIGN_UP): Moved to ...
20165         * include/grub/misc.h: here.
20166         * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
20167         New macro.
20168         (GRUB_IEEE1275_MODULE_BASE): Removed.
20170 2007-02-20  Hollis Blanchard  <hollis@penguinppc.org>
20172         * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
20173         loop boundary.
20175 2007-02-20  Hollis Blanchard  <hollis@penguinppc.org>
20177         * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
20178         All users updated.
20179         (grub_elf64_load_hook_t): Likewise.
20180         * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
20181         debug output.
20183 2007-02-20  Hollis Blanchard  <hollis@penguinppc.org>
20185         * kern/mm.c: Update copyright.
20186         (grub_mm_debug): Correct syntax error.
20187         (grub_mm_dump_free): New function.
20188         (grub_debug_free): Call `grub_free'.
20189         * include/grub/mm.h: Update copyright.
20190         (grub_mm_dump_free): Add declaration.
20192 2007-02-12  Hollis Blanchard  <hollis@penguinppc.org>
20194         * include/grub/ieee1275/ieee1275.h: Update copyright.
20195         * kern/powerpc/ieee1275/init.c: Likewise.
20196         * kern/powerpc/ieee1275/openfw.c: Likewise.
20198         * loader/powerpc/ieee1275/linux.c: Likewise.
20199         * include/grub/elfload.h: Likewise.
20200         * kern/elf.c: Likewise.
20201         (grub_elf32_load): Pass `base' and `size' parameters.  Update all
20202         callers.
20203         (grub_elf64_load): Likewise.
20204         (grub_elf32_load_segment): Move to a nested function.
20205         (grub_elf64_load_segment): Likewise.
20207 2007-02-12  Hollis Blanchard  <hollis@penguinppc.org>
20209         * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
20210         prototype.
20211         * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
20212         (grub_heap_len): Likewise.
20213         (HEAP_SIZE): New macro.
20214         (grub_claim_heap): New function.
20215         (grub_machine_init): Don't claim heap directly.  Call
20216         `grub_claim_heap'.
20217         * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
20218         (grub_available_iterate): New function.
20220 2007-02-03  Thomas Schwinge  <tschwinge@gnu.org>
20222         * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
20223         * configure.ac: Use it for testing the HOST and TARGET compilers.
20225 2006-12-13  Thomas Schwinge  <tschwinge@gnu.org>
20227         * Makefile.in (enable_grub_emu): New variable.
20228         * configure.ac (--enable-grub-emu): New option.
20229         Do the checks for (n)curses only if `--enable-grub-emu' is requested.
20230         * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
20231         * conf/i386-pc.rmk: Likewise.
20232         * conf/powerpc-ieee1275.rmk: Likewise.
20233         * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
20235 2006-12-12  Marco Gerards  <marco@gnu.org>
20237         * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
20239         * kern/env.c (grub_env_unset): Don't free the member `value' when
20240         the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
20241         pointer.
20243         * normal/main.c (current_menu): Removed.
20244         (free_menu): Unset the `menu' environment variable.
20245         (grub_normal_menu_addentry): Make use of the environment variable
20246         `menu', instead of using the global `current_menu'.  Allocate
20247         memory for the sourcecode of this entry.
20248         (read_config_file): New argument `nested', changed all callers.
20249         Only in the case of a new context, initialize a new menu.  Set the
20250         `menu' environment variable.
20251         (grub_normal_execute): Don't set and unset the environment
20252         variable `menu' here anymore.  Only free the menu when leaving the
20253         context.
20255         * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
20256         leak.
20258 2006-12-11  Marco Gerards  <marco@gnu.org>
20260         * normal/menu_entry.c (run): Fix off by one bug so the last line
20261         is executed.  Move the loader check to outside the loop.
20263 2006-12-08  Hollis Blanchard  <hollis@penguinppc.org>
20265         * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
20267 2006-11-25  Yoshinori K. Okuji  <okuji@enbug.org>
20269         * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
20270         the number of sectors.  Reported by Andrey Shuvikov
20271         <mr_hyro@yahoo.com>.
20273 2006-11-11  Jeroen Dekkers  <jeroen@dekkers.cx>
20275         * kern/disk.c (grub_disk_read): When there is a read error, always
20276         try to read only the necessary data.
20278         * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
20279         disk/raid.c.
20280         * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
20281         prototype.
20282         [GRUB_UTIL] (grub_raid_fini): Likewise.
20283         [GRUB_UTIL] (grub_lvm_init): Likewise.
20284         [GRUB_UTIL] (grub_lvm_fini): Likewise.
20285         * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
20286         RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
20287         (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
20288         and grub_raid_fini().
20290 2006-11-09  Jeroen Dekkers  <jeroen@dekkers.cx>
20292         * include/grub/types.h (__unused): Rename to UNUSED.
20293         * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
20294         (grub_elf64_size): Likewise.
20296 2006-11-03  Hollis Blanchard  <hollis@penguinppc.org>
20298         * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
20299         grub_error_push and grub_error_pop in the error-handling path.
20300         (grub_elf32_load_segment): Only call grub_file_read with non-zero
20301         length.
20303 2006-11-03  Hollis Blanchard  <hollis@penguinppc.org>
20305         * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
20306         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
20307         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
20308         (kernel_elf_SOURCES): Likewise.
20309         * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
20310         * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
20311         * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
20312         * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
20313         * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
20314         (elf_mod_SOURCES): New variable.
20315         (elf_mod_CFLAGS): Likewise.
20316         (elf_mod_LDFLAGS): Likewise.
20317         * include/grub/types.h (__unused): New macro.
20318         * include/grub/elfload.h: New file.
20319         * kern/elf.c: Likewise.
20320         * loader/powerpc/ieee1275/linux.c: Include elfload.h.
20321         (ELF32_LOADMASK): New macro.
20322         (ELF64_LOADMASK): Likewise.
20323         (vmlinux): Removed.
20324         (grub_linux_load32): New function.
20325         (grub_linux_load64): Likewise.
20326         (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
20327         Use grub_elf_t instead of grub_file_t.
20329 2006-11-02  Hollis Blanchard  <hollis@penguinppc.org>
20331         * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
20332         `catch_result' to struct set_color_args.
20334 2006-10-28  Yoshinori K. Okuji  <okuji@enbug.org>
20336         * normal/menu.c: Include grub/script.h.
20337         * normal/menu_entry.c: Likewise.
20338         * include/grub/normal.h: Do not include grub/script.h.
20340 2006-10-27  Hollis Blanchard  <hollis@penguinppc.org>
20342         * kern/disk.c (grub_disk_read): Correct debug printf formatting.
20344 2006-10-27  Hollis Blanchard  <hollis@penguinppc.org>
20346         * kern/disk.c (grub_disk_open): Print debug messages when opening a
20347         disk.
20348         (grub_disk_close): Print debug messages when closing a disk.
20349         (grub_disk_read): Print debug messages when disk read fails.
20350         * kern/fs.c (grub_fs_probe): Print debug messages when detecting
20351         filesystem type.
20352         * kern/partition.c: Include misc.h.
20353         (grub_partition_iterate): Print debug messages when detecting
20354         partition type.
20356 2006-10-27  Hollis Blanchard  <hollis@penguinppc.org>
20358         * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
20359         is negative.
20360         * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
20362 2006-10-26  Hollis Blanchard  <hollis@penguinppc.org>
20364         * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
20365         Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
20367 2006-10-25  Jeroen Dekkers  <jeroen@dekkers.cx>
20369         * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
20370         instead of sizeof(lv). Patch by Michael Guntsche.
20372 2006-10-18  Jeroen Dekkers  <jeroen@dekkers.cx>
20374         * disk/lvm.c: Rename VGS to VG_LIST.
20375         (grub_lvm_iterate): Change VGS->LV to VG-LV.
20376         (grub_lvm_open): Likewise.
20377         Thanks to Michael Guntsche for finding this bug.
20379 2006-10-15  Yoshinori K. Okuji  <okuji@enbug.org>
20381         * configure.ac (AC_INIT): Bumped to 1.95.
20383 2006-10-14  Robert Millan  <rmh@aybabtu.com>
20385         * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
20386         with "/dev/.static/dev/md".
20388 2006-10-14  Yoshinori K. Okuji  <okuji@enbug.org>
20390         * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
20391         DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
20392         DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
20393         DRIVE_NAME are always freed.
20395         * util/i386/pc/biosdisk.c (make_device_name): Add one into
20396         DOS_PART, as a DOS partition is counted from one instead of zero
20397         now. Reported by Robert Millan.
20399 2006-10-14  Robert Millan  <rmh@aybabtu.com>
20401         * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
20402         grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
20403         * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
20404         string returned by grub_guess_root_device.
20405         * util/i386/pc/grub-setup.c: Likewise.
20406         * util/i386/pc/grub-probefs.c: Likewise.
20408         * util/i386/pc/grub-probefs.c: Rename to ...
20409         * util/i386/pc/grub-probe.c: ... this.
20410         * DISTLIST: Remove grub-probefs, add grub-probe.
20411         * conf/i386-efi.rmk: Likewise.
20412         * conf/i386-pc.rmk: Likewise.
20413         * util/i386/pc/grub-install.in: Likewise.
20415         * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
20416         choose which information we want to print.
20418 2006-10-14  Yoshinori K. Okuji  <okuji@enbug.org>
20420         * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
20421         include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
20422         include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
20423         include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
20424         video/readers/tga.c and video/i386/pc/vbeutil.c.
20426 2006-10-14  Jeroen Dekkers  <jeroen@dekkers.cx>
20428         Added support for RAID and LVM.
20430         * disk/lvm.c: New file.
20431         * disk/raid.c: Likewise.
20432         * include/grub/lvm.h: Likewise.
20433         * include/grub/raid.h: Likewise.
20434         * include/grub/util/lvm.h: Likewise.
20435         * include/grub/util/raid.h: Likewise.
20436         * util/lvm.c: Likewise.
20437         * util/raid.c: Likewise.
20439         * include/grub/disk.h (grub_disk_dev_id): Add
20440         GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
20441         (grub_disk_get_size): New prototype.
20442         * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
20443         returns a partition.
20444         (grub_disk_get_size): New function.
20446         * kern/i386/pc/init.c (make_install_device): Copy the prefix
20447         verbatim if grub_install_dos_part is -2.
20449         * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
20450         and LVM devices.
20452         * util/i386/pc/grub-setup.c (setup): New argument
20453         MUST_EMBED. Force embedding of GRUB when the argument is
20454         true. Close FILE before returning.
20455         (main): Add support for RAID and LVM.
20457         * conf/common.rmk: Add RAID and LVM modules.
20458         * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
20459         util/lvm.c.
20460         (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
20462         * kern/misc.c (grub_strstr): New function.
20463         * include/grub/misc.h (grub_strstr): New prototype.
20465 2006-10-10  Tristan Gingold  <tristan.gingold@bull.net>
20467         * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
20469 2006-10-05  Tristan Gingold  <tristan.gingold@bull.net>
20471         * kern/misc.c (grub_strtoull): Guess the base only if not
20472         specified.
20474 2006-10-01  Hollis Blanchard  <hollis@penguinppc.org>
20476         * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
20477         PowerMac support.
20479 2006-10-01  Hollis Blanchard  <hollis@penguinppc.org>
20481         * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
20483         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
20484         Remove `flags' argument.  All callers changed.
20485         * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
20486         (IEEE1275_IHANDLE_INVALID): New variable.
20487         (IEEE1275_CELL_INVALID): New variable.
20488         (grub_ieee1275_finddevice, grub_ieee1275_get_property,
20489         grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
20490         grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
20491         grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
20492         grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
20493         codes from Open Firmware.  All callers updated.
20494         (grub_ieee1275_next_property): Directly return Open Firmware return
20495         code.
20496         * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
20497         Standardize error checking from `grub_ieee1275_get_property'.
20498         * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
20499         `devalias' to `aliases'.  Correct comments.  Consolidate error paths.
20501 2006-10-01  Hollis Blanchard  <hollis@penguinppc.org>
20503         * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
20504         `instance_to_package_args' to `instance_to_path_args'.
20506         * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
20507         `grub_ieee1275_chosen'.
20509         * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
20510         `grub_ieee1275_interpret'.
20512 2006-09-25  Hollis Blanchard  <hollis@penguinppc.org>
20514         * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
20516 2006-09-25  Hollis Blanchard  <hollis@penguinppc.org>
20518         * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
20519         (__cmpdi): Likewise.
20521         * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
20522         `flags' to `grub_ieee1275_next_property'.  Change `pathlen' to type
20523         `grub_ssize_t'.
20525         * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
20527         * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
20528         to type `grub_ssize_t'.
20529         (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
20531 2006-09-22  Marco Gerards  <marco@gnu.org>
20533         * normal/script.c (grub_script_create_cmdmenu): Skip leading
20534         newlines.
20536 2006-09-22  Marco Gerards  <marco@gnu.org>
20538         * commands/echo.c: New file.
20540         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
20542         * conf/common.rmk (echo_mod_SOURCES): New variable.
20543         (echo_mod_CFLAGS): Likewise.
20544         (echo_mod_LDFLAGS): Likewise.
20546 2006-09-22  Marco Gerards  <marco@gnu.org>
20548         * normal/main.c (get_line): Malloc memory instead of using
20549         preallocated memory.  Removed the arguments `cmdline' and
20550         `max_len'.  Updated all callers.
20552 2006-09-22  Marco Gerards  <marco@gnu.org>
20554         * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
20555         (normal_mod_DEPENDENCIES): Likewise.
20557         * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
20558         (normal_mod_DEPENDENCIES): Likewise.
20560         * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
20562 2006-09-22  Johan Rydberg  <jrydberg@gnu.org>
20564         * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
20565         programs.
20566         * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
20567         (normal_mod_DEPENDENCIES): Likewise.
20568         * conf/i386-pc.mk: Regenerate.
20569         * conf/i386-efi.mk: Likewise
20570         * conf/common.mk: Likewise.
20571         * conf/powerpc-ieee1275.mk: Likewise.
20572         * conf/sparc64-ieee1275.mk: Likewise.
20574 2006-09-22  Robert Millan  <rmh@aybabtu.com>
20576         Sync with i386 version.
20577         * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
20578         * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
20580 2006-09-21  Robert Millan  <rmh@aybabtu.com>
20582         Import from GRUB Legacy (lib/device.c):
20583         * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
20584         (init_device_map) [__linux__]: Add support for I2O devices.
20586 2006-09-14  Marco Gerards  <marco@gnu.org>
20588         * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
20589         `-melf_i386'.
20591 2006-09-14  Robert Millan  <rmh@aybabtu.com>
20593         * util/i386/pc/grub-install.in: Skip menu.lst when removing
20594         /boot/grub/*.lst.
20596         * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
20598         * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
20599         before adding it to device.map.
20601 2006-08-15  Johan Rydberg  <jrydberg@gnu.org>
20603         * genmk.rb: Let GCC generate dependencies the first time it
20604         compiles a file; using the -MD option.
20605         * conf/common.mk: Regenerate.
20606         * conf/i386-pc.mk: Likewise.
20607         * conf/i386-efi.mk: Likewise.
20608         * conf/powerpc-ieee1275.mk: Likewise.
20609         * conf/sparc64-ieee1275.mk: Likewise.
20611 2006-08-04  Yoshinori K. Okuji  <okuji@enbug.org>
20613         Move the prototypes of grub_setjmp and grub_longjmp to
20614         cpu/setjmp.h, so that each architecture may specify different
20615         attributes.
20617         * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
20618         (grub_longjmp): Likewise.
20619         * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
20620         (grub_longjmp): Likewise.
20621         * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
20622         (grub_longjmp): Likewise.
20624         * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
20625         [!GRUB_UTIL] (grub_longjmp): Removed.
20627 2006-08-01  Pelletier Vincent  <subdino2004@yahoo.fr>
20629         * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
20630         "color!" method does not return any value.
20632 2006-07-29  Vesa Jaaskelainen  <chaac@nic.fi>
20634         * include/grub/bitmap.h: New file.
20636         * include/grub/i386/pc/vbeutil.h: Likewise.
20638         * video/bitmap.c: Likewise.
20640         * video/readers/tga.c: Likewise.
20642         * video/i386/pc/vbeutil.c: Likewise.
20644         * commands/videotest.c: Code cleanup and updated to reflect to new
20645         video API.
20647         * term/gfxterm.c: Likewise.
20649         * video/video.c: Likewise.
20651         * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
20652         (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
20653         (bitmap_mod_SOURCES): New entry.
20654         (bitmap_mod_CFLAGS): Likewise.
20655         (bitmap_mod_LDFLAGS): Likewise.
20656         (tga_mod_SOURCES): Likewise.
20657         (tga_mod_CFLAGS): Likewise.
20658         (tga_mod_LDFLAGS): Likewise.
20660         * include/grub/video.h (grub_video_blit_operators): New enum type.
20661         (grub_video_render_target): Changed as forward declaration and moved
20662         actual definition to be video driver specific.
20663         (grub_video_adapter.blit_bitmap): Added blitting operator.
20664         (grub_video_adapter.blit_render_target): Likewise.
20665         (grub_video_blit_bitmap): Likewise.
20666         (grub_video_blit_render_target): Likewise.
20668         * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
20669         driver specific render target definition.
20670         (grub_video_vbe_map_rgba): Added driver internal helper.
20671         (grub_video_vbe_unmap_color): Updated to use
20672         grub_video_i386_vbeblit_info.
20673         (grub_video_vbe_get_video_ptr): Likewise.
20675         * include/grub/i386/pc/vbeblit.h
20676         (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
20677         grub_video_i386_vbeblit_info.
20678         (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
20679         (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
20680         (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
20681         (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
20682         (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
20683         (grub_video_i386_vbeblit_index_index): Likewise.
20684         (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
20685         (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
20686         (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
20687         (grub_video_i386_vbeblit_blend): Added generic blitter for blend
20688         operator.
20689         (grub_video_i386_vbeblit_replace): Added generic blitter for replace
20690         operator.
20692         * video/i386/pc/vbeblit.c: Updated to reflect changes on
20693         include/grub/i386/pc/vbeblit.h.
20695         * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
20696         Updated to use grub_video_i386_vbeblit_info.
20697         (grub_video_i386_vbefill_R8G8B8): Likewise.
20698         (grub_video_i386_vbefill_index): Likewise.
20699         (grub_video_i386_vbefill): Added generic filler.
20701         * video/i386/pc/vbefill.c: Updated to reflect changes on
20702         include/grub/i386/pc/vbefill.h.
20704         * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
20705         grub_video_i386_vbeblit_info.
20706         (grub_video_vbe_unmap_color): Likewise.
20707         (grub_video_vbe_blit_glyph): Likewise.
20708         (grub_video_vbe_scroll): Likewise.
20709         (grub_video_vbe_draw_pixel): Removed function.
20710         (grub_video_vbe_get_pixel): Likewise.
20711         (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
20712         updated code to use it.
20713         (common_blitter): Added common blitter for render target and bitmap.
20714         (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
20715         (grub_video_vbe_blit_render_target): Likewise.
20717 2006-07-30  Johan Rydberg  <jrydberg@gnu.org>
20719         * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
20720         is in text mode if there is no console control protocol instance
20721         available.
20723 2006-07-29  Vesa Jaaskelainen  <chaac@nic.fi>
20725         * include/grub/video.h: Code cleanup.
20727         * include/grub/i386/pc/vbe.h: Likewise.
20729         * video/i386/pc/vbe.c: Likewise.
20731         * video/i386/pc/vbeblit.c: Likewise.
20733         * video/i386/pc/vbefill.c: Likewise.
20735         * video/video.c: Likewise.  Also added more comments.
20737 2006-07-29  Vesa Jaaskelainen  <chaac@nic.fi>
20739         * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
20740         (struct grub_biosdisk_dap): Likewise.
20742         * include/grub/i386/pc/biosdisk.h: ... to here.  Also corrected
20743         linkage settings for all functions.
20745 2006-07-12  Marco Gerards  <marco@gnu.org>
20747         * configure.ac (--enable-mm-debug): Fix typo.
20749         * genkernsyms.sh.in: Use proper quoting for `CC'.
20751 2006-07-02  Jeroen Dekkers  <jeroen@dekkers.cx>
20753         * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
20754         (normal_mod_ASFLAGS): Remove "-m32".
20756 2006-06-14  Yoshinori K. Okuji  <okuji@enbug.org>
20758         * util/misc.c: Include config.h.
20759         [!HAVE_MEMALIGN]: Do not include malloc.h.
20760         (grub_memalign): Use posix_memalign, if present. Then, use
20761         memalign, if present. Otherwise, emit an error.
20763         * util/grub-emu.c: Do not include malloc.h.
20765         * include/grub/util/misc.h: Include unistd.h. This is required for
20766         FreeBSD, because off_t is defined in unistd.h. Reported by Harley
20767         D. Eades III <hde@foobar-qux.org>.
20769         * configure.ac (AC_GNU_SOURCE): Added.
20770         (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
20771         type.
20773 2006-06-09  Yoshinori K. Okuji  <okuji@enbug.org>
20775         * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
20776         ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
20778 2006-06-07  Jeroen Dekkers  <jeroen@dekkers.cx>
20780         * include/grub/types.h (grub_host_addr_t): Rename to
20781         grub_target_addr_t.
20782         (grub_host_off_t): Rename to grub_target_off_t.
20783         (grub_host_size_t): Rename to grub_target_size_t.
20784         (grub_host_ssize_t): Rename to grub_target_ssize_t.
20785         Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
20787         * include/grub/kernel.h (struct grub_module_header): Change type
20788         of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
20789         (grub_module_info): Likewise.
20791 2006-06-05  Yoshinori K. Okuji  <okuji@enbug.org>
20793         * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
20794         of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
20795         Velazquez <jesus.velazquez@gmail.com>.
20797 2006-06-05  Yoshinori K. Okuji  <okuji@enbug.org>
20799         Count partitions from 1 instead of 0 in the string representation
20800         of partitions. Still use 0-based internally.
20802         * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
20803         (sun_partition_map_iterate): Use grub_partition_t instead of
20804         struct grub_partition *. Cast DESC->START_CYLINDER to
20805         grub_uint64_t after converting the endian.
20806         (sun_partition_map_probe): Subtract 1 for PARTNUM.
20807         (sun_partition_map_get_name): Add 1 to P->INDEX.
20809         * partmap/pc.c (grub_partition_parse): Subtract 1 for
20810         PCDATA->DOS_PART.
20811         (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
20813         * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
20814         zero instead of one.
20815         (gpt_partition_map_probe): Subtract 1 for PARTNUM.
20816         (gpt_partition_map_get_name): Add 1 into P->INDEX.
20818         * partmap/apple.c (apple_partition_map_iterate): Change the type
20819         of POS to unsigned.
20820         (apple_partition_map_probe): Subtract 1 for PARTNUM.
20821         (apple_partition_map_get_name): Add 1 into P->INDEX.
20823         * partmap/amiga.c (amiga_partition_map_iterate): Change the type
20824         of POS to unsigned.
20825         (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
20826         calculate the offset of a partition.
20827         (amiga_partition_map_probe): Subtract 1 for PARTNUM.
20828         (amiga_partition_map_get_name): Add 1 into P->INDEX.
20830         * partmap/acorn.c (acorn_partition_map_find): Change the type of
20831         SECTOR to grub_disk_addr_t.
20832         (acorn_partition_map_iterate): Likewise.
20833         (acorn_partition_map_probe): Subtract 1 for PARTNUM.
20834         Change the type of SECTOR to grub_disk_addr_t. Declare P on the
20835         top.
20836         (acorn_partition_map_get_name): Add 1 into P->INDEX.
20838         * kern/i386/pc/init.c (make_install_device): Add 1 into
20839         GRUB_INSTALL_DOS_PART.
20841         * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
20842         conditional.
20844 2006-06-04  Yoshinori K. Okuji  <okuji@enbug.org>
20846         Clean up the code to support 64-bit addressing in disks and
20847         files. This change is not enough for filesystems yet.
20849         * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
20850         type of "start" to grub_uint64_t.
20851         (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
20852         grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
20853         save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
20854         convert addresses.
20856         * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
20857         to grub_disk_addr_t.
20859         * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
20860         string.
20862         * partmap/pc.c (pc_partition_map_iterate): Likewise.
20864         * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
20865         to char *.
20867         * normal/script.c (grub_script_parse): Remove unused MEMFREE.
20869         * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
20871         * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
20873         * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
20874         to grub_off_t, to detect an error from grub_file_seek.
20875         (grub_multiboot_load_elf32): Likewise.
20877         * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
20878         maximum unsigned long value when an overflow is detected.
20879         (grub_strtoull): New function.
20880         (grub_divmod64): Likewise.
20881         (grub_lltoa): use grub_divmod64.
20883         * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
20884         grub_disk_addr_t.
20885         (grub_fs_blocklist_open): Increase P if P is not NULL to advance
20886         the pointer to next character. Use grub_strtoull instead of
20887         grub_strtoul.
20888         (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
20889         SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
20890         respectively.
20892         * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
20893         return value is signed.
20894         (grub_file_seek): Change the type of OLD to grub_off_t. Do not
20895         test if OFFSET is less than zero, as OFFSET is unsigned now.
20897         * kern/disk.c (struct grub_disk_cache): Change the type of
20898         "sector" to grub_disk_addr_t.
20899         (grub_disk_cache_get_index): Change the type of SECTOR to
20900         grub_disk_addr_t. Calculate the hash with SECTOR casted to
20901         unsigned after shifting.
20902         (grub_disk_cache_invalidate): Change the type of SECTOR to
20903         grub_disk_addr_t.
20904         (grub_disk_cache_unlock): Likewise.
20905         (grub_disk_cache_store): Likewise.
20906         (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
20907         START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
20908         grub_disk_addr_t and grub_uint64_t, respectively.
20909         (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
20910         body, as the value of OFFSET is tweaked by
20911         grub_disk_check_range. Change the types of START_SECTOR, LEN and
20912         POS to grub_disk_addr_t, grub_size_t and grub_size_t,
20913         respectively.
20914         (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
20915         body, as the value of OFFSET is tweaked by
20916         grub_disk_check_range. Change the types of LEN and N to
20917         grub_size_t.
20919         * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
20920         and "saved_offset" to grub_off_t.
20921         (test_header): Cast BUF to char *.
20922         (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
20923         to char *.
20924         (grub_gzio_read): Change the types of OFFSET and SIZE to
20925         grub_off_t and grub_size_t, respectively.
20927         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
20928         Removed.
20929         (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
20930         (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
20931         (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
20932         (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
20933         (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
20935         * include/grub/types.h (grub_off_t): Unconditionally set to
20936         grub_uint64_t.
20937         (grub_disk_addr_t): Changed to grub_uint64_t.
20939         * include/grub/partition.h (struct grub_partition): Change the
20940         types of "start", "len" and "offset" to grub_disk_addr_t,
20941         grub_uint64_t and grub_disk_addr_t, respectively.
20942         (grub_partition_get_start): Return grub_disk_addr_t.
20943         (grub_partition_get_len): Return grub_uint64_t.
20945         * include/grub/misc.h (grub_strtoull): New prototype.
20946         (grub_divmod64): Likewise.
20948         * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
20949         of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
20950         grub_off_t, respectively.
20951         All callers and references changed.
20953         * include/grub/fs.h (struct grub_fs): Change the type of LEN to
20954         grub_size_t in "read".
20955         All callers and references changed.
20957         * include/grub/file.h (struct grub_file): Change the types of
20958         "offset" and "size" to grub_off_t and grub_off_t,
20959         respectively. Change the type of SECTOR to grub_disk_addr_t in
20960         "read_hook".
20961         (grub_file_read): Change the type of LEN to grub_size_t.
20962         (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
20963         grub_off_t.
20964         (grub_file_size): Return grub_off_t.
20965         (grub_file_tell): Likewise.
20966         All callers and references changed.
20968         * include/grub/disk.h (struct grub_disk_dev): Change the types of
20969         SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
20970         "write".
20971         (struct grub_disk): Change the type of "total_sectors" to
20972         grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
20973         "read_hook".
20974         (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
20975         grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
20976         (grub_disk_write): Likewise.
20977         All callers and references changed.
20979         * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
20980         char * for grub_strncmp to silence gcc.
20981         (grub_iso9660_mount): Likewise.
20982         (grub_iso9660_mount): Likewise.
20983         (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
20984         return statement.
20985         (grub_iso9660_iterate_dir): Likewise.
20986         (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
20988         * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
20989         LEN to grub_disk_addr_t and grub_size_t, respectively.
20991         * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
20993         * fs/jfs.c (grub_jfs_read_file): Likewise.
20995         * fs/minix.c (grub_jfs_read_file): Likewise.
20997         * fs/sfs.c (grub_jfs_read_file): Likewise.
20999         * fs/ufs.c (grub_jfs_read_file): Likewise.
21001         * fs/xfs.c (grub_jfs_read_file): Likewise.
21003         * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
21004         and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
21005         respectively.
21007         * fs/ext2.c (grub_ext2_read_block): When an error happens, set
21008         BLKNR to -1 instead of returning GRUB_ERRNO.
21009         (grub_ext2_read_file): Change the types of SECTOR and
21010         LEN to grub_disk_addr_t and grub_size_t, respectively.
21012         * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
21013         LEN to grub_disk_addr_t and grub_size_t, respectively.
21015         * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
21016         grub_file_read.
21018         * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
21019         string. Do not cast SECTOR explicitly.
21021         * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
21022         TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
21023         (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
21024         grub_disk_addr_t and grub_size_t, respectively. If the sector is
21025         over 2TB and LBA mode is not supported, raise an error.
21026         (get_safe_sectors): New function.
21027         (grub_biosdisk_read): Use get_safe_sectors.
21028         (grub_biosdisk_write): Likewise.
21030         * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
21031         (grub_efidisk_write): Likewise.
21033         * disk/loopback.c (delete_loopback): Cosmetic changes.
21034         (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
21035         correctly.
21036         (grub_loopback_open): Likewise.
21037         (grub_loopback_read): Likewise. Also, change the type of POS to
21038         grub_off_t, and fix the usage of grub_memset.
21040         * commands/i386/pc/play.c: Include grub/machine/time.h.
21042         * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
21043         print FILE->SIZE.
21045         * commands/configfile.c: Include grub/env.h.
21047         * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
21048         GRUB_ERRNO directly instead. Change the type of POS to
21049         grub_off_t. Follow the coding standard.
21051         * commands/blocklist.c: Include grub/partition.h.
21052         (grub_cmd_blocklist): Return an error if the underlying device is
21053         not a disk. Take the starting sector of a partition into account,
21054         if a partition is used.
21056         * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
21057         a length field.
21058         (lba_mode): Support 64-bit addresses.
21059         (chs_mode): Likewise.
21060         (copy_buffer): Adapted to the new offsets of a length field and a
21061         segment field.
21062         (blocklist_default_start): Allocate 64-bit space.
21064         * boot/i386/pc/boot.S (force_lba): Removed.
21065         (boot_drive): Moved to under KERNEL_SECTOR.
21066         (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
21067         space.
21068         (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
21069         is useless.
21070         (lba_mode): Refactored to support a 64-bit address. More size
21071         optimization.
21072         (setup_sectors): Likewise.
21074 2006-06-04  Yoshinori K. Okuji  <okuji@enbug.org>
21076         * DISTLIST: Added include/grub/i386/linux.h. Removed
21077         include/grub/i386/pc/linux.h
21079         * configure.ac (AC_INIT): Bumped to 1.94.
21081         * config.guess: Updated from gnulib.
21082         * config.sub: Likewise.
21083         * install-sh: Likewise.
21084         * mkinstalldirs: Likewise.
21086 2006-06-02  Yoshinori K. Okuji  <okuji@enbug.org>
21088         * conf/common.rmk (grub_modules_init.lst): Depended on
21089         grub_emu_SOURCES, excluding grub_emu_init.c, instead of
21090         MODSRCFILES.
21092         * genmk.rb (PModule::rule): Reverted the previous change.
21094 2006-06-02  Yoshinori K. Okuji  <okuji@enbug.org>
21096         * conf/common.rmk (grub_modules_init.lst): Depends on
21097         $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
21098         that the target does not exist before producing.
21099         (grub_modules_init.h): Remove the target before generating.
21100         (grub_emu_init.c): Likewise.
21102         * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
21104 2006-05-31  Jeroen Dekkers  <jeroen@dekkers.cx>
21106         * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
21107         for the target-specific tests. Make sure that we also have the
21108         up-to-date target variables for those tests.
21110 2006-05-31  Yoshinori K. Okuji  <okuji@enbug.org>
21112         * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
21113         (PModule::rule): Likewise.
21115 2006-05-31  Yoshinori K. Okuji  <okuji@enbug.org>
21117         * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
21118         TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
21119         target-specific flags should be prefixed.
21120         (PModule::rule): Likewise.
21122 2006-05-30  Yoshinori K. Okuji  <okuji@enbug.org>
21124         * configure.ac (CMP): Check if cmp is available explicitly.
21126 2006-05-29  Yoshinori K. Okuji  <okuji@enbug.org>
21128         * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
21129         (target_cpu): New variable.
21130         (pkglibdir): Use target_cpu instead of host_cpu.
21132         * util/i386/pc/grub-install.in (host_cpu): Removed.
21133         (target_cpu): New variable.
21134         (pkglibdir): Use target_cpu instead of host_cpu.
21136         * util/genmoddep.c: Removed.
21138         * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
21139         instead of GRUB_HOST_SIZEOF_VOID_P.
21140         * kern/dl.c: Likewise.
21142         * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
21143         ...
21144         (GRUB_TARGET_SIZEOF_VOID_P): ... this.
21145         (GRUB_HOST_SIZEOF_LONG): Renamed to ...
21146         (GRUB_TARGET_SIZEOF_LONG): ... this.
21147         (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
21148         (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
21149         * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
21150         to ...
21151         (GRUB_TARGET_SIZEOF_VOID_P): ... this.
21152         (GRUB_HOST_SIZEOF_LONG): Renamed to ...
21153         (GRUB_TARGET_SIZEOF_LONG): ... this.
21154         (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
21155         (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
21156         * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
21157         to ...
21158         (GRUB_TARGET_SIZEOF_VOID_P): ... this.
21159         (GRUB_HOST_SIZEOF_LONG): Renamed to ...
21160         (GRUB_TARGET_SIZEOF_LONG): ... this.
21161         (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
21162         (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
21164         * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
21165         GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
21166         [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
21167         instead of GRUB_HOST_SIZEOF_LONG.
21168         [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
21169         GRUB_HOST_WORDS_BIGENDIAN to define or undefine
21170         GRUB_CPU_WORDS_BIGENDIAN.
21171         Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
21172         define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
21173         grub_host_ssize_t.
21175         * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
21176         (genmoddep_SOURCES): Likewise.
21177         * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
21178         (genmoddep_SOURCES): Likewise.
21179         * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
21180         (genmoddep_SOURCES): Likewise.
21181         * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
21182         Likewise.
21183         (genmoddep_SOURCES): Likewise.
21185         * genmoddep.awk: New file.
21187         * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
21188         TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
21189         CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
21190         (PModule::rule): Likewise.
21191         (Program::rule): Likewise.
21192         (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
21193         BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
21194         respectively.
21196         * configure.ac: Rewritten intensively to use host and target
21197         instead of build and host, respectively.
21199         * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
21200         (host_cpu): Removed.
21201         (target_cpu): New variable.
21202         (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
21203         (BUILD_CC): Removed.
21204         (BUILD_CFLAGS): Likewise.
21205         (BUILD_CPPFLAGS): Likewise.
21206         (TARGET_CC): New variable.
21207         (TARGET_CFLAGS): Likewise.
21208         (TARGET_CPPFLAGS): Likewise.
21209         (TARGET_LDFLAGS): Likewise.
21210         (AWK): Likewise.
21211         (include): Use target_cpu instead of host_cpu.
21212         (moddep.lst:): Use genmoddep.awk instead of genmoddep.
21214         * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
21216 2006-05-29  Vesa Jaaskelainen  <chaac@nic.fi>
21218         * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
21219         'exec_to_evaluate'.  Renamed field 'true' to 'exec_on_true'.  Renamed
21220         field 'false' to 'exec_on_false'.
21221         (grub_script_create_cmdif): Renamed argument names to reflect above
21222         changes.
21224         * normal/execute.c (grub_script_execute_cmdif): Likewise.
21226         * normal/script.c (grub_script_create_cmdif): Likewise.
21228 2006-05-28  Yoshinori K. Okuji  <okuji@enbug.org>
21230         * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
21231         top.
21232         (grub_hfsplus_btree_recptr): Likewise.
21233         (grub_hfsplus_find_block): Do not take RETRY any longer. Use
21234         FILEBLOCK both to pass a block number and store next block
21235         number.
21236         (grub_hfsplus_read_block): Rewritten heavily to support an extent
21237         overflow file correctly. Specify errors appropriately, because
21238         fshelp expects that GRUB_ERRNO is set when fails. Reuse
21239         grub_hfsplus_btree_recptr to get the pointer to a found key.
21240         (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
21241         is found.
21243         * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
21244         linux.mod.
21245         (_linux_mod_SOURCES): New variable.
21246         (_linux_mod_CFLAGS): Likewise.
21247         (_linux_mod_LDFLAGS): Likewise.
21248         (linux_mod_SOURCES): Likewise.
21249         (linux_mod_CFLAGS): Likewise.
21250         (linux_mod_LDFLAGS): Likewise.
21252         * DISTLIST: Added loader/i386/efi/linux.c,
21253         loader/i386/efi/linux_normal.c and
21254         include/grub/i386/efi/loader.h.
21256         * loader/i386/efi/linux.c: New file.
21257         * loader/i386/efi/linux_normal.c: Likewise.
21258         * include/grub/i386/efi/loader.h: Likewise.
21260 2006-05-27  Yoshinori K. Okuji  <okuji@enbug.org>
21262         * commands/blocklist.c: New file.
21264         * DISTLIST: Added commands/blocklist.c.
21266         * term/efi/console.c (grub_console_highlight_color): Use a lighter
21267         color for the background, and a darker color for the foreground.
21268         (grub_console_checkkey): Return READ_KEY.
21269         (grub_console_cls): Set the background to
21270         GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
21272         * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
21274         * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
21275         the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
21277         * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
21278         prototype.
21280         * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
21281         BG. The spec is wrong again.
21283         * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
21284         prototype.
21285         [GRUB_UTIL] (grub_blocklist_fini): Likewise.
21287         * conf/i386-pc.rmk (grub_emu_SOURCES): Added
21288         commands/blocklist.c.
21289         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
21291         * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
21292         (blocklist_mod_SOURCES): New variable.
21293         (blocklist_mod_CFLAGS): Likewise.
21294         (blocklist_mod_LDFLAGS): Likewise.
21296 2006-05-20  Yoshinori K. Okuji  <okuji@enbug.org>
21298         * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
21299         duplication.
21300         (lba_mode): Use %eax more intensively to reduce the code size.
21302 2006-05-20  Marco Gerards  <marco@gnu.org>
21304         * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
21306         * normal/parser.y (commandblock): Defined as <cmd>.  A subroutine
21307         for `menuentry'.
21308         (script): Accept leading newlines.
21309         (newlines): New rule to describe 0 or more newlines.
21310         (commands): Accept `command' with trailing newline.  Fixed the
21311         order in which arguments were passed to `grub_script_add_cmd'.
21312         Accept commands separated by newlines.
21313         (function): Changed to accept newlines.
21314         (menuentry) Rewritten.
21316         * normal/script.c (grub_script_create_cmdmenu): Add new entries in
21317         front of the list, instead of to the end.
21319 2006-05-19  Yoshinori K. Okuji  <okuji@enbug.org>
21321         * util/i386/pc/grub-install.in (bindir): New variable.
21322         (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
21323         Shaver <lbgwjl@gmail.com>.
21325 2006-05-14  Yoshinori K. Okuji  <okuji@enbug.org>
21327         * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
21328         grub/machine/linux.h
21329         * loader/i386/pc/linux.c: Likewise.
21331         * include/grub/i386/pc/linux.h: Moved to ...
21332         * include/grub/i386/linux.h: ... here.
21334         * include/grub/i386/linux.h (struct linux_kernel_params): New
21335         struct.
21337 2006-05-09  Vesa Jaaskelainen  <chaac@nic.fi>
21339         * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
21340         checking.
21341         (grub_video_vbe_blit_glyph): Likewise.
21342         (grub_video_vbe_blit_bitmap): Likewise.
21343         (grub_video_vbe_blit_render_target): Likewise.
21345 2006-05-09  Yoshinori K. Okuji  <okuji@enbug.org>
21347         * configure.ac (--with-platform): Properly quote the square
21348         brackets.
21350 2006-05-08  Marco Gerards  <marco@gnu.org>
21352         * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
21353         this...
21354         (kernel_elf_HEADERS): ...to this.  Updated all users.
21355         (grubof_symlist.c): Renamed from this...
21356         (kernel_elf_symlist.c): ...to this.  Updated all users.
21357         (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
21358         (grubof_SOURCES): Renamed from this...
21359         (kernel_elf_SOURCES): ...to this.
21360         (grubof_HEADERS): Renamed from this...
21361         (kernel_elf_HEADERS): ...to this.
21362         (grubof_CFLAGS): Renamed from this...
21363         (kernel_elf_CFLAGS): ...to this.
21364         (grubof_ASFLAGS): Renamed from this...
21365         (kernel_elf_ASFLAGS): ...to this.
21366         (grubof_LDFLAGS): Renamed from this...
21367         (kernel_elf_LDFLAGS): ...to this.
21369         * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
21370         this...
21371         (kernel_elf_HEADERS): ...to this.  Updated all users.
21372         (grubof_symlist.c): Renamed from this...
21373         (kernel_elf_symlist.c): ...to this.  Updated all users.
21374         (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
21375         (grubof_SOURCES): Renamed from this...
21376         (kernel_elf_SOURCES): ...to this.
21377         (grubof_HEADERS): Renamed from this...
21378         (kernel_elf_HEADERS): ...to this.
21379         (grubof_CFLAGS): Renamed from this...
21380         (kernel_elf_CFLAGS): ...to this.
21381         (grubof_ASFLAGS): Renamed from this...
21382         (kernel_elf_ASFLAGS): ...to this.
21383         (grubof_LDFLAGS): Renamed from this...
21384         (kernel_elf_LDFLAGS): ...to this.
21386         * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
21387         `kernel.elf' instead of `grubof'.
21389 2006-05-08  Yoshinori K. Okuji  <okuji@enbug.org>
21391         Add --with-platform to configure. Use pkglibdir instead of
21392         pkgdatadir. This is reported by Roger Leigh.
21394         * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
21395         (host_vendor): Likewise.
21396         (host_os): Likewise.
21397         (pkgdatadir): Likewise.
21398         (platform): New variable.
21399         (pkglibdir): Likewise.
21400         Use PKGLIBDIR instead of PKGDATADIR.
21402         * util/i386/pc/grub-install.in (datadir): Removed.
21403         (host_vendor): Likewise.
21404         (host_os): Likewise.
21405         (pkgdatadir): Likewise.
21406         (platform): New variable.
21407         (pkglibdir): Likewise.
21408         Use PKGLIBDIR instead of PKGDATADIR.
21410         * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
21411         instead of GRUB_DATADIR.
21412         (main): Likewise.
21413         * util/i386/pc/grub-mkimage.c (usage): Likewise.
21414         (main): Likewise.
21415         * util/i386/efi/grub-mkimage.c (usage): Likewise.
21416         (main): Likewise.
21418         * configure.ac (--with-platform): New option.
21419         Use PLATFORM instead of HOST_VENDOR to specify a platform.
21421         * Makefile.in: Include a makefile based on PLATFORM instead of
21422         HOST_VENDOR.
21423         (pkgdatadir): Not appended by the machine type.
21424         (pkglibdir): Appended by the machine type.
21425         (host_vendor): Removed.
21426         (platform): New variable.
21427         (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
21428         (install-local): Use PKGLIBDIR instead of PKGDATADIR.
21429         (uninstall): Likewise.
21431 2006-05-07  Yoshinori K. Okuji  <okuji@enbug.org>
21433         Use the environment context in the menu. Remove the commands
21434         "default" and "timeout", and use variables instead.
21436         * normal/menu.c: Include grub/env.h.
21437         (print_entry): Cast TITLE to silence gcc.
21438         (get_timeout): New function.
21439         (set_timeout): Likewise.
21440         (get_entry_number): Likewise.
21441         (run_menu): Use a default entry, a fallback entry and a timeout
21442         in the environment variables "default", "fallback" and
21443         "timeout". Also, tweak the default entry if it is not within the
21444         current menu entries.
21445         (grub_menu_run): Use a fallback entry in the environment variable
21446         "fallback".
21448         * normal/main.c (read_config_file): Do not initialize
21449         NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
21450         NEWMENU->TIMEOUT.
21451         (grub_normal_execute): Use a data slot to store the menu.
21453         * include/grub/normal.h (struct grub_menu): Removed default_entry,
21454         fallback_entry and timeout.
21455         (struct grub_menu_list): Removed.
21456         (grub_menu_list_t): Likewise.
21457         (struct grub_context): Likewise.
21458         (grub_context_t): Likewise.
21459         (grub_context_get): Likewise.
21460         (grub_context_get_current_menu): Likewise.
21461         (grub_context_push_menu): Likewise.
21462         (grub_context_pop_menu): Likewise.
21463         (grub_default_init): Likewise.
21464         (grub_default_fini): Likewise.
21465         (grub_timeout_init): Likewise.
21466         (grub_timeout_fini): Likewise.
21468         * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
21469         and timeout.mod.
21470         (normal_mod_SOURCES): Removed normal/context.c.
21472         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
21473         commands/default.c, commands/timeout.c and normal/context.c.
21474         (normal_mod_SOURCES): Removed normal/context.c.
21476         * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
21477         commands/timeout.c and normal/context.c.
21478         (normal_mod_SOURCES): Removed normal/context.c.
21480         * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
21481         commands/default.c, commands/timeout.c and normal/context.c.
21482         (normal_mod_SOURCES): Removed normal/context.c.
21484         * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
21485         timeout.mod.
21486         (default_mod_SOURCES): Removed.
21487         (default_mod_CFLAGS): Likewise.
21488         (default_mod_LDFLAGS): Likewise.
21489         (timeout_mod_SOURCES): Removed.
21490         (timeout_mod_CFLAGS): Likewise.
21491         (timeout_mod_LDFLAGS): Likewise.
21493         * DISTLIST: Removed commands/default.c, commands/timeout.c and
21494         normal/context.c.
21496         * commands/default.c: Removed.
21497         * commands/timeout.c: Likewise.
21498         * normal/context.c: Likewise.
21500 2006-05-07  Vesa Jaaskelainen  <chaac@nic.fi>
21502         * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
21504 2006-05-02  Yoshinori K. Okuji  <okuji@enbug.org>
21506         * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
21507         "next" to "prev" for readability.
21508         (struct grub_env_sorted_var): New struct.
21509         (grub_env_context): Renamed to ...
21510         (initial_context): ... this.
21511         (grub_env_var_context): Renamed to ...
21512         (current_context): ... this.
21513         (grub_env_find): Look only at CURRENT_CONTEXT.
21514         (grub_env_context_open): Rewritten to copy exported variables from
21515         previous context.
21516         (grub_env_context_close): Rewritten according to the new
21517         scheme. Also, add an assertion to prevent the initial context from
21518         removed.
21519         (grub_env_insert): Removed the code for the sorted list.
21520         (grub_env_remove): Likewise.
21521         (grub_env_export): Simply mark the variable with
21522         GRUB_ENV_VAR_GLOBAL.
21523         (grub_env_set): A cosmetic change for naming consistency.
21524         (grub_env_get): Likewise.
21525         (grub_env_unset): Likewise.
21526         (grub_env_iterate): Rewritten to sort variables within this
21527         function.
21528         (grub_register_variable_hook): Fixed for naming consistency. Call
21529         grub_env_find again, only if NAME is not found at the first time.
21530         (mangle_data_slot_name): New function.
21531         (grub_env_set_data_slot): Likewise.
21532         (grub_env_get_data_slot): Likewise.
21533         (grub_env_unset_data_slot): Likewise.
21535         * include/grub/env.h (grub_env_var_type): New enum.
21536         (GRUB_ENV_VAR_LOCAL): New constant.
21537         (GRUB_ENV_VAR_GLOBAL): Likewise.
21538         (GRUB_ENV_VAR_DATA): Likewise.
21539         (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
21540         "type".
21541         (grub_env_set): Replace VAR with NAME for consistency.
21542         (grub_register_variable_hook): Likewise.
21543         (grub_env_export): Specify the name of the argument.
21544         (grub_env_set_data_slot): New prototype.
21545         (grub_env_get_data_slot): Likewise.
21546         (grub_env_unset_data_slot): Likewise.
21548 2006-04-30  Yoshinori K. Okuji  <okuji@enbug.org>
21550         Extend the loader so that GRUB can accept a loader which comes
21551         back to GRUB when a loaded image exits. Also, this change adds
21552         support for a chainloader on EFI.
21554         * term/efi/console.c: Include grub/misc.h.
21555         (grub_console_checkkey): Display a scan code on the top for
21556         debugging. This will be removed once the EFI port gets stable.
21557         Correct the scan code mapping.
21559         * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
21560         allocate memory from larger regions, in order to reduce the number
21561         of allocated regions. Otherwise, the MacOSX loader panics.
21562         (filter_memory_map): Avoid less than 1MB for compatibility with
21563         other loaders.
21564         (add_memory_regions): Allocate from the tail of a region, if
21565         possible, to avoid allocating a region near to 1MB, for the MacOSX
21566         loader.
21568         * kern/efi/init.c (grub_efi_set_prefix): Specify
21569         GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
21571         * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
21572         argument IMAGE_HANDLE and specify it to get a loaded image.
21573         (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
21574         grub_efi_get_loaded_image.
21575         (grub_efi_get_filename): Divide the length by the size of
21576         grub_efi_char16_t.
21577         (grub_efi_get_device_path): New function.
21578         (grub_efi_print_device_path): Print End Device Path nodes. Divide
21579         the length by the size of grub_efi_char16_t for a file path device
21580         path node.
21582         * kern/loader.c (grub_loader_noreturn): New variable.
21583         (grub_loader_set): Accept a new argument NORETURN. Set
21584         GRUB_LOADER_NORETURN to NORETURN.
21585         All callers changed.
21586         (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
21587         grub_machine_fini.
21589         * include/grub/efi/efi.h (grub_efi_get_device_path): New
21590         prototype.
21591         (grub_efi_get_loaded_image): Take an argument to specify an image
21592         handle.
21594         * include/grub/loader.h (grub_loader_set): Added one more argument
21595         NORETURN.
21597         * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
21598         instead of grub_efi_open_protocol.
21599         (grub_efidisk_get_device_name): Likewise.
21600         (grub_efidisk_close): Print a newline.
21601         (grub_efidisk_get_device_handle): Fixed to use
21602         GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
21603         GRUB_EFI_DEVICE_PATH_TYPE.
21605         * disk/efi/efidisk.c (device_path_guid): Moved to ...
21606         * kern/efi/efi.c (device_path_guid): ... here.
21608         * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
21609         chain.mod.
21610         (kernel_mod_HEADERS): Added efi/disk.h.
21611         (_chain_mod_SOURCES): New variable.
21612         (_chain_mod_CFLAGS): Likewise.
21613         (_chain_mod_LDFLAGS): Likewise.
21614         (chain_mod_SOURCES): Likewise.
21615         (chain_mod_CFLAGS): Likewise.
21616         (chain_mod_LDFLAGS): Likewise.
21618         * DISTLIST: Added include/grub/efi/chainloader.h,
21619         loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
21621         * include/grub/efi/chainloader.h: New file.
21622         * loader/efi/chainloader.c: Likewise.
21623         * loader/efi/chainloader_normal.c: Likewise.
21625 2006-04-30  Marco Gerards  <marco@gnu.org>
21627         * commands/configfile.c (grub_cmd_source): New function.
21628         (GRUB_MOD_INIT): Register the commands `source' and `.'.
21629         (GRUB_MOD_FINI): De-register the commands `source' and `.'.
21631 2006-04-30  Marco Gerards  <marco@gnu.org>
21633         * normal/execute.c (grub_script_execute_cmd): Change the return
21634         type to `grub_err_t'.  Correctly return the error.
21635         (grub_script_execute_cmdline): In case a command line is not a
21636         command or a function, try to interpret it as an assignment.
21638 2006-04-30  Yoshinori K. Okuji  <okuji@enbug.org>
21640         * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
21641         (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
21642         skip a node whose name is obviously invalid as UTF-16,
21643         i.e. contains a NUL character. Stop the iteration when the last
21644         directory entry is found. Instead of using the return value of
21645         grub_hfsplus_btree_iterate_node, store the value in RET and use
21646         it, because the iterator can be stopped by the last directory
21647         entry.
21649 2006-04-30  Marco Gerards  <marco@gnu.org>
21651         * include/grub/env.h (grub_env_export): New prototype.  Reported
21652         by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
21654 2006-04-30  Marco Gerards  <marco@gnu.org>
21656         * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
21657         size of the extents in a catalog file record.
21659 2006-04-29  Marco Gerards  <marco@gnu.org>
21661         * commands/configfile.c (grub_cmd_configfile): Execute the
21662         configfile within its own context.
21664         * include/grub/env.h (grub_env_context_open): New prototype.
21665         (grub_env_context_close): Likewise.
21667         * kern/env.c (grub_env): Removed.
21668         (grub_env_sorted): Likewise.
21669         (grub_env_context): New variable.
21670         (grub_env_var_context): Likewise.
21671         (grub_env_find): Search both the active context and the global
21672         context.
21673         (grub_env_context_open): New function.
21674         (grub_env_context_close): Likewise.
21675         (grub_env_insert): Likewise.
21676         (grub_env_remove): Likewise.
21677         (grub_env_export): Likewise.
21678         (grub_env_set): Changed to use helper functions to avoid code
21679         duplication.
21680         (grub_env_iterate): Rewritten so both the current context and the
21681         global context are being used.
21683         * normal/command.c (export_command): New function.
21684         (grub_command_init): Register the `export' function.
21686 2006-04-26  Yoshinori K. Okuji  <okuji@enbug.org>
21688         * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
21689         explicitly to suppress gcc's warnings.
21690         * fs/fat.c (grub_fat_find_dir): Likewise.
21691         (grub_fat_label): Likewise.
21692         * fs/xfs.c (grub_xfs_read_inode): Likewise.
21693         (grub_xfs_mount): Likewise.
21694         (grub_xfs_label): Likewise.
21695         * fs/affs.c (grub_affs_mount): Likewise.
21696         (grub_affs_label): Likewise.
21697         (grub_affs_iterate_dir): Likewise.
21698         * fs/sfs.c (grub_sfs_mount): Likewise.
21699         (grub_sfs_iterate_dir): Likewise.
21700         * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
21701         * fs/hfs.c (grub_hfs_mount): Likewise.
21702         (grub_hfs_cmp_catkeys): Likewise.
21703         (grub_hfs_find_dir): Likewise.
21704         (grub_hfs_dir): Likewise.
21705         (grub_hfs_label): Likewise.
21706         * fs/jfs.c (grub_jfs_mount): Likewise.
21707         (grub_jfs_opendir): Likewise.
21708         (grub_jfs_getent): Likewise.
21709         (grub_jfs_lookup_symlink): Likewise.
21710         (grub_jfs_label): Likewise.
21711         * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
21712         (grub_hfsplus_iterate_dir): Likewise.
21713         (grub_hfsplus_btree_iterate_node): Made static.
21715         * util/grub-emu.c (prefix): New variable.
21716         (grub_machine_set_prefix): New function.
21717         (main): Do not set the environment variable "prefix" here. Only
21718         set PREFIX, which is used later by grub_machine_set_prefix.
21720         * include/grub/video.h: Do not include grub/symbol.h.
21721         (grub_video_register): Not exported. This symbol is not defined in
21722         the kernel.
21723         (grub_video_unregister): Likewise.
21724         (grub_video_iterate): Likewise.
21725         (grub_video_setup): Likewise.
21726         (grub_video_restore): Likewise.
21727         (grub_video_get_info): Likewise.
21728         (grub_video_get_blit_format): Likewise.
21729         (grub_video_set_palette): Likewise.
21730         (grub_video_get_palette): Likewise.
21731         (grub_video_set_viewport): Likewise.
21732         (grub_video_get_viewport): Likewise.
21733         (grub_video_map_color): Likewise.
21734         (grub_video_map_rgb): Likewise.
21735         (grub_video_map_rgba): Likewise.
21736         (grub_video_fill_rect): Likewise.
21737         (grub_video_blit_glyph): Likewise.
21738         (grub_video_blit_bitmap): Likewise.
21739         (grub_video_blit_render_target): Likewise.
21740         (grub_video_scroll): Likewise.
21741         (grub_video_swap_buffers): Likewise.
21742         (grub_video_create_render_target): Likewise.
21743         (grub_video_delete_render_target): Likewise.
21744         (grub_video_set_active_render_target): Likewise.
21746         * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
21747         Undefined.
21748         [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
21750         * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
21751         config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
21752         (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
21753         instead of $(srcdir)/genkernsyms.sh.
21755         * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
21756         config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
21757         (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
21758         instead of $(srcdir)/genkernsyms.sh.
21760         * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
21761         gensymlist.sh instead of $(srcdir)/gensymlist.sh.
21762         (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
21763         instead of $(srcdir)/genkernsyms.sh.
21765         * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
21766         gensymlist.sh instead of $(srcdir)/gensymlist.sh.
21767         (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
21768         instead of $(srcdir)/genkernsyms.sh.
21770         * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
21771         genkernsyms.sh.
21773         * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
21774         genkernsyms.sh.
21775         (gensymlist.sh): New target.
21776         (genkernsyms.sh): Likewise.
21778         * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
21779         genkernsyms.sh.in and gensymlist.sh.in.
21781         * genkernsyms.sh: Removed.
21782         * gensymlist.sh: Likewise.
21784         * genkernsyms.sh.in: New file.
21785         * gensymlist.sh.in: Likewise.
21787 2006-04-25  Hollis Blanchard  <hollis@penguinppc.org>
21789         * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
21790         clobber "prefix", since we may have already set it manually.
21792 2006-04-25  Hollis Blanchard  <hollis@penguinppc.org>
21794         * kern/misc.c (abort): New alias for grub_abort.
21796 2006-04-25  Yoshinori K. Okuji  <okuji@enbug.org>
21798         A new machine-specific function "grub_machine_set_prefix" is
21799         defined. This is called after loading modules, so that a prefix
21800         initialization can use modules. Also, this change adds an
21801         intensive debugging feature for the memory manager via the
21802         configure option "--enable-mm-debug".
21804         * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
21805         PART.LEN.
21807         * kern/sparc64/ieee1275/init.c (abort): Removed.
21808         (grub_stop): Likewise.
21809         (grub_exit): New function.
21810         (grub_set_prefix): Renamed to ...
21811         (grub_machine_set_prefix): ... this.
21812         (grub_machine_init): Do not call grub_set_prefix.
21814         * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
21815         (grub_machine_set_prefix): ... this.
21816         (grub_machine_init): Do not call grub_set_prefix.
21818         * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
21819         (grub_machine_init): Do not set the prefix here.
21821         * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
21823         * kern/efi/init.c: Include grub/mm.h.
21824         (grub_efi_set_prefix): New function.
21826         * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
21827         (grub_efi_get_filename): New function.
21828         (grub_print_device_path): Renamed to ...
21829         (grub_efi_print_device_path): ... this.
21831         * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
21832         [MM_DEBUG] (grub_realloc): Likewise.
21833         [MM_DEBUG] (grub_free): Likewise.
21834         [MM_DEBUG] (grub_memalign): Likewise.
21835         [MM_DEBUG] (grub_mm_debug): New variable.
21836         [MM_DEBUG] (grub_debug_malloc): New function.
21837         [MM_DEBUG] (grub_debug_free): New function.
21838         [MM_DEBUG] (grub_debug_realloc): New function.
21839         [MM_DEBUG] (grub_debug_memalign): New function.
21841         * kern/misc.c (grub_abort): Print a newline to distinguish
21842         the message.
21844         * kern/main.c (grub_main): Call grub_machine_set_prefix and
21845         grub_set_root_dev after loading modules. This is necessary when
21846         setting a prefix depends on modules.
21848         * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
21849         (grub_efi_print_device_path): ... this.
21850         (grub_efi_get_filename): New prototype.
21851         (grub_efi_set_prefix): Likewise.
21853         * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
21854         and grub/disk.h.
21855         (grub_efidisk_get_device_handle): New prototype.
21856         (grub_efidisk_get_device_name): Likewise.
21858         * include/grub/mm.h: Include config.h.
21859         (MM_DEBUG): Removed.
21860         [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
21861         [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
21862         [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
21863         [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
21864         [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
21865         [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
21866         [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
21867         [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
21868         [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
21870         * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
21872         * disk/efi/efidisk.c: Include grub/partition.h.
21873         (iterate_child_devices): New function.
21874         (add_device): First, compare only last device path nodes, so that
21875         devices are sorted by the types.
21876         (grub_efidisk_get_device_handle): New function.
21877         (grub_efidisk_get_device_name): Likewise.
21879         * configure.ac (--enable-mm-debug): New option to enable the
21880         memory manager debugging feature. This makes the binary much
21881         bigger, so is disabled by default.
21883 2006-04-23  Yoshinori K. Okuji  <okuji@enbug.org>
21885         Use grub_abort instead of grub_stop, and grub_exit must be
21886         define in each architecture now. Also, this change adds support
21887         for EFI disks.
21889         * util/i386/pc/grub-probefs.c: Include grub/term.h.
21890         (grub_getkey): New function.
21891         (grub_term_get_current): Likewise.
21893         * util/i386/pc/grub-setup.c: Include grub/term.h.
21894         (grub_getkey): New function.
21895         (grub_term_get_current): Likewise.
21897         * util/misc.c (grub_stop): Renamed to ...
21898         (grub_exit): ... this.
21900         * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
21901         (grub_exit): ... this.
21902         (grub_machine_init): Use grub_abort instead of abort.
21903         (grub_stop): Removed.
21905         * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
21906         abort.
21908         * kern/i386/pc/startup.S (grub_exit): New function.
21909         (cold_reboot): New label.
21911         * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
21912         (grub_efi_init): Call grub_efidisk_init.
21913         (grub_efi_fini): Call grub_efidisk_fini.
21915         * kern/efi/efi.c: Include grub/mm.h.
21916         (grub_efi_console_control_guid): Renamed to ...
21917         (console_control_guid): ... this.
21918         (grub_efi_loaded_image_guid): Renamed to ...
21919         (loaded_image_guid): ... this.
21920         (grub_efi_locate_handle): New function.
21921         (grub_efi_open_protocol): Likewise.
21922         (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
21923         GRUB_EFI_CONSOLE_CONTROL_GUID.
21924         (grub_efi_exit): Removed.
21925         (grub_stop): Likewise.
21926         (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
21927         (grub_exit): New function.
21928         (grub_print_device_path): Likewise.
21930         * kern/rescue.c (grub_rescue_cmd_exit): New function.
21931         (grub_enter_rescue_mode): Register "exit".
21933         * kern/misc.c (grub_real_dprintf): A cosmetic change.
21934         (grub_abort): New function.
21936         * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
21938         * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
21940         * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
21942         * include/grub/efi/efi.h (grub_efi_exit): Removed.
21943         (grub_print_device_path): New prototype.
21944         (grub_efi_locate_handle): Likewise.
21945         (grub_efi_open_protocol): Likewise.
21947         * include/grub/efi/disk.h (grub_efidisk_fini): New file.
21948         * disk/efi/efidisk.c: Likewise.
21950         * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
21952         * include/grub/efi/console_control.h
21953         (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
21955         * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
21956         last 8 bytes as an array.
21957         (GRUB_EFI_DISK_IO_GUID): New macro.
21958         (GRUB_EFI_BLOCK_IO_GUID): Likewise.
21959         (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
21960         (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
21961         grub_uint8_t.
21962         (struct grub_efi_guid): Use an array to specify the last 8 bytes.
21963         (struct grub_efi_device_path): Rename the member "sub_type" to
21964         "subtype".
21965         (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
21966         (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
21967         (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
21968         (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
21969         (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
21970         (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
21971         (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
21972         (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
21973         (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
21974         (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
21975         (struct grub_efi_pci_device_path): New structure.
21976         (grub_efi_pci_device_path_t): New type.
21977         (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
21978         (struct grub_efi_pccard_device_path): New structure.
21979         (grub_efi_pccard_device_path_t): New type.
21980         (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
21981         (struct grub_efi_memory_mapped_device_path): New structure.
21982         (grub_efi_memory_mapped_device_path_t): New type.
21983         (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
21984         (struct grub_efi_vendor_device_path): New structure.
21985         (grub_efi_vendor_device_path_t): New type.
21986         (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
21987         (struct grub_efi_controller_device_path): New structure.
21988         (grub_efi_controller_device_path_t): New type.
21989         (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
21990         (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
21991         (struct grub_efi_acpi_device_path): New structure.
21992         (grub_efi_acpi_device_path_t): New type.
21993         (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
21994         (struct grub_efi_expanded_acpi_device_path): New structure.
21995         (grub_efi_expanded_acpi_device_path_t): New type.
21996         (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
21997         (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
21998         (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
21999         (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
22000         (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
22001         (struct grub_efi_atapi_device_path): New structure.
22002         (grub_efi_atapi_device_path_t): New type.
22003         (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
22004         (struct grub_efi_fibre_channel_device_path): New structure.
22005         (grub_efi_fibre_channel_device_path_t): New type.
22006         (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
22007         (struct grub_efi_1394_device_path): New structure.
22008         (grub_efi_1394_device_path_t): New type.
22009         (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
22010         (struct grub_efi_usb_device_path): New structure.
22011         (grub_efi_usb_device_path_t): New type.
22012         (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
22013         (struct grub_efi_usb_class_device_path): New structure.
22014         (grub_efi_usb_class_device_path_t): New type.
22015         (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
22016         (struct grub_efi_i2o_device_path): New structure.
22017         (grub_efi_i2o_device_path_t): New type.
22018         (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
22019         (struct grub_efi_mac_address_device_path): New structure.
22020         (grub_efi_mac_address_device_path_t): New type.
22021         (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
22022         (struct grub_efi_ipv4_device_path): New structure.
22023         (grub_efi_ipv4_device_path_t): New type.
22024         (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
22025         (struct grub_efi_ipv6_device_path): New structure.
22026         (grub_efi_ipv6_device_path_t): New type.
22027         (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
22028         (struct grub_efi_infiniband_device_path): New structure.
22029         (grub_efi_infiniband_device_path_t): New type.
22030         (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
22031         (struct grub_efi_uart_device_path): New structure.
22032         (grub_efi_uart_device_path_t): New type.
22033         (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
22034         (struct grub_efi_vendor_messaging_device_path): New structure.
22035         (grub_efi_vendor_messaging_device_path_t): New type.
22036         (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
22037         (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
22038         (struct grub_efi_hard_drive_device_path): New structure.
22039         (grub_efi_hard_drive_device_path_t): New type.
22040         (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
22041         (struct grub_efi_cdrom_device_path): New structure.
22042         (grub_efi_cdrom_device_path_t): New type.
22043         (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
22044         (struct grub_efi_vendor_media_device_path): New structure.
22045         (grub_efi_vendor_media_device_path_t): New type.
22046         (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
22047         (struct grub_efi_file_path_device_path): New structure.
22048         (grub_efi_file_path_device_path_t): New type.
22049         (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
22050         (struct grub_efi_protocol_device_path): New structure.
22051         (grub_efi_protocol_device_path_t): New type.
22052         (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
22053         (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
22054         (struct grub_efi_bios_device_path): New structure.
22055         (grub_efi_bios_device_path_t): New type.
22056         (struct grub_efi_disk_io): New structure.
22057         (grub_efi_disk_io_t): New type.
22058         (struct grub_efi_block_io_media): New structure.
22059         (grub_efi_block_io_media_t): New type.
22060         (struct grub_efi_block_io): New structure.
22061         (grub_efi_block_io_t): New type.
22063         * include/grub/misc.h (grub_stop): Removed.
22064         (grub_exit): New prototype.
22065         (grub_abort): Likewise.
22067         * include/grub/disk.h (enum grub_disk_dev_id): Added
22068         GRUB_DISK_DEVICE_EFIDISK_ID.
22070         * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
22071         disk/efi/efidisk.c.
22072         (kernel_syms.lst): Remove the target if an error occurs.
22074 2006-04-22  Yoshinori K. Okuji  <okuji@enbug.org>
22076         * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
22077         as it was simply too buggy.
22079 2006-04-21  Yoshinori K. Okuji  <okuji@enbug.org>
22081         * kern/misc.c (grub_lltoa): New function.
22082         (grub_vsprintf): Added support for the long long suffix,
22083         i.e. "ll".
22085 2006-04-20  Hollis Blanchard  <hollis@penguinppc.org>
22087         * Makefile.in (LDFLAGS): Add variable.
22088         (LD): Remove variable.
22089         * configure.ac: Add -m32 to LDFLAGS.
22090         * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
22091         * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
22092         (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
22093         (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
22094         suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
22095         variables.
22096         * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
22097         * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
22098         * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
22100 2006-04-20  Vesa Jaaskelainen  <chaac@nic.fi>
22102         * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
22103         length for unknown glyph.
22105 2006-04-20  Yoshinori K. Okuji  <okuji@enbug.org>
22107         Add support for pre-loaded modules into the EFI port.
22109         * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
22110         completely. Accept one more argument DIR. The caller has changed.
22112         * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
22114         * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
22115         (grub_efi_loaded_image_guid): New variable.
22116         (grub_efi_get_loaded_image): New function.
22117         (grub_arch_modules_addr): Likewise.
22119         * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
22120         prototype.
22122         * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
22123         (struct grub_efi_loaded_image): New structure.
22124         (grub_efi_loaded_image_t): New type.
22126 2006-04-20  Yoshinori K. Okuji  <okuji@enbug.org>
22128         * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
22129         size with GRUB_OS_AREA_SIZE as grub_size_t instead of
22130         grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
22132 2006-04-19  Roger Leigh  <rleigh@whinlatter.ukfsn.org>
22134         * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
22136 2006-04-19  Yoshinori K. Okuji  <okuji@enbug.org>
22138         * DISTLIST: Added include/grub/efi/console.h,
22139         include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
22140         kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
22142         * include/grub/efi/console.h: New file.
22143         * include/grub/efi/time.h: Likewise.
22144         * include/grub/i386/efi/kernel.h: Likewise.
22145         * kern/efi/init.c: Likewise.
22146         * kern/efi/mm.c: Likewise.
22147         * term/efi/console.c: Likewise.
22149         * kern/i386/efi/init.c: Do not include grub/machine/time.h.
22150         (grub_stop): Removed.
22151         (grub_get_rtc): Likewise.
22152         (grub_machine_init): Simply call grub_efi_init.
22153         (grub_machine_fini): Call grub_efi_fini.
22155         * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
22156         (grub_efi_output_string): Removed.
22157         (grub_efi_stall): New function.
22158         (grub_stop): Likewise.
22159         (grub_get_rtc): Likewise.
22161         * include/grub/efi/efi.h (grub_efi_output_string): Removed.
22162         (grub_efi_stall): New prototype.
22163         (grub_efi_allocate_pages): Likewise.
22164         (grub_efi_free_pages): Likewise.
22165         (grub_efi_get_memory_map): Likewise.
22166         (grub_efi_mm_init): Likewise.
22167         (grub_efi_mm_fini): Likewise.
22168         (grub_efi_init): Likewise.
22169         (grub_efi_fini): Likewise.
22171         * include/grub/i386/efi/time.h: Do not include
22172         grub/symbol.h. Include grub/efi/time.h.
22173         (GRUB_TICKS_PER_SECOND): Removed.
22174         (grub_get_rtc): Likewise.
22176         * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
22177         Added padding. The EFI spec is buggy.
22178         (GRUB_EFI_BLACK): New macro.
22179         (GRUB_EFI_BLUE): Likewise.
22180         (GRUB_EFI_GREEN): Likewise.
22181         (GRUB_EFI_CYAN): Likewise.
22182         (GRUB_EFI_RED): Likewise.
22183         (GRUB_EFI_MAGENTA): Likewise.
22184         (GRUB_EFI_BROWN): Likewise.
22185         (GRUB_EFI_LIGHTGRAY): Likewise.
22186         (GRUB_EFI_BRIGHT): Likewise.
22187         (GRUB_EFI_DARKGRAY): Likewise.
22188         (GRUB_EFI_LIGHTBLUE): Likewise.
22189         (GRUB_EFI_LIGHTGREEN): Likewise.
22190         (GRUB_EFI_LIGHTCYAN): Likewise.
22191         (GRUB_EFI_LIGHTRED): Likewise.
22192         (GRUB_EFI_LIGHTMAGENTA): Likewise.
22193         (GRUB_EFI_YELLOW): Likewise.
22194         (GRUB_EFI_WHITE): Likewise.
22195         (GRUB_EFI_BACKGROUND_BLACK): Likewise.
22196         (GRUB_EFI_BACKGROUND_BLUE): Likewise.
22197         (GRUB_EFI_BACKGROUND_GREEN): Likewise.
22198         (GRUB_EFI_BACKGROUND_CYAN): Likewise.
22199         (GRUB_EFI_BACKGROUND_RED): Likewise.
22200         (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
22201         (GRUB_EFI_BACKGROUND_BROWN): Likewise.
22202         (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
22203         (GRUB_EFI_TEXT_ATTR): Likewise.
22205         * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
22206         kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
22207         (kernel_mod_HEADERS): Added efi/time.h.
22209 2006-04-18  Yoshinori K. Okuji  <okuji@enbug.org>
22211         * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
22212         include/grub/efi/api.h, include/grub/efi/console_control.h,
22213         include/grub/efi/efi.h, include/grub/efi/pe32.h,
22214         include/grub/i386/efi/time.h, kern/efi/efi.c,
22215         kern/i386/efi/init.c, kern/i386/efi/startup.S,
22216         and util/i386/efi/grub-mkimage.c.
22218         * Makefile.in (RMKFILES): Added i386-efi.rmk.
22220         * genmk.rb (PModule#rule): Do not export symbols if
22221         #{prefix}_EXPORTS is set to "no".
22223         * conf/i386-efi.mk: New file.
22224         * conf/i386-efi.rmk: Likewise.
22225         * include/grub/efi/api.h: Likewise.
22226         * include/grub/efi/console_control.h: Likewise.
22227         * include/grub/efi/efi.h: Likewise.
22228         * include/grub/efi/pe32.h: Likewise.
22229         * include/grub/i386/efi/time.h: Likewise.
22230         * kern/efi/efi.c: Likewise.
22231         * kern/i386/efi/init.c: Likewise.
22232         * kern/i386/efi/startup.S: Likewise.
22233         * util/i386/efi/grub-mkimage.c: Likewise.
22235 2006-04-17  Marco Gerards  <marco@gnu.org>
22237         * include/grub/script.h: Include <grub/parser.h> and
22238         "grub_script.tab.h".
22239         (struct grub_lexer_param): New struct.
22240         (struct grub_parser_param): Likewise.
22241         (grub_script_create_arglist): Pass the state in an argument.
22242         (grub_script_add_arglist): Likewise.
22243         (grub_script_create_cmdline): Likewise.
22244         (grub_script_create_cmdblock): Likewise.
22245         (grub_script_create_cmdif): Likewise.
22246         (grub_script_create_cmdmenu): Likewise.
22247         (grub_script_add_cmd): Likewise.
22248         (grub_script_arg_add): Likewise.
22249         (grub_script_lexer_ref): Likewise.
22250         (grub_script_lexer_deref): Likewise.
22251         (grub_script_lexer_record_start): Likewise.
22252         (grub_script_lexer_record_stop): Likewise.
22253         (grub_script_mem_record): Likewise.
22254         (grub_script_mem_record_stop): Likewise.
22255         (grub_script_malloc): Likewise.
22256         (grub_script_yylex): Likewise.
22257         (grub_script_yyparse): Likewise.
22258         (grub_script_yyerror): Likewise.
22259         (grub_script_yylex): Likewise.
22260         (grub_script_lexer_init): Return the state.
22262         * normal/lexer.c (grub_script_lexer_state): Removed variable.
22263         (grub_script_lexer_done): Likewise.
22264         (grub_script_lexer_getline): Likewise.
22265         (grub_script_lexer_refs): Likewise.
22266         (script): Likewise.
22267         (newscript): Likewise.
22268         (record): Likewise.
22269         (recording): Likewise.
22270         (recordpos): Likewise.
22271         (recordlen): Likewise.
22272         (grub_script_lexer_init): Return the state instead of setting
22273         global variables.
22274         (grub_script_lexer_ref): Use the newly added argument for state
22275         instead of globals.
22276         (grub_script_lexer_deref): Likewise.
22277         (grub_script_lexer_record_start): Likewise.
22278         (grub_script_lexer_record_stop): Likewise.
22279         (recordchar): Likewise.
22280         (nextchar): Likewise.
22281         (grub_script_yylex2): Likewise.
22282         (grub_script_yylex): Likewise.
22283         (grub_script_yyerror): Likewise.
22285         * normal/parser.y (func_mem): Removed variable.
22286         (menu_entry): Likewise.
22287         (err): Likewise.
22288         (%lex-param): New parser option.
22289         (%parse-param): Likewise.
22290         (script): Always return the AST.
22291         (argument): Pass the state around.
22292         (arguments): Likewise.
22293         (grubcmd): Likewise.
22294         (commands): Likewise.
22295         (function): Likewise.
22296         (menuentry): Likewise.
22297         (if_statement): Likewise.
22298         (if): Likewise.
22300         * normal/script.c (grub_script_memused): Removed variable.
22301         (grub_script_parsed): Likewise.
22302         (grub_script_malloc): Added a state argument.  Use that instead of
22303         global variables.
22304         (grub_script_mem_record): Likewise.
22305         (grub_script_mem_record_stop): Likewise.
22306         (grub_script_arg_add): Likewise.
22307         (grub_script_add_arglist): Likewise.
22308         (grub_script_create_cmdline): Likewise.
22309         (grub_script_create_cmdif): Likewise.
22310         (grub_script_create_cmdmenu): Likewise.
22311         (grub_script_add_cmd): Likewise.
22312         (grub_script_parse): Setup the state before calling the parser.
22314 2006-04-16  Marco Gerards  <marco@gnu.org>
22316         * normal/command.c (grub_command_init): Remove the title command.
22318         * normal/lexer.c (grub_script_yylex): Renamed from this...
22319         (grub_script_yylex2): ... to this.
22320         (grub_script_yylex): New function.  Temporary
22321         introduced to filter some tokens.
22322         (grub_script_yyerror): Print a newline.
22324         * normal/main.c (read_config_file): Output information about the
22325         lines that contain errors.  Wait for a key after all lines have
22326         been processed.  Don't return an empty menu.
22328         * normal/parser.y (func_mem): Don't initialize.
22329         (menu_entry): Likewise.
22330         (err): New variable.
22331         (script): Don't return anything when an error was encountered.
22332         (ws, returns): Removed rules.
22333         (argument): Disabled concatenated variable support.
22334         (arguments): Remove explicit separators.
22335         (grubcmd): Likewise.
22336         (function): Likewise.
22337         (menuentry): Likewise.
22338         (if): Likewise.
22339         (commands): Likewise.  Add error handling.
22341         * normal/script.c (grub_script_create_cmdline): If
22342         `grub_script_parsed' is 0, assume the parser encountered an error.
22344 2006-04-02  Yoshinori K. Okuji  <okuji@enbug.org>
22346         * configure.ac: Add support for EFI. Fix the typo
22347         BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
22349 2006-04-01  Vesa Jaaskelainen  <chaac@nic.fi>
22351         * util/unifont2pff.rb: Removed unnecessary byte ordering.  Now
22352         foreign multibyte characters should be shown correctly.
22354 2006-04-01  Vesa Jaaskelainen  <chaac@nic.fi>
22356         * normal/main.c (grub_normal_menu_addentry): Fixed menu size
22357         calculation.
22358         (read_config_file): Made it to close file before returning.
22360 2006-03-31  Vesa Jaaskelainen  <chaac@nic.fi>
22362         * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
22363         include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
22364         video/i386/pc/vbefill.c.
22366         * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
22367         video/i386/pc/vbefill.c.
22369         * include/grub/video.h (grub_video_blit_format): New enum.
22370         (grub_video_mode_info): Added new member blit_format.
22371         (grub_video_get_blit_format): New function prototype.
22373         * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
22374         function prototype.
22375         (grub_video_vbe_map_rgb): Likewise.
22376         (grub_video_vbe_unmap_color): Likewise.
22378         * include/grub/i386/pc/vbeblit.h: New file.
22380         * include/grub/i386/pc/vbefill.h: New file.
22382         * video/video.c (grub_video_get_blit_format): New function.
22383         (grub_video_vbe_get_video_ptr): Re-declared as non-static.
22384         (grub_video_vbe_map_rgb): Likewise.
22385         (grub_video_vbe_unmap_color): Likewise.
22387         * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
22388         optimized fills.
22389         (grub_video_vbe_blit_render_target): Changed to use more optimized
22390         blits.
22391         (grub_video_vbe_setup): Added detection for optimized settings.
22392         (grub_video_vbe_create_render_target): Likewise.
22394         * video/i386/pc/vbeblit.c: New file.
22396         * video/i386/pc/vbefill.c: New file.
22398 2006-03-30  Vesa Jaaskelainen  <chaac@nic.fi>
22400         * font/manager.c (grub_font_get_glyph): Removed font fixup from
22401         here...
22403         * util/unifont2pff.rb: ... and moved it to here.  Improved argument
22404         parsing to support both hex and dec ranges.  If filename was missing
22405         show usage information.
22407 2006-03-14  Vesa Jaaskelainen  <chaac@nic.fi>
22409         * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
22410         video/video.c, commands/videotest.c.  Removed term/i386/pc/vesafb.c.
22412         * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
22413         gfxterm.mod, videotest.mod.  Removed vga.mod, vesafb.mod.
22414         (video_mod_SOURCES): Added.
22415         (video_mod_CFLAGS): Likewise.
22416         (video_mod_LDFLAGS): Likewise.
22417         (gfxterm_mod_SOURCES): Likewise.
22418         (gfxterm_mod_CFLAGS): Likewise.
22419         (gfxterm_mod_LDFLAGS): Likewise.
22420         (videotest_mod_SOURCES): Likewise.
22421         (videotest_mod_CFLAGS): Likewise.
22422         (videotest_mod_LDFLAGS): Likewise.
22423         (vesafb_mod_SOURCES): Removed.
22424         (vesafb_mod_CFLAGS): Likewise.
22425         (vesafb_mod_LDFLAGS): Likewise.
22426         (vga_mod_SOURCES): Likewise.
22427         (vga_mod_CFLAGS): Likewise.
22428         (vga_mod_LDFLAGS): Likewise.
22430         * commands/videotest.c: New file.
22432         * font/manager.c (fill_with_default_glyph): Modified to use
22433         grub_font_glyph.
22434         (grub_font_get_glyph): Likewise.
22435         (fontmanager): Renamed from this...
22436         (font_manager): ... to this.
22438         * include/grub/font.h (grub_font_glyph): Added new structure.
22439         (grub_font_get_glyph): Modified to use grub_font_glyph.
22441         * include/grub/misc.h (grub_abs): Added as inline function.
22443         * include/grub/video.h: New file.
22445         * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
22446         (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
22447         (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
22448         (grub_vbe_get_controller_info): Renamed from this...
22449         (grub_vbe_bios_get_controller_info): ... to this.
22450         (grub_vbe_get_mode_info): Renamed from this...
22451         (grub_vbe_bios_get_mode_info): ... to this.
22452         (grub_vbe_set_mode): Renamed from this...
22453         (grub_vbe_bios_set_mode): ... to this.
22454         (grub_vbe_get_mode): Renamed from this...
22455         (grub_vbe_bios_get_mode): ... to this.
22456         (grub_vbe_set_memory_window): Renamed from this...
22457         (grub_vbe_bios_set_memory_window): ... to this.
22458         (grub_vbe_get_memory_window): Renamed from this...
22459         (grub_vbe_bios_get_memory_window): ... to this.
22460         (grub_vbe_set_scanline_length): Renamed from this...
22461         (grub_vbe_set_scanline_length): ... to this.
22462         (grub_vbe_get_scanline_length): Renamed from this...
22463         (grub_vbe_bios_get_scanline_length): ... to this.
22464         (grub_vbe_set_display_start): Renamed from this...
22465         (grub_vbe_bios_set_display_start): ... to this.
22466         (grub_vbe_get_display_start): Renamed from this...
22467         (grub_vbe_bios_get_display_start): ... to this.
22468         (grub_vbe_set_palette_data): Renamed from this...
22469         (grub_vbe_bios_set_palette_data): ... to this.
22470         (grub_vbe_set_pixel_rgb): Removed.
22471         (grub_vbe_set_pixel_index): Likewise.
22473         * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
22474         from this...
22475         (grub_vbe_bios_get_controller_info): ... to this.
22476         (grub_vbe_get_mode_info): Renamed from this...
22477         (grub_vbe_bios_get_mode_info): ... to this.
22478         (grub_vbe_set_mode): Renamed from this...
22479         (grub_vbe_bios_set_mode): ... to this.
22480         (grub_vbe_get_mode): Renamed from this...
22481         (grub_vbe_bios_get_mode): ... to this.
22482         (grub_vbe_set_memory_window): Renamed from this...
22483         (grub_vbe_bios_set_memory_window): ... to this.
22484         (grub_vbe_get_memory_window): Renamed from this...
22485         (grub_vbe_bios_get_memory_window): ... to this.
22486         (grub_vbe_set_scanline_length): Renamed from this...
22487         (grub_vbe_set_scanline_length): ... to this.
22488         (grub_vbe_get_scanline_length): Renamed from this...
22489         (grub_vbe_bios_get_scanline_length): ... to this.
22490         (grub_vbe_set_display_start): Renamed from this...
22491         (grub_vbe_bios_set_display_start): ... to this.
22492         (grub_vbe_get_display_start): Renamed from this...
22493         (grub_vbe_bios_get_display_start): ... to this.
22494         (grub_vbe_set_palette_data): Renamed from this...
22495         (grub_vbe_bios_set_palette_data): ... to this.
22496         (grub_vbe_bios_get_controller_info): Fixed problem with registers
22497         getting corrupted after calling it.  Added more pushes and pops.
22498         (grub_vbe_bios_set_mode): Likewise.
22499         (grub_vbe_bios_get_mode): Likewise.
22500         (grub_vbe_bios_get_memory_window): Likewise.
22501         (grub_vbe_bios_set_scanline_length): Likewise.
22502         (grub_vbe_bios_get_scanline_length): Likewise.
22503         (grub_vbe_bios_get_display_start): Likewise.
22504         (grub_vbe_bios_set_palette_data): Likewise.
22506         * normal/cmdline.c (cl_set_pos): Refresh the screen.
22507         (cl_insert): Likewise.
22508         (cl_delete): Likewise.
22510         * term/gfxterm.c: New file.
22512         * term/i386/pc/vesafb.c: Removed file.
22514         * video/video.c: New file.
22516         * video/i386/pc/vbe.c (real2pm): Added new function.
22517         (grub_video_vbe_draw_pixel): Likewise.
22518         (grub_video_vbe_get_video_ptr): Likewise.
22519         (grub_video_vbe_get_pixel): Likewise
22520         (grub_video_vbe_init): Likewise.
22521         (grub_video_vbe_fini): Likewise.
22522         (grub_video_vbe_setup): Likewise.
22523         (grub_video_vbe_get_info): Likewise.
22524         (grub_video_vbe_set_palette): Likewise.
22525         (grub_video_vbe_get_palette): Likewise.
22526         (grub_video_vbe_set_viewport): Likewise.
22527         (grub_video_vbe_get_viewport): Likewise.
22528         (grub_video_vbe_map_color): Likewise.
22529         (grub_video_vbe_map_rgb): Likewise.
22530         (grub_video_vbe_map_rgba): Likewise.
22531         (grub_video_vbe_unmap_color): Likewise.
22532         (grub_video_vbe_fill_rect): Likewise.
22533         (grub_video_vbe_blit_glyph): Likewise.
22534         (grub_video_vbe_blit_bitmap): Likewise.
22535         (grub_video_vbe_blit_render_target): Likewise.
22536         (grub_video_vbe_scroll): Likewise.
22537         (grub_video_vbe_swap_buffers): Likewise.
22538         (grub_video_vbe_create_render_target): Likewise.
22539         (grub_video_vbe_delete_render_target): Likewise.
22540         (grub_video_vbe_set_active_render_target): Likewise.
22541         (grub_vbe_set_pixel_rgb): Remove function.
22542         (grub_vbe_set_pixel_index): Likewise.
22543         (index_color_mode): Remove static variable.
22544         (active_mode): Likewise.
22545         (framebuffer): Likewise.
22546         (bytes_per_scan_line): Likewise.
22547         (grub_video_vbe_adapter): Added new static variable.
22548         (framebuffer): Likewise.
22549         (render_target): Likewise.
22550         (initial_mode): Likewise.
22551         (mode_in_use): Likewise.
22552         (mode_list): Likewise.
22554 2006-03-10  Marco Gerards  <marco@gnu.org>
22556         * configure.ac (AC_INIT): Bumped to 1.93.
22558         * DISTLIST: Added `include/grub/hfs.h'.
22560 2006-02-01  Yoshinori K. Okuji  <okuji@enbug.org>
22562         * boot/i386/pc/boot.S (general_error): Before looping, try INT
22563         18H, which might help the BIOS falling back to next boot media.
22565 2006-01-25  Yoshinori K. Okuji  <okuji@enbug.org>
22567         * util/i386/pc/grub-install.in: Escape a backslash. Reported by
22568         Poe Chen <poe.poechen@gmail.com>.
22570 2006-01-17  Marco Gerards  <marco@gnu.org>
22572         * include/grub/normal.h: Include <grub/script.h>.
22573         (grub_command_list): Removed struct.
22574         (grub_command_list_t): Removed type.
22575         (grub_menu_entry): Remove members `num' and `command_list'.  Add
22576         members `commands' and `sourcecode'.
22577         * include/grub/script.h: Add inclusion guards.
22578         (grub_script_cmd_menuentry): New struct.
22579         (grub_script_execute_menuentry): New prototype.
22580         (grub_script_lexer_record_start): Likewise.
22581         (grub_script_lexer_record_stop): Likewise.
22582         * normal/execute.c (grub_script_execute_menuentry): New function.
22583         * normal/lexer.c (record, recording, recordpos, recordlen): New
22584         variables.
22585         (grub_script_lexer_record_start): New function.
22586         (grub_script_lexer_record_stop): Likewise.
22587         (recordchar): Likewise.
22588         (nextchar): Likewise.
22589         (grub_script_yylex): Use `nextchar' to fetch new characters.  Use
22590         2048 as the buffer size.  Add the tokens `menuentry' and `@'.
22591         * normal/main.c: Include <grub/parser.h> and <grub/script.h>
22592         (current_menu): New variable.
22593         (free_menu): Mainly rewritten.
22594         (grub_normal_menu_addentry): New function.
22595         (read_config_file): Rewritten.
22596         * normal/menu.c (run_menu_entry): Mainly rewritten.
22597         * normal/menu_entry.c (make_screen): Rewritten the code to insert
22598         the menu entry.
22599         (run): Mainly rewritten.
22600         * normal/parser.y (menu_entry): New variable.
22601         (GRUB_PARSER_TOKEN_MENUENTRY): New token.
22602         (menuentry): New rule.
22603         (command): Add `menuentry'.
22604         (if_statement): Allow additional returns before `fi'.
22605         * normal/script.c (grub_script_create_cmdmenu): New function.
22607 2006-01-03  Marco Gerards  <marco@gnu.org>
22609         * INSTALL: GNU Bison is required.
22610         * configure.ac: Rewritten the test to detect Bison.
22611         * Makefile.in (YACC): New variable.  Reported by Xun Sun
22612         <xun.sun.cn@gmail.com>.
22614 2006-01-03  Marco Gerards  <marco@gnu.org>
22616         * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
22617         the HFS+ filesystem to filesystem blocks.
22618         (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
22619         GCC warning is silenced.
22621 2006-01-03  Marco Gerards  <marco@gnu.org>
22623         * partmap/apple.c (apple_partition_map_iterate): Convert the data
22624         read from disk from big endian to host byte order.
22626 2006-01-03  Hollis Blanchard  <hollis@penguinppc.org>
22628         * fs/hfs.c: Include <grub/hfs.h>.  Added reference to the official
22629         documentation.
22630         (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
22631         (grub_hfs_mount): Grammar fix in error. Make sure this is not an
22632         embedded HFS+ filesystem.
22633         (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
22634         (grub_hfs_sblock): Move from here...
22635         * include/grub/hfs.h: To here...  New file.
22636         * fs/hfsplus.c: Include <grub/hfs.h>.  Added reference to the official
22637         documentation.
22638         (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
22639         New macros.
22640         (grub_hfsplus_volheader): Change type of member `magic' to
22641         `grub_uint16_t'.
22642         (grub_hfsplus_data): Add new member `embedded_offset'.
22643         (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
22644         returned block.
22645         (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
22646         Calculate the offset.
22648 2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>
22650         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
22651         Removed.
22652         (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
22654 2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>
22656         * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
22657         ENV->NAME is NULL after allocating ENV->VALUE.
22659 2005-12-25  Marco Gerards  <marco@gnu.org>
22661         * kern/env.c (grub_env_set): Rewritten the error handling code.
22663 2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>
22665         * geninit.sh: Made more robust, and more portable.
22667 2005-12-25  Marco Gerards  <marco@gnu.org>
22669         Add support for Apple HFS+ filesystems.
22671         * fs/hfsplus.c: New file.
22673         * DISTLIST: Added `fs/hfsplus.c'.
22675         * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
22676         (hfsplus_mod_SOURCES): New variable.
22677         (hfsplus_mod_CFLAGS): Likewise.
22678         (hfsplus_mod_LDFLAGS): Likewise.
22679         * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
22680         (grub_setup_SOURCES): Likewise.
22681         (grub_mkdevicemap_SOURCES): Likewise.
22682         (grub_emu_SOURCES): Likewise.
22683         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
22685         * fs/fshelp.c (grub_fshelp_log2blksize): New function.
22687         * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
22689 2005-12-25  Yoshinori K. Okuji  <okuji@enbug.org>
22691         * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
22692         commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
22693         include/grub/parser.h, include/grub/script.h, kern/parser.c,
22694         kern/sparc64/cache.S, normal/execute.c, normal/function.c,
22695         normal/lexer.c, normal/parser.y, normal/script.c, and
22696         partmap/gpt.c.
22697         Removed kern/sparc64/cache.c.
22699         * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
22700         grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
22701         grub_emu_init.c.
22703         * configure.ac (AC_INIT): Bumped to 1.92.
22705 2005-12-24  Vesa Jaaskelainen  <chaac@nic.fi>
22707         * kern/err.c (grub_error_push): Added new function to support error
22708         stacks.
22709         (grub_error_pop): Likewise.
22710         (grub_error_stack_items): New local variable to support error stacks.
22711         (grub_error_stack_pos): Likewise.
22712         (grub_error_stack_assert): Likewise.
22713         (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
22714         stack depth.
22715         (grub_print_error): Added support to print errors from error stack.
22717         * include/grub/err.h (grub_error_push): Added function prototype.
22718         (grub_error_pop): Likewise.
22720 2005-12-09  Hollis Blanchard  <hollis@penguinppc.org>
22722         * configure.ac: Accept `powerpc64' as host_cpu.
22723         (amd64): Rename to `biarch32'.
22725         * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
22726         non-cacheline-aligned addresses.
22728         * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
22729         (grub_dl_flush_cache): Likewise.  Only call `grub_arch_sync_caches'
22730         if `size' is non-zero.
22732 2005-12-03  Marco Gerards  <mgerards@xs4all.nl>
22734         * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
22735         and `cd' to make sure the filename is not prefixed with a
22736         directory name.
22737         (pkgdata_MODULES): Add `gpt.mod'.
22738         (gpt_mod_SOURCES): New variable.
22739         (gpt_mod_CFLAGS): Likewise.
22740         (gpt_mod_LDFLAGS): Likewise.
22742         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
22744         * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
22745         New macro.
22747         * partmap/gpt.c: New file.
22749         * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
22750         GPT partition map is detected.
22752 2005-12-03  Vincent Pelletier  <subdino2004@yahoo.fr>
22754         * commands/i386/pc/play.c: New file.
22755         * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
22756         (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
22757         macros.
22759 2005-11-27  Marco Gerards  <mgerards@xs4all.nl>
22761         * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
22762         ((unused))' to silence gcc warning.
22764 2005-11-26  Hollis Blanchard  <hollis@penguinppc.org>
22766         * configure.ac: Correct `AC_PROG_YACC' test.
22768 2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>
22770         * util/powerpc/ieee1275/grub-install.in: Run the mount point
22771         check before installing files.
22773 2005-11-22  Mike Small  <smallm@panix.com>
22775         * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
22776         number regex so multidigit numbers are recognized correctly.
22778 2005-11-22  Mike Small  <smallm@panix.com>
22780         * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
22781         debugging message before attempting to claim memory.
22782         (grub_rescue_cmd_initrd): Add a claim debugging message and try
22783         multiple addresses in case of failure.
22785 2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>
22787         * term/tparm.c (get_space): Remove empty `if' statement.
22789         * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
22791         * kern/parser.c (check_varstate): Rename `state' to 's'.
22793 2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>
22795         * partmap/acorn.c: Change `unsigned' to `unsigned int'.  Move all
22796         variable definitions to the beginning of each function.  Sort stack
22797         variables by size.
22798         (find): Rename to `acorn_partition_map_find'.  Cast `grub_disk_read'
22799         `buf' argument to `char *'.
22801 2005-11-22  Hollis Blanchard  <hollis@penguinppc.org>
22803         * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
22804         (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
22805         minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
22806         hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
22807         help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
22808         sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
22809         configfile.mod, search.mod, gzio.mod and test.mod.
22810         (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
22811         (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
22812         (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
22813         (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
22814         (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
22815         (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
22816         (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
22817         (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
22818         (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
22819         (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
22820         (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
22821         (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
22822         (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
22823         (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
22824         (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
22825         (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
22826         (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
22827         (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
22828         (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
22829         (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
22830         (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
22831         (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
22832         (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
22834         * conf/common.mk (grub_modules_init.lst): Use `find' instead of
22835         `grep --include'.
22836         (pkgdata_MODULES): Add test.mod.
22838 2005-11-18  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>
22840         * genmk.rb: Fixed list rules moved to Makefile.in.  Recognise
22841         appending to variables with "+=".
22842         (PModule): Use full pathname to generate *.lst filenames.
22844         * Makefile.in: Fixed list rules moved from genmk.rb.
22845         (.DELETE_ON_ERROR): New special target.
22846         (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
22848         * conf/i386-pc.rmk: Include conf/common.mk.
22849         (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
22850         minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
22851         hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
22852         help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
22853         sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
22854         configfile.mod, search.mod, gzio.mod and test.mod.
22855         (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
22856         (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
22857         (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
22858         (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
22859         (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
22860         (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
22861         (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
22862         (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
22863         (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
22864         (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
22865         (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
22866         (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
22867         (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
22868         (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
22869         (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
22870         (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
22871         (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
22872         (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
22873         (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
22874         (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
22875         (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
22876         (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
22877         (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
22878         here...
22879         * conf/common.rmk: ... to here.  New file.
22881         * conf/common.mk: New file.
22883 2005-11-18  Yoshinori K. Okuji  <okuji@enbug.org>
22885         * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
22886         (grub_script.tab.c): ... here.
22888         * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
22889         (grub_script.tab.c): ... here.
22891         * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
22892         (grub_script.tab.c): ... here.
22894         * normal/command.c (grub_command_find): Fixed a memory leak of
22895         MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
22897 2005-11-13  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>
22899         * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
22900         "@" which marks the start of a comment on ARM.
22901         (VARIABLE): Likewise.
22903 2005-11-13  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>
22905         Add support for Linux/ADFS partition tables.
22907         * partmap/acorn.c: New file.
22909         * include/grub/acorn_filecore.h: Likewise.
22911         * DISTLIST: Added `partmap/acorn.c' and
22912         `include/grub/acorn_filecore.h'.
22914         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
22915         `partmap/acorn.c'.
22916         (pkgdata_MODULES): Add `acorn.mod'.
22917         (acorn_mod_SOURCES): New variable.
22918         (acorn_mod_CFLAGS): Likewise.
22920         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
22921         `partmap/acorn.c'.
22922         (pkgdata_MODULES): Add `acorn.mod'.
22923         (acorn_mod_SOURCES): New variable.
22924         (acorn_mod_CFLAGS): Likewise.
22926         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
22927         (pkgdata_MODULES): Add `acorn.mod'.
22928         (acorn_mod_SOURCES): New variable.
22929         (acorn_mod_CFLAGS): Likewise.
22930         (acorn_mod_LDFLAGS): Likewise.
22932         * include/types.h (grub_disk_addr_t): New typedef.
22934 2005-11-13  Marco Gerards  <mgerards@xs4all.nl>
22936         * geninit.sh: New file.
22938         * geninitheader.sh: Likewise.
22940         * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
22941         * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
22942         * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
22943         * commands/configfile.c (grub_configfile_init)
22944         (grub_configfile_fini): Likewise.
22945         * commands/default.c (grub_default_init, grub_default_fini):
22946         Likewise.
22947         * commands/help.c (grub_help_init, grub_help_fini): Likewise.
22948         * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
22949         * commands/search.c (grub_search_init, grub_search_fini): Likewise.
22950         * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
22951         Likewise.
22952         * commands/test.c (grub_test_init, grub_test_fini): Likewise.
22953         * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
22954         Likewise.
22955         * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
22956         * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
22957         Likewise.
22958         * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
22959         Likewise.
22960         * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
22961         Likewise.
22962         * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
22963         * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
22964         * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
22965         * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
22966         * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
22967         * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
22968         * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
22969         * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
22970         * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
22971         * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
22972         * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
22973         * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
22974         * partmap/amiga.c (grub_amiga_partition_map_init)
22975         (grub_amiga_partition_map_fini): Likewise.
22976         * partmap/apple.c (grub_apple_partition_map_init)
22977         (grub_apple_partition_map_fini): Likewise.
22978         * partmap/pc.c (grub_pc_partition_map_init)
22979         (grub_pc_partition_map_fini): Likewise.
22980         * partmap/sun.c (grub_sun_partition_map_init,
22981         grub_sun_partition_map_fini): Likewise.
22982         * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
22983         Likewise.
22985         * util/grub-emu.c: Include <grub_modules_init.h>.
22986         (main): Don't initialize and de-initialize any modules directly,
22987         use `grub_init_all' and `grub_fini_all' instead.
22989         * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
22990         `grub_vesafb_mod_init'.
22991         (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'.  Updated
22992         all users.
22993         * term/i386/pc/vga.c (grub_vga_init): Renamed to
22994         `grub_vga_mod_init'.  Updated all users.
22995         (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
22997         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
22998         (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
22999         rules.
23001         * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
23002         Generate a function to initialize the module in utilities.
23003         Updated all callers.
23004         (GRUB_MOD_FINI): Add argument `name'.  Generate a function to
23005         initialize the module in utilities.  Updated all callers.
23007 2005-11-09  Hollis Blanchard  <hollis@penguinppc.org>
23009         * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
23010         escape sequence and a literal ^L to clear the screen.
23012         * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
23013         when returning from Open Firmware.
23015 2005-11-09  Hollis Blanchard  <hollis@penguinppc.org>
23017         * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
23018         (grub_ofconsole_height): Likewise.
23019         (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
23020         manually insert a '\n'.
23021         (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
23022         `grub_ofconsole_height'.  Return early if these are already set.
23024 2005-11-07  Vincent Pelletier  <subdino2004@yahoo.fr>
23026         * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
23027         `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
23028         `normal/execute.c', `normal/lexer.c', `io/gzio.c',
23029         `kern/parser.c', `grub_script.tab.c', `normal/function.c'
23030         and `normal/script.c'.
23031         (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
23032         `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
23033         (test_mod_SOURCES): New variable.
23034         (test_mod_CFLAGS): Likewise.
23035         (test_mod_LDFLAGS): Likewise.
23036         (pkgdata_MODULES): Add `test.mod'.
23037         (grub_script.tab.c): New rule.
23038         (grub_script.tab.h): Likewise.
23040 2005-11-07  Marco Gerards  <mgerards@xs4all.nl>
23042         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
23043         `commands/test.c', `normal/execute.c', `normal/lexer.c',
23044         `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
23045         (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
23046         `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
23047         (test_mod_SOURCES): New variable.
23048         (test_mod_CFLAGS): Likewise.
23049         (pkgdata_MODULES): Add `test.mod'.
23050         (grub_script.tab.c): New rule.
23051         (grub_script.tab.h): Likewise.
23053 2005-11-06  Marco Gerards  <mgerards@xs4all.nl>
23055         Add initial scripting support.
23057         * commands/test.c: New file.
23058         * include/grub/script.h: Likewise.
23059         * normal/execute.c: Likewise.
23060         * normal/function.c: Likewise.
23061         * normal/lexer.c: Likewise.
23062         * normal/parser.y: Likewise.
23063         * normal/script.c: Likewise.
23065         * configure.ac: Add `AC_PROG_YACC' test.
23067         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
23068         `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
23069         `normal/function.c' and `normal/script.c'.
23070         (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
23071         `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
23072         (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
23073         variables.
23074         (pkgdata_MODULES): Add `test.mod'.
23075         (grub_script.tab.c): New rule.
23076         (grub_script.tab.h): Likewise.
23078         * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
23080         * include/grub/normal.h (grub_test_init): New prototype.
23081         (grub_test_fini): Likewise.
23083         * normal/command.c: Include <grub/script.h>.
23084         (grub_command_execute): Rewritten.
23086         * util/grub-emu.c (main): Call `grub_test_init' and
23087         `grub_test_fini'.
23089 2005-11-03  Hollis Blanchard  <hollis@penguinppc.org>
23091         * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
23092         to 0.
23093         * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
23094         there are no pending characters.
23096 2005-11-03  Hollis Blanchard  <hollis@penguinppc.org>
23098         * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
23099         `grub_strndup' to drop device arguments. Replace unnecessary
23100         `grub_strndup' with `grub_strdup'.
23102 2005-11-03  Hollis Blanchard  <hollis@penguinppc.org>
23104         * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
23105         `debug' environment variable has been set.
23107 2005-11-02  Hollis Blanchard  <hollis@penguinppc.org>
23109         * Makefile.in (install-local): Use $(DATA).
23110         (uninstall): Likewise.
23111         * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
23112         (sbin_UTILITIES): ... to here.
23113         (sbin_SCRIPTS): New variable.
23114         (grub_install_SOURCES): New variable.
23115         * util/powerpc/ieee1275/grub-install.in: New file.
23116         * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
23117         variable.
23118         (add_segments): Call `grub_util_get_path'.
23120 2005-10-28  Yoshinori K. Okuji  <okuji@enbug.org>
23122         From Timothy Baldwin:
23123         * commands/ls.c (grub_ls_list_files): Close FILE with
23124         grub_file_close.
23125         * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
23127 2005-10-24  Marco Gerards  <mgerards@xs4all.nl>
23129         * include/grub/parser.h: New file.
23131         * kern/parser.c: Likewise.
23133         * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
23134         (grub_setup_SOURCES): Likewise.
23135         (grub_probefs_SOURCES): Likewise.
23136         (grub_emu_SOURCES): Likewise.
23137         (kernel_img_HEADERS): Add `parser.h'.
23139         * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
23140         (grub_emu_SOURCES): Add `kern/parser.c'.
23141         (grubof_SOURCES): Likewise.
23143         * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
23144         (grubof_SOURCES): Add `kern/parser.c'.
23146         * include/grub/misc.h (grub_split_cmdline): Removed prototype.
23148         * kern/misc.c (grub_split_cmdline): Removed function.
23150         * kern/rescue.c: Include <grub/parser.h>.
23151         (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
23152         of `grub_split_cmdline'.
23154         * normal/command.c: Include <grub/parser.h>.
23155         (grub_command_execute):  Use `grub_parser_split_cmdline' instead
23156         of `grub_split_cmdline'.
23158         * normal/completion.c: Include <grub/parser.h>.
23159         (cmdline_state): New variable.
23160         (iterate_dir): End the filename with a quote depending on the
23161         command line state.
23162         (get_state): new function.
23163         (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
23164         split the arguments and determine the current argument.  When the
23165         argument string is not quoted, escape all spaces.
23167 2005-10-23  Vincent Pelletier  <subdino2004@yahoo.fr>
23169         * normal/sparc64/setjmp.S: New file.
23171 2005-10-23  Vincent Pelletier  <subdino2004@yahoo.fr>
23173         * include/grub/sparc64/libgcc.h: New file.
23174         * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
23175         (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
23176         normal/sparc64/setjmp.c.
23178 2005-10-23  Vincent Pelletier  <subdino2004@yahoo.fr>
23180         * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
23181         * kern/sparc64/cache.S: New file.
23182         * kern/sparc64/cache.c: Removed.
23183         * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
23184         (COMMON_CFLAGS): Add -mno-app-regs.  Remove -mcpu=v9 and
23185         -mtune=ultrasparc.
23186         (COMMON_LDFLAGS): Add -melf64_sparc.
23187         (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
23188         (grubof_SOURCES): Use cache.S instead of cache.c.
23189         (grubof_LDFLAGS): Add -mno-app-regs.  Replace "-Xlinker
23190         --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
23191         (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
23192         commented though.
23193         (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
23194         (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
23195         (linux_mod_CFLAGS): Commented out.
23196         (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
23197         out because module isn't built.
23198         (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
23199         (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
23200         (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
23201         (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
23202         (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
23203         (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
23204         (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
23205         (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
23206         (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
23207         (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
23208         (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
23209         (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
23210         (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
23211         (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
23213 2005-10-20  Yoshinori K. Okuji  <okuji@enbug.org>
23215         * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
23216         grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
23217         longer, because HFS should not be used on PC.
23219 2005-10-20  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>
23221         * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
23222         consistently within the loop.
23224 2005-10-15  Marco Gerards  <mgerards@xs4all.nl>
23226         * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
23227         directory can not be read.
23229 2005-10-15  Yoshinori K. Okuji  <okuji@enbug.org>
23231         * configure.ac (AC_INIT): Increase the version number to 1.91.
23233         * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
23234         include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
23235         term/i386/pc/serial.c.
23237 2005-10-15  Yoshinori K. Okuji  <okuji@enbug.org>
23239         * kern/file.c (grub_file_seek): Seeking to an offset equal to a
23240         file size must be permitted.
23242         * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
23243         between %ah and %al.
23245 2005-10-15  Yoshinori K. Okuji  <okuji@enbug.org>
23247         * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
23248         grub_uint64_t.
23249         Call the hook with a NUL-terminated filename.
23250         (grub_xfs_mount): Use grub_be_to_cpu32 instead of
23251         grub_cpu_to_be32.
23253         * kern/term.c (cursor_state): New variable.
23254         (grub_term_set_current): Reset the cursor state on a new
23255         terminal.
23256         (grub_setcursor): Rewritten to use CURSOR_STATE.
23257         (grub_getcursor): New function.
23259         * include/grub/term.h (grub_getcursor): New prototype.
23261         * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
23262         integers on ARM. Reported by Timothy Baldwin
23263         <T.E.Baldwin99@members.leeds.ac.uk>.
23265 2005-10-11  Marco Gerards  <mgerards@xs4all.nl>
23267         * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
23268         allocated.
23269         (grub_sfs_dir): Likewise.
23271 2005-10-09  Marco Gerards  <mgerards@xs4all.nl>
23273         Add support for the SFS filesystem.
23275         * fs/sfs.c: New file.
23277         * DISTLIST: Added `fs/sfs.c'.
23279         * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
23280         (grub_probefs_SOURCES): Likewise.
23281         (grub_emu_SOURCES): Likewise.
23282         (pkgdata_MODULES): Add `sfs.mod'.
23283         (sfs_mod_SOURCES): New variable.
23284         (sfs_mod_CFLAGS): Likewise.
23285         (sfs_mod_LDFLAGS): Likewise.
23287         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
23288         (pkgdata_MODULES): Add `sfs.mod'.
23289         (sfs_mod_SOURCES): New variable.
23290         (sfs_mod_CFLAGS): Likewise.
23292         * util/grub-emu.c (main): Call `grub_sfs_init' and
23293         `grub_sfs_fini'.
23295         * include/grub/fs.h (grub_sfs_init): New prototype.
23296         (grub_sfs_fini): Likewise.
23298 2005-10-07  Marco Gerards  <mgerards@xs4all.nl>
23300         Add support for the AFFS filesystem.
23302         * fs/affs.c: New file.
23304         * DISTLIST: Added `fs/affs.c'.
23306         * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
23307         (grub_probefs_SOURCES): Likewise.
23308         (grub_emu_SOURCES): Likewise.
23309         (pkgdata_MODULES): Add `affs.mod'.
23310         (affs_mod_SOURCES): New variable.
23311         (affs_mod_CFLAGS): Likewise.
23312         (affs_mod_LDFLAGS): Likewise.
23314         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
23315         (pkgdata_MODULES): Add `affs.mod'.
23316         (affs_mod_SOURCES): New variable.
23317         (affs_mod_CFLAGS): Likewise.
23319         * util/grub-emu.c (main): Call `grub_affs_init' and
23320         `grub_affs_fini'.
23322         * include/grub/fs.h (grub_affs_init): New prototype.
23323         (grub_affs_fini): Likewise.
23325 2005-10-01  Marco Gerards  <mgerards@xs4all.nl>
23327         * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
23329 2005-10-01  Marco Gerards  <mgerards@xs4all.nl>
23331         * configure.ac: Accept `x86_64' as host_cpu.  In that case add
23332         `-m32' to CFLAGS.
23334         * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
23335         linking.
23337         * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
23338         (COMMON_LDFLAGS): New variable.
23339         (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
23340         (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
23341         (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
23342         (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
23343         (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
23344         (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
23345         (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
23346         (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
23347         (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
23348         (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
23349         (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
23350         (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
23351         (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
23352         (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
23353         (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
23354         variables.
23355         (normal_mod_ASFLAGS): Add `-m32'.
23357         * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
23358         (grub_host_size_t, grub_host_ssize_t): New types.
23359         (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
23360         dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
23361         `GRUB_HOST_SIZEOF_VOID_P'.
23363         * include/grub/kernel.h (struct grub_module_header): Type of
23364         member offset changed to `grub_host_off_t'.  Type of member size
23365         changed to `grub_host_size_t'.
23366         (struct grub_module_info): Type of member offset changed to
23367         `grub_host_off_t'.  Type of member size changed to
23368         `grub_host_size_t'.
23370 2005-09-29  Yoshinori K. Okuji  <okuji@enbug.org>
23372         Make GRUB's kernel compliant to Multiboot Specification.
23374         * kern/i386/pc/startup.S (multiboot_header): New label.
23375         (multiboot_entry): Likewise.
23376         (multiboot_trampoline): Likewise.
23378         * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
23379         Increased to 0x4A0.
23381         * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
23382         put parentheses after a question mark.
23383         [!GRUB_UTIL] (my_mod): New variable.
23385         * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
23387 2005-09-28  Marco Gerards  <mgerards@xs4all.nl>
23389         Adds support for the XFS filesystem.  Btrees are not supported
23390         yet.
23392         * fs/xfs.c: New file.
23394         * DISTLIST: Added `fs/xfs.c'.
23396         * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
23397         (grub_probefs_SOURCES): Likewise.
23398         (grub_emu_SOURCES): Likewise.
23399         (pkgdata_MODULES): Add `xfs.mod'.
23400         (xfs_mod_SOURCES): New variable.
23401         (xfs_mod_CFLAGS): Likewise.
23403         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
23404         (pkgdata_MODULES): Add `xfs.mod'.
23405         (xfs_mod_SOURCES): New variable.
23406         (xfs_mod_CFLAGS): Likewise.
23408         * util/grub-emu.c (main): Call `grub_xfs_init' and
23409         `grub_xfs_fini'.
23411         * include/grub/fs.h (grub_xfs_init): New prototype.
23412         (grub_xfs_fini): Likewise.
23415 2005-09-18  Vesa Jaaskelainen  <chaac@nic.fi>
23417         * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
23418         color modes, allow greater than 16 colors to be configured as
23419         a default palette.
23421 2005-09-03  Yoshinori K. Okuji  <okuji@enbug.org>
23423         * normal/completion.c (complete_arguments): Add the qualifier
23424         const into OPTIONS.
23426         From Omniflux <omniflux+lists@omniflux.com>:
23427         * include/grub/terminfo.h: New file.
23428         * include/grub/tparm.h: Likewise.
23429         * include/grub/i386/pc/serial.h: Likewise.
23430         * term/terminfo.c: Likewise.
23431         * term/tparm.c: Likewise.
23432         * term/i386/pc/serial.c: Likewise.
23433         * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
23434         serial.mod.
23435         (terminfo_mod_SOURCES): New variable.
23436         (terminfo_mod_CFLAGS): Likewise.
23437         (serial_mod_SOURCES): Likewise.
23438         (serial_mod_CFLAGS): Likewise.
23440 2005-08-31  Yoshinori K. Okuji  <okuji@enbug.org>
23442         * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
23443         boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
23444         and kern/powerpc/ieee1275/cmain.c, respectively.
23446         * boot/powerpc/ieee1275/crt0.S: Moved to ...
23447         * kern/powerpc/ieee1275/crt0.S: ... here.
23449         * boot/powerpc/ieee1275/cmain.c: Moved to ...
23450         * kern/powerpc/ieee1275/cmain.c: ... here.
23452         * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
23453         kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
23454         instead of boot/powerpc/ieee1275/crt0.S and
23455         boot/powerpc/ieee1275/cmain.c, respectively.
23457         * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
23458         sectors. It was not used anyway.
23460 2005-08-30  Hollis Blanchard  <hollis@penguinppc.org>
23462         * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
23463         `unused parameter' warning.
23465 2005-08-30  Hollis Blanchard  <hollis@penguinppc.org>
23467         * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
23468         function.
23469         (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
23470         getcharwidth.
23472 2005-08-28  Marco Gerards  <metgerards@student.han.nl>
23474         * include/grub/normal.h (enum grub_completion_type): Added
23475         `GRUB_COMPLETION_TYPE_ARGUMENT'.
23477         * normal/cmdline.c (print_completion): Handle
23478         the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
23479         * normal/menu_entry.c (store_completion): Likewise.
23481         * normal/completion.c (complete_arguments): New function.
23482         (grub_normal_do_completion): Call `complete_arguments' when the
23483         current words start with a dash.
23485 2005-08-27  Marco Gerards  <metgerards@student.han.nl>
23487         * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
23488         `gzio.mod' instead of `io.mod').
23490 2005-08-22  Yoshinori K. Okuji  <okuji@enbug.org>
23492         * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
23493         (DISTDIRS): Added io and video.
23494         Rewrite the search routine to make an output consistently.
23496         * DISTLIST: Added conf/sparc64-ieee1275.mk,
23497         conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
23498         include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
23499         io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
23500         kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
23501         util/powerpc/ieee1275/misc.c.
23503         * include/grub/gzio.h: New file.
23504         * io/gzio.c: Likewise.
23506         * kern/file.c (grub_file_close): Call grub_device_close only if
23507         FILE->DEVICE is not NULL.
23509         * include/grub/mm.h [!NULL] (NULL): New macro.
23511         * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
23513         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
23514         (pkgdata_MODULES): Added gzio.mod.
23515         (gzio_mod_SOURCES): New variable.
23516         (gzio_mod_CFLAGS): Likewise.
23518         * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
23519         (pkgdata_MODULES): Added gzio.mod.
23520         (gzio_mod_SOURCES): New variable.
23521         (gzio_mod_CFLAGS): Likewise.
23523         * commands/cat.c: Include grub/gzio.h.
23524         (grub_cmd_cat): Use grub_gzfile_open instead of
23525         grub_file_open.
23527         * commands/cmp.c: Include grub/gzio.h.
23528         (grub_cmd_cmp): Use grub_gzfile_open instead of
23529         grub_file_open.
23531         * loader/i386/pc/multiboot.c: Include grub/gzio.h.
23532         (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
23533         grub_file_open.
23534         (grub_rescue_cmd_module): Likewise.
23536 2005-08-21  Vincent Pelletier  <subdino2004@yahoo.fr>
23538         * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
23539         kern/sparc64/ieee1275/init.c because it contains _start.
23540         * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
23542 2005-08-21  Vincent Pelletier  <subdino2004@yahoo.fr>
23544         * configure.ac: Add support for sparc64 host with ieee1275
23545         firmware.
23546         * configure: Generated from configure.ac.
23547         * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
23548         instead of int.
23549         (grub_ofdisk_read): Likewise.
23550         (grub_ofdisk_open): Use %p to print pointer values, and cast the
23551         pointers as (void *) to remove a warning.
23552         (grub_ofdisk_close): Likewise.
23553         (grub_ofdisk_read): Likewise.
23554         * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
23555         returns, so make it return void to remove a warning.
23556         * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
23557         Corresponding prototype change.
23558         * kern/mm.c (grub_mm_init_region): Use %p to print pointer
23559         values, and cast the pointers as (void *) to remove a warning.
23560         (grub_mm_dump): Likewise.
23561         * conf/sparc64-ieee1275.mk: New file.
23562         * conf/sparc64-ieee1275.rmk: Likewise.
23563         * include/grub/sparc64/setjmp.h: Likewise.
23564         * include/grub/sparc64/types.h: Likewise.
23565         * include/grub/sparc64/ieee1275/console.h: Likewise.
23566         * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
23567         * include/grub/sparc64/ieee1275/kernel.h: Likewise.
23568         * include/grub/sparc64/ieee1275/time.h: Likewise.
23569         * kern/sparc64/cache.c: Likewise.
23570         * kern/sparc64/dl.c: Likewise.
23571         * kern/sparc64/ieee1275/init.c: Likewise.
23572         * kern/sparc64/ieee1275/openfw.c: Likewise.
23574 2005-08-21  Yoshinori K. Okuji  <okuji@enbug.org>
23576         * util/console.c (grub_ncurses_putchar): If C is greater than
23577         0x7f, set C to a question mark.
23578         (grub_ncurses_getcharwidth): New function.
23579         (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
23580         getcharwidth.
23582         * normal/menu.c (print_entry): Made aware of Unicode. First,
23583         convert TITLE to UCS-4, and predict the cursor position by
23584         grub_getcharwidth.
23586         * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
23587         const to SRC.
23588         * kern/misc.c (grub_utf16_to_utf8): Likewise.
23590 2005-08-20  Yoshinori K. Okuji  <okuji@enbug.org>
23592         * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
23593         the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
23594         grub_strcat.
23596         * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
23597         file by the option BOOT_IMAGE. Use grub_stpcpy instead of
23598         grub_strcpy and grub_strlen. Take it into account that a space
23599         character is inserted as a delimiter.
23601 2005-08-20  Yoshinori K. Okuji  <okuji@enbug.org>
23603         * partmap/pc.c (pc_partition_map_iterate): Include the value of an
23604         invalid magic in the error.
23606         * commands/search.c: New file.
23608         * util/grub-emu.c (main): Call grub_search_init and
23609         grub_search_fini.
23611         * kern/rescue.c (grub_rescue_print_disks): Removed.
23612         (grub_rescue_print_devices): New function.
23613         (grub_rescue_cmd_ls): Use grub_device_iterate with
23614         grub_rescue_print_devices instead of grub_disk_dev_iterate with
23615         grub_rescue_print_disks.
23617         * kern/partition.c (grub_partition_iterate): Return the result of
23618         PARTMAP->ITERATE instead of GRUB_ERRNO.
23620         * kern/device.c: Include grub/partition.h.
23621         (grub_device_iterate): New function.
23623         * include/grub/partition.h (grub_partition_iterate): Return int
23624         instead of grub_err_t.
23626         * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
23627         prototype.
23628         [GRUB_UTIL] (grub_search_fini): Likewise.
23630         * include/grub/device.h (grub_device_iterate): New prototype.
23632         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
23633         commands/search.c.
23634         (pkgdata_MODULES): Added search.mod.
23635         (search_mod_SOURCES): New variable.
23636         (search_mod_CFLAGS): Likewise.
23638         * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
23639         (pkgdata_MODULES): Added search.mod.
23640         (search_mod_SOURCES): New variable.
23641         (search_mod_CFLAGS): Likewise.
23643         * commands/ls.c (grub_ls_list_disks): Renamed to ...
23644         (grub_ls_list_devices): ... this, and use grub_device_iterate.
23645         All callers changed.
23647         * DISTLIST: Added commands/search.c.
23649 2005-08-20  Yoshinori K. Okuji  <okuji@enbug.org>
23651         * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
23652         conversion.
23653         (grub_getcharwidth): New function.
23655         * kern/misc.c (grub_utf8_to_ucs4): New function.
23657         * include/grub/term.h (struct grub_term): Added a new member
23658         "getcharwidth".
23659         (grub_getcharwidth): New prototype.
23661         * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
23663         * term/i386/pc/console.c (map_char): New function. Segregated from
23664         grub_console_putchar.
23665         (grub_console_putchar): Use map_char.
23666         (grub_console_getcharwidth): New function.
23667         (grub_console_term): Specified grub_console_getcharwidth as
23668         getcharwidth.
23670         * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
23671         (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
23673         * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
23674         GRUB_ERRNO.
23675         (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
23676         on grub_strtoul completely.
23677         (write_char): Declare local variables in the beginning of the
23678         function.
23679         (grub_vesafb_getcharwidth): New function.
23680         (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
23681         getcharwidth.
23683 2005-08-19  Yoshinori K. Okuji  <okuji@enbug.org>
23685         * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
23686         commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
23687         commands/i386/pc/vbetest.c.
23689         * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
23690         call grub_vbe_get_controller_info again, because the returned
23691         information is volatile.
23692         (grub_vbe_set_video_mode): Mostly rewritten.
23693         (grub_vbe_get_video_mode): Use grub_vbe_probe and use
23694         grub_vbe_status_t correctly.
23695         (grub_vbe_get_video_mode_info): Likewise.
23696         (grub_vbe_set_pixel_rgb): Use a switch statement rather than
23697         several if statements.
23699         * commands/i386/pc/vbe_list_modes.c: Renamed to ...
23700         * commands/i386/pc/vbeinfo.c: ... this.
23702         * commands/i386/pc/vbe_test.c: Renamed to ...
23703         * commands/i386/pc/vbetest.c: ... this.
23705         * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
23706         ...
23707         (grub_cmd_vbeinfo): ... this. Save video modes before
23708         iterating. Skip a video mode, if it is not available, not enough
23709         information is given or it is monochrome. Show the memory
23710         model. Leave the interpretation of MODEVAR to grub_strtoul
23711         completely.
23712         (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
23713         (GRUB_MOD_FINI): Likewise.
23715         * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
23716         (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
23717         grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
23718         duplicated grub_env_get. Leave the interpretation of MODEVAR to
23719         grub_strtoul completely.
23720         (real2pm): Removed.
23721         (GRUB_MOD_INIT): Rename vbe_test to vbetest.
23722         (GRUB_MOD_FINI): Likewise.
23724         * normal/misc.c: Include grub/mm.h.
23726         * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
23727         vbe_list_modes with vbetest.mod and vbeinfo.mod.
23728         (vbe_list_modes_mod_SOURCES): Removed.
23729         (vbe_list_modes_mod_CFLAGS): Likewise.
23730         (vbe_test_mod_SOURCES): Likewise.
23731         (vbe_test_mod_CFLAGS): Likewise.
23732         (vbeinfo_mod_SOURCES): New variable.
23733         (vbeinfo_mod_CFLAGS): Likewise.
23734         (vbetest_mod_SOURCES): Likewise.
23735         (vbetest_mod_CFLAGS): Likewise.
23737 2005-08-18  Yoshinori K. Okuji  <okuji@enbug.org>
23739         * normal/misc.c: New file.
23741         * DISTLIST: Added normal/misc.c.
23743         * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
23744         DISK to HOOK. Call HOOK with DISK.
23745         * partmap/apple.c (apple_partition_map_iterate): Likewise.
23746         * partmap/pc.c (pc_partition_map_iterate): Likewise.
23747         * partmap/sun.c (sun_partition_map_iterate): Likewise.
23749         * normal/menu_entry.c (struct screen): Added a new member
23750         "completion_shown".
23751         (completion_buffer): New global variable.
23752         (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
23753         (store_completion): New function.
23754         (complete): Likewise.
23755         (clear_completions): Likewise.
23756         (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
23757         call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
23758         a tab, call complete.
23760         * normal/completion.c (disk_dev): Removed.
23761         (print_simple_completion): Likewise.
23762         (print_partition_completion): Likewise.
23763         (print_func): New global variable.
23764         (add_completion): Do not take the arguments WHAT or PRINT any
23765         longer. Added a new argument TYPE. Instead of printing directly,
23766         call PRINT_FUNC if not NULL.
23767         All callers changed.
23768         (complete_device): Use a local variable DEV instead of
23769         DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
23770         (grub_normal_do_completion): Take a new argument HOOK. Do not
23771         initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
23772         empty string, return NULL instead.
23773         All callers changed.
23775         * normal/cmdline.c (print_completion): New function.
23777         * kern/partition.c (grub_partition_iterate): Add an argument DISK
23778         to HOOK.
23779         All callers changed.
23781         * kern/disk.c (grub_print_partinfo): Removed.
23783         * include/grub/partition.h (struct grub_partition_map): Add a new
23784         argument DISK into HOOK of ITERATE.
23785         (grub_partition_iterate): Add a new argument DISK to HOOK.
23787         * include/grub/normal.h (enum grub_completion_type): New enum.
23788         (grub_completion_type_t): New type.
23789         (GRUB_COMPLETION_TYPE_COMMAND): New constant.
23790         (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
23791         (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
23792         (GRUB_COMPLETION_TYPE_FILE): Likewise.
23793         (grub_normal_do_completion): Added a new argument HOOK.
23794         (grub_normal_print_device_info): New prototype.
23796         * include/grub/disk.h (grub_print_partinfo): Removed.
23798         * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
23799         (normal_mod_SOURCES): Likewise.
23800         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
23801         (normal_mod_SOURCES): Likewise.
23803         * commands/ls.c (grub_ls_list_disks): Use
23804         grub_normal_print_device_info instead of grub_print_partinfo. Free
23805         PNAME.
23806         (grub_ls_list_files): Use grub_normal_print_device_info instead of
23807         duplicating the code.
23809 2005-08-16  Vesa Jaaskelainen  <chaac@nic.fi>
23811         * commands/i386/pc/vbe_list_modes.c: Update source formatting to
23812         follow GCS more precisely.
23813         * commands/i386/pc/vbe_test.c: Likewise.
23814         * include/grub/i386/pc/vbe.h: Likewise.
23815         * term/i386/pc/vesafb.c: Likewise.
23816         * video/i386/pc/vbe.c: Likewise.
23818 2005-08-16  Vesa Jaaskelainen  <chaac@nic.fi>
23820         * DISTLIST: Added term/i386/pc/vesafb.c
23821         DISTLIST: Added video/i386/pc/vbe.c
23822         DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
23823         DISTLIST: Added commands/i386/pc/vbe_test.c.
23824         * commands/i386/pc/vbe_list_modes.c: New file.
23825         * commands/i386/pc/vbe_test.c: Likewise.
23826         * term/i386/pc/vesafb.c: Likewise.
23827         * video/i386/pc/vbe.c: Likewise.
23828         * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
23829         (grub_vbe_probe) Added prototype.
23830         (grub_vbe_set_video_mode) Likewise.
23831         (grub_vbe_get_video_mode) Likewise.
23832         (grub_vbe_get_video_mode_info) Likewise.
23833         (grub_vbe_set_pixel_rgb) Likewise.
23834         (grub_vbe_set_pixel_index) Likewise.
23835         * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
23836         (pkgdata_MODULES): Added vesafb.mod.
23837         (pkgdata_MODULES): Added vbe_list_modes.mod.
23838         (pkgdata_MODULES): Added vbe_test.mod.
23839         (vbe_mod_SOURCES): Added.
23840         (vbe_mod_CFLAGS): Likewise.
23841         (vesafb_mod_SOURCES): Likewise.
23842         (vesafb_mod_CFLAGS): Likewise.
23843         (vbe_list_modes_mod_SOURCES): Likewise.
23844         (vbe_list_modes_mod_CFLAGS): Likewise.
23845         (vbe_test_mod_SOURCES): Likewise.
23846         (vbe_test_mod_CFLAGS): Likewise.
23848 2005-08-14  Yoshinori K. Okuji  <okuji@enbug.org>
23850         * normal/command.c (grub_command_execute): If INTERACTIVE is
23851         false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
23852         CMDLINE. Disable the pager if INTERACTIVE is true.
23853         All callers are changed.
23855         * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
23856         before reading a config file.
23857         * normal/main.c (read_config_file): Even if a command is not
23858         found, register it if it is within an entry.
23860         * util/grub-emu.c: Include sys/types.h and unistd.h.
23861         (options): Added --hold.
23862         (struct arguments): Added a new member "hold".
23863         (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
23864         missing.
23865         (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
23866         cleared by a debugger, if it is not zero.
23868         * include/grub/normal.h (grub_command_execute): Add an argument
23869         INTERACTIVE.
23871 2005-08-14  Vesa Jaaskelainen  <chaac@nic.fi>
23873         * DISTLIST: Added include/grub/i386/pc/vbe.h.
23875 2005-08-13  Yoshinori K. Okuji  <okuji@enbug.org>
23877         * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
23878         program with another one, because the old one didn't detect a bug
23879         in gcc-3.4. Always use regparm 2, because the new test is still
23880         not enough for gcc-4.0. Someone must investigate a simple test
23881         case which detects a bug in gcc-4.0.
23883 2005-08-12  Yoshinori K. Okuji  <okuji@enbug.org>
23885         * DISTLIST: Added normal/completion.c.
23887         * normal/completion.c: New file.
23889         * term/i386/pc/console.c (grub_console_getwh): New function.
23890         (grub_console_term): Assign grub_console_getwh to getwh.
23892         * normal/cmdline.c (grub_tab_complete): Removed. Now the same
23893         function is defined in normal/completion.c as
23894         grub_normal_do_completion.
23895         (grub_cmdline_get): Use grub_normal_do_completion instead of
23896         grub_tab_complete.
23898         * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
23899         returns non-zero, otherwise return 0.
23900         (grub_partition_iterate): First, probe the partition map. Then,
23901         call ITERATE only for this partition map.
23903         * kern/misc.c (grub_strncmp): Rewritten.
23905         * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
23906         returns non-zero. Otherwise return 0.
23908         * include/grub/partition.h (grub_partition_map_iterate): Return
23909         int instead of void.
23911         * include/grub/normal.h (grub_normal_do_completion): New prototype.
23913         * include/grub/misc.h (grub_strncmp): Change the type of N to
23914         grub_size_t.
23916         * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
23917         of void.
23919         * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
23920         unsigned explicitly before comparing it with I.
23922         * kern/main.c (grub_env_write_root): Add the attribute unused into
23923         VAR.
23925         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
23926         normal/completion.c.
23927         (normal_mod_SOURCES): Likewise.
23928         * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
23929         (normal_mod_SOURCES): Likewise.
23931         * normal/command.c (grub_iterate_commands): If ITERATE returns
23932         non-zero, return one immediately.
23934 2005-08-09  Vesa Jaaskelainen  <chaac@nic.fi>
23936         * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
23937         * kern/i386/pc/startup.S: Updated Global Descriptor table's
23938         descriptions.
23939         (grub_vbe_get_controller_info): New function.
23940         (grub_vbe_get_mode_info): Likewise.
23941         (grub_vbe_set_mode): Likewise.
23942         (grub_vbe_get_mode): Likewise.
23943         (grub_vbe_set_memory_window): Likewise.
23944         (grub_vbe_get_memory_window): Likewise.
23945         (grub_vbe_set_scanline_length): Likewise.
23946         (grub_vbe_get_scanline_length): Likewise.
23947         (grub_vbe_set_display_start): Likewise.
23948         (grub_vbe_get_display_start): Likewise.
23949         (grub_vbe_set_palette_data): Likewise.
23950         * include/grub/i386/pc/vbe.h: New file.
23952 2005-08-08  Hollis Blanchard  <hollis@penguinppc.org>
23954         * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
23955         kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
23956         * DISTLIST: Likewise.
23957         * kern/ieee1275/of.c: Moved to ...
23958         * kern/ieee1275/ieee1275.c: ... here.
23960 2005-08-08  Hollis Blanchard  <hollis@penguinppc.org>
23962         * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
23963         (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
23964         Pass 0 as `end' parameter to grub_strtoul().
23966 2005-08-08  Hollis Blanchard  <hollis@penguinppc.org>
23968         * include/grub/powerpc/ieee1275/console.h: Do not include
23969         <grub/types.h>.  Do not include <grub/symbol.h>.  Remove ASM_FILE
23970         ifdef.
23971         (grub_console_cur_color): Remove i386-specific prototype.
23972         (grub_console_real_putchar): Likewise.
23973         (grub_console_checkkey): Likewise.
23974         (grub_console_getkey): Likewise.
23975         (grub_console_getxy): Likewise.
23976         (grub_console_gotoxy): Likewise.
23977         (grub_console_cls): Likewise.
23978         (grub_console_setcursor): Likewise.
23979         * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
23980         Include <grub/machine/console.h>.
23981         * term/ieee1275/ofconsole.c: Likewise.
23983 2005-08-08  Yoshinori K. Okuji  <okuji@enbug.org>
23985         * Makefile.in (LIBLZO): New variable.
23987         * configure.ac: Check for LZO version 2.
23989         * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
23990         lzo/lzo1x.h instead of lzo1x.h.
23992         * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
23993         of -llzo.
23995         * util/i386/pc/grub-setup.c (main): Do not free PREFIX
23996         twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
23998         * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
23999         copying the data from PARTITION to P.
24001 2005-08-07  Yoshinori K. Okuji  <okuji@enbug.org>
24003         * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
24004         negative, unload the module.
24006         * util/i386/pc/grub-setup.c (setup): The name of the PC partition
24007         map is "pc_partition_map" but not "pc".
24008         (usage): Fix the description. The options are --boot-image and
24009         --core-image but not --boot-file or --core-file.
24010         (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
24011         based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
24012         DEFAULT_DIRECTORY.
24014         * util/i386/pc/grub-install.in: Do not specify --boot-file or
24015         --core-file. Specify INSTALL_DEVICE as an argument.
24017         * util/console.c: Include config.h.
24018         [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
24019         [HAVE_NCURSES_H]: Include ncurses.h.
24020         [HAVE_CURSES_H]: Include curses.h.
24021         [!A_NORMAL] (A_NORMAL): Defined as zero.
24022         [!A_STANDOUT] (A_STANDOUT): Likewise.
24024         * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
24025         -lncurses.
24026         * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
24028         * configure.ac: Check for curses libraries and headers.
24030         * Makefile.in (LIBCURSES): New variable.
24032         * genmk.rb (Script::rule): Set the executable bits.
24034         * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
24035         name of the PC partition map is "pc_partition_map" but not "pc".
24037 2005-08-07  Yoshinori K. Okuji  <okuji@enbug.org>
24039         * util/i386/pc/grub-install.in (grub_probefs): New variable.
24040         (modules): Likewise.
24041         (usage): Added descriptions for --modules and --grub-probefs.
24042         Handle --modules and --grub-probefs. Save the arguments in MODULES
24043         and GRUB_PROBEFS, respectively.
24044         Auto-detect a filesystem module against GRUBDIR. If the result is
24045         empty and modules are not specified explicitly, abort the
24046         installation. Add the result to MODULES.
24048         * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
24049         disk/powerpc/ieee1275/ofdisk.c,
24050         include/grub/powerpc/ieee1275/init.h and
24051         term/powerpc/ieee1275/ofconsole.c.
24052         Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
24053         term/ieee1275/ofconsole.c.
24055         * include/grub/powerpc/ieee1275/console.h: Resurrected.
24057         * COPYING: Upgraded to the latest version. Only the address of the
24058         FSF office has changed.
24060 2005-08-07  Yoshinori K. Okuji  <okuji@enbug.org>
24062         * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
24063         kern/ieee1275.c with kern/ieee1275/of.c.
24065         * kern/ieee1275.c: Moved to ...
24066         * kern/ieee1275/of.c: ... here.
24068 2005-08-06  Yoshinori K. Okuji  <okuji@enbug.org>
24070         * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
24071         readability.
24073         * config.guess: Updated to the latest version from gnulib.
24074         * config.sub: Likewise.
24075         * install.sh: Likewise.
24076         * mkinstalldirs: Likewise.
24078         * include/grub/console.h: Removed. This file is arch-specific. Do
24079         not put this in include/grub.
24081         * include/grub/i386/pc/console.h: Resurrected.
24083         * util/console.c: Include grub/machine/console.h instead of
24084         grub/console.h.
24085         * util/grub-emu.c: Likewise.
24087 2005-08-04  Marco Gerards  <metgerards@student.han.nl>
24089         * kern/term.c (grub_putcode): Use `grub_getwh' instead of
24090         hardcoded value.
24092         From Vincent Pelletier  <subdino2004@yahoo.fr>
24093         * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
24094         Redefined to use grub_getwh.
24095         (grub_term): New member named getwh.
24096         (grub_getwh): New prototype.
24097         * kern/term.c (grub_getwh): New function.
24098         * term/i386/pc/console.c (grub_console_getwh): New function.
24099         (grub_console_term): New member `getwh'.
24100         * term/i386/pc/vga.c (grub_vga_getwh): New function.
24101         (grub_vga_term): New member `getwh'.
24102         * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
24103         grub_ssize_t.
24104         (grub_ofconsole_getw): New function.
24105         (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
24106         (grub_ofconsole_term): New field named getwh and new initial
24107         value.
24109 2005-08-03  Hollis Blanchard  <hollis@penguinppc.org>
24111         * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
24112         * include/grub/ieee1275/ieee1275.h: ... to here.  All users updated.
24113         Move `abort', `grub_reboot', and `grub_halt' prototypes ...
24114         * include/grub/powerpc/ieee1275/kernel.h: ... to here.
24115         * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
24116         of <grub/machine/ieee1275.h>.
24117         * commands/ieee1275/reboot.c: Likewise.
24118         * boot/powerpc/ieee1275/ieee1275.c: Move ...
24119         * kern/ieee1275.c: ... to here.  All users updated.  Change all
24120         parameter structs to use new type `grub_ieee1275_cell_t'.
24121         * term/powerpc/ieee1275/ofconsole.c: Move ...
24122         * term/ieee1275/ofconsole.c: ... to here.  All users updated.
24123         * disk/powerpc/ieee1275/ofdisk.c: Move ...
24124         * disk/ieee1275/ofdisk.c: ... to here.  All users updated.
24125         * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
24126         to return int.
24127         * include/grub/i386/pc/console.h: Move to include/grub/console.h.
24128         Remove unused prototypes.  All users updated.
24129         * include/grub/powerpc/ieee1275/console.h: Removed.
24130         * include/grub/powerpc/ieee1275/ieee1275.h: Define
24131         `grub_ieee1275_cell_t'.
24132         * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
24133         Cast comparisons with -1 to the correct type.
24134         * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
24135         type to match `grub_ieee1275_entry_fn'.
24137 2005-08-01  Yoshinori K. Okuji  <okuji@enbug.org>
24139         * DISTLIST: Added util/i386/pc/grub-probefs.c.
24141         * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
24142         (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
24143         partmap/sun.c.
24144         (grub_probefs_SOURCES): New variable.
24146         * util/i386/pc/grub-probefs.c: New file.
24148         * util/i386/pc/grub-setup.c (main): Call
24149         grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
24150         grub_hfs_init and grub_jfs_init to initialize the system. Call
24151         grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
24152         grub_pc_partition_map_fini to finish the system.
24154 2005-07-31  Yoshinori K. Okuji  <okuji@enbug.org>
24156         * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
24157         function.
24158         (grub_multiboot_load_elf32): Likewise.
24159         (grub_multiboot_is_elf64): Likewise.
24160         (grub_multiboot_load_elf64): Likewise.
24161         (grub_multiboot_load_elf): Likewise.
24162         (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
24163         an ELF32 or ELF64 file.
24164         This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
24166         From Serbinenko Vladimir <serbinenko.vova@list.ru>:
24167         * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
24168         NULL before calling FS->LABEL.
24169         * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
24170         * commands/ls.c (grub_ls_list_files): Show labels, if possible.
24171         (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
24172         before calling FS->LABEL.
24174 2005-07-26  Yoshinori K. Okuji  <okuji@enbug.org>
24176         * util/i386/pc/grub-install.in (datadir): New variable.
24177         (libdir): Removed.
24178         (pkgdatadir): New variable.
24179         (pkglibdir): Removed.
24181 2005-07-24  Yoshinori K. Okuji  <okuji@enbug.org>
24183         * DISTLIST: Added util/i386/pc/grub-install.in.
24185         * util/i386/pc/grub-install.in: New file.
24187         * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
24188         (grub_install_SOURCES): Likewise.
24190         * genmk.rb: Added support for scripts.
24191         (Script): New class.
24192         (scripts): New variable.
24194         * Makefile.in (install-local): Install sbin_SCRIPTS by
24195         INSTALL_SCRIPT.
24196         (uninstall): Remove sbin_SCRIPTS.
24198         * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
24199         device, try to get a GRUB device by
24200         grub_util_biosdisk_get_grub_dev.
24201         Free DEST_DEV.
24203         * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
24204         description for --device-map.
24206 2005-07-20  Yoshinori K. Okuji  <okuji@enbug.org>
24208         Change the semantics of variable hooks. They now return strings
24209         instead of error values.
24211         * util/i386/pc/grub-setup.c: Include grub/env.h.
24212         (setup): Use grub_device_set_root instead of grub_env_set.
24214         * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
24215         grub_env_get instead of grub_device_set_root and
24216         grub_device_get_root, respectively.
24218         * kern/main.c (grub_env_write_root): New function.
24219         (grub_set_root_dev): Register grub_env_write_hook for "root". Use
24220         grub_env_set instead of grub_device_set_root.
24222         * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
24223         many variables.
24224         (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
24225         rather than calling ENV->WRITE_HOOK afterwards.
24226         (grub_env_get): Return the result of ENV->READ_HOOK rather than
24227         passing a pointer of a pointer.
24228         (grub_register_variable_hook): Change the types of "read_hook" and
24229         "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
24230         respectively.
24231         Allocate the default empty string on the heap, because this string
24232         may be freed later.
24234         * kern/device.c: Include grub/env.h.
24235         (grub_device_set_root): Removed.
24236         (grub_device_get_root): Likewise.
24237         (grub_device_open): Use grub_env_get instead of
24238         grub_device_get_root.
24240         * include/grub/env.h (grub_env_read_hook_t): New type.
24241         (grub_env_write_hook_t): Likewise.
24242         (grub_env_var): Change the types of "read_hook" and "write_hook"
24243         to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
24244         (grub_register_variable_hook): Likewise.
24246         * include/grub/device.h (grub_device_set_root): Removed.
24247         (grub_device_set_root): Likewise.
24249         * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
24250         make sure that DIRNAME terminates with '/', so that
24251         grub_fat_find_dir will fail if PATH is not a directory.
24253         * commands/ls.c (grub_ls_list_files): Remove the qualifier const
24254         from DIRNAME.
24255         Use the qualifier auto for print_files and print_files_long.
24256         If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
24257         as a regular file.
24258         Put a newline only if there is no error.
24259         (grub_cmd_ls): Remove grub_ls_print_files, because this is not
24260         used.
24262 2005-07-20  Yoshinori K. Okuji  <okuji@enbug.org>
24264         * kern/partition.c (grub_partition_probe): Initialize PART to
24265         NULL. Otherwise, when no partition map is registered, this returns
24266         a garbage.
24268 2005-07-19  Yoshinori K. Okuji  <okuji@enbug.org>
24270         * partmap/apple.c (apple_partition_map_iterate): Check if POS
24271         equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
24272         valid.
24274 2005-07-18  Yoshinori K. Okuji  <okuji@enbug.org>
24276         * commands/ls.c (grub_ls_list_disks): Print the filesystem
24277         information on each device, if it does not have partitions. Print
24278         "Device" instead of "Disk", because this function is not specific
24279         to disk devices.
24281         * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
24282         static to ensure that it is put on the memory rather than a
24283         register.
24285 2005-07-17  Yoshinori Okuji  <okuji@enbug.org>
24287         * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
24288         (grub_cat_init): Likewise.
24289         * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
24290         (options): Likewise.
24291         * commands/configfile.c (GRUB_MOD_INIT): Likewise.
24292         (grub_configfile_init): Likewise.
24293         * font/manager.c (GRUB_MOD_INIT): Likewise.
24294         * commands/help.c (GRUB_MOD_INIT): Likewise.
24295         (grub_help_init): Likewise.
24296         * normal/command.c (grub_command_init): Likewise.
24297         * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
24298         * disk/loopback.c (grub_loop_init): Likewise.
24299         (GRUB_MOD_INIT): Likewise.
24300         * commands/ls.c (grub_ls_init): Likewise.
24301         (GRUB_MOD_INIT): Likewise.
24302         (options): Likewise.
24303         * commands/boot.c (grub_boot_init): Likewise.
24304         (GRUB_MOD_INIT): Likewise.
24305         * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
24306         * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
24307         (GRUB_MOD_INIT): Likewise.
24308         * commands/cmp.c (grub_cmp_init): Likewise.
24309         (GRUB_MOD_INIT): Likewise.
24311         * normal/arg.c: Use <> instead of "" to include header files.
24312         (SHORT_ARG_HELP): New macro.
24313         (SHORT_ARG_USAGE): Likewise.
24314         (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
24315         of 'h' and 'u' for help and usage, respectively. Use more GNU-like
24316         descriptions.
24317         (find_short): Check if C is 'h' or 'u' explicitly.
24318         (grub_arg_show_help): Use space characters instead of tabs. Treat
24319         SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
24320         are shown with --help and --usage only if they are not used for
24321         the command itself.
24322         (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
24323         'h' and 'u'.
24325         * include/grub/arg.h (struct grub_arg_option): Add the qualifier
24326         const into "longarg". Change the type of "shortarg" to int.
24328 2005-07-17  Yoshinori Okuji  <okuji@enbug.org>
24330         * boot/i386/pc/boot.S (boot_drive_check): New label.
24332         * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
24333         macro.
24335         * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
24336         which do not pass a boot drive correctly. Copied from GRUB Legacy.
24338 2005-07-17  Yoshinori Okuji  <okuji@enbug.org>
24340         * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
24341         When turning off Gate A20, skip the check and return immediately,
24342         because this is not fatal usually.
24344 2005-07-17  Yoshinori Okuji  <okuji@enbug.org>
24346         * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
24347         be 0x7C00 instead of 0x8000.
24349         * boot/i386/pc/pxeboot.S: Rewritten.
24351         * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
24352         EXT_C.
24353         (gate_a20_check_state): Read a byte from 0x108000. Invert the
24354         result.
24356 2005-07-16  Yoshinori K. Okuji  <okuji@enbug.org>
24358         * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
24359         robustness. This routine now supports a BIOS call and System
24360         Control Port A to modify the gate A20.
24362         * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
24363         Increased to 0x440.
24365 2005-07-12  Hollis Blanchard  <hollis@penguinppc.org>
24367         * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
24368         device path and resulting ihandle.
24369         (grub_ofdisk_close): dprintf the ihandle being closed.
24370         (grub_ofdisk_read): dprintf function parameters.
24371         * kern/mm.c (grub_mm_init_region): Likewise.
24372         * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
24373         (grub_linux_boot): dprintf the Linux entry point, initrd address and
24374         size, and boot arguments.
24375         (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
24376         before loading into memory.
24377         (grub_rescue_cmd_initrd): dprintf the initrd's address and size
24378         before loading into memory.
24380 2005-07-12  Yoshinori K. Okuji  <okuji@enbug.org>
24382         * kern/mm.c: Added much documentation.
24383         (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
24384         8, set to 5 instead of 8.
24386 2005-07-10  Yoshinori Okuji  <okuji@enbug.org>
24388         * DISTLIST: Added util/i386/pc/grub-mkimage.c.
24390         * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
24391         (grub_mkdevicemap_SOURCES): New variable.
24393         * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
24394         lib/device.c of GRUB Legacy.
24396 2005-07-10  Yoshinori Okuji  <okuji@enbug.org>
24398         * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
24399         instead of PATH is NULL.
24401 2005-07-09  Vincent Pelletier  <subdino2004@yahoo.fr>
24403         * commands/cmp.c (BUFFER_SIZE): New macro.
24404         (grub_cmd_cmp): Close the right file at the right time.  Compare
24405         only data just read.  Don't report files of different  size as
24406         identical.  Dynamically allocate buffers.  Move variable
24407         declarations at the beginning of function.
24409 2005-07-09  Yoshinori Okuji  <okuji@enbug.org>
24411         * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
24412         reverse.
24414 2004-07-04  Vincent Pelletier  <subdino2004@yahoo.fr>
24416         * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
24417         when backspace is pressed at beginning of line.
24419 2005-07-03  Yoshinori Okuji  <okuji@enbug.org>
24421         * DISTLIST: Added genfslist.sh.
24423         * normal/main.c (fs_module_list): New variable.
24424         (autoload_fs_module): New function.
24425         (read_fs_list): Likewise.
24426         (grub_normal_execute): Call read_fs_list.
24428         * kern/fs.c (grub_fs_autoload_hook): New variable.
24429         (grub_fs_probe): Added support for auto-loading.
24431         * include/grub/normal.h (struct grub_fs_module_list): New struct.
24432         (grub_fs_module_list_t): New type.
24434         * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
24435         (grub_fs_autoload_hook): New prototype.
24437         * genfslist.sh: New file.
24439         * genmk.rb: Added a rule to generate a filesystem list.
24441 2005-06-30  Marco Gerards  <metgerards@student.han.nl>
24443         * configure.ac: Fix the test for cross-compiling.
24445         * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'.  Don't
24446         define GRUB_UTIL anymore.
24448         * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
24449         so this function works on other systems than just big endian.
24450         (load_modules): Likewise.
24451         (add_segments): Likewise.
24453 2005-06-23  Hollis Blanchard  <hollis@penguinppc.org>
24455         * kern/misc.c (grub_vsprintf): Add `longfmt'.  If format string
24456         contains `l' modifier, get a long from va_arg().
24458 2005-06-23  Yoshinori K. Okuji  <okuji@enbug.org>
24460         * kern/mm.c (grub_free): If the next free block which is being
24461         merged is the first free block, set the first block to the block
24462         being freed.
24463         Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
24465 2005-05-08  Hollis Blanchard  <hollis@penguinppc.org>
24467         * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
24468         `grub_ieee1275_chosen'.
24470 2005-05-08  Hollis Blanchard  <hollis@penguinppc.org>
24472         * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
24473         (grub_ieee1275_chosen): New variable.
24474         (cmain): Initialize and use `grub_ieee1275_chosen' instead of
24475         `chosen'.
24476         * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
24477         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
24478         Rename first argument to `phandle' for consistency.
24479         (grub_ieee1275_get_property_length): Likewise.
24480         (grub_ieee1275_next_property): Likewise.  Change type of first argument
24481         to grub_ieee1275_phandle_t.
24482         * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
24483         Move export next to declaration.
24484         (grub_ieee1275_chosen): New variable.
24485         * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
24486         Correct cosmetic typo.
24487         * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
24488         `grub_ieee1275_chosen'.
24489         * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
24490         * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
24491         (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
24492         * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
24493         `grub_ieee1275_chosen'.
24495 2005-05-10  Hollis Blanchard  <hollis@penguinppc.org>
24497         * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
24498         /chosen/bootargs.
24499         * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
24500         /chosen/bootargs as "variable=value" pairs.
24502 2005-05-08  Vincent Pelletier  <subdino2004@yahoo.fr>
24504         * include/grub/misc.h (grub_dprintf): New macro.
24505         (grub_real_dprintf): New prototype.
24506         (grub_strword): Likewise.
24507         (grub_iswordseparator): Likewise.
24508         * kern/misc.c (grub_real_dprintf): New function.
24509         (grub_strword): Likewise.
24510         (grub_iswordseparator): Likewise.
24512 2005-04-30  Hollis Blanchard  <hollis@penguinppc.org>
24514         * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
24515         (roundup): Remove macro.
24516         (grub_ieee1275_flags): Make static.
24517         (grub_ieee1275_realmode): Remove.
24518         (grub_ieee1275_test_flag): New function.
24519         (grub_ieee1275_set_flag): Likewise.
24520         (find_options): Rename to `grub_ieee1275_find_options'; update
24521         callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
24522         GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
24523         (cmain): New prototype.
24524         (cmain): Use `grub_ieee1275_set_flag' instead of accessing
24525         `grub_ieee1275_flags' directly.
24526         * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
24527         machine/biosdisk.h.
24528         * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
24529         Don't include grub/machine/init.h.
24530         (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
24531         * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
24532         Remove prototype.
24533         (grub_ieee1275_realmode): Likewise.
24534         (grub_ieee1275_flag): New enum.
24535         (grub_ieee1275_test_flag): New prototype.
24536         (grub_ieee1275_set_flag): New prototype.
24537         * include/grub/powerpc/ieee1275/init.h: Remove file.
24538         * include/grub/powerpc/ieee1275/ofdisk.h: New file.
24539         * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
24540         Include grub/machine/console.h.  Include grub/machine/ofdisk.h.
24541         (grub_machine_fini): Don't call `grub_ieee1275_release'.  Remove
24542         comment.
24543         * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
24544         `grub_ieee1275_test_flag'.
24545         (grub_ieee1275_encode_devname): Likewise.
24547 2005-04-21  Hollis Blanchard  <hollis@penguinppc.org>
24549         * include/grub/powerpc/ieee1275/ieee1275.h
24550         (grub_ieee1275_encode_devname): New prototype.
24551         (grub_ieee1275_get_filename): Likewise.
24552         * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
24553         function.
24554         (grub_set_prefix): Likewise.
24555         (grub_machine_init): Call grub_set_prefix.
24556         * kern/powerpc/ieee1275/openfw.c: Fix typos.
24557         (grub_parse_type): New enum.
24558         (grub_ieee1275_get_devargs): New function.
24559         (grub_ieee1275_get_devname): Likewise.
24560         (grub_ieee1275_parse_args): Likewise.
24561         (grub_ieee1275_get_filename): Likewise.
24562         (grub_ieee1275_encode_devname): Likewise.
24564 2005-03-30  Marco Gerards  <metgerards@student.han.nl>
24566         * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
24567         `grub_loader_unset'.
24569 2005-03-26  Hollis Blanchard  <hollis@penguinppc.org>
24571         * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
24572         instead of grub_ieee1275_interpret.
24573         (grub_halt_init): New function.
24574         (grub_halt_fini): Likewise.
24575         (GRUB_MOD_INIT): Correct message grammar.
24576         * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
24577         instead of grub_ieee1275_interpret.
24578         (grub_reboot_init): New function.
24579         (grub_reboot_fini): Likewise.
24580         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
24581         commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
24582         util/i386/pc/misc.c with commands/ieee1275/halt.c,
24583         commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
24584         * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
24585         function.
24586         * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
24587         Add prototype.
24588         * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
24589         prototype.
24590         (grub_halt): Likewise.
24591         * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
24592         (cmain): Remove __attribute__((unused)).
24593         * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
24594         (grub_heap_len): Likewise.
24595         (grub_machine_fini): New function.
24596         * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
24597         (grub_halt): Likewise.
24598         * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
24599         function.
24600         * util/powerpc/ieee1275/misc.c: New file.
24602 2005-03-19  Yoshinori K. Okuji  <okuji@enbug.org>
24604         * DISTLIST: New file.
24605         * gendistlist.sh: Likewise.
24607         * Makefile.in (COMMON_DISTFILES): Removed.
24608         (BOOT_DISTFILES): Likewise.
24609         (CONF_DISTFILES): Likewise.
24610         (DISK_DISTFILES): Likewise.
24611         (FS_DISTFILES): Likewise.
24612         (INCLUDE_DISTFILES): Likewise.
24613         (KERN_DISTFILES): Likewise.
24614         (LOADER_DISTFILES): Likewise.
24615         (TERM_DISTFILES): Likewise.
24616         (UTIL_DISTFILES): Likewise.
24617         (DISTFILES): Likewise.
24618         (uninstall): Uninstall files in $(pkgdata_DATA).
24619         (DISTLIST): New target.
24620         (distdir): Use the contents of the file DISTLIST to get a list of
24621         distributed files.
24623 2005-03-18  Yoshinori K. Okuji  <okuji@enbug.org>
24625         * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
24626         descriptor. This is ported from GRUB Legacy.
24628         * gencmdlist.sh: Added an extra semicolon to make it work with
24629         old sed versions. Reported by Robert Bihlmeyer
24630         <robbe@orcus.priv.at>.
24632 2005-03-08  Yoshinori Okuji  <okuji@enbug.org>
24634         Automatic loading of commands is supported.
24636         * normal/main.c (read_command_list): New function.
24637         (grub_normal_execute): Call read_command_list.
24639         * normal/command.c (grub_register_command): Return zero or CMD.
24640         Allocate CMD->NAME from the heap.
24641         Initialize CMD->MODULE_NAME to zero.
24642         Find the same name as well. If the same command is found and it is
24643         a dummy command, overwrite members. If it is not a dummy command,
24644         return zero.
24645         (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
24646         (grub_command_find): If a dummy command is found, load a module
24647         and retry to find a command only once.
24649         * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
24650         make sure that each command is loaded.
24652         * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
24653         macro.
24654         (struct grub_command): Remove const from the member `name'.
24655         Add a new member `module_name'.
24656         (grub_register_command): Return grub_command_t.
24658         * commands/help.c (grub_cmd_help): Call grub_command_find to make
24659         sure that each command is loaded.
24661         * genmk.rb (PModule::rule): Specify a module name without the
24662         suffix ".mod" to gencmdlist.sh.
24664 2005-03-02  Yoshinori K. Okuji  <okuji@enbug.org>
24666         * gencmdlist.sh: New file.
24668         * genmk.rb (PModule::rule): Generate a rule for a command list.
24669         Clean command.lst.
24670         Generate command.lst from $(COMMANDFILES).
24672         * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
24673         (DATA): Added $(pkgdata_DATA).
24674         (install-local): Install files in $(pkgdata_DATA).
24676 2005-03-02  Yoshinori K. Okuji  <okuji@enbug.org>
24678         * term/i386/pc/vga.c (debug_command): Removed.
24679         (GRUB_MOD_INIT): Do not register the command "debug".
24681         From Hollis Blanchard:
24682         * commands/configfile.c: New file.
24683         * conf/i386-pc.rmk (grub_emu_SOURCES): Added
24684         commands/configfile.c.
24685         (pkgdata_MODULES): Added configfile.mod.
24686         (configfile_mod_SOURCES): New variable.
24687         (configfile_mod_CFLAGS): Likewise.
24688         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
24689         commands/configfile.c.
24690         (pkgdata_MODULES): Added configfile.mod.
24691         (configfile_mod_SOURCES): New variable.
24692         (configfile_mod_CFLAGS): Likewise.
24693         * util/grub-emu.c (main): Call grub_configfile_init and
24694         grub_configfile_fini.
24695         * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
24696         prototype.
24697         [GRUB_UTIL] (grub_configfile_fini): Likewise.
24699 2005-02-27  Yoshinori K. Okuji  <okuji@enbug.org>
24701         * normal/arg.c (grub_arg_show_help): Do not show the bug report
24702         address.
24704         * commands/help.c (grub_cmd_help): Do not print newlines after
24705         the last command in print_command_help.
24707 2005-02-27  Yoshinori K. Okuji  <okuji@enbug.org>
24709         * commands/default.h: New file.
24710         * commands/timeout.h: Likewise.
24711         * normal/context.c: Likewise.
24713         * util/misc.c: Do not include sys/times.h.
24714         Include sys/time.h and grub/machine/time.h.
24715         (grub_get_rtc): Rewritten with gettimeofday.
24717         * util/grub-emu.c (main): Call grub_default_init and
24718         grub_timeout_init before grub_normal_init, and call
24719         grub_timeout_fini and grub_default_fini after grub_main.
24721         * util/console.c (grub_ncurses_checkkey): Return the read
24722         character or -1.
24724         * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
24725         timeouts.
24727         * normal/main.c (read_config_file): Push MENU. If this fails,
24728         print an error and wait for a user input.
24729         Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
24730         If a menu is empty or an error occurs, pop MENU.
24731         (grub_normal_execute): Pop and free MENU after grub_menu_run
24732         returns.
24734         * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
24736         * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
24737         include time.h.
24738         [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
24739         without GRUB_UTIL.
24740         * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
24741         time.h.
24742         [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
24743         without GRUB_UTIL.
24745         * include/grub/normal.h (struct grub_menu_list): New struct.
24746         (grub_menu_list_t): New type.
24747         (struct grub_context): New struct.
24748         (grub_context_t): New type.
24749         (grub_register_command): Got rid of EXPORT_FUNC.
24750         (grub_unregister_command): Likewise.
24751         (grub_context_get): New prototype.
24752         (grub_context_get_current_menu): Likewise.
24753         (grub_context_push_menu): Likewise.
24754         (grub_context_pop_menu): Likewise.
24755         [GRUB_UTIL] (grub_default_init): Likewise.
24756         [GRUB_UTIL] (grub_default_fini): Likewise.
24757         [GRUB_UTIL] (grub_timeout_init): Likewise.
24758         [GRUB_UTIL] (grub_timeout_fini): Likewise.
24760         * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
24761         commands/timeout.c and normal/context.c.
24762         (pkgdata_MODULES): Added default.mod and timeout.mod.
24763         (normal_mod_SOURCES): Added normal/context.c.
24764         (default_mod_SOURCES): New variable.
24765         (default_mod_CFLAGS): Likewise.
24766         (timeout_mod_SOURCES): Likewise.
24767         (timeout_mod_CFLAGS): Likewise.
24768         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
24769         conf/i386-pc.rmk.
24770         (pkgdata_MODULES): Added default.mod and timeout.mod.
24771         (normal_mod_SOURCES): Added normal/context.c.
24772         (default_mod_SOURCES): New variable.
24773         (default_mod_CFLAGS): Likewise.
24774         (timeout_mod_SOURCES): Likewise.
24775         (timeout_mod_CFLAGS): Likewise.
24777         * Makefile.in (all-local): Added $(MKFILES).
24779 2005-02-21  Vincent Pelletier  <subdino2004@yahoo.fr>
24781         * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
24782         (grub_emu_SOURCES): Likewise.
24783         (pkgdata_MODULES): Add `sun.mod'.
24784         (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
24785         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
24786         `partmap/sun.c'.
24787         (pkgdata_MODULES): Add `sun.mod'.
24788         (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
24789         * include/grub/partition.h (grub_sun_partition_map_init): New
24790         prototype.
24791         (grub_sun_partition_map_fini): Likewise.
24792         * partmap/sun.c: New file.
24793         * util/grub-emu.c (main): Initialize and de-initialize the sun
24794         partitionmap support.
24796 2005-02-19  Yoshinori K. Okuji  <okuji@enbug.org>
24798         This implements an Emacs-like menu entry editor.
24800         * normal/menu_entry.c: New file.
24802         * util/console.c (grub_ncurses_putchar): Translate some Unicode
24803         characters to ASCII.
24804         (saved_char): New variable.
24805         (grub_ncurses_checkkey): Rewritten completely.
24806         (grub_ncurses_getkey): Likewise.
24807         (grub_ncurses_init): Call raw instead of cbreak.
24809         * normal/menu.c (print_entry): Do not put a space.
24810         (init_page): Renamed to ...
24811         (grub_menu_init_page): ... this. All callers changed.
24812         (edit_menu_entry): Removed.
24813         (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
24815         * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
24817         * kern/misc.c (grub_vprintf): Call grub_refresh.
24819         * normal/menu.c (DISP_LEFT): Renamed to ...
24820         * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
24821         * normal/menu.c (DISP_UP): Renamed to ...
24822         * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
24823         * normal/menu.c (DISP_RIGHT): Renamed to ...
24824         * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
24825         * normal/menu.c (DISP_DOWN): Renamed to ...
24826         * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
24827         * normal/menu.c (DISP_HLINE): Renamed to ...
24828         * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
24829         * normal/menu.c (DISP_VLINE): Renamed to ...
24830         * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
24831         * normal/menu.c (DISP_UL): Renamed to ...
24832         * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
24833         * normal/menu.c (DISP_UR): Renamed to ...
24834         * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
24835         * normal/menu.c (DISP_LL): Renamed to ...
24836         * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
24837         * normal/menu.c (DISP_LR): Renamed to ...
24838         * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
24839         * normal/menu.c (TERM_WIDTH): Renamed to ...
24840         * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
24841         * normal/menu.c (TERM_HEIGHT): Renamed to ...
24842         * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
24843         * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
24844         * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
24845         * normal/menu.c (TERM_MARGIN): Renamed to ...
24846         * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
24847         * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
24848         * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
24849         * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
24850         * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
24851         * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
24852         * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
24853         * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
24854         * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
24855         * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
24856         * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
24857         * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
24858         * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
24859         * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
24860         * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
24861         * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
24862         * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
24863         * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
24864         * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
24865         * normal/menu.c (TERM_CURSOR_X): Renamed to ...
24866         * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
24867         All callers changed.
24869         * include/grub/normal.h: New prototype.
24871         * conf/i386-pc.rmk (grub_emu_SOURCES): Added
24872         normal/menu_entry.c.
24873         (normal_mod_SOURCES): Likewise.
24874         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
24875         (normal_mod_SOURCES): Likewise.
24877 2005-02-15  Yoshinori K. Okuji  <okuji@enbug.org>
24879         * include/grub/normal.h (grub_halt_init): New prototype.
24880         (grub_halt_fini): Likewise.
24881         (grub_reboot_init): Likewise.
24882         (grub_reboot_fini): Likewise.
24884         * util/grub-emu.c: Include signal.h.
24885         (main_env): New global variable.
24886         (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
24887         catch C-c.
24888         (grub_machine_fini): New function.
24889         (main): Call grub_halt_init and grub_reboot_init before
24890         grub_main, and grub_reboot_fini and grub_halt_fini after it.
24891         Call setjmp with MAIN_ENV to go back afterwards.
24892         Call grub_machine_fini right before return.
24894         * include/grub/util/misc.h: Include setjmp.h.
24895         (main_env): New prototype.
24897         * include/grub/kernel.h (grub_machine_fini): New prototype.
24898         * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
24899         * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
24901         * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
24902         * kern/i386/pc/init.c (grub_machine_fini): Likewise.
24903         * term/i386/pc/console.c (grub_console_fini): Likewise.
24905         * util/i386/pc/misc.c: New file.
24907         * conf/i386-pc.rmk (grub_emu_SOURCES): Added
24908         util/i386/pc/misc.c, commands/i386/pc/halt.c and
24909         commands/i386/pc/reboot.c.
24911 2005-02-14  Guillem Jover  <guillem@hadrons.org>
24913         * include/grub/dl.h (grub_dl_check_header): New prototype.
24914         (grub_arch_dl_check_header): Change return type to grub_err_t,
24915         remove size parameter and export function.  Update all callers.
24916         * kern/dl.c (grub_dl_check_header): New function.
24917         (grub_dl_load_core): Use `grub_dl_check_header' instead of
24918         `grub_arch_dl_check_header'.  Check ELF type.  Check if sections
24919         are inside the core.
24920         * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
24921         independent ELF header checks.
24922         * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
24923         * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
24924         `grub_dl_check_header' instead of explicit checks.  Check for the
24925         ELF type.
24926         * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
24927         `grub_dl_check_header' instead of explicit checks.  Remove arch
24928         specific ELF header checks.
24930         * util/grub-emu.c (grub_arch_dl_check_header): Remove the
24931         argument SIZE.
24933 2005-02-13  Hollis Blanchard  <hollis@penguinppc.org>
24935         * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
24936         * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
24938 2005-02-12  Hollis Blanchard  <hollis@penguinppc.org>
24940         * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
24941         return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
24942         (part_map_iterate): Clear `grub_errno' and return 0 if
24943         `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
24944         * partmap/amiga.c (amiga_partition_map_iterate): Return
24945         GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
24946         * partmap/apple.c (apple_partition_map_iterate): Likewise.
24948 2005-02-01  Guillem Jover  <guillem@hadrons.org>
24950         * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
24951         help info.
24953 2005-01-31  Marco Gerards  <metgerards@student.han.nl>
24955         * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
24956         Removed prototype.
24957         (grub_rescue_cmd_linux): New prototype.
24958         (grub_rescue_cmd_initrd): Likewise.
24959         * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
24960         `bi_rec'.
24961         (grub_linux_release_mem): Release the memory for the initrd.
24962         (grub_load_linux): Renamed from this...
24963         (grub_rescue_cmd_linux): ...To this.  Changed all callers.
24964         Changed `entry' not to be static.  Loop over memory regions to
24965         find another one when the default fails.
24966         (grub_rescue_cmd_initrd): New function.
24967         (grub_linux_init): Remove function.
24968         (grub_linux_fini): Likewise.
24969         (GRUB_MOD_INIT): Register `initrd'.
24970         (GRUB_MOD_FINI): Unregister `initrd'.
24971         * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
24972         Function removed.
24973         (grub_linux_normal_fini): Likewise.
24974         (GRUB_MOD_INIT): Register `initrd'.
24975         (GRUB_MOD_FINI): Unregister `initrd'.
24977 2005-01-31  Marco Gerards  <metgerards@student.han.nl>
24979         * commands/help.c: New file.
24980         * normal/arg.c (show_help): Renamed to...
24981         (grub_arg_show_help): ... this.
24982         * commands/i386/pc/halt.c: New file.
24983         * commands/i386/pc/reboot.c: Likewise.
24984         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
24985         (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
24986         (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
24987         (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
24988         variables.
24989         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
24990         `commands/help.c'.
24991         (pkgdata_MODULES): Add `help.mod'.
24992         (help_mod_SOURCES, help_mod_CFLAGS): New variables.
24993         * grub/i386/pc/init.h (grub_reboot): New prototype.
24994         (grub_halt): Likewise.
24995         * include/grub/normal.h (grub_arg_show_help): New prototype.
24996         (grub_help_init): Likewise.
24997         (grub_help_fini): Likewise.
24998         * util/grub-emu.c (main): Initialize and deinitialize the help
24999         command.
25001         * normal/cmdline.c (grub_cmdline_get): Doc fix.
25003         * normal/command.c (grub_command_init): Fixed the description of
25004         the `set' and `unset' commands.
25006 2005-01-31  Marco Gerards  <metgerards@student.han.nl>
25008         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
25009         function.
25010         * commands/ieee1275/halt.c: New file.
25011         * commands/ieee1275/reboot.c: Likewise.
25012         * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
25013         `__attribute__ ((unused))'.  Some GCS related fixed.
25014         (grub_suspend_init) [GRUB_UTIL]: Function removed.
25015         (grub_suspend_fini): Likewise.
25016         * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
25017         and `halt.mod'.
25018         (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
25019         (halt_mod_CFLAGS): New variables.
25020         * include/grub/powerpc/ieee1275/ieee1275.h
25021         (grub_ieee1275_interpret): New prototype.
25023 2005-01-29  Yoshinori K. Okuji  <okuji@enbug.org>
25025         * include/grub/misc.h (memmove): New prototype.
25026         (memcpy): Likewise.
25028 2005-01-22  Hollis Blanchard  <hollis@penguinppc.org>
25030         * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
25031         `devpath' to 0.  Use `name' instead of `devpath' with `grub_strndup'.
25033 2005-01-22  Marco Gerards  <metgerards@student.han.nl>
25035         * kern/misc.c (grub_strndup): Function rewritten.
25037 2005-01-22  Vincent Pelletier  <subdino2004@yahoo.fr>
25039         * normal/menu.c (TERM_WIDTH): Macro redefined.
25040         (TERM_TOP_BORDER_Y): Likewise.
25041         (draw_border): Replaced while-loop by a for-loop.  Make the number
25042         of lines consistent with the number of lines displayed in
25043         print_entries.  Added a margin below the rectangle.
25044         (print_entry): Make the entry fit in the rectangle.
25045         (print_entries): Display the scroll arrows next to the right
25046         border.
25048 2005-01-21  Marco Gerards  <metgerards@student.han.nl>
25050         * fs/minix.c (grub_minix_find_file): Reserve more space for
25051         `fpath' so the \0 can be stored.  Use `grub_strcpy' instead of
25052         `grub_strncpy' to copy `path' into it.
25054 2005-01-21  Marco Gerards  <metgerards@student.han.nl>
25056         Add the loopback device, a device via which files can be accessed
25057         as devices.
25059         * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
25060         (pkgdata_MODULES): Add loopback.mod.
25061         (loopback_mod_SOURCES): New variable.
25062         (loopback_mod_CFLAGS): Likewise.
25063         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
25064         `disk/loopback.c'.
25065         (pkgdata_MODULES): Add loopback.mod.
25066         (loopback_mod_SOURCES): New variable.
25067         (loopback_mod_CFLAGS): Likewise.
25068         * disk/loopback.c: new file.
25069         * include/grub/normal.h (grub_loop_init): New prototype.
25070         (grub_loop_fini): New prototype.
25071         * util/grub-emu.c (main): Initialize and de-initialize loopback
25072         support.
25073         * include/grub/disk.h (grub_disk_dev_id): Add
25074         `GRUB_DISK_DEVICE_LOOPBACK_ID'.
25076 2005-01-20  Hollis Blanchard  <hollis@penguinppc.org>
25078         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
25079         function.
25080         * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
25081         (suspend_mod_SOURCES): New variable.
25082         (suspend_mod_CFLAGS): Likewise.
25083         * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
25084         New prototype.
25085         * commands/ieee1275/suspend.c: New file.
25087 2005-01-20  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>
25089         * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
25090         ((unused))' to `__attribute__ ((used))'.
25091         (GRUB_MOD_FINI): Likewise.
25092         * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
25093         * genmk.rb (PModule): Assign space to common symbols when linking
25094         modules.
25096 2005-01-20  Marco Gerards  <metgerards@student.han.nl>
25098         * include/grub/mm.h (grub_mm_init_region): Change the type of the
25099         `unsigned' arguments to `grub_size_t'.
25100         (grub_malloc): Likewise.
25101         (grub_realloc): Likewise.
25102         (grub_memalign): Likewise.
25103         * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
25104         * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
25105         * util/misc.c (grub_malloc): Likewise.
25106         (grub_realloc): Likewise.
25107         * kern/mm.c (get_header_from_pointer): Change the casts to
25108         `unsigned' into a cast to `grub_size_t'.
25110         * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
25111         point to `currnode' when `currnode' is changed.
25113         * util/grub-emu.c (main): Initialize `progname'.  Reported by Nico
25114         Schottelius <nico-linux@schottelius.org>.
25116 2005-01-09  Hollis Blanchard  <hollis@penguinppc.org>
25118         * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
25119         (note_path): Remove variable.
25120         (GRUB_IEEE1275_NOTE_NAME): New macro.
25121         (GRUB_IEEE1275_NOTE_TYPE): Likewise.
25122         (grub_ieee1275_note_hdr): New structure.
25123         (grub_ieee1275_note_desc): Likewise.
25124         (grub_ieee1275_note): Likewise.
25125         (load_note): Remove `dir' argument.  All callers updated.  Remove
25126         `note_img' and `path'.  Do not load a file from `note_path'.
25127         Initialize a struct grub_ieee1275_note and write that to `out'.
25128         Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
25130 2005-01-05  Marco Gerards  <metgerards@student.han.nl>
25132         * util/misc.c (grub_util_read_image): Revert last change.  It
25133         called `grub_util_read_at', which seeks from the beginning of the
25134         file.
25136 2005-01-04  Hollis Blanchard  <hollis@penguinppc.org>
25138         * TODO: Add note about endianness in grub-mkimage.
25139         * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
25140         section.
25141         * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
25142         (grub_mkimage_SOURCES): New target.
25143         * include/grub/kernel.h (grub_start_addr): Remove variable.
25144         (grub_end_addr): Likewise.
25145         (grub_total_module_size): Likewise.
25146         (grub_kernel_image_size): Likewise.
25147         (GRUB_MODULE_MAGIC): New constant.
25148         (grub_module_info): New structure.
25149         (grub_arch_modules_addr): New prototype.
25150         (grub_get_end_addr): Remove prototype.
25151         * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
25152         * include/grub/powerpc/ieee1275/kernel.h: New file.
25153         * include/grub/util/misc.h (grub_util_get_fp_size): New
25154         prototype.
25155         (grub_util_read_at): Likewise.
25156         (grub_util_write_image_at): Likewise.
25157         * kern/main.c (grub_get_end_addr): Remove function.
25158         (grub_load_modules): Call grub_arch_modules_addr instead of using
25159         grub_end_addr.  Look for a grub_module_info struct in memory.  Use
25160         the grub_module_info fields instead of calling grub_get_end_addr
25161         as loop conditions.  Move grub_add_unused_region code here.
25162         (grub_add_unused_region): Remove function.
25163         * kern/i386/pc/init.c: Include grub/cache.h.
25164         (grub_machine_init): Remove call to grub_get_end_addr.  Remove
25165         one call to add_mem_region.
25166         (grub_arch_modules_addr): New function.
25167         * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
25168         (grub_total_module_size): Likewise.
25169         Include grub/machine/kernel.h.
25170         (grub_arch_modules_addr): New function.
25171         * util/grub-emu.c (grub_end_addr): Remove variable.
25172         (grub_total_module_size): Likewise.
25173         (grub_arch_modules_addr): New function.
25174         * util/misc.c: Include unistd.h.
25175         (grub_util_get_fp_size): New function.
25176         (grub_util_read_at): Likewise.
25177         (grub_util_write_image_at): Likewise.
25178         (grub_util_read_image): Call grub_util_read_at.
25179         (grub_util_write_image): Call grub_util_write_image_at.
25180         * util/i386/pc/grub-mkimage.c (generate_image): Allocate
25181         additional memory in kernel_img for a struct grub_module_info.
25182         Fill in that grub_module_info.
25183         * util/powerpc/ieee1275/grub-mkimage.c: New file.
25185 2005-01-03  Hollis Blanchard  <hollis@penguinppc.org>
25187         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
25188         New function.
25189         * include/grub/powerpc/ieee1275/ieee1275.h
25190         (grub_ieee1275_milliseconds): New prototype.
25191         * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
25192         Change to 1000.
25193         * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
25194         grub_ieee1275_milliseconds.
25196 2005-01-03  Hollis Blanchard  <hollis@penguinppc.org>
25198         * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
25199         variable.
25200         (find_options): New function.
25201         (cmain): Call find_options.
25202         * include/grub/powerpc/ieee1275/ieee1275.h
25203         (grub_ieee1275_realmode): New extern variable.
25204         * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
25205         grub_map if grub_ieee1275_realmode is false.
25207 2004-12-29  Marco Gerards  <metgerards@student.han.nl>
25209         * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
25210         lines are inserted and make it work like readline.  Reported by
25211         Vincent Pelletier <subdino2004@yahoo.fr>.
25213 2004-12-28  Marco Gerards  <metgerards@student.han.nl>
25215         * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
25217         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
25218         `kern/powerpc/cache.S'.
25220 2004-12-27  Marco Gerards  <metgerards@student.han.nl>
25222         * genmk.rb: Handle the `Program' class in the main loop.  Written
25223         by Johan Rydberg <jrydberg@gnu.org>.
25224         (Program): New class.
25225         (programs): New variable.
25226         * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
25227         instead of "grub/machine/ieee1275.h".  Include <grub/kernel.h>
25228         instead of "grub/kernel.h".  Include <grub/machine/init.h>.
25229         (help_arch): Function removed.
25230         * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
25231         `powerpc/libgcc.h' and `loader.h'.
25232         (pkgdata_PROGRAMS): New variable.
25233         (sbin_UTILITIES): Variable removed.
25234         (grub_emu_SOURCES): Added kern/powerpc/cache.S.
25235         (grubof_SOURCES): Variable re-defined so it only includes the
25236         core functionality.
25237         (grubof_CFLAGS): Remove `-DGRUBOF'.
25238         (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
25239         (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
25240         (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
25241         (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
25242         (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
25243         (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
25244         (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
25245         (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
25246         (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
25247         (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
25248         (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
25249         (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
25250         (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
25251         (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
25252         (pc_mod_CFLAGS): New variables.
25253         * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
25254         (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
25255         * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
25256         * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
25257         Moved from here...
25258         * include/grub/i386/pc/init.h (grub_os_area_addr)
25259         (rub_os_area_size): ... to here.
25260         * include/grub/powerpc/ieee1275/ieee1275.h
25261         (grub_ieee1275_entry_fn): Export symbol.
25262         * include/grub/powerpc/ieee1275/init.h: New file.
25263         * include/grub/powerpc/libgcc.h: Likewise.
25264         * include/grub/cache.h: Likewise.
25265         * kern/powerpc/cache.S: Likewise.  Written by Hollis Blanchard
25266         <hollis@penguinppc.org>.
25267         * kern/dl.c: Include <grub/cache.h>.
25268         (grub_dl_flush_cache): New function.
25269         (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
25270         for this module.
25271         * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
25272         (grub_console_init): Removed prototypes.
25273         (grub_machine_init): Don't initialize the modules anymore.
25274         * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
25275         static.
25276         * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
25277         Macro undef removed.
25278         (GRUB_HOST_WORDS_BIGENDIAN): New macro.
25279         * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
25280         relocation `R_PPC_REL32'.  Return an error when the relocation is
25281         unknown.
25282         * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
25283         * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
25284         * util/misc.c (grub_arch_sync_caches): Likewise.
25286 2004-12-19  Marco Gerards  <metgerards@student.han.nl>
25288         * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
25289         `symlist.c', add `grubof_symlist.c'.
25290         (symlist.c): Variable removed.
25291         (grubof_HEADERS): Variable added.
25292         (grubof_symlist.c): New target.
25293         (kernel_syms.lst): Use `grubof_HEADERS' instead of
25294         `kernel_img_HEADERS'.
25295         (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
25296         * kern/powerpc/dl.c: New file.
25297         * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
25298         Function removed.
25299         (grub_arch_dl_relocate_symbols): Likewise.
25300         (grub_register_exported_symbols): Likewise.
25302 2004-12-13  Marco Gerards  <metgerards@student.han.nl>
25304         * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
25305         (grub_ext2_dir): Likewise.  Don't return in case of an error, jump
25306         to fail instead.  Reported by Vincent Pelletier
25307         <subdino2004@yahoo.fr>.
25309         * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
25310         it is not allocated.  Reported by Vincent Pelletier
25311         <subdino2004@yahoo.fr>.
25313         * normal/cmdline.c (grub_tab_complete): Add a blank line to the
25314         output so the output looks better.
25316 2004-12-04  Marco Gerards  <metgerards@student.han.nl>
25318         Modulize the partition map support and add support for the amiga
25319         partition map.
25321         * commands/ls.c: Include <grub/partition.h> instead of
25322         <grub/machine/partition.h>.
25323         * kern/disk.c: Likewise.
25324         * kern/rescue.c: Likewise.
25325         * loader/i386/pc/chainloader.c: Likewise.
25326         * normal/cmdline.c: Likewise.
25327         * kern/powerpc/ieee1275/init.c: Likewise.
25328         (grub_machine_init): Call `grub_pc_partition_map_init',
25329         `grub_amiga_partition_map_init' and
25330         `grub_apple_partition_map_init'.
25331         * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
25332         `disk/i386/pc/partition.c'.  Add `kern/partition.c'.
25333         (kernel_img_HEADERS): Remove `machine/partition.h'.  Add
25334         `partition.h' and `pc_partition.h'.
25335         (grub_setup_SOURCES): Remove
25336         `disk/i386/pc/partition.c'.  Add `kern/partition.c',
25337         `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
25338         (grub_emu_SOURCES): Likewise.
25339         (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
25340         (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
25341         (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
25342         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
25343         `disk/powerpc/ieee1275/partition.c'.  Add `kern/partition.c',
25344         `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
25345         (grubof_SOURCES): Likewise.
25346         * disk/i386/pc/partition.c: File removed.
25347         * disk/powerpc/ieee1275/partition.c: Likewise.
25348         * include/grub/powerpc/ieee1275/partition.h: Likewise.
25349         * include/grub/i386/pc/partition.h: Likewise.
25350         * kern/partition.c: New file.
25351         * partmap/amiga.c: Likewise.
25352         * partmap/apple.c: Likewise.
25353         * partmap/pc.c: Likewise.
25354         * include/grub/partition.h: Likewise..
25355         * include/grub/pc_partition.h: Likewise.
25356         * util/grub-emu.c: Include <grub/partition.h> instead of
25357         <grub/machine/partition.h>.
25358         (main): Call `grub_pc_partition_map_init',
25359         `grub_amiga_partition_map_init' and
25360         `grub_apple_partition_map_init' and deinitialize afterwards.
25361         * util/i386/pc/biosdisk.c: Include `#include
25362         <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
25363         `<grub/machine/partition.h>'.
25364         * util/i386/pc/grub-setup.c: Likewise.
25365         * util/i386/pc/biosdisk.c: Likewise.
25366         (grub_util_biosdisk_get_grub_dev): Only access the PC specific
25367         partition information in case of a PC partition.
25368         * util/i386/pc/grub-setup.c: Include `#include
25369         <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
25370         `<grub/machine/partition.h>'.
25371         (setup): Only access the PC specific partition information in case
25372         of a PC partition.
25374 2004-11-17  Hollis Blanchard  <hollis@penguinppc.org>
25376         * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
25377         (grub_longjmp): Likewise.
25378         * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
25379         20.
25380         * normal/powerpc/setjmp.S: New file.
25381         * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
25382         `normal/powerpc/setjmp.S'.
25383         (grubof_CFLAGS): Add `-DGRUBOF'.
25384         * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
25385         [GRUB_UTIL && !GRUBOF].
25387 2004-11-16  Marco Gerards  <metgerards@student.han.nl>
25389         * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
25390         property named `name'.  Correctly handle the error returned by
25391         `grub_ieee1275_finddevice' if a device can not be opened.
25393 2004-11-02  Hollis Blanchard  <hollis@penguinppc.org>
25395         * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
25396         `actual' for negativity.
25397         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
25398         kern/fshelp.c.
25400 2004-11-01  Marco Gerards  <metgerards@student.han.nl>
25402         * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
25403         (PAGE_OFFSET): New macro.
25404         (CRTC_ADDR_PORT): Likewise.
25405         (CRTC_DATA_PORT): Likewise.
25406         (START_ADDR_HIGH_REGISTER): Likewise.
25407         (START_ADDR_LOW_REGISTER): Likewise.
25408         (GRAPHICS_ADDR_PORT): Likewise.
25409         (GRAPHICS_DATA_PORT): Likewise.
25410         (READ_MAP_REGISTER): Likewise.
25411         (INPUT_STATUS1_REGISTER): Likewise.
25412         (INPUT_STATUS1_VERTR_BIT): Likewise.
25413         (page): New variable.
25414         (wait_vretrace): New function.
25415         (set_read_map): Likewise.
25416         (set_start_address): Likewise.
25417         (grub_vga_init): Use mode 0x10 instead of mode 0x12.  Switch to
25418         the right page.
25419         (check_vga_mem): Take the page into account.
25420         (write_char): Likewise.
25421         (write_cursor): Likewise.
25422         (scroll_up): Likewise.  Copy the page to the page that is not
25423         shown and switch between both pages.
25424         (grub_vga_putchar): Fix off by one error.
25425         (grub_vga_cls): Wait for the vertical retrace.  Take the page into
25426         account.
25428 2004-11-01  Marco Gerards  <metgerards@student.han.nl>
25430         Add support for iso9660 (including rockridge).
25432         * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
25433         (iso9660_mod_SOURCES): New variable.
25434         (iso9660_mod_CFLAGS): Likewise.
25435         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
25436         * include/grub/fs.h (grub_iso9660_init): New prototype.
25437         * util/grub-emu.c (main): Call `grub_iso9660_init'.
25438         * fs/iso9660.c: New file.
25440         * include/grub/misc.h (grub_strncat): New prototype.
25441         * kern/misc.c (grub_strncat): New function.
25443         * fs/hfs.c (grub_hfs_mount): Translate the error
25444         `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
25445         * fs/jfs.c (grub_jfs_mount): Likewise.
25446         * fs/ufs.c (grub_ufs_mount): Likewise.
25448 2004-10-28  Hollis Blanchard  <hollis@penguinppc.org>
25450         * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
25451         which initialized BAT registers.
25452         * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
25453         grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
25454         Move from here...
25455         * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
25456         grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
25457         ... to here.
25458         * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
25459         (grub_mapclaim): Likewise.
25460         * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
25461         grub_mapclaim instead of grub_ieee1275_claim.  Assign linux_addr by
25462         hand.
25464 2004-10-19  Hollis Blanchard  <hollis@penguinppc.org>
25466         * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
25467         (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
25468         -ffreestanding and -msoft-float.
25470 2004-10-15  Hollis Blanchard  <hollis@penguinppc.org>
25472         * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
25473         append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
25474         set in grub_ieee1275_flags.
25476 2004-10-14  Hollis Blanchard  <hollis@penguinppc.org>
25478         * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
25479         prototype.
25480         * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
25481         grub_console_init first.
25482         Change the memory range used for grub_ieee1275_claim and
25483         grub_mm_init_region.
25484         Print an error message if the claim fails.
25485         Include <grub/misc.h>.
25487 2004-10-13  Hollis Blanchard  <hollis@penguinppc.org>
25489         * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
25490         Call grub_children_iterate for device nodes of type `scsi',
25491         `ide', or `ata'.
25492         (grub_ofdisk_open): Remove manual device alias resolution.
25493         Fix memory leak when device cannot be opened.
25494         * include/grub/powerpc/ieee1275/ieee1275.h
25495         (grub_children_iterate): New prototype.
25496         * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
25497         New function.
25498         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
25499         Return -1 if args.size was -1.
25501 2004-10-11  Hollis Blanchard  <hollis@penguinppc.org>
25503         * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
25504         (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
25505         World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
25506         Open Firmware's memory for it; claim memory from _start to _end.
25507         * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
25508         (_end): New extern.
25509         (_start): Zero BSS from __bss_start to _end.
25510         * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
25511         New extern.
25512         (GRUB_IEEE1275_NO_PARTITION_0): New #define.
25514 2004-10-11  Hollis Blanchard  <hollis@penguinppc.org>
25516         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
25517         -1 if args.base was -1.
25519 2004-10-08  Hollis Blanchard  <hollis@penguinppc.org>
25521         * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
25522         escape sequence instead of a literal ^L. Also call
25523         grub_ofconsole_gotoxy.
25525 2004-10-03  Hollis Blanchard  <hollis@penguinppc.org>
25527         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
25528         void *  arguments to grub_addr_t.  All callers updated.  Also make
25529         the `result' argument optional.
25530         (grub_ieee1275_release): change void * arguments to grub_addr_t.
25531         All callers updated.
25533 2004-09-22  Hollis Blanchard  <hollis@penguinppc.org>
25535         * commands/ls.c (grub_ls_list_files): Use the string following the
25536         initial ')', if present, as the filesystem path.
25537         * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
25539         * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
25541 2004-09-18  Yoshinori K. Okuji  <okuji@enbug.org>
25543         Make the source code of the menu interface more readable.
25545         * normal/menu.c: Include grub/mm.h.
25546         (TERM_WIDTH): New macro.
25547         (TERM_HEIGHT): Likewise.
25548         (TERM_INFO_HEIGHT): Likewise.
25549         (TERM_MARGIN): Likewise.
25550         (TERM_SCROLL_WIDTH): Likewise.
25551         (TERM_TOP_BORDER_Y): Likewise.
25552         (TERM_LEFT_BORDER_X): Likewise.
25553         (TERM_BORDER_WIDTH): Likewise.
25554         (TERM_MESSAGE_HEIGHT): Likewise.
25555         (TERM_BORDER_HEIGHT): Likewise.
25556         (TERM_NUM_ENTRIES): Likewise.
25557         (TERM_FIRST_ENTRY_Y): Likewise.
25558         (TERM_ENTRY_WIDTH): Likewise.
25559         (TERM_CURSOR_X): Likewise.
25560         (draw_border): Use macros instead of magic numbers.
25561         (print_entry): Likewise.
25562         (print_entries): Likewise.
25563         (run_menu): Likewise. Also, handle the key 'e'.
25564         (run_menu_entry): Ignore empty command lines.
25565         (print_message): Added a new argument EDIT. If EDIT is true,
25566         print a different message.
25567         (init_page): Likewise.
25568         (edit_menu_entry): New function. Not implemented yet.
25570 2004-09-17  Marco Gerards  <metgerards@student.han.nl>
25572         Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
25573         can be loaded from normal mode.
25575         * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
25576         `multiboot.mod'.
25577         (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
25578         (multiboot_mod_CFLAGS): New variables.
25579         * loader/i386/pc/linux_normal.c: New file.
25580         * loader/i386/pc/multiboot_normal.c: Likewise.
25582         * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
25583         attribute `unused'.
25585         * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type.  Use
25586         `fdiro' to read the mode information from instead of `diro'.
25588         * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
25589         looking up a symlink.
25591         * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
25592         macro.
25593         * normal/command.c (grub_command_execute): Don't parse the
25594         arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
25595         flags of the command.
25597         * normal/menu.c (grub_menu_run): Fix typo.
25599 2004-09-14  Hollis Blanchard  <hollis@penguinppc.org>
25601         * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
25603         * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
25604         `y + 1' instead of `y - 1'.
25606         * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
25608 2004-09-14  Yoshinori K. Okuji  <okuji@enbug.org>
25610         From Hollis Blanchard <hollis@penguinppc.org>:
25611         * kern/misc.c (memmove): New alias for grub_memmove.
25612         (memcmp): New alias for grub_memcmp.
25613         (memset): New alias for grub_memset.
25614         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
25615         Change "int handle" to "grub_ieee1275_phandle_t handle".
25616         * include/grub/powerpc/ieee1275/ieee1275.h
25617         (grub_ieee1275_get_property): Likewise.
25619 2004-09-12  Tomas Ebenlendr  <ebik@ucw.cz>
25621         Added normal mode command `chainloader' as module chain.mod, which
25622         depends on normal.mod and _chain.mod.
25624         * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
25625         (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
25626         * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
25627         Deleted prototype.
25628         * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
25629         but arguments parsing moved to ...
25630         (grub_chainloader_cmd): ... here.  New function.
25631         * include/grub/i386/pc/chainloader.h: New file.
25632         * loader/i386/pc/chainloader_normal.c: Likewise.
25634 2004-09-11  Marco Gerards  <metgerards@student.han.nl>
25636         * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
25637         (grub_mkimage_LDFLAGS): Likewise.
25638         (grub_emu_SOURCES): Likewise.
25639         (kernel_img_HEADERS): Added fshelp.h.
25640         * fs/ext2.c: Include <grub/fshelp.h>.
25641         (FILETYPE_REG): New macro.
25642         (FILETYPE_INO_REG): Likewise.
25643         (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
25644         Changed all users.
25645         (ext2_block_group): Renamed to `grub_ext2_block_group'.  Changed
25646         all users.
25647         (grub_fshelp_node): New struct.
25648         (grub_ext2_data): Added member `diropen'.  Changed member `inode'
25649         to a pointer.
25650         (grub_ext2_get_file_block): Removed function.
25651         (grub_ext2_read_block): New function.
25652         (grub_ext2_read_file): Replaced parameter `data' by `node'.
25653         This function was written.
25654         (grub_ext2_mount): Read the root inode.  Create a diropen struct.
25655         (grub_ext2_find_file): Removed function.
25656         (grub_ext2_read_symlink): New function.
25657         (grub_ext2_iterate_dir): Likewise.
25658         (grub_ext2_open): Rewritten.
25659         (grub_ext2_dir): Rewritten.
25660         * include/grub/fshelp.h: New file.
25661         * fs/fshelp.c: Likewise.
25663 2004-09-10  Yoshinori K. Okuji  <okuji@enbug.org>
25665         * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
25666         (print_message): Add a missing newline.
25667         (run_menu): Added timeout support.
25668         (run_menu_entry): New local function.
25669         (grub_menu_run): Added support for booting.
25671         * kern/loader.c (grub_loader_is_loaded): New function.
25673         * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
25674         (grub_get_rtc): Exported.
25676         * include/grub/i386/pc/time.h: Include grub/symbol.h.
25677         (grub_get_rtc): Exported.
25679         * include/grub/normal.h (struct grub_command_list): Remove
25680         constant from the member `command'.
25682         * include/grub/loader.h (grub_loader_is_loaded): Declared.
25684         * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
25686         * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
25688 2004-08-28  Marco Gerards  <metgerards@student.han.nl>
25690         Add support for the JFS filesystem.
25692         * fs/jfs.c: New file.
25693         * include/grub/fs.h (grub_jfs_init): New prototype.
25694         (grub_jfs_fini): New prototype.
25695         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
25696         (grub_emu_SOURCES): Likewise.
25697         (pkgdata_MODULES): Add jfs.mod.
25698         (jfs_mod_SOURCES): New variable.
25699         (jfs_mod_CFLAGS): Likewise.
25700         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
25701         (grubof_SOURCES): Likewise.
25702         * util/grub-emu.c (main): Initialize and deinitialize JFS support.
25704         * fs/fat.c (grub_fat_find_dir): Convert the filename little
25705         endian to the host endian.
25706         (grub_fat_utf16_to_utf8): Move function from there...
25707         * kern/misc.c (grub_utf16_to_utf8): ...to here.  Do not convert
25708         the endianness of the source string anymore.
25709         * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
25711 2004-08-24  Marco Gerards  <metgerards@student.han.nl>
25713         * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
25714         (grub_boot_fini) [GRUB_UTIL]: Likewise.
25715         (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
25716         (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
25718         * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
25719         (grub_hfs_iterate_dir): Make the function static.  Add prototypes
25720         for `node_found' and `it_dir'.
25721         (grub_hfs_dir): Add prototype for `dir_hook'.
25723         * fs/minix.c (grub_minix_get_file_block): Add prototype for
25724         `grub_get_indir'.  Rename `indir' in two blocks to `indir16'
25725         and `indir32' to silence a gcc warning.
25727         * include/grub/fs.h (grub_hfs_init): New prototype.
25728         (grub_hfs_fini): Likewise.
25731 2004-08-21  Yoshinori K. Okuji  <okuji@enbug.org>
25733         Each disk device has its own id now. This is useful to make use
25734         of multiple disk devices.
25736         * include/grub/disk.h (grub_disk_dev_id): New enum.
25737         (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
25738         (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
25740         * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
25741         GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
25743         * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
25744         GRUB_DISK_DEVICE_OFDISK_ID as an id.
25746         * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
25747         GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
25749         * include/grub/disk.h (struct grub_disk_dev): Added a new member
25750         "id" which is used by the cache manager.
25752         * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
25753         of just "GRUB".
25755 2004-08-18  Marco Gerards  <metgerards@student.han.nl>
25757         * fs/hfs.c: New file.
25758         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
25759         (grub_emu_SOURCES): Likewise.
25760         (pkgdata_MODULES): Add hfs.mod.
25761         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
25762         (grubof_SOURCES): Likewise.
25763         * util/grub-emu.c (main): Initialize and deinitialize HFS support.
25765         * include/grub/misc.h (grub_strncasecmp): Add prototype.
25766         * kern/misc.c (grub_strncasecmp): Add function.
25768 2004-08-14  Marco Gerards  <metgerards@student.han.nl>
25770         * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
25771         with parentheses.
25773         * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
25774         (grub_ext2_dir): In case the directory entry type is unknown, read
25775         it from the inode.
25777 2004-08-02  Peter Bruin  <pjbruin@dds.nl>
25779         * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
25780         grub_load_linux instead of grub_rescue_cmd_linux as second
25781         argument of grub_rescue_register_command.
25783         * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
25785 2004-07-27  Marco Gerards  <metgerards@student.han.nl>
25787         * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
25788         function.
25789         * commands/boot.c: Remove the check for `GRUB_UTIL'.
25790         * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
25791         `loader/powerpc/ieee1275/linux.c',
25792         `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
25793         * include/grub/powerpc/ieee1275/ieee1275.h
25794         (grub_ieee1275_release): New prototype.
25795         * include/grub/powerpc/ieee1275/loader.h: Rewritten.
25796         * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
25797         normal, boot, linux and linux_normal.
25798         * loader/powerpc/ieee1275/linux.c: New file.
25799         * loader/powerpc/ieee1275/linux_normal.c: Likewise.
25801 2004-07-12  Marco Gerards  <metgerards@student.han.nl>
25803         * normal/arg.c (grub_arg_parse): Correct error handling after
25804         reallocating the argumentlist (check if `argl' is not null instead
25805         of checking if `args' is not null).
25806         * kern/mm.c (grub_realloc): Return the same pointer when using the
25807         same region, instead of returning the header address.
25809 2004-07-11  Marco Gerards  <metgerards@student.han.nl>
25811         * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
25812         one block instead of two when looking for the initial partition.
25813         (grub_partition_probe): Initialize the local variable `p' with 0.
25814         Use base 10 for the grub_strtoul call.
25815         * kern/misc.c (grub_strncpy): Fix off by one bug.  Eliminated the
25816         need for one local variable.
25817         (grub_strtoul): Don't add the new value to `num', instead of that
25818         just assign it.
25820 2004-07-11  Marco Gerards  <metgerards@student.han.nl>
25822         * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
25823         (pxeboot_img_SOURCES): New variable.
25824         (pxeboot_img_ASFLAGS): Likewise.
25825         (pxeboot_img_LDFLAGS): Likewise.
25826         * boot/i386/pc/pxeboot.S: New file.  Based on pxeloader.S from
25827         GRUB Legacy and boot.S.  Adopted for GRUB 2 by lode leroy
25828         <lode_leroy@hotmail.com>.
25830 2004-06-27  Tomas Ebenlendr  <ebik@ucw.cz>
25832         * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
25833         there was no input.
25835 2004-06-27  Tomas Ebenlendr  <ebik@ucw.cz>
25837         * normal/cmdline.c (grub_set_history): Fix off by one bug.  Fixed
25838         the history buffer logic.
25840 2004-06-27  Tomas Ebenlendr  <ebik@ucw.cz>
25842         * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
25843         (FILETYPE_INO_SYMLINK): New macros.
25844         (grub_ext2_find_file): Check if the node is a directory using the
25845         inode stat information instead of using the filetype in the
25846         dirent.  Exclude the first character of an absolute symlink.
25847         (grub_ext2_dir): Mask out the filetype part of the mode member of
25848         the inode.
25850 2004-05-24  Marco Gerards  <metgerards@student.han.nl>
25852         Add support for UFS version 1 and 2.  Add support for the minix
25853         filesystem version 1 and 2, both the variants with 14 and 30 long
25854         filenames.
25856         * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
25857         fs/minix.c.
25858         (grub_emu_SOURCES): Likewise.
25859         (pkgdata_MODULES): Add ufs.mod and minix.mod.
25860         (ufs_mod_SOURCES): New variable.
25861         (ufs_mod_CFLAGS): Likewise.
25862         (minix_mod_SOURCES): Likewise.
25863         (minix_mod_CFLAGS): Likewise.
25864         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
25865         fs/minix.c.
25866         (grubof_SOURCES): Likewise.
25867         * fs/ufs.c: New file.
25868         * fs/minix.c: New file.
25869         * include/grub/fs.h (grub_ufs_init): New prototype.
25870         (grub_ufs_fini): Likewise.
25871         (grub_minix_init): Likewise.
25872         (grub_minix_fini): Likewise.
25873         * util/grub-emu.c (main): Initialize and deinitialize UFS and
25874         minix fs.
25876 2004-04-30  Jeroen Dekkers  <jeroen@dekkers.cx>
25878         * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
25879         commands/ls.c, commands/terminal.c, commands/boot.c,
25880         commands/cmp.c and commands/cat.c.
25881         (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
25883         * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
25884         "env.h"
25886 2004-04-04  Yoshinori K. Okuji  <okuji@enbug.org>
25888         All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
25889         and grub_, respectively. Because the conversion is trivial and
25890         mechanical, I omit the details here. Please refer to the CVS
25891         if you need more information.
25893 2004-04-04  Yoshinori K. Okuji  <okuji@enbug.org>
25895         * include/pupa: Renamed to ...
25896         * include/grub: ... this.
25897         * util/i386/pc/pupa-mkimage.c: Renamed to ...
25898         * util/i386/pc/grub-mkimage.c: ... this.
25899         * util/i386/pc/pupa-setup.c: Renamed to ...
25900         * util/i386/pc/grub-setup.c: ... this.
25901         * util/pupa-emu.c: Renamed to ...
25902         * util/grub-emu.c: ... this.
25904 2004-03-29  Marco Gerards  <metgerards@student.han.nl>
25906         Add support for the newworld apple macintosh (PPC).  This has been
25907         tested on the powerbook 2000 only.  It only adds support for
25908         generic ieee1275 functions, console and disk support.  This should
25909         be easy to port to other architectures with support for Open
25910         Firmware.
25912         * configure.ac: Accept the powerpc as host_cpu.  In the case of
25913         the powerpc cpu set the host_vendor to ieee1275.  Make sure the i386
25914         specific tests are only executed while building for the i386.
25915         Inverse test for crosscompile.
25916         * genmk.rb (Utility): Allow assembler files.
25917         * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
25918         * conf/powerpc-ieee1275.rmk: New file.
25919         * disk/powerpc/ieee1275/ofdisk.c: Likewise.
25920         * disk/powerpc/ieee1275/partition.c: Likewise.
25921         * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
25922         * include/pupa/powerpc/ieee1275/console.h: Likewise.
25923         * include/pupa/powerpc/ieee1275/partition.h: Likewise.
25924         * include/pupa/powerpc/ieee1275/time.h: Likewise.
25925         * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
25926         * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
25927         * include/pupa/powerpc/ieee1275/loader.h
25928         * include/pupa/powerpc/setjmp.h: Likewise.
25929         * include/pupa/powerpc/types.h: Likewise.
25930         * kern/powerpc/ieee1275/init.c: Likewise.
25931         * kern/powerpc/ieee1275/openfw.c: Likewise.
25932         * term/powerpc/ieee1275/ofconsole.c: Likewise.
25934         These files were written by Johan Rydberg
25935         (jrydberg@night.trouble.net) and I only modified them slightly.
25937         * boot/powerpc/ieee1275/cmain.c: New file.
25938         * boot/powerpc/ieee1275/crt0.S: Likewise.
25939         * boot/powerpc/ieee1275/ieee1275.c: Likewise.
25940         * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
25942 2004-03-14  Jeroen Dekkers  <jeroen@dekkers.cx>
25944         * Makefile.in: Update copyright.
25945         * genmodsrc.sh: Likewise.
25946         * gensymlist.sh: Likewise.
25947         * term/i386/pc/vga.c: Indent correctly.
25949         * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
25950         bugreporting address.
25951         * util/i386/pc/pupa-setup.c (usage): Likewise,
25952         (main): Call pupa_ext2_init and pupa_ext2_fini.
25954         * fs/fat.c (log2): Renamed to ...
25955         (fat_log2): ... this.
25956         All callers changed.
25957         * kern/misc.c (memcpy): Alias to pupa_memmove.
25958         * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
25959         lvalue cast.
25960         * util/console.c (pupa_ncurses_fini): Return 0.
25962         * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
25963         Move fail label here.
25964         [__GNU__]: Don't warn when using stat.
25965         (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
25966         (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
25967         long int. Use strtol instead of strtoul.
25969 2004-03-14  Marco Gerards  <metgerards@student.han.nl>
25971         * commands/boot.c: New file.
25972         * commands/cat.c: Likewise.
25973         * commands/cmp.c: Likewise.
25974         * commands/ls.c: Likewise.
25975         * commands/terminal.c: Likewise.
25976         * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
25977         (pupa_register_command): Changed interface to match the new
25978         argument parser.
25979         (pupa_command_execute): Changed (almost rewritten) so it uses
25980         pupa_split_command.  Added support for setting variables using the
25981         syntax `foo=bar'.
25982         (rescue_command): Changed to work with the new argument parser.
25983         (terminal_command): Moved from here to commands/terminal.c.
25984         (set_command): New function.
25985         (unset_command): New function.
25986         (insmod_command): New function.
25987         (rmmod_command): New function.
25988         (lsmod_command): New function.
25989         (pupa_command_init): Don't initialize the command terminal
25990         anymore.  Initialize the commands set, unset, insmod, rmmod and
25991         lsmod.
25992         * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
25993         (kernel_img_HEADERS): Add arg.h and env.h.
25994         (pupa_mkimage_LDFLAGS): Add kern/env.c.
25995         (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
25996         commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
25997         normal/arg.c.
25998         (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
25999         terminal.mod.
26000         (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
26001         (boot_mod_SOURCES): New variable.
26002         (terminal_mod_SOURCES): Likewise.
26003         (ls_mod_SOURCES): Likewise.
26004         (cmp_mod_SOURCES): Likewise.
26005         (cat_mod_SOURCES): Likewise.
26007         * normal/arg.c: New file.
26008         * kern/env.c: Likewise.
26009         * include/pupa/arg.h: Likewise.
26010         * include/pupa/env.h: Likewise.
26011         * font/manager.c (font_command): Changed to match argument parsing
26012         interface changes.
26013         (PUPA_MOD_INIT): Likewise.
26014         * hello/hello.c (pupa_cmd_hello): Likewise.
26015         (PUPA_MOD_INIT): Likewise.
26016         * include/pupa/disk.h: Include <pupa/device.h>.
26017         (pupa_print_partinfo): New prototype.
26018         * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
26019         (pupa_dl_get_prefix): Likewise.
26020         * include/pupa/misc.h: Include <pupa/err.h>.
26021         (pupa_isgraph): New prototype.
26022         (pupa_isdigit): Likewise.
26023         (pupa_split_cmdline): Likewise.
26024         * include/pupa/normal.h: Include <pupa/arg.h>.
26025         (pupa_command): Changed the prototype of the member `func' to
26026         match the argument parsing interface.  Added member `options'.
26027         (pupa_register_command): Updated to match function.
26028         (pupa_arg_parse): New prototype.
26029         (pupa_hello_init) [PUPA_UTIL]: New prototype.
26030         (pupa_hello_fini) [PUPA_UTIL]: Likewise.
26031         (pupa_ls_init) [PUPA_UTIL]: Likewise.
26032         (pupa_ls_fini) [PUPA_UTIL]: Likewise.
26033         (pupa_cat_init) [PUPA_UTIL]: Likewise.
26034         (pupa_cat_fini) [PUPA_UTIL]: Likewise.
26035         (pupa_boot_init) [PUPA_UTIL]: Likewise.
26036         (pupa_boot_fini) [PUPA_UTIL]: Likewise.
26037         (pupa_cmp_init) [PUPA_UTIL]: Likewise.
26038         (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
26039         (pupa_terminal_init) [PUPA_UTIL]: Likewise.
26040         (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
26041         * kern/disk.c: Include <pupa/file.h>.
26042         (pupa_print_partinfo): New function.
26043         * kern/dl.c: Include <pupa/env.h>.
26044         (pupa_dl_dir): Variable removed.
26045         (pupa_dl_load): Use the environment variable `prefix' instead of
26046         the variable pupa_dl_dir.
26047         (pupa_dl_set_prefix): Function removed.
26048         (pupa_dl_get_prefix): Likewise.
26049         * kern/i386/pc/init.c: Include <pupa/env.h>.
26050         (pupa_machine_init): Use the environment variable `prefix' instead of
26051         using pupa_dl_set_prefix to set the prefix.
26052         * kern/main.c: Include <pupa/env.h>.
26053         (pupa_set_root_dev): Use the environment variable `prefix' instead of
26054         using pupa_dl_get_prefix to get the prefix.
26055         * kern/misc.c: Include <pupa/env.h>.
26056         (pupa_isdigit): New function.
26057         (pupa_isgraph): Likewise.
26058         (pupa_ftoa): Likewise.
26059         (pupa_vsprintf): Added support for printing values of the type
26060         `double'.  Make it possible to format variable output when using
26061         formatting like `%1.2%f'.
26062         (pupa_split_cmdline): New function.
26063         * kern/rescue.c: Include <pupa/env.h>.
26064         (next_word): Removed function.
26065         (pupa_rescue_cmd_prefix): Likewise.
26066         (pupa_rescue_cmd_set): New function.
26067         (pupa_rescue_cmd_unset): New function.
26068         (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
26069         split the command line instead of splitting it here.  Added
26070         support for setting variables using the syntax `foo=bar'.  Don't
26071         initialize the prefix command anymore.  Initialized the set and
26072         unset commands.
26073         * normal/cmdline.c: Include <pupa/env.h>.
26074         (pupa_tab_complete): Added prototypes for print_simple_completion,
26075         print_partition_completion, add_completion, iterate_commands,
26076         iterate_dev, iterate_part and iterate_dir. Moved code to print
26077         partition information from here to kern/disk.c.
26078         (pupa_cmdline_run): Don't check if the function exists anymore.
26079         * normal/main.c: Include <pupa/env.h>.
26080         (pupa_rescue_cmd_normal): Use the environment variable `prefix'
26081         instead of using pupa_dl_get_prefix to get the prefix.
26082         * term/i386/pc/vga.c: Include <pupa/arg.h>.
26083         (check_vga_mem): Cast pointers to `void *' to silence a gcc
26084         warning.
26085         (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
26086         (pupa_vga_setcolor): Declare unused variables with `__attribute__
26087         ((unused))' to silence a gcc warning.
26088         (pupa_vga_setcolor): Likewise.
26089         (debug_command): Changed to match argument parsing
26090         interface changes.
26091         * util/pupa-emu.c: Include <pupa/env.h>.
26092         (options): Added 0's for unused fields to silence a gcc warning.
26093         (argp): Likewise.
26094         (main): Use the environment variable `prefix' instead of using
26095         pupa_dl_set_prefix to set the prefix.  Initialize the commands ls,
26096         boot, cmp, cat and terminal.  Finish the commands boot, cmp, cat
26097         and terminal.
26099         * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
26100         * util/misc.c: Include <malloc.h>.
26101         (pupa_malloc): Rewritten so errors are correctly reported.
26102         (pupa_realloc): Likewise.
26103         (pupa_memalign): Likewise.
26104         (pupa_mm_init_region): Declare unused variables with
26105         `__attribute__ ((unused))' to silence a gcc warning.
26106         * normal/i386/setjmp.S: Remove tab at the end of the file to
26107         silence a gcc warning.
26108         * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
26109         variables with `__attribute__ ((unused))' to silence a gcc
26110         warning.
26111         * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
26112         local variable i unsigned to silence a gcc warning.
26114         * kern/term.c: Include <pupa/misc.h>.
26115         (pupa_more_lines): New variable.
26116         (pupa_more): Likewise.
26117         (pupa_putcode): When the pager is active pause at the end of every
26118         screen.
26119         (pupa_set_more): New function.
26120         * include/pupa/term.h (pupa_set_more): New prototype.
26123 2004-03-07  Yoshinori K. Okuji  <okuji@enbug.org>
26125         Now this project is GRUB 2 rather than PUPA. The location of
26126         the CVS repository was moved to GRUB's.
26128         * configure.ac: Use bug-grub as the reporting address.
26129         Use GRUB instead of PUPA.
26130         Change the version number to 1.90.
26132 2004-02-24  Yoshinori K. Okuji  <okuji@enbug.org>
26134         * genkernsyms.sh: Updated copyright information.
26135         * genmk.rb: Likewise.
26136         * genmodsrc.sh: Likewise.
26137         * gensymlist.sh: Likewise.
26138         * boot/i386/pc/boot.S: Likewise.
26139         * boot/i386/pc/diskboot.S: Likewise.
26140         * disk/i386/pc/biosdisk.c: Likewise.
26141         * disk/i386/pc/partition.c: Likewise.
26142         * font/manager.c: Likewise.
26143         * fs/ext2.c: Likewise.
26144         * fs/fat.c: Likewise.
26145         * include/pupa/boot.h: Likewise.
26146         * include/pupa/device.h: Likewise.
26147         * include/pupa/disk.h: Likewise.
26148         * include/pupa/dl.h: Likewise.
26149         * include/pupa/elf.h: Likewise.
26150         * include/pupa/err.h: Likewise.
26151         * include/pupa/file.h: Likewise.
26152         * include/pupa/font.h: Likewise.
26153         * include/pupa/fs.h: Likewise.
26154         * include/pupa/kernel.h: Likewise.
26155         * include/pupa/loader.h: Likewise.
26156         * include/pupa/misc.h: Likewise.
26157         * include/pupa/mm.h: Likewise.
26158         * include/pupa/net.h: Likewise.
26159         * include/pupa/normal.h: Likewise.
26160         * include/pupa/rescue.h: Likewise.
26161         * include/pupa/setjmp.h: Likewise.
26162         * include/pupa/symbol.h: Likewise.
26163         * include/pupa/term.h: Likewise.
26164         * include/pupa/types.h: Likewise.
26165         * include/pupa/i386/setjmp.h: Likewise.
26166         * include/pupa/i386/types.h: Likewise.
26167         * include/pupa/i386/pc/biosdisk.h: Likewise.
26168         * include/pupa/i386/pc/boot.h: Likewise.
26169         * include/pupa/i386/pc/console.h: Likewise.
26170         * include/pupa/i386/pc/init.h: Likewise.
26171         * include/pupa/i386/pc/kernel.h: Likewise.
26172         * include/pupa/i386/pc/linux.h: Likewise.
26173         * include/pupa/i386/pc/loader.h: Likewise.
26174         * include/pupa/i386/pc/memory.h: Likewise.
26175         * include/pupa/i386/pc/multiboot.h: Likewise.
26176         * include/pupa/i386/pc/partition.h: Likewise.
26177         * include/pupa/i386/pc/time.h: Likewise.
26178         * include/pupa/i386/pc/vga.h: Likewise.
26179         * include/pupa/i386/pc/util/biosdisk.h: Likewise.
26180         * include/pupa/util/getroot.h: Likewise.
26181         * include/pupa/util/misc.h: Likewise.
26182         * include/pupa/util/resolve.h: Likewise.
26183         * kern/device.c: Likewise.
26184         * kern/disk.c: Likewise.
26185         * kern/dl.c: Likewise.
26186         * kern/err.c: Likewise.
26187         * kern/file.c: Likewise.
26188         * kern/fs.c: Likewise.
26189         * kern/loader.c: Likewise.
26190         * kern/main.c: Likewise.
26191         * kern/misc.c: Likewise.
26192         * kern/mm.c: Likewise.
26193         * kern/rescue.c: Likewise.
26194         * kern/term.c: Likewise.
26195         * kern/i386/dl.c: Likewise.
26196         * kern/i386/pc/init.c: Likewise.
26197         * kern/i386/pc/lzo1x.S: Likewise.
26198         * kern/i386/pc/startup.S: Likewise.
26199         * loader/i386/pc/chainloader.c: Likewise.
26200         * loader/i386/pc/linux.c: Likewise.
26201         * loader/i386/pc/multiboot.c: Likewise.
26202         * normal/cmdline.c: Likewise.
26203         * normal/command.c: Likewise.
26204         * normal/main.c: Likewise.
26205         * normal/menu.c: Likewise.
26206         * normal/i386/setjmp.S: Likewise.
26207         * term/i386/pc/console.c: Likewise.
26208         * term/i386/pc/vga.c: Likewise.
26209         * util/console.c: Likewise.
26210         * util/genmoddep.c: Likewise.
26211         * util/misc.c: Likewise.
26212         * util/pupa-emu.c: Likewise.
26213         * util/resolve.c: Likewise.
26214         * util/unifont2pff.rb: Likewise.
26215         * util/i386/pc/biosdisk.c: Likewise.
26216         * util/i386/pc/getroot.c: Likewise.
26217         * util/i386/pc/pupa-mkimage.c: Likewise.
26218         * util/i386/pc/pupa-setup.c: Likewise.
26220 2004-02-15  Jeroen Dekkers  <jeroen@dekkers.cx>
26222         * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
26223         when it is EXT2_BLOCK_SIZE (data).  New argument READ_HOOK, all
26224         callers changed.  Set DATA->DISK->READ_HOOK to READ_HOOK before
26225         reading and reset it after reading.
26226         (pupa_ext2_close): Return PUPA_ERR_NONE.
26228         * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
26229         Correct value.
26230         (struct linux_kernel_header): Add kernel_version and
26231         initrd_addr_max.
26232         * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
26233         pupa_file_read succeeds.
26234         (pupa_rescue_cmd_initrd): Implement.
26236 2003-12-03  Marco Gerards  <metgerards@student.han.nl>
26238         * fs/ext2.c (pupa_ext2_label): New function.
26239         (pupa_ext2_fs): Added label.
26240         * fs/fat.c (pupa_fat_label): New function.
26241         (pupa_fat_fs): Added label.
26242         * include/pupa/fs.h (struct pupa_fs): Added prototype label.
26244         * kern/misc.c (pupa_strndup): New function.
26245         * include/pupa/misc.h (pupa_strndup): New prototype.
26247         * include/pupa/normal.h: Include <pupa/err.h>.
26248         (pupa_set_history): New prototype.
26249         (pupa_iterate_commands): New prototype.
26250         * normal/cmdline.c: Include <pupa/machine/partition.h>,
26251         <pupa/disk.h>, <pupa/file.h>.
26252         (hist_size): New variable.
26253         (hist_lines): Likewise.
26254         (hist_end): Likewise.
26255         (hist_used): Likewise.
26256         (pupa_set_history): New function.
26257         (pupa_history_get): Likewise.
26258         (pupa_history_add): Likewise.
26259         (pupa_history_replace): Likewise.
26260         (pupa_tab_complete): Likewise.
26261         (pupa_cmdline_run): Added tab completion and history buffer.  Tab
26262         completion shows partitionnames while completing partitions, this
26263         feature was suggested by Jeff Bailey.
26264         * normal/command.c (pupa_iterate_commands): New function.
26265         * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
26266         (pupa_normal_init): Initialize history buffer.
26267         (PUPA_MOD_INIT): Likewise.
26268         (pupa_normal_fini): Free the history buffer.
26269         (PUPA_MOD_FINI): Likewise.
26271         * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
26272         key.
26274         * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
26275         * configure.ac [i386]: Check for regparam bug.
26276         (NESTED_FUNC_ATTR) [! i386]: Defined.
26278 2003-11-17  Marco Gerards  <metgerards@student.han.nl>
26280         * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
26281         (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
26282         (pupa_emu_SOURCES): New variable.
26283         (pupa_emu_LDFLAGS): Likewise.
26284         * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
26285         (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
26286         * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
26287         (pupa_normal_fini) [PUPA_UTIL]: Likewise.
26288         * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
26289         (pupa_jmp_buf): New typedef.
26290         (pupa_setjmp) [PUPA_UTIL]: New macro.
26291         (pupa_longjmp) [PUPA_UTIL]: Likewise.
26292         * include/pupa/term.h (struct pupa_term): New member `refresh'.
26293         (pupa_refresh): New prototype.
26294         * include/pupa/util/getroot.h: New file.
26295         * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
26296         it.
26297         * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
26298         (pupa_rescue_cmd_cat): Likewise.
26299         (pupa_rescue_cmd_ls): Likewise.
26300         (pupa_rescue_cmd_testload): Likewise.
26301         (pupa_rescue_cmd_lsmod): Likewise.
26302         * normal/cmdline.c (pupa_cmdline_get): Likewise.
26303         * normal/menu.c (run_menu): Likewise.
26304         * kern/term.c (pupa_cls): Likewise.
26305         (pupa_refresh): New function.
26306         * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
26307         (pupa_normal_fini) [PUPA_UTIL]: Likewise.
26308         * util/console.c: New file.
26310         * util/i386/pc/getroot.c: New file.
26311         * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
26312         (pupa_putchar): New function.
26313         (pupa_refresh): Likewise.
26314         (xgetcwd): Function moved to ...
26315         (strip_extra_slashes): Likewise.
26316         (get_prefix): Likewise.
26317         * util/i386/pc/getroot.c: ... here.
26318         (find_root_device): Function moved and renamed to...
26319         * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
26320         Changed all callers.
26321         * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
26322         and renamed to...
26323         * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
26324         Changed all callers.
26325         * util/misc.c (pupa_memalign): New function.
26326         (pupa_mm_init_region): Likewise.
26327         (pupa_register_exported_symbols): Likewise.
26328         (pupa_putchar): Function removed.
26329         * util/pupa-emu.c: New file.
26331 2003-11-16  Jeroen Dekkers  <jeroen@dekkers.cx>
26333         * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
26334         (_multiboot_mod_SOURCES): New variable.
26335         (_multiboot_mod_CFLAGS): Likewise.
26336         * loader/i386/pc/multiboot.c: New file.
26337         * include/pupa/i386/pc/multiboot.h: Likewise.
26338         * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
26339         (pupa_multiboot_real_boot): New function.
26340         * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
26341         (pupa_multiboot_real_boot): New prototype.
26342         (pupa_rescue_cmd_multiboot): Likewise
26343         (pupa_rescue_cmd_module): Likewise.
26345         * kern/loader.c (pupa_loader_set): Continue when
26346         pupa_loader_unload_func() fails.
26347         (pupa_loader_unset): New function.
26348         * include/pupa/loader.h (pupa_loader_unset): New prototype.
26350         * kern/misc.c (pupa_stpcpy): New function.
26351         * include/pupa/misc.h (pupa_stpcpy): New prototype.
26353 2003-11-12  Marco Gerards  <metgerards@student.han.nl>
26355         * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
26356         for available extensions.
26358         * include/pupa/i386/pc/time.h: New file.
26359         * kern/disk.c: Include <pupa/machine/time.h>.
26360         (PUPA_CACHE_TIMEOUT): New macro.
26361         (pupa_last_time): New variable.
26362         (pupa_disk_open): Flush the cache when there was a timeout.
26363         (pupa_disk_close): Reset the timer.
26364         * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
26365         pupa_currticks.
26366         * util/misc.c: Include <sys/times.h>
26367         (pupa_get_rtc): New function.
26369 2003-11-09  Jeroen Dekkers  <jeroen@dekkers.cx>
26371         * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
26372         as blocks.
26373         (pupa_ext2_get_file_block): Use blocks member.
26375         * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
26376         first block. Return -1 instead of pupa_errno on error.
26378 2003-10-27  Marco Gerards  <metgerards@student.han.nl>
26380         * README: In the pupa-mkimage example use _chain instead of chain
26381         and ext2 instead of fat.
26382         * TODO: Replace ext2fs with jfs as an example.  Add an item for
26383         adding journal playback for ext2fs.
26384         * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
26385         (pkgdata_MODULES): Added ext2.mod.
26386         (ext2_mod_SOURCES): New variable.
26387         (ext2_mod_CFLAGS): Likewise.
26388         * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
26389         * include/pupa/misc.h (pupa_strncpy): New prototype.
26390         (pupa_strcat): Likewise.
26391         (pupa_strncmp): Likewise.
26392         * kern/misc.c (pupa_strcat): Enable function.
26393         (pupa_strncpy): New function.
26394         (pupa_strncmp): Likewise.
26395         * fs/ext2.c: New file.
26397         * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
26398         when the read failed before retrying.
26399         * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
26400         (_FILE_OFFSET_BITS): Likewise.
26401         * configure.ac: Added AC_SYS_LARGEFILE.
26403 2003-09-25  Yoshinori K. Okuji  <okuji@enbug.org>
26405         * genmk.rb (PModule#rule): Make sure to get only symbol names
26406         from the output of nm.
26407         Reported by Robert Millan <rmh.grub@aybabtu.com>.
26409 2003-09-25  Yoshinori K. Okuji  <okuji@enbug.org>
26411         I forgot to check in these changes for a long time. This adds
26412         incomplete support for VGA console, and this is still very
26413         buggy. Also, a lot of consideration is required for I18N,
26414         UNICODE, and VGA font issues. Therefore, assume that this is
26415         such that "better than nothing".
26417         * font/manager.c: New file.
26418         * include/pupa/font.h: Likewise.
26419         * include/pupa/i386/pc/vga.h: Likewise.
26420         * term/i386/pc/vga.c: Likewise.
26421         * util/unifont2pff.rb: Likewise.
26423         * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
26424         (pkgdata_MODULES): Added vga.mod and font.mod.
26425         (vga_mod_SOURCES): New variables.
26426         (vga_mod_CFLAGS): Likewise.
26427         (font_mod_SOURCES): Likewise.
26428         (font_mod_CFLAGS): Likewise.
26430         * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
26432         * include/pupa/term.h: Include pupa/err.h.
26433         (struct pupa_term): Added init and fini.
26434         Changed the argument of putchar to pupa_uint32_t.
26436         * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
26437         (pupa_console_real_putchar): New prototype.
26438         (pupa_console_putchar): Removed.
26439         (pupa_console_checkkey): Exported.
26440         (pupa_console_getkey): Likewise.
26442         * kern/misc.c (pupa_vsprintf): Add support for UNICODE
26443         characters.
26445         * kern/term.c (pupa_term_set_current): Rewritten.
26446         (pupa_putchar): Likewise.
26447         (pupa_putcode): New function.
26449         * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
26450         (pupa_console_real_putchar): ... this.
26451         (pupa_vga_set_mode): New function.
26452         (pupa_vga_get_font): Likewise.
26454         * normal/command.c: Include pupa/term.h.
26455         (terminal_command): New function.
26456         (pupa_command_init): Register the command "terminal".
26458         * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
26459         (DISP_UP): Likewise.
26460         (DISP_RIGHT): Likewise.
26461         (DISP_DOWN): Likewise.
26462         (DISP_HLINE): Likewise.
26463         (DISP_VLINE): Likewise.
26464         (DISP_UL): Likewise.
26465         (DISP_UR): Likewise.
26466         (DISP_LL): Likewise.
26467         (DISP_LR): Likewise.
26469         * term/i386/pc/console.c (pupa_console_putchar): New function.
26471 2003-02-08  NIIBE Yutaka  <gniibe@m17n.org>
26473         * util/resolve.c (pupa_util_resolve_dependencies): BUG
26474         FIX. Reverse the path_list.
26476         * include/pupa/normal.h: Export pupa_register_command and
26477         pupa_unregister_command.
26479         * hello/hello.c (pupa_cmd_hello): New module.
26480         * conf/i386-pc.rmk: Added hello.mod.
26482 2003-01-31  Yoshinori K. Okuji  <okuji@enbug.org>
26484         * kern/i386/pc/lzo1x.S: New file.
26486         * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
26487         (compress_kernel): New variable.
26488         (generate_image): Heavily modified to support compressing a
26489         large part of the core image.
26491         * util/misc.c (pupa_util_read_image): Fix a file descriptor
26492         leak.
26493         (pupa_util_load_image): New function.
26495         * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
26496         (pupa_compressed_size): New variable.
26497         (codestart): Enable Gate A20 here.
26498         Decompress the compressed part of the core image.
26499         Rearrange the code to put functions and variables which are
26500         required for initialization in the non-compressed part.
26501         Include lzo1x.S.
26503         * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
26504         here.
26506         * include/pupa/util/misc.h (pupa_util_write_image): Declared.
26508         * include/pupa/i386/pc/kernel.h
26509         (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
26510         (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
26511         (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
26512         (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
26513         (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
26515         * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
26517         * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
26518         (Utility#rule): Likewise.
26520         * configure.ac: Check if LZO is available.
26522 2003-01-20  Yoshinori K. Okuji  <okuji@enbug.org>
26524         * include/pupa/normal.h: New file.
26525         * include/pupa/setjmp.h: Likewise.
26526         * include/pupa/i386/setjmp.h: Likewise.
26527         * normal/cmdline.c: Likewise.
26528         * normal/command.c: Likewise.
26529         * normal/main.c: Likewise.
26530         * normal/menu.c: Likewise.
26531         * normal/i386/setjmp.S: Likewise.
26533         * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
26534         (pupa_rescue_cmd_initrd): Likewise.
26536         * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
26537         Likewise.
26539         * kern/i386/pc/startup.S (translation_table): New variable.
26540         (translate_keycode): New function.
26541         (pupa_console_getkey): Call translate_keycode.
26543         * kern/rescue.c (attempt_normal_mode): New function.
26544         (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
26545         it failed, print a message.
26547         * kern/mm.c (pupa_real_malloc): Print more information when a
26548         free magic is broken.
26549         (pupa_free): If the first free header is not free actually, set
26550         it to P.
26552         * kern/main.c (pupa_load_normal_mode): Just load the module
26553         "normal".
26554         (pupa_main): Don't print the message
26555         "Entering into rescue mode..." here.
26557         * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
26558         Declared.
26559         (pupa_rescue_cmd_initrd): Likewise.
26560         (pupa_rescue_cmd_initrd): Likewise.
26562         * include/pupa/symbol.h (FUNCTION): Specify the type.
26563         (VARIABLE): Likewise.
26565         * include/pupa/err.h (pupa_err_t): Added
26566         PUPA_ERR_UNKNOWN_COMMAND.
26568         * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
26569         (pupa_dl_get_prefix): Likewise.
26571         * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
26572         Added _chain.mod and _linux.mod instead of chain.mod and
26573         linux.mod.
26574         (chain_mod_SOURCES): Renamed to ...
26575         (_chain_mod_SOURCES): ... this.
26576         (chain_mod_CFLAGS): Renamed to ...
26577         (_chain_mod_CFLAGS): ... this.
26578         (linux_mod_SOURCES): Renamed to ...
26579         (_linux_mod_SOURCES): ... this.
26580         (linux_mod_CFLAGS): Renamed to ...
26581         (_linux_mod_CFLAGS): ... this.
26582         (normal_mod_SOURCES): New variable.
26583         (normal_mod_CFLAGS): Likewise.
26584         (normal_mod_ASFLAGS): Likewise.
26586 2003-01-18  Yoshinori K. Okuji  <okuji@enbug.org>
26588         * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
26589         possible.
26591         * kern/dl.c (pupa_dl_ref): Refer depending modules
26592         recursively.
26593         (pupa_dl_unref): Unrefer depending modules recursively.
26594         Don't call pupa_dl_unload implicitly, because PUPA can crash if
26595         a module is unloaded before one depending on that module is
26596         unloaded.
26597         (pupa_dl_unload): Unload depending modules explicitly,
26598         if possible.
26600 2003-01-17  Yoshinori K. Okuji  <okuji@enbug.org>
26602         * include/pupa/i386/pc/linux.h: New file.
26603         * loader/i386/pc/linux.c: Likewise.
26605         * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
26606         Removed.
26607         (pupa_chainloader_unload): Return PUPA_ERR_NONE.
26608         (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
26609         of PUPA_CHAINLOADER_BOOT_SECTOR.
26611         * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
26612         (pupa_linux_prot_size): New variable.
26613         (pupa_linux_tmp_addr): Likewise.
26614         (pupa_linux_real_addr): Likewise.
26615         (pupa_linux_boot_zimage): New function.
26616         (pupa_linux_boot_bzimage): Likewise.
26618         * kern/i386/pc/init.c (struct mem_region): New structure.
26619         (MAX_REGIONS): New macro.
26620         (mem_regions): New variable.
26621         (num_regions): Likewise.
26622         (pupa_os_area_addr): Likewise.
26623         (pupa_os_area_size): Likewise.
26624         (pupa_lower_mem): Likewise.
26625         (pupa_upper_mem): Likewise.
26626         (add_mem_region): New function.
26627         (compact_mem_regions): Likewise.
26628         (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
26629         the size of the conventional memory and that of so-called upper
26630         memory (before the first memory hole).
26631         Instead of adding each found region to free memory, use
26632         add_mem_region and add them after removing overlaps.
26633         Also, add only 1/4 of the upper memory to free memory. The rest
26634         is used for loading OS images. Maybe this is ad hoc, but this
26635         makes it much easier to relocate OS images when booting.
26637         * kern/rescue.c (pupa_rescue_cmd_module): Removed.
26638         (pupa_enter_rescue_mode): Don't register initrd and module.
26640         * kern/mm.c: Include pupa/dl.h.
26642         * kern/main.c: Include pupa/file.h and pupa/device.h.
26644         * kern/loader.c (pupa_loader_load_module_func): Removed.
26645         (pupa_loader_load_module): Likewise.
26647         * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
26648         ``.o''.
26650         * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
26651         (pupa_linux_tmp_addr): Likewise.
26652         (pupa_linux_real_addr): Likewise.
26653         (pupa_linux_boot_zimage): Likewise.
26654         (pupa_linux_boot_bzimage): Likewise.
26656         * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
26657         (pupa_upper_mem): Likewise.
26658         (pupa_gate_a20): Don't export, because turning off Gate A20 in a
26659         module is too dangerous.
26661         * include/pupa/loader.h (pupa_os_area_addr): Declared.
26662         (pupa_os_area_size): Likewise.
26663         (pupa_loader_set): Remove the first argument. Loader doesn't
26664         manage modules or initrd any longer.
26665         (pupa_loader_load_module): Removed.
26667         * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
26668         (linux_mod_SOURCES): New variable.
26669         (linux_mod_CFLAGS): Likewise.
26671 2003-01-07  Yoshinori K. Okuji  <okuji@enbug.org>
26673         * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
26674         the length of a blocklist correctly.
26676         * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
26677         Use ioctl only if the OS file is a block device.
26678         (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
26679         not very useful for normal files.
26681         * kern/main.c (pupa_set_root_dev): New function.
26682         (pupa_load_normal_mode): Likewise.
26683         (pupa_main): Call those above.
26685         * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
26686         pupa_uint16_t.
26688         * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
26690 2003-01-06  Yoshinori K. Okuji  <okuji@enbug.org>
26692         * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
26693         (setup): Configure the installed partition information and the
26694         dl prefix.
26696         * loader/i386/pc/chainloader.c (my_mod): New variable.
26697         (pupa_chainloader_unload): New function.
26698         (pupa_rescue_cmd_chainloader): Refer itself.
26699         (PUPA_MOD_INIT): Save its own module in MY_MOD.
26701         * kern/i386/pc/startup.S (install_partition): Removed.
26702         (version_string): Likewise.
26703         (config_file): Likewise.
26704         (pupa_install_dos_part): New variable.
26705         (pupa_install_bsd_part): Likewise.
26706         (pupa_prefix): Likewise.
26707         (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
26709         * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
26710         and pupa/misc.h.
26711         (make_install_device): New function.
26712         (pupa_machine_init): Set the dl prefix.
26714         * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
26715         (buf): Renamed to ...
26716         (linebuf): ... this.
26717         (pupa_rescue_cmd_prefix): New function.
26718         (pupa_rescue_cmd_insmod): Likewise.
26719         (pupa_rescue_cmd_rmmod): Likewise.
26720         (pupa_rescue_cmd_lsmod): Likewise.
26721         (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
26722         rmmod and lsmod.
26724         * kern/mm.c (pupa_memalign): If failed even after invalidating
26725         disk caches, unload unneeded modules and retry.
26727         * kern/misc.c (pupa_memmove): New function.
26728         (pupa_memcpy): Removed.
26729         (pupa_strcpy): New function.
26730         (pupa_itoa): Made static.
26732         * kern/dl.c (pupa_dl_iterate): New function.
26733         (pupa_dl_ref): Likewise.
26734         (pupa_dl_unref): Likewise.
26735         (pupa_dl_unload): Return if succeeded or not.
26736         (pupa_dl_unload_unneeded): New function.
26737         (pupa_dl_unload_all): Likewise.
26738         (pupa_dl_init): Renamed to ...
26739         (pupa_dl_set_prefix): ... this.
26740         (pupa_dl_get_prefix): New function.
26742         * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
26743         (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
26744         (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
26745         (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
26746         (pupa_install_dos_part): Declared.
26747         (pupa_install_bsd_part): Likewise.
26748         (pupa_prefix): Likewise.
26749         (pupa_boot_drive): Likewise.
26751         * include/pupa/types.h: Fix a typo.
26753         * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
26754         pupa_memmove.
26755         (pupa_memmove): Declared.
26756         (pupa_strcpy): Likewise.
26758         * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
26759         pupa_mod_init takes one argument, its own module.
26760         (pupa_dl_unload_unneeded): Declared.
26761         (pupa_dl_unload_all): Likewise.
26762         (pupa_dl_ref): Likewise.
26763         (pupa_dl_unref): Likewise.
26764         (pupa_dl_iterate): Likewise.
26765         (pupa_dl_init): Renamed to ...
26766         (pupa_dl_set_prefix): ... this.
26767         (pupa_dl_get_prefix): Declared.
26769         * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
26770         (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
26771         unloaded.
26772         (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
26773         (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
26775         * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
26776         -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
26778 2003-01-03  Yoshinori K. Okuji  <okuji@enbug.org>
26780         * util/i386/pc/pupa-setup.c (setup): Define the internal
26781         function find_first_partition_start at the top level, because GCC
26782         3.0.x cannot compile internal functions in deeper scopes
26783         correctly.
26784         (find_root_device): Use lstat instead of stat.
26785         Don't follow symbolic links.
26786         Fix the path-constructing code.
26788         * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
26789         (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
26790         by a BLKGETSIZE ioctl first, because block devices don't fill
26791         the member st_mode of the structure stat on Linux.
26792         [__linux__] (linux_find_partition): Use a temporary buffer
26793         REAL_DEV for the working space. Copy it to DEV before returning.
26794         (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
26795         buffer cache consistent.
26796         (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
26797         strncmp. The previous value was merely wrong.
26798         (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
26800         * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
26801         FAT size is 12. The previous value was merely wrong.
26803         * kern/main.c (pupa_main): Don't split the starting message from
26804         newlines.
26806         * kern/term.c (pupa_putchar): Put CR after LF instead of before
26807         LF, because BIOS goes crazy about character attributes in this
26808         case.
26810 2003-01-03  Yoshinori K. Okuji  <okuji@enbug.org>
26812         * include/i386/pc/util/biosdisk.h: New file.
26813         * util/i386/pc/biosdisk.c: Likewise.
26814         * util/i386/pc/pupa-setup.c: Likewise.
26816         * Makefile.in (INCLUDE_DISTFILES): Added
26817         include/pupa/i386/pc/util/biosdisk.h.
26818         (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
26819         directory util/i386/pc.
26820         (install-local): Added a rule for sbin_UTILITIES.
26821         (uninstall): Likewise.
26823         * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
26825         * util/misc.c (xrealloc): New function.
26826         (pupa_malloc): Likewise.
26827         (pupa_free): Likewise.
26828         (pupa_realloc): Likewise.
26829         (pupa_stop): Likewise.
26830         (pupa_putchar): Likewise.
26832         * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
26834         * include/pupa/util/misc.h (xrealloc): Declared.
26836         * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
26837         macro.
26838         (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
26839         (PUPA_BOOT_MACHINE_BPB_END): ... this.
26841         * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
26842         [PUPA_UTIL] (pupa_fat_fini): Likewise.
26844         * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
26845         way should be implemented.
26846         [PUPA_UTIL] (pupa_fat_fini): Likewise.
26848         * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
26849         the size of NAME for safety.
26850         (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
26851         0x88.
26853         * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
26854         (pupa_setup_SOURCES): Likewise.
26856         * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
26858 2002-12-28  Yoshinori K. Okuji  <okuji@enbug.org>
26860         * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
26861         bunch of pushl's from pusha, because this destroys the return
26862         value.
26864 2002-12-28  Yoshinori K. Okuji  <okuji@enbug.org>
26866         Use -mrtd and -mregparm=3 to reduce the generated code sizes.
26867         This means that any missing prototypes could be fatal. Also, you
26868         must take care when writing assembly code. See the comments at
26869         the beginning of startup.S, for more details.
26871         * kern/i386/pc/startup.S (pupa_halt): Modified for the new
26872         compilation mechanism.
26873         (pupa_chainloader_real_boot): Likewise.
26874         (pupa_biosdisk_rw_int13_extensions): Likewise.
26875         (pupa_biosdisk_rw_standard): Likewise.
26876         (pupa_biosdisk_check_int13_extensions): Likewise.
26877         (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
26878         (pupa_biosdisk_get_diskinfo_standard): Likewise.
26879         (pupa_get_memsize): Likewise.
26880         (pupa_get_mmap_entry): Likewise.
26881         (pupa_console_putchar): Likewise.
26882         (pupa_console_setcursor): Likewise.
26883         (pupa_getrtsecs): Use pushl instead of push.
26885         * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
26886         memory instead of the stack for a mmap entry, because some
26887         BIOSes may ignore the maximum size and overflow.
26889         * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
26891         * genmk.rb (PModule#rule): Compile automatically generated
26892         sources with module-specific CFLAGS as well as other sources.
26894 2002-12-27  Yoshinori K. Okuji  <okuji@enbug.org>
26896         * configure.ac: Check ld.
26897         Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
26898         respectively, before checking endianness and sizes.
26900         * Makefile.in (LD): New variable.
26902 2002-12-27  Yoshinori K. Okuji  <okuji@enbug.org>
26904         * Makefile.in (BUILD_CC): CC -> BUILD_CC.
26906 2002-12-27  Yoshinori K. Okuji  <okuji@enbug.org>
26908         * Changelog: New file.